.portal-body{background:#f7f6f3}.portal-header{position:sticky;top:0;z-index:60;height:82px;background:rgba(255,255,255,.98);border-bottom:1px solid #e8e4df;display:flex;align-items:center;justify-content:space-between;padding:0 4%}.portal-header .brand{display:flex;align-items:center;gap:12px}.portal-header .brand img{width:48px;height:48px;object-fit:contain}.portal-header .brand-copy{display:flex;flex-direction:column;line-height:1}.portal-header .brand-copy strong{font-family:"Monotype Corsiva","Segoe Script",cursive;font-size:27px;font-style:italic;font-weight:500}.portal-header .brand-copy span{font-family:"Monotype Corsiva","Segoe Script",cursive;font-size:15px;font-style:italic;margin-top:5px}.portal-nav{display:flex;gap:22px;align-items:center;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.portal-nav a:hover{color:var(--accent)}.portal-shell{max-width:1480px;margin:0 auto;padding:56px 4% 90px}.portal-kicker{color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:12px;margin:0 0 12px}.portal-title{font-size:clamp(40px,5vw,70px);line-height:1.02;letter-spacing:-.04em;margin:0}.portal-sub{max-width:760px;font-size:17px;line-height:1.7;color:#666;margin:22px 0 0}.filter-bar{display:flex;flex-wrap:wrap;gap:9px;margin:38px 0 34px}.filter-btn{border:1px solid #d8d1ca;background:#fff;padding:11px 15px;font:inherit;font-size:11px;font-weight:700;text-transform:uppercase;cursor:pointer}.filter-btn.active,.filter-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.cad-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.cad-card{background:#fff;border:1px solid #e5e1dc;transition:.2s transform,.2s box-shadow}.cad-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.08)}.cad-card a{display:block}.cad-image{aspect-ratio:1/1.04;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center}.cad-image img{width:100%;height:100%;object-fit:contain}.cad-meta{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:13px 14px;border-top:1px solid #eee;font-size:12px}.cad-code{font-weight:800;letter-spacing:.04em}.cad-cat{color:#777;font-size:10px;text-transform:uppercase;text-align:right}.auth-shell{min-height:calc(100vh - 82px);display:grid;place-items:center;padding:48px 20px;background:#f5f2ed}.auth-card{width:min(560px,100%);background:#fff;padding:42px;border:1px solid #e1ddd7;box-shadow:0 20px 50px rgba(0,0,0,.07)}.auth-card h1{font-size:38px;line-height:1.05;margin:0 0 14px}.auth-card>p{color:#666;line-height:1.65}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}.form-grid .full{grid-column:1/-1}.auth-card input,.auth-card textarea,.auth-card select{width:100%;padding:14px;border:1px solid #ccc;background:#fff;font:inherit}.auth-card textarea{min-height:100px;resize:vertical}.auth-card button{width:100%;border:0;background:var(--accent);color:#fff;padding:15px;font-weight:800;text-transform:uppercase;cursor:pointer}.auth-card button:hover{background:var(--accent-hover)}.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:18px;font-size:13px}.auth-links a{color:var(--accent);font-weight:700}.flash{padding:12px 14px;margin:0 0 18px;background:#f8eded;border:1px solid #e3c7cd;color:#7f2639;font-size:13px}.flash.ok{background:#edf6ef;border-color:#c9dfcd;color:#255a32}.detail-shell{max-width:1280px;margin:0 auto;padding:50px 4% 90px}.detail-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.detail-head h1{font-size:50px;margin:0}.detail-head p{margin:0;color:#666}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.detail-panel{background:#fff;border:1px solid #e5e1dc}.detail-panel .label{padding:13px 15px;border-bottom:1px solid #eee;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.detail-panel img{width:100%;height:auto;object-fit:contain;background:#fff}.pending-box{text-align:center}.pending-badge{display:inline-block;padding:8px 12px;background:#f1e9dc;color:#795b2d;font-size:11px;font-weight:800;text-transform:uppercase;margin-bottom:14px}.admin-shell{max-width:1300px;margin:0 auto;padding:48px 4% 90px}.admin-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.admin-table{width:100%;border-collapse:collapse;background:#fff;margin-top:25px;font-size:13px}.admin-table th,.admin-table td{padding:12px;border:1px solid #e5e1dc;vertical-align:top;text-align:left}.admin-table th{background:#f5f2ed}.status{font-weight:800;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.status.pending{color:#8a641d}.status.approved{color:#1c6a39}.status.rejected{color:#9d2b2b}.admin-actions{display:flex;flex-wrap:wrap;gap:7px}.admin-actions button{border:0;padding:8px 10px;font-size:10px;font-weight:800;text-transform:uppercase;cursor:pointer}.approve{background:#1c6a39;color:#fff}.reject{background:#9d2b2b;color:#fff}.pending-btn{background:#d8c9aa}.portal-footer{background:#0e1012;color:#ccc;padding:32px 4%;display:flex;justify-content:space-between;gap:25px;align-items:center;font-size:12px}.portal-footer strong{color:#fff}.lock-note{display:flex;align-items:center;gap:8px;color:#666;font-size:12px;margin:10px 0 0}.lock-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}
@media(max-width:1000px){.cad-grid{grid-template-columns:repeat(3,1fr)}.detail-grid{grid-template-columns:1fr 1fr}.detail-panel:first-child{grid-column:1/-1}.portal-nav{gap:10px}}
@media(max-width:720px){.portal-header{height:auto;min-height:72px;padding:12px 18px}.portal-header .brand-copy strong{font-size:21px}.portal-nav{font-size:10px;gap:8px}.portal-nav .hide-mobile{display:none}.portal-shell{padding:40px 18px 70px}.cad-grid{grid-template-columns:repeat(2,1fr);gap:10px}.cad-meta{display:block}.cad-cat{margin-top:6px;text-align:left}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.auth-card{padding:28px 20px}.detail-shell{padding:36px 18px 70px}.detail-grid{grid-template-columns:1fr}.detail-panel:first-child{grid-column:auto}.detail-head{display:block}.detail-head p{margin-top:8px}.portal-footer{display:block;padding:28px 18px}.portal-footer span{display:block;margin-top:8px}.admin-table{display:block;overflow-x:auto}}

/* V3.2 public CAD gallery — standardized image-only presentation */
.cad-card{
  border:0;
  background:transparent;
  box-shadow:none;
}
.cad-card:hover{
  transform:translateY(-2px);
  box-shadow:none;
}
.cad-image{
  position:relative;
  aspect-ratio:6 / 7;
  background:#fff;
  overflow:hidden;
}
.cad-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}
.cad-meta,.cad-code{display:none!important;}
.cad-cat-badge{
  position:absolute;
  right:10px;
  bottom:10px;
  max-width:78%;
  padding:6px 8px;
  background:rgba(255,255,255,.90);
  color:#555;
  font-size:9px;
  line-height:1.15;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-align:right;
}

