:root{--t9:#06282a;--t8:#0a3a3b;--t7:#0f5c58;--t5:#1b8a80;--gold:#d6b25e;--gold2:#f0dca0;--ivory:#faf7ef;--ink:#14292b;--muted:#5b6f6d;--line:#e6e1d3;--coral:#d9604a;--r:20px;--sh:0 24px 60px -24px rgb(6 40 42/.35);--serif:"Fraunces",Georgia,serif;--sans:"Plus Jakarta Sans",system-ui,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}
body{margin:0;color:var(--ink);background:var(--ivory);font:15px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;line-height:1.08}
em{font-style:italic;color:var(--gold)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wrap{width:min(1160px,calc(100% - 48px));margin:auto}
.eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;color:var(--t5);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--gold)}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:#fff;font:700 17px var(--serif);white-space:nowrap}
.brand-mark{width:38px;height:38px;filter:drop-shadow(0 4px 10px rgb(214 178 94/.35))}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 22px;border:1px solid transparent;border-radius:999px;font:700 13px var(--sans);text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.button:hover{transform:translateY(-2px)}
.button-primary{color:var(--t9);background:linear-gradient(135deg,var(--gold2),var(--gold));box-shadow:0 10px 26px -8px rgb(214 178 94/.7)}
.button-primary:hover{box-shadow:0 16px 34px -8px rgb(214 178 94/.85)}
.button-nav{min-height:40px;padding:8px 18px;color:#fff;border-color:rgb(255 255 255/.28)}
.button-nav:hover{background:rgb(255 255 255/.1)}
.button-dark{color:var(--t8);border-color:var(--t8)}.button-dark:hover{background:var(--t8);color:#fff}
.text-link{display:inline-flex;gap:8px;font-weight:700;font-size:13px;text-decoration:none;color:var(--t7)}.text-link:hover{text-decoration:underline;text-underline-offset:4px}
/* header */
.site-header,.portal-header{position:sticky;top:0;z-index:20;background:rgb(6 40 42/.78);backdrop-filter:blur(16px);border-bottom:1px solid rgb(255 255 255/.08)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:74px}
.top-nav{display:flex;gap:34px}.top-nav a{color:#cfe0dc;font-size:13px;font-weight:600;text-decoration:none;transition:color .2s}.top-nav a:hover{color:var(--gold2)}
/* hero */
.hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(900px 500px at 85% 10%,rgb(214 178 94/.22),transparent 60%),radial-gradient(700px 500px at 0% 100%,rgb(27 138 128/.45),transparent 60%),linear-gradient(160deg,var(--t9),var(--t8) 55%,#0c4a47)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgb(255 255 255/.045) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255/.045) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at 60% 40%,#000,transparent 75%)}
.hero-inner{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;padding:96px 0 88px}
.hero .eyebrow{padding:7px 14px;border:1px solid rgb(214 178 94/.4);border-radius:999px;color:var(--gold2);background:rgb(214 178 94/.08)}.hero .eyebrow::before{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:pulse 2s infinite}
.hero h1{font-size:clamp(42px,6vw,72px);margin-bottom:22px}
.hero-lead{max-width:500px;margin-bottom:34px;color:#b9d0cb;font-size:18px}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:26px}.hero .text-link{color:#fff}
.trust{display:flex;flex-wrap:wrap;gap:12px;margin-top:44px}.trust span{padding:8px 14px;border-radius:999px;background:rgb(255 255 255/.07);border:1px solid rgb(255 255 255/.1);color:#d7e6e2;font-size:12px;font-weight:600}.trust b{color:var(--gold);margin-right:6px}
.stage{position:relative;max-width:480px;justify-self:end;width:100%}
.medal{position:absolute;z-index:2;top:-84px;right:-18px;width:116px;height:116px;border-radius:50%;border:3px solid var(--gold);box-shadow:0 0 0 8px rgb(214 178 94/.14),0 20px 40px rgb(0 0 0/.35);animation:float 6s ease-in-out infinite}
.card{padding:26px;border-radius:24px;color:var(--ink);background:#fff;box-shadow:0 40px 80px -30px rgb(0 0 0/.6)}
.card-top{display:flex;justify-content:space-between;align-items:center}.card-top small,.k{font-size:10px;font-weight:800;letter-spacing:.12em;color:#8a9a97;text-transform:uppercase}
.card-top h2{margin:4px 0 0;font-size:26px}
.chip{padding:5px 11px;border-radius:999px;background:#eaf4f1;color:var(--t7);font-size:11px;font-weight:700}
.score{display:flex;align-items:center;gap:20px;margin:22px 0;padding:18px;border-radius:16px;background:linear-gradient(135deg,#f6f1e2,#fbf9f2)}
.ring{--p:92;width:84px;height:84px;flex:none;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--gold) calc(var(--p)*1%),#e8e4d6 0);position:relative}
.ring::after{content:"";position:absolute;inset:8px;border-radius:50%;background:#fbf9f2}.ring b{position:relative;z-index:1;font:700 24px var(--serif);color:var(--t8)}
.stars-row{color:var(--gold);letter-spacing:3px;font-size:17px}.score p{margin:2px 0 0;color:var(--muted);font-size:12px}
.bars{display:grid;gap:13px}.bar{display:grid;grid-template-columns:92px 1fr 30px;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.bar b{color:var(--t8);text-align:right}
.bar i{display:block;height:8px;border-radius:9px;background:#ece8da;overflow:hidden}.bar i::after{content:"";display:block;height:100%;width:var(--w);border-radius:inherit;background:linear-gradient(90deg,var(--t5),var(--gold));animation:grow 1.4s .4s cubic-bezier(.2,.8,.2,1) both}
.quote{display:flex;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.quote>span{font:700 40px/.8 var(--serif);color:var(--gold)}.quote p{margin:0 0 6px;font:500 15px/1.4 var(--serif)}.quote small{color:var(--t5);font-weight:700;font-size:11px}
.toast{position:absolute;left:-34px;bottom:-26px;display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:14px;background:var(--t9);color:#fff;font-size:12px;font-weight:600;border:1px solid rgb(214 178 94/.4);box-shadow:var(--sh);animation:float 7s 1s ease-in-out infinite}.toast i{width:9px;height:9px;border-radius:50%;background:#5fe0a3;box-shadow:0 0 0 4px rgb(95 224 163/.2)}
.ticker{position:relative;border-top:1px solid rgb(255 255 255/.1);padding:18px 0;color:#9fbdb7;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.ticker .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px}.ticker i{display:inline-block;width:5px;height:5px;margin:0 12px;border-radius:50%;background:var(--gold);vertical-align:middle}
/* sections */
.sec{padding:110px 0}.head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:54px}
.head h2,.school h2,.dark h2{font-size:clamp(34px,4.4vw,52px);margin-bottom:0}.head h2 em,.school h2 em{color:var(--t5)}.head p{max-width:360px;margin:0;color:var(--muted)}
.svc{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.svc article{position:relative;padding:28px 22px 26px;border:1px solid var(--line);border-radius:var(--r);background:#fff;transition:transform .3s,box-shadow .3s,border-color .3s}
.svc article:hover{transform:translateY(-8px);box-shadow:var(--sh);border-color:var(--gold)}
.ico{width:54px;height:54px;display:grid;place-items:center;margin-bottom:22px;border-radius:16px;color:var(--gold2);background:linear-gradient(145deg,var(--t7),var(--t9))}
.ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.svc h3{font-size:21px;margin-bottom:8px}.svc p{margin:0;color:var(--muted);font-size:13px}.svc .n{position:absolute;top:22px;right:22px;font:600 13px var(--serif);color:#c3bda8}
.dark{position:relative;overflow:hidden;color:#fff;background:linear-gradient(160deg,var(--t9),var(--t8))}
.dark::before{content:"";position:absolute;width:600px;height:600px;right:-200px;top:-250px;border-radius:50%;background:radial-gradient(circle,rgb(214 178 94/.2),transparent 65%)}
.dark .wrap{position:relative}.dark .eyebrow{color:var(--gold2)}.dark .head p{color:#a9c4be}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.steps article{padding:32px 28px;border:1px solid rgb(255 255 255/.12);border-radius:var(--r);background:rgb(255 255 255/.04);transition:background .3s,transform .3s}.steps article:hover{background:rgb(255 255 255/.09);transform:translateY(-6px)}
.steps span{display:grid;place-items:center;width:46px;height:46px;margin-bottom:48px;border-radius:50%;background:linear-gradient(135deg,var(--gold2),var(--gold));color:var(--t9);font:700 16px var(--serif)}
.steps h3{font-size:23px;margin-bottom:10px}.steps p{margin:0;color:#a9c4be;font-size:14px}
.school{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.school>div>p:not(.eyebrow){max-width:430px;margin:20px 0 30px;color:var(--muted);font-size:16px}
.panel{padding:30px;border-radius:26px;color:#fff;background:linear-gradient(150deg,var(--t8),var(--t9));box-shadow:var(--sh)}
.panel header{display:flex;justify-content:space-between;color:#9fbdb7;font-size:10px;font-weight:800;letter-spacing:.14em}
.panel strong{display:block;margin:22px 0 28px;font:600 32px/1.12 var(--serif)}.panel strong em{color:var(--gold2)}
.cols{height:130px;display:flex;align-items:end;gap:7px}.cols i{flex:1;height:var(--h);border-radius:6px 6px 2px 2px;background:linear-gradient(to top,var(--t5),var(--gold));opacity:.9;transform-origin:bottom;transition:transform .6s}.cols i:nth-child(3n){background:linear-gradient(to top,var(--t7),var(--gold2))}
.panel footer{display:flex;justify-content:space-between;margin-top:18px;padding-top:14px;border-top:1px solid rgb(255 255 255/.12);color:#9fbdb7;font-size:10px;font-weight:800;letter-spacing:.14em}
.trust-band{padding:70px 0;background:#f1ebd9}.tb{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center}
.lock{width:68px;height:68px;display:grid;place-items:center;border-radius:50%;border:2px solid var(--gold);color:var(--t7);font-size:28px;background:#fff}.tb h2{font-size:30px;margin-bottom:8px}.tb p:last-child{margin:0;max-width:680px;color:var(--muted)}
.site-footer{padding:34px 0;background:var(--t9);color:#9fbdb7;font-size:13px}.site-footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.site-footer a:not(.brand){text-decoration:none}.site-footer a:not(.brand):hover{color:var(--gold2)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s,transform .8s}.reveal.in{opacity:1;transform:none}
@keyframes grow{from{width:0}}@keyframes float{50%{transform:translateY(-12px)}}@keyframes pulse{50%{box-shadow:0 0 0 7px rgb(214 178 94/0);opacity:.6}}
@media(max-width:980px){.hero-inner,.school{grid-template-columns:1fr;gap:56px}.stage{justify-self:center}.svc{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:1fr}.head{flex-direction:column;align-items:start}}
@media(max-width:640px){.wrap{width:calc(100% - 36px)}.top-nav{display:none}.hero-inner{padding:60px 0}.sec{padding:72px 0}.medal{width:84px;height:84px;top:-44px}.toast{left:8px}.tb{grid-template-columns:1fr}.svc{grid-template-columns:1fr}.card{padding:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
/* ===== portal ===== */
.portal-body{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(800px 400px at 100% 0,rgb(214 178 94/.14),transparent 60%),radial-gradient(700px 500px at 0 100%,rgb(27 138 128/.1),transparent 60%),var(--ivory)}
.portal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:78px;padding:0 max(24px,calc((100vw - 1120px)/2));box-shadow:0 8px 30px rgb(0 0 0/.12)}
.portal-header .brand-mark{width:44px;height:44px;object-fit:cover;border:2px solid rgb(214 178 94/.75);border-radius:50%;filter:drop-shadow(0 5px 12px rgb(214 178 94/.3));transition:transform .3s}
.portal-header .brand:hover .brand-mark{transform:rotate(-8deg) scale(1.06)}
.portal-nav{display:flex;align-items:center;gap:22px}.portal-nav a,.portal-link{color:#cfe0dc;font:600 13px var(--sans);text-decoration:none;transition:color .2s}.portal-nav a:hover,.portal-link:hover{color:var(--gold2)}
.portal-user{padding:6px 12px;border-radius:999px;background:rgb(255 255 255/.08);color:var(--gold2);font-size:12px;font-weight:600}
.portal-signup{padding:9px 18px;border-radius:999px;background:linear-gradient(135deg,var(--gold2),var(--gold));color:var(--t9)!important}
.inline-form{margin:0}.portal-link{padding:5px 0;border:0;background:none;cursor:pointer}
.portal-main{position:relative;width:min(1120px,calc(100% - 48px));flex:1;margin:0 auto;padding:56px 0 80px}
.portal-alert{margin-bottom:26px;padding:14px 18px;border-radius:14px;border:1px solid #bfe0d3;color:var(--t8);background:#eaf6f1;font-size:14px;font-weight:500}.alert-error{border-color:#f0c4ba;color:#7a2f20;background:#fdeee9}
.portal-welcome{position:relative;isolation:isolate;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:32px;min-height:390px;margin:0 0 46px;padding:42px 48px;border:1px solid rgb(255 255 255/.14);border-radius:32px;color:#fff;background:radial-gradient(ellipse at 84% 30%,rgb(214 178 94/.2),transparent 38%),radial-gradient(ellipse at 15% 110%,rgb(27 138 128/.4),transparent 45%),linear-gradient(135deg,#06282a,#0a4644 68%,#0f5c58);box-shadow:0 28px 70px -35px rgb(6 40 42/.65);overflow:hidden;animation:rise .6s both}
.portal-welcome::before,.portal-welcome::after{position:absolute;z-index:-1;content:"";border:1px solid rgb(240 220 160/.12);border-radius:50%;pointer-events:none}
.portal-welcome::before{width:480px;height:480px;right:-150px;top:-220px}
.portal-welcome::after{width:340px;height:340px;right:-80px;top:-150px}
.portal-welcome-copy{position:relative;z-index:1}
.portal-welcome .eyebrow{color:var(--gold2)}
.portal-welcome .eyebrow::before{background:var(--gold)}
.portal-welcome h1,.portal-section-heading h1,.portal-form-shell h1{margin-bottom:16px;color:var(--t8);font-size:clamp(36px,5vw,58px)}
.portal-welcome h1{max-width:600px;color:#fff;font-size:clamp(40px,5.4vw,64px);text-wrap:balance}
.portal-welcome-copy>p:not(.eyebrow){max-width:520px;margin-bottom:28px;color:#c5dbd6;font-size:16px}
.portal-section-heading>p:not(.eyebrow){max-width:620px;margin-bottom:28px;color:var(--muted);font-size:17px}
.portal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.portal-welcome .text-link{color:#f4e8c3}
.portal-welcome-notes{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.portal-welcome-notes span{padding:7px 12px;border:1px solid rgb(255 255 255/.12);border-radius:999px;background:rgb(255 255 255/.07);color:#deebe7;font-size:11px;font-weight:600}
.portal-welcome-notes b{margin-right:5px;color:var(--gold2)}
.portal-hero-art{position:relative;display:grid;place-items:center;min-height:290px}
.portal-emblem-frame{position:relative;z-index:1;display:grid;place-items:center;width:min(270px,72%);aspect-ratio:1;border:1px solid rgb(240 220 160/.38);border-radius:50%;background:radial-gradient(circle,rgb(255 255 255/.14),rgb(255 255 255/.035) 65%,transparent 66%);box-shadow:0 0 0 14px rgb(255 255 255/.035),0 0 70px rgb(214 178 94/.2);animation:emblem-drift 6s ease-in-out infinite}
.portal-emblem-frame img{width:76%;height:76%;object-fit:contain;border-radius:50%;filter:drop-shadow(0 14px 24px rgb(0 0 0/.25))}
.portal-art-orbit{position:absolute;border:1px dashed rgb(240 220 160/.28);border-radius:50%;pointer-events:none}
.portal-art-orbit-one{width:320px;height:320px;animation:orbit-spin 28s linear infinite}
.portal-art-orbit-two{width:380px;height:230px;transform:rotate(-28deg);border-color:rgb(255 255 255/.13)}
.portal-art-note{position:absolute;z-index:2;right:-4px;bottom:2px;display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid rgb(240 220 160/.3);border-radius:15px;background:rgb(6 40 42/.88);box-shadow:0 16px 35px rgb(0 0 0/.22);backdrop-filter:blur(10px);animation:float 6s ease-in-out infinite}
.portal-art-note-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,var(--gold2),var(--gold));color:var(--t9);font-size:18px}
.portal-art-note strong,.portal-art-note small{display:block}
.portal-art-note strong{color:#fff;font-size:11px}.portal-art-note small{margin-top:3px;color:#bad0ca;font-size:9px}
.portal-office-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.portal-office-grid>div{position:relative;isolation:isolate;min-height:140px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(145deg,#fff,#faf7ef);overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s}
.portal-office-grid>div::after{position:absolute;z-index:-1;right:-32px;bottom:-54px;width:120px;height:120px;border:1px solid rgb(214 178 94/.22);border-radius:50%;box-shadow:0 0 0 12px rgb(214 178 94/.05),0 0 0 26px rgb(214 178 94/.035);content:""}
.portal-office-grid>div:hover{transform:translateY(-7px);box-shadow:0 20px 38px -24px rgb(6 40 42/.45);border-color:var(--gold)}
.portal-office-grid span{color:var(--gold);font:700 14px var(--serif)}.portal-office-grid strong{color:var(--t8);font:600 20px var(--serif)}
.portal-form-shell{position:relative;overflow:hidden;width:min(540px,100%);margin:10px auto;padding:40px 36px 34px;border:1px solid rgb(230 225 211/.8);border-radius:26px;background:linear-gradient(145deg,#fff,#fffdf8);box-shadow:0 25px 65px -36px rgb(6 40 42/.4),0 6px 18px rgb(6 40 42/.04);animation:rise .6s both}
.portal-form-shell::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--t7),var(--gold))}
.portal-form-shell h1{font-size:38px;margin-bottom:10px}.form-intro{margin:0 0 24px;color:var(--muted);font-size:14px}
.portal-form{display:grid;gap:18px}.portal-form label{display:grid;gap:7px;font-size:13px;font-weight:700}
.portal-form .registration-role-fields{display:grid;gap:18px}.portal-form .registration-role-fields[hidden]{display:none}
.portal-form input:not([type=checkbox]):not([type=radio]),.portal-form select,.portal-form textarea,.status-form select{width:100%;min-height:48px;padding:11px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fdfcf8;color:var(--ink);font:14px var(--sans);transition:border-color .2s,box-shadow .2s,background .2s}
.portal-form textarea{min-height:150px;resize:vertical}
.portal-form input:focus,.portal-form select:focus,.portal-form textarea:focus,.status-form select:focus{outline:0;border-color:var(--gold);background:#fff;box-shadow:0 0 0 4px rgb(214 178 94/.22)}
.portal-form .login-input-error{border-color:#c44b36!important;background:#fff8f6!important}.portal-form .login-input-error:focus{box-shadow:0 0 0 4px rgb(196 75 54/.18)}.portal-form .login-field-error{color:#9c3525;font-size:12px;font-weight:600}
.portal-form small,.optional-label{color:var(--muted);font-size:11px;font-weight:400}
.password-requirements{display:grid;gap:4px;margin:0;padding-left:4px;list-style:none;color:var(--muted);font-size:11px;font-weight:400}
.password-requirements li::before{content:"○";display:inline-block;width:20px;color:#9a6d2d}
.password-requirements li[data-met="true"]::before{content:"✓";color:#24704e}
.portal-form .button:disabled{cursor:not-allowed;opacity:.55;transform:none;box-shadow:none}
.portal-form .button{justify-self:start}.form-switch{margin:24px 0 0;color:var(--muted);font-size:13px}.form-switch a{color:var(--t7);font-weight:800}
.portal-section-heading{margin-bottom:34px}.portal-section-heading h1{margin-bottom:12px}.portal-section-heading>p:not(.eyebrow){margin:0;font-size:15px}
.portal-section-heading>.privacy-caption{margin-top:14px!important;padding:12px 16px;border-left:3px solid var(--gold);border-radius:0 10px 10px 0;background:#f3f7f3;color:var(--t8);font-size:13px!important}
.feedback-form{width:min(760px,100%);padding:34px;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:var(--sh)}
.feedback-form fieldset{margin:0;padding:0;border:0;min-width:0}.feedback-form legend{padding:0;margin-bottom:12px;color:var(--t8);font:600 19px var(--serif)}
.office-pick{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.office-pick label{position:relative;display:block!important}.office-pick input{position:absolute;opacity:0}
.office-pick span{display:block;padding:14px 8px;text-align:center;border:1.5px solid var(--line);border-radius:14px;background:#fdfcf8;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s}
.office-pick span:hover{border-color:var(--gold)}.office-pick input:checked+span{color:#fff;border-color:var(--t7);background:linear-gradient(145deg,var(--t7),var(--t9));box-shadow:0 10px 22px -10px var(--t7)}.office-pick input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.rate-box{display:grid;gap:4px;padding:8px 22px;border-radius:18px;background:#f8f4e8}
.rate-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #ebe5d2}.rate-row:last-child{border:0}.rate-row>span{font-size:14px;font-weight:700}
.stars{display:flex;flex-direction:row-reverse;gap:2px}.stars input{position:absolute;opacity:0;width:1px;height:1px}
.portal-form .stars label{display:block;font-size:32px;line-height:1;color:#d9d3bf;cursor:pointer;transition:color .15s,transform .15s}
.stars label:hover,.stars label:hover~label,.stars input:checked~label{color:var(--gold)}.stars label:hover{transform:scale(1.2)}.stars input:focus-visible+label{outline:2px solid var(--t7);border-radius:4px}
.feedback-form .check-label{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:12px;background:#f1f7f4}.check-label input{width:18px;height:18px;accent-color:var(--t7)}
.submission-list,.admin-feedback,.admin-history{display:grid;gap:16px}
.admin-history{margin-top:56px}.history-filter{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#fff,#f8f4e8)}.history-filter label{display:grid;gap:6px;color:var(--t8);font-size:12px;font-weight:800}.history-filter input[type=date]{min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:14px var(--sans)}.history-filter input[type=date]:focus{outline:3px solid rgb(214 178 94/.3);border-color:var(--gold)}.history-filter .button{min-height:44px}.history-count{margin:0;color:var(--muted);font-size:13px}.history-notice{margin:0;padding:12px 16px;border:1px solid #f0c4ba;border-radius:12px;background:#fdeee9;color:#7a2f20;font-size:13px}
.history-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.history-all-link{min-height:44px}.history-date-heading{margin:18px 0 0;padding:12px 16px;border-left:4px solid var(--gold);border-radius:0 12px 12px 0;background:linear-gradient(90deg,#f4f0e2,#fbf9f2);color:var(--t8);font:600 21px var(--serif)}
.submission-item,.admin-feedback-item{padding:26px 28px;border:1px solid var(--line);border-radius:var(--r);background:#fff;transition:box-shadow .3s}.submission-item:hover,.admin-feedback-item:hover{box-shadow:var(--sh)}
.admin-feedback-link{cursor:pointer}.admin-feedback-link:hover{border-color:var(--gold)}.admin-feedback-link:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.feedback-detail-card{margin:0 auto;width:min(850px,100%);padding:34px}.feedback-detail-card .feedback-comment{margin-top:10px}.feedback-detail-label{margin:24px 0 0;color:var(--t8);font:700 12px var(--sans);letter-spacing:.08em;text-transform:uppercase}.feedback-detail-card .status-form{flex-wrap:wrap}
.feedback-rating-chart{display:grid;gap:16px;margin:28px 0 12px;padding:22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fffdf8,#f8f4e8)}
.feedback-rating-row{display:grid;grid-template-columns:110px minmax(0,1fr) 48px;align-items:center;gap:14px}
.feedback-rating-label{color:var(--t8);font-size:13px;font-weight:700}
.feedback-rating-track{height:12px;border-radius:999px;background:#e9e4d6;overflow:hidden}
.feedback-rating-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--t5),var(--gold));transition:width .6s ease}
.feedback-rating-row>strong{color:var(--t8);font:700 18px var(--serif);text-align:right}
.feedback-rating-row>strong small{margin-left:2px;color:var(--muted);font:500 11px var(--sans)}
.feedback-detail-visibility{margin:0;color:var(--muted);font-size:12px}
.submission-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.submission-top .eyebrow{margin-bottom:8px}
.submission-top h2,.submission-top h3{margin:0;color:var(--t8);font-size:22px}
.status{padding:6px 14px;border-radius:999px;color:#8a5a10;background:#fbefd2;font-size:11px;font-weight:800}.status-read{color:#2459a6;background:#e3edff}.status-resolved{color:#17694f;background:#d9f2e7}
.status-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px}
.status-filter-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#fff,#faf7ef);color:var(--ink);text-decoration:none;box-shadow:0 8px 24px -20px rgb(6 40 42/.45);transition:transform .2s,border-color .2s,box-shadow .2s}
.status-filter-card:hover,.status-filter-card.is-active{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 14px 28px -20px rgb(6 40 42/.5)}
.status-filter-card:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.status-filter-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fbefd2;color:#8a5a10;font-size:21px;font-weight:800}
.status-filter-read .status-filter-icon{background:#e3edff;color:#2459a6}.status-filter-resolved .status-filter-icon{background:#d9f2e7;color:#17694f}
.status-filter-label{font-size:13px;font-weight:800}.status-filter-card>strong{color:var(--t8);font:600 25px/1 var(--serif)}
.status-saved-at{margin:12px 0 0;padding:9px 12px;border-left:3px solid var(--t5);border-radius:0 9px 9px 0;background:#eef6f3;color:var(--t7);font:600 11px/1.5 var(--sans);letter-spacing:.015em}
.submission-ratings{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.submission-ratings span{padding:4px 11px;border-radius:999px;background:#f4f0e2;color:var(--muted);font-size:11px;font-weight:600}
.submission-item>p,.admin-feedback-item>p{margin:0;color:#34484a;font:400 16px/1.65 var(--serif);overflow-wrap:anywhere}
.submission-item>.feedback-comment,.admin-feedback-item>.feedback-comment{margin-top:16px;color:#34484a;font:400 17px/1.75 var(--serif);letter-spacing:.005em;overflow-wrap:anywhere}
.empty-state{padding:36px;border:2px dashed #d9d3bf;border-radius:var(--r);color:var(--t8);text-align:center}.empty-state p{margin:8px 0 16px;color:var(--muted)}
.office-summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:56px}
.office-summary{display:flex;flex-direction:column;gap:9px;padding:22px 20px;border:1px solid var(--line);border-radius:var(--r);background:#fff;transition:transform .3s,box-shadow .3s}.office-summary:hover{transform:translateY(-5px);box-shadow:var(--sh)}
.office-summary-link{color:inherit;text-decoration:none}.office-summary-link:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.office-summary-link .mini-ratings{width:100%}
.office-summary .eyebrow{margin:0}.office-summary .eyebrow::before{display:none}
.office-summary>strong{color:var(--t8);font:600 38px/1 var(--serif)}.office-summary>strong small{margin-left:3px;color:var(--muted);font:12px var(--sans)}.office-summary>span:not(.eyebrow){color:var(--muted);font-size:12px}.no-rating{color:#b9b49f!important}
.rating-track{height:8px;border-radius:9px;background:#ece8da;overflow:hidden}.rating-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--t5),var(--gold))}
.mini-ratings{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}
.list-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.list-heading h2{margin:0;color:var(--t8);font-size:30px}.list-heading>span{padding:5px 12px;border-radius:999px;background:#f1ebd9;color:var(--muted);font-size:11px;font-weight:700}
.status-form{display:flex;align-items:center;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.status-form label{color:var(--muted);font-size:12px;font-weight:600}.status-form select{width:auto;min-width:130px;min-height:38px;padding:6px 10px;font-size:13px}
.button-small{min-height:38px;padding:7px 16px;border-color:var(--t8);color:var(--t8);background:#fff;font-size:12px}.button-small:hover{background:var(--t8);color:#fff}
.portal-footer{width:min(1120px,calc(100% - 48px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:82px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.portal-footer a{color:var(--t8);font-weight:800;text-decoration:none}.portal-footer-brand{display:inline-flex;align-items:center;gap:9px}.portal-footer-brand img{width:30px;height:30px;object-fit:cover;border:1px solid rgb(214 178 94/.65);border-radius:50%}
@keyframes emblem-drift{50%{transform:translateY(-8px) rotate(2deg)}}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
@media(max-width:860px){.portal-office-grid,.office-summary-grid{grid-template-columns:repeat(2,1fr)}.office-pick{grid-template-columns:repeat(2,1fr)}.portal-user{display:none}.portal-header .brand span:last-child{display:none}.portal-welcome{grid-template-columns:1fr  .8fr;padding:38px 32px}.portal-hero-art{min-height:250px}.portal-art-orbit-one{width:270px;height:270px}.portal-art-orbit-two{width:320px;height:200px}.portal-art-note{right:-12px}}
@media(max-width:620px){.portal-welcome{grid-template-columns:1fr;gap:12px;padding:34px 24px 28px}.portal-welcome h1{font-size:clamp(38px,11vw,54px)}.portal-welcome-copy>p:not(.eyebrow){font-size:14px}.portal-hero-art{min-height:245px;margin-top:8px}.portal-emblem-frame{width:190px}.portal-art-orbit-one{width:240px;height:240px}.portal-art-orbit-two{width:290px;height:180px}.portal-art-note{right:0;bottom:-3px}.portal-header{min-height:68px}.portal-header .brand-mark{width:40px;height:40px}.portal-header .brand span:last-child{display:inline}.portal-nav{gap:10px}.portal-nav>a{font-size:11px}}
@media(max-width:860px){.status-filter-grid{grid-template-columns:1fr}}
@media(max-width:520px){.portal-main{width:calc(100% - 32px);padding-top:30px}.portal-form-shell{padding:32px 20px 26px}.feedback-form{padding:22px 16px}.portal-nav{gap:10px}.portal-nav .portal-signup{padding:8px 12px}.rate-box{padding:6px 14px}.rate-row{flex-direction:column;align-items:flex-start;gap:6px}.submission-item,.admin-feedback-item{padding:20px 16px}.status-form{flex-wrap:wrap}.portal-office-grid{gap:10px}.portal-office-grid>div{min-height:120px;padding:16px}.portal-office-grid strong{font-size:17px}.portal-footer{width:calc(100% - 32px);font-size:10px}.history-controls{align-items:stretch;flex-direction:column}.history-filter{align-items:stretch}.history-filter input[type=date]{width:100%}.history-filter .button{align-self:flex-start}.history-all-link{align-self:flex-start}.status-filter-card{padding:13px 14px}}

/* Signed-in portal polish */
.portal-authenticated{background-color:#f8f5ec;background-image:radial-gradient(900px 460px at 100% 0,rgb(214 178 94/.18),transparent 64%),radial-gradient(760px 520px at 0 85%,rgb(27 138 128/.12),transparent 65%),linear-gradient(135deg,rgb(255 255 255/.3),transparent 55%)}
.portal-authenticated .portal-header{border-bottom-color:rgb(214 178 94/.28);background:linear-gradient(105deg,rgb(6 40 42/.96),rgb(10 58 59/.94));box-shadow:0 10px 32px rgb(6 40 42/.18)}
.portal-authenticated .portal-nav>a:not(.portal-signup){padding:9px 12px;border-radius:10px;transition:color .2s,background .2s}
.portal-authenticated .portal-nav>a:not(.portal-signup):hover{background:rgb(255 255 255/.08)}
.portal-authenticated .portal-user{padding:8px 14px;border:1px solid rgb(240 220 160/.2);background:linear-gradient(135deg,rgb(255 255 255/.12),rgb(255 255 255/.05));box-shadow:inset 0 1px rgb(255 255 255/.08)}
.portal-authenticated .portal-link{min-height:38px;padding:8px 15px;border:1px solid rgb(240 220 160/.34);border-radius:999px;background:rgb(255 255 255/.04);cursor:pointer}
.portal-authenticated .portal-link:hover{background:rgb(255 255 255/.12)}
.portal-authenticated .portal-main{background:radial-gradient(ellipse 390px 300px at 100% 5%,rgb(214 178 94/.09),transparent 72%),radial-gradient(ellipse 350px 260px at 0 64%,rgb(27 138 128/.07),transparent 72%)}
.portal-authenticated .portal-welcome{border-color:rgb(240 220 160/.32);background-image:linear-gradient(135deg,transparent 0 48%,rgb(255 255 255/.025) 48% 49%,transparent 49% 100%),radial-gradient(ellipse at 84% 30%,rgb(214 178 94/.24),transparent 38%),radial-gradient(ellipse at 15% 110%,rgb(27 138 128/.44),transparent 45%),linear-gradient(135deg,#06282a,#0a4644 68%,#0f5c58);box-shadow:0 30px 74px -36px rgb(6 40 42/.7),inset 0 1px rgb(255 255 255/.1)}
.portal-authenticated .portal-emblem-frame{border-color:rgb(240 220 160/.52);box-shadow:0 0 0 16px rgb(255 255 255/.04),0 0 85px rgb(214 178 94/.24),inset 0 0 30px rgb(255 255 255/.08)}
.portal-authenticated .portal-office-grid>div{border-color:rgb(214 178 94/.22);background:linear-gradient(145deg,#fff,#fbf8ef);box-shadow:0 14px 32px -26px rgb(6 40 42/.45)}
.portal-authenticated .portal-office-grid>div::before{position:absolute;top:0;left:22px;width:38px;height:3px;border-radius:0 0 3px 3px;background:linear-gradient(90deg,var(--t5),var(--gold));content:""}
.portal-authenticated .portal-section-heading h1{position:relative}
.portal-authenticated .portal-section-heading h1::after{display:block;width:54px;height:3px;margin-top:14px;border-radius:3px;background:linear-gradient(90deg,var(--t5),var(--gold));content:""}
.portal-authenticated .portal-section-heading>.privacy-caption{box-shadow:0 10px 24px -20px rgb(6 40 42/.5)}
.portal-authenticated .feedback-form{position:relative;overflow:hidden;border-color:rgb(214 178 94/.3);background:linear-gradient(145deg,#fff,#fffdf8);box-shadow:0 28px 65px -38px rgb(6 40 42/.46),0 8px 20px rgb(6 40 42/.04)}
.portal-authenticated .feedback-form::before{position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,var(--t7),var(--gold),var(--t5));content:""}
.portal-authenticated .office-pick span{box-shadow:0 5px 14px -12px rgb(6 40 42/.55)}
.portal-authenticated .rate-box{border:1px solid rgb(214 178 94/.2);background:linear-gradient(135deg,#f8f4e8,#fcfaf5)}
.portal-authenticated .submission-item,.portal-authenticated .admin-feedback-item{position:relative;border-color:rgb(214 178 94/.22);background:linear-gradient(145deg,#fff,#fffdf9);box-shadow:0 12px 30px -26px rgb(6 40 42/.5);transition:transform .3s,border-color .3s,box-shadow .3s}
.portal-authenticated .submission-item:hover,.portal-authenticated .admin-feedback-item:hover{transform:translateY(-3px);border-color:rgb(214 178 94/.55);box-shadow:0 22px 40px -26px rgb(6 40 42/.42)}
.portal-authenticated .submission-top .eyebrow{color:var(--t5)}
.portal-authenticated .status-filter-card,.portal-authenticated .office-summary{border-color:rgb(214 178 94/.23);box-shadow:0 12px 30px -24px rgb(6 40 42/.48)}
.portal-authenticated .office-summary{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff,#fbf8ef)}
.portal-authenticated .office-summary::before{position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,var(--t5),var(--gold));content:""}
.portal-authenticated .office-summary-link:hover{border-color:var(--gold)}
.portal-authenticated .history-filter{border-color:rgb(214 178 94/.24);box-shadow:0 12px 30px -26px rgb(6 40 42/.42)}
.portal-authenticated .portal-footer{border-top-color:rgb(214 178 94/.28)}
.session-timeout[hidden]{display:none}
.session-timeout{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:rgb(4 24 25/.72);backdrop-filter:blur(8px)}
.session-timeout-card{width:min(460px,100%);padding:34px;border:1px solid rgb(214 178 94/.55);border-radius:24px;background:linear-gradient(145deg,#fff,#fbf8ef);box-shadow:0 32px 90px rgb(0 0 0/.36);text-align:center;animation:rise .25s both}
.session-timeout-card .eyebrow{justify-content:center}
.session-timeout-card h2{margin-bottom:12px;color:var(--t8);font-size:clamp(28px,6vw,38px)}
.session-timeout-card>p:not(.eyebrow){margin-bottom:24px;color:var(--muted)}
.session-timeout-card strong{color:var(--t7)}
.session-timeout-card form{display:flex;justify-content:center}
.session-timeout-card .button{min-width:180px}

@media(max-width:620px){
  .portal-authenticated .portal-nav>a:not(.portal-signup){padding:8px 9px}
  .portal-authenticated .portal-user{padding:6px 9px}
  .session-timeout-card{padding:30px 22px}
}
