/* Portal uses the same brand tokens, header and typeface as the main website. */
.portal-page{background:var(--background);color:var(--ink)}.portal-nav{display:flex;align-items:center;gap:28px;font-size:.9rem}.portal-nav a{text-decoration:none}.icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}.portal-hero{position:relative;min-height:350px;color:white;overflow:hidden;background:linear-gradient(90deg,rgba(20,39,53,.96),rgba(32,56,75,.8) 58%,rgba(20,39,53,.35)),url('../assets/survey-hero.webp') center 52%/cover}.portal-hero:after{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:48px 48px}.portal-hero-inner{position:relative;z-index:1;max-width:1200px;margin:auto;padding:50px 32px 58px}.portal-hero h1{font-family:var(--display-font);font-weight:400;font-size:clamp(2.7rem,5vw,4.4rem);line-height:1.15;margin:12px 0 18px}.portal-hero p{font-size:1.05rem;color:#edece5;line-height:1.6;margin:0}.portal-hero .eyebrow{font-size:.72rem;letter-spacing:.22em;color:var(--accent);text-transform:uppercase}.hero-tags{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:26px;font-size:.78rem;color:#edece5}.hero-tags span{display:flex;align-items:center;gap:8px}.hero-tags .icon{width:18px;color:var(--brass)}.hero-emblem{position:absolute;right:12%;top:30%;opacity:.25;transform:scale(3);pointer-events:none}.portal-main{max-width:1200px;padding:0 32px;margin:38px auto 70px;min-height:45vh}.portal-main .grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start}.portal-main section{padding:34px;background:#faf9f6;border:1px solid #c7c9c5;box-shadow:0 12px 35px rgba(20,39,53,.06);border-radius:4px;margin:0 0 28px}.portal-main h2{font:400 clamp(1.7rem,3vw,2.15rem)/1.2 var(--display-font);color:var(--navy);margin:10px 0 20px;overflow-wrap:anywhere}.portal-main h3{color:var(--navy);font-size:1.1rem}.portal-main p{color:var(--muted);line-height:1.65}.portal-main .eyebrow{color:var(--navy);text-transform:uppercase;font-size:.68rem;letter-spacing:.18em;font-weight:700;margin:20px 0 8px}.card-icon{display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;background:#eeece6;color:var(--navy);border:1px solid #c7c9c5;border-radius:3px}.card-icon .icon{width:27px;height:27px}.client-welcome{position:relative;overflow:hidden}.client-welcome:before{content:'';position:absolute;width:140px;height:140px;right:-70px;top:60px;border:1px solid #d8d7cf;border-radius:50%;box-shadow:0 0 0 20px #f5f3ee,0 0 0 21px #d8d7cf,0 0 0 42px #f5f3ee,0 0 0 43px #d8d7cf}.client-welcome>*{position:relative}.client-steps{list-style:none;padding:0;margin:30px 0}.client-steps li{display:flex;gap:17px;align-items:center;margin:22px 0}.client-steps li>span{color:#52616b;background:#eeece6;border:1px solid #f5f3ee;width:36px;height:36px;display:grid;place-items:center;font-size:.75rem}.client-steps strong{color:var(--navy);font-size:.9rem}.client-steps small{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}.help-card{border-top:1px solid var(--line);padding-top:20px;display:grid;gap:5px;font-size:.9rem}.help-card strong{color:var(--navy)}.help-card a{color:var(--blue);text-decoration:none}.help-card .icon{width:16px}.portal-main label{display:block;font-size:.84rem;font-weight:700;color:var(--navy);margin:20px 0 10px}.portal-main input:not([type=checkbox]){display:block;width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #8c979b;padding:14px;margin-top:8px;border-radius:2px;min-width:0}.portal-main input::placeholder{color:#65737b;font-weight:400}.portal-main button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--navy);color:white;border:1px solid var(--navy);font:700 .85rem Arial,sans-serif;min-height:46px;padding:12px 22px;border-radius:2px;cursor:pointer;transition:background .15s,transform .15s}.portal-main button:hover{background:var(--blue)}.portal-main button:disabled{opacity:.65;cursor:wait}.portal-main button.secondary{background:#eeece6;color:var(--navy);border-color:#c7c9c5}.portal-main button.danger{color:#893a32;background:#f9eeec;border-color:#e8cfc9;min-height:36px;padding:8px 14px;font-size:.76rem}.staff-login form>button{width:100%;margin-top:20px;justify-content:space-between}.login-note{border-top:1px solid var(--line);padding-top:20px;font-size:.75rem;display:flex;gap:8px;align-items:center}.login-note .icon{width:15px;height:15px}.portal-main .check{display:flex;align-items:center;gap:10px;font-weight:400}.check input{accent-color:var(--navy);width:18px;height:18px}.hint{font-size:.8rem}.notice{padding:16px 20px;border:1px solid #c7c9c5;border-left:4px solid var(--brass);background:#f3efe4;border-radius:2px}.logout{display:flex;justify-content:flex-end;margin-bottom:20px}.heading{display:flex;justify-content:space-between;gap:24px;align-items:center;flex-wrap:wrap;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--line)}.heading h2{margin:0}.expiry{background:#eeece6;border:1px solid #c7c9c5;padding:6px 10px;color:var(--steel);font-size:.75rem}.portal-main .upload{padding:30px;text-align:center;margin:30px 0;background:linear-gradient(135deg,#eeece6,#faf9f6);border:2px dashed #8c979b;border-radius:3px;transition:background .2s,border-color .2s}.upload.drag-active{background:#e9e4d7;border-color:var(--blue)}.upload-art{width:64px;height:64px;display:grid;place-items:center;margin:0 auto;color:var(--navy);background:#eae7df;border-radius:50%}.upload-art .icon{width:30px;height:30px}.upload h3{font:400 1.7rem var(--display-font);margin:16px 0 6px}.upload p{font-size:.86rem;margin:8px 0}.upload label{max-width:540px;margin:18px auto;text-align:left}.upload input::file-selector-button{border:0;background:#eeece6;padding:8px 12px;color:var(--navy);margin-right:12px;cursor:pointer}.files-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.files-heading h3{display:flex;gap:10px;align-items:center}.files-heading>span{font-size:.75rem;color:var(--muted)}.file{display:flex;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.file-details{flex:1;min-width:0}.file a{color:var(--navy);font-weight:700;font-size:.9rem;overflow-wrap:anywhere;text-decoration:none}.file a:hover{text-decoration:underline}.file small{display:block;color:var(--muted);font-size:.74rem;margin-top:5px}.file-badge{position:relative;flex-shrink:0;width:48px;height:56px;display:flex;align-items:center;justify-content:center;background:#eeece6;color:var(--blue);border:1px solid #c7c9c5;border-radius:3px}.file-badge .icon{width:26px;height:26px;margin-bottom:12px}.file-badge>span{position:absolute;bottom:3px;font-size:9px;font-weight:700;letter-spacing:.05em}.file-badge.pdf{background:#f5e9e6;border-color:#e2c9c1;color:#9a4936}.file-badge.zip{background:#eeece6;border-color:#f5f3ee;color:#52616b}.empty-files{text-align:center;padding:32px;background:#f5f3ee;border:1px solid var(--line);color:#65737b}.empty-files>.icon{width:40px;height:40px}.empty-files p{font-size:.85rem}.transfer{position:relative;padding:22px 0 26px 62px;border-bottom:1px solid var(--line)}.transfer-icon{position:absolute;top:24px;left:0;background:#eeece6;padding:10px;color:var(--navy)}.transfer>h3{margin:0 0 8px}.transfer>p{font-size:.78rem}.transfer>form{margin-top:18px}.transfer>a{font-size:.86rem;color:var(--blue)}.storage-meter{width:100%;height:18px;display:block;accent-color:var(--blue);margin:28px 0 15px}.storage-meter::-webkit-meter-bar{background:#eae7df;border:0;border-radius:2px}.storage-meter::-webkit-meter-optimum-value{background:var(--navy)}progress{width:100%;height:12px;margin-top:22px;accent-color:var(--blue)}progress[hidden]{display:none}.portal-footer{background:var(--navy-dark);padding:34px clamp(24px,5vw,64px);color:#edece5;display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:.82rem}.portal-footer strong{display:block;font:400 1.1rem var(--display-font);color:white}.portal-footer span{display:block;font-size:.75rem;margin-top:6px;color:#c4c9c6}.portal-footer a{text-decoration:none}.portal-footer .icon{width:16px}.portal-page :focus-visible{outline:3px solid var(--brass);outline-offset:3px}@media(max-width:760px){.portal-main .grid{grid-template-columns:1fr;gap:0}.portal-main{padding:0 20px;margin-top:24px}.portal-main section{padding:24px}.portal-hero-inner{padding:38px 24px}.portal-hero{min-height:320px}.hero-emblem{display:none}.portal-nav{gap:16px}.portal-nav .nav-cta{display:none}.portal-footer{align-items:flex-start;flex-direction:column}.files-heading{align-items:flex-start;flex-direction:column;gap:0}.portal-main .upload{padding:22px 14px}.file{gap:10px;flex-wrap:wrap}.file form{margin-left:auto}.transfer{padding-left:0}.transfer-icon{position:static;display:inline-flex;margin-bottom:12px}}@media(prefers-reduced-motion:reduce){.portal-main button,.portal-main .upload{transition:none}}

/* Match public-site buttons while retaining a distinct destructive action. */
.portal-main button { font-family: inherit; font-size: 1rem; line-height: 1.4; min-height: 48px; }
.portal-main button:hover { background: var(--navy-dark); border-color: var(--navy-dark); }
.portal-main button:active { background: var(--blue); border-color: var(--blue); }
.portal-main button.secondary { background: var(--white); color: var(--navy); border-color: var(--navy); }
.portal-main button.secondary:hover { background: #eeece6; color: var(--navy-dark); border-color: var(--navy-dark); }
.portal-main button.secondary:active { background: #e2dfd6; }
.portal-main button.danger { background: #fff; color: #893a32; border-color: #893a32; }
.portal-main button.danger:hover { background: #893a32; color: #fff; border-color: #893a32; }
.portal-main button.danger:active { background: #6c2b25; color: #fff; border-color: #6c2b25; }
.portal-main button:focus-visible,
.portal-main input::file-selector-button:focus-visible,
.portal-nav .nav-cta:focus-visible { outline: 3px solid var(--navy-dark); outline-offset: 4px; box-shadow: 0 0 0 4px var(--white); }
.portal-main button:disabled { opacity: 1; background: #e2dfd6; color: #52616b; border-color: #78858b; cursor: wait; }
.portal-main input::file-selector-button { background: #fff; color: var(--navy); border: 1px solid var(--navy); border-radius: 2px; font: inherit; }
.portal-main input::file-selector-button:hover { background: #eeece6; color: var(--navy-dark); }