/* V3.3 — public CAD gallery: image + category only */
.cad-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:26px 24px;
}
.cad-card{
  position:relative;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible;
}
.cad-card:hover{transform:translateY(-2px);box-shadow:none!important;}
.cad-card a{display:block;position:relative;}
.cad-image{
  position:relative;
  width:100%;
  aspect-ratio:6 / 7;
  padding:0;
  margin:0;
  border:0!important;
  outline:0!important;
  background:#fff;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.cad-image img{
  display:block;
  width:100%;
  height:100%;
  padding:0;
  margin:0;
  border:0!important;
  outline:0!important;
  object-fit:contain;
  object-position:center;
  background:#fff;
}
.cad-meta,.cad-code,.cad-cat{display:none!important;}
.cad-cat-badge{
  position:absolute;
  right:9px;
  bottom:8px;
  z-index:2;
  max-width:82%;
  padding:5px 7px;
  border:0;
  background:rgba(255,255,255,.88);
  color:#666;
  font-size:9px;
  line-height:1.1;
  font-weight:600;
  letter-spacing:.035em;
  text-transform:uppercase;
  text-align:right;
  pointer-events:none;
}
@media(max-width:1000px){.cad-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:720px){.cad-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}.cad-cat-badge{font-size:8px;right:6px;bottom:6px}}

/* V3.9 access-review privacy and security signals */
.privacy-note{margin:18px 0 0;padding:13px 14px;background:#f7f4f0;border-left:3px solid var(--accent);color:#666;font-size:12px;line-height:1.55}.privacy-note a,.privacy-copy a{color:var(--accent);font-weight:700}.privacy-page{max-width:980px}.privacy-copy{margin-top:34px;background:#fff;border:1px solid #e5e1dc;padding:30px 34px;font-size:16px;line-height:1.75;color:#555}.admin-sub{max-width:760px;color:#666;line-height:1.55;margin:7px 0 0}.admin-table-wrap{overflow:auto;margin-top:25px}.admin-review-table{min-width:1500px;margin-top:0}.review-level{display:inline-block;margin-top:9px;padding:5px 7px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.review-low{background:#e7f3ea;color:#1c6a39}.review-review{background:#f5ecd8;color:#805c1c}.review-elevated{background:#f6dddd;color:#9d2b2b}.review-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px;max-width:150px}.review-flags span,.signal{display:inline-block;padding:3px 5px;background:#f0ece7;color:#6d5a49;font-size:8px;font-weight:700;text-transform:uppercase}.signal-warn{background:#f6dddd;color:#9d2b2b}.security-grid{display:grid;grid-template-columns:72px minmax(120px,1fr);gap:4px 8px;font-size:11px;line-height:1.35}.security-grid>span{color:#777}.security-grid strong{font-weight:650;word-break:break-word}.security-grid .yes{color:#9d2b2b}.security-grid .no{color:#1c6a39}.security-grid .unknown{color:#8a641d}.security-details{margin-top:8px;font-size:10px;color:#666;max-width:340px}.security-details summary{cursor:pointer;color:var(--accent);font-weight:700}.security-details div{margin-top:6px;word-break:break-word;line-height:1.5}.muted{color:#999}
.intel-state{display:inline-block;margin-top:10px;padding:7px 9px;font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.intel-state.enabled{background:#e7f3ea;color:#1c6a39}.intel-state.disabled{background:#f5ecd8;color:#805c1c}
