/* Shared visual system: quiet surfaces, readable type, consistent controls. */
:root{--ink:#28342f;--green:#285b49;--moss:#5c6e64;--paper:#f8f7f3;--sand:#f1f0eb;--line:#dedfd8;--muted:#626b65;--lime:#edf0e9;--surface:#fffefa;--gold:#b18d45}
html[data-theme=dark]{color-scheme:dark;--ink:#eeefeb;--green:#b8d0bf;--moss:#b0c0b5;--paper:#202322;--sand:#2b2f2c;--line:#454c46;--muted:#bec6be;--lime:#343c35;--surface:#292e2b}
body{font-size:18px;line-height:1.65;background:var(--paper)}
h1,h2,h3{letter-spacing:-.025em;overflow-wrap:anywhere}h1{font-size:clamp(35px,4vw,52px)}h2{font-size:30px}h3{font-size:25px}p{color:var(--muted)}
.eyebrow{font-size:11px;line-height:1.5;letter-spacing:.14em;margin-bottom:14px;color:var(--moss)}
header{max-width:1200px;margin:0 auto;padding:24px 28px;gap:30px;border-bottom:1px solid var(--line);align-items:center}
.brand .sign-brand img{width:220px;height:auto;filter:none}.brand-sub{font-size:8px;letter-spacing:.12em;margin-top:5px}
header nav{width:auto;margin-left:auto;gap:28px;font-size:16px}header nav a{min-height:46px;display:inline-flex;align-items:center}
.button,main button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:48px;font-size:16px;line-height:1.4;font-weight:600;padding:12px 19px;border:1px solid var(--green);border-radius:8px;background:#285b49;color:#fff;cursor:pointer;box-shadow:none;text-decoration:none}
.button.outline,header .button.small,.portal-sidebar .signout,.role-preview .button{background:transparent;color:var(--ink);border:1px solid var(--line)}
.button.small{padding:11px 18px;font-size:16px}.button:hover,main button:hover{filter:none;background:#214b3d;color:white;text-decoration:none}.button.outline:hover,header .button.small:hover,.portal-sidebar .signout:hover,.role-preview .button:hover{background:var(--sand);color:var(--ink);border-color:#a4aea5}
html[data-theme=dark] .button,html[data-theme=dark] main button{background:#bed2c3;color:#1d2921;border-color:#bed2c3}html[data-theme=dark] .button.outline,html[data-theme=dark] header .button.small,html[data-theme=dark] .portal-sidebar .signout,html[data-theme=dark] .role-preview .button{background:transparent;color:var(--ink);border-color:var(--line)}
a.text-link{font-size:16px;text-underline-offset:4px}.ui-icon{display:inline-block;width:22px;height:22px;flex:0 0 22px;vertical-align:middle}
main:not(.portal-main)>.page-head,main:not(.portal-main)>.portal-head,main:not(.portal-main)>.section{max-width:1144px;margin:0 auto;padding:48px 0}.page-head .lede{font-size:19px;max-width:720px}.page-head p:last-child{margin-bottom:0}
main:not(.portal-main)>.page-head{border-bottom:1px solid var(--line)}main:not(.portal-main)>.section.narrow{max-width:800px}
.community-hero{max-width:1144px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:55px 0 45px}
.community-hero h1{font-size:clamp(42px,4.4vw,60px);line-height:1.1;margin:18px 0 24px}.community-hero p{font-size:18px;line-height:1.75}.community-hero .lede{font-size:21px}
.community-hero figure{margin:0;position:relative}.community-hero img{display:block;width:100%;height:340px;object-fit:cover;object-position:center 47%;border-radius:18px;border:1px solid var(--line);background:var(--sand);padding:0}.community-hero figure:before{display:none}
.community-hero figcaption{position:static;display:grid;gap:4px;background:transparent;color:var(--ink);padding:17px 3px 0}.community-hero figcaption span{font:11px/1.5 Arial,sans-serif;letter-spacing:.13em;color:var(--muted)}.community-hero figcaption strong{font:24px/1.4 Georgia,serif;font-weight:400}
.community-intro{display:grid;grid-template-columns:1fr 1.6fr;gap:50px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.community-intro h2{font-size:31px;margin-bottom:0}.community-intro p{font-size:18px;margin-bottom:0}
.section-heading{margin-bottom:24px}.section-heading h2{font-size:32px}.section-heading>.text-link{font-size:16px;margin-top:0}
.notice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.notice-card,.panel,.signup-shell,.security-card,.overview-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 12px #172c2003}
.notice-card{padding:28px}.notice-card h3{font-size:26px;margin:0 0 16px}.notice-card p{font-size:17px}.notice-card a{font-size:16px;margin-top:8px}.panel{padding:28px}.panel h2 a{font-size:clamp(19px,3vw,29px);overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:5px}
.portal-main{max-width:1200px;padding:32px 28px 0;margin:0 auto 65px}.portal-shell{display:grid;grid-template-columns:238px minmax(0,1fr);gap:32px;align-items:start}.portal-sidebar{position:sticky;top:18px;padding:18px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.sidebar-title{display:grid;gap:4px;padding:3px 10px 17px;margin-bottom:8px;border-bottom:1px solid var(--line)}.sidebar-title .eyebrow{margin:0}.sidebar-title strong{font:22px/1.5 Georgia,serif;overflow-wrap:anywhere}
.portal-sidebar .portal-nav{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;margin:0;padding:0;border:0}.portal-nav a{display:flex;justify-content:flex-start;align-items:center;gap:11px;min-height:48px;font-size:16px!important;border-radius:7px;padding:11px 10px;text-decoration:none;border-left:2px solid transparent;width:100%}
.portal-nav a.active,html[data-theme=dark] .portal-nav>a.active{background:var(--sand);color:var(--ink);font-weight:600;border-left-color:#82958a}.portal-nav a:hover{background:var(--sand);color:var(--ink);text-decoration:none}
.portal-sidebar .signout{width:100%;margin-top:20px;min-height:50px;font-size:17px}.portal-panel{min-width:0}.portal-panel>.page-head,.portal-panel>.portal-head,.portal-panel>.section{margin:0;padding:14px 0 26px}.portal-panel>.page-head{border-bottom:1px solid var(--line);margin-bottom:24px}.portal-panel h1{font-size:38px}.portal-panel h2{font-size:28px}.portal-panel h3{font-size:23px}
.portal-welcome{padding:8px 0 28px}.portal-welcome h1{font-size:38px;margin:0 0 17px}.portal-welcome p{font-size:18px;margin-bottom:15px}.access-pill{display:inline-flex;line-height:1.6;background:var(--sand);color:var(--muted);border-radius:5px;padding:5px 9px;font-size:12px;letter-spacing:0}
.overview-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.overview-card{padding:23px 20px;display:flex;flex-direction:column;text-decoration:none;transition:border-color .15s}.overview-card:hover{transform:none;border-color:#9ea99f}.overview-icon{color:var(--moss);display:block}.overview-icon .ui-icon{width:27px;height:27px}.overview-card h2{font-size:25px;line-height:1.3;margin:16px 0 12px}.overview-card p{font-size:16px;line-height:1.65;margin-bottom:22px}.overview-card>span:last-child{font-size:15px;text-decoration:underline;margin-top:auto}.overview-notices{margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}.overview-notices h2{font-size:29px}.overview-notices .notice-card{margin-top:18px}
.role-preview{display:grid;gap:10px;border-top:1px solid var(--line);padding:17px 5px 0;margin-top:17px}.role-preview label{font-size:14px;font-weight:600}.role-preview select{width:100%;font-size:15px;min-height:44px}.role-preview .button{font-size:15px;min-height:44px;padding:9px}.role-preview small{font-size:13px;color:var(--muted)}
.signup-shell{max-width:600px;margin:42px auto 65px;padding:32px}.signup-shell h1{font-size:39px;margin-bottom:18px}.signup-shell>p{font-size:17px}.signup-shell .account-choice{padding-top:20px;margin:24px 0 0;border-top:1px solid var(--line)}.signup-shell .styled-form>a{font-size:16px;text-decoration:underline}.signup-shell a:not(.button){text-decoration:underline}
.portal-panel>.signup-shell{max-width:none;margin:0;padding:28px}.portal-panel .signup-shell>.section{margin:0;padding:27px 0;border-top:1px solid var(--line)}.portal-panel .signup-shell .section h2{font-size:26px}
.styled-form p,main form p{margin:0 0 22px}.styled-form label,main form label{display:block;font-size:16px;font-weight:600;margin-bottom:8px;color:var(--ink)}
main input:not([type=checkbox]):not([type=radio]):not([type=hidden]),main select,main textarea{font:17px/1.5 Arial,sans-serif;min-height:48px;padding:12px;border:1px solid #bfc6bd;border-radius:7px;background:var(--surface);color:var(--ink);width:100%;max-width:100%}main textarea{min-height:145px;resize:vertical}main input[type=file]{font-size:15px}main input[type=checkbox],main input[type=radio]{width:20px;height:20px;min-height:20px;vertical-align:middle;margin-right:7px}main input::placeholder{color:var(--muted)}
.styled-form .helptext,main form .helptext{display:block;font-size:14px;line-height:1.65;margin-top:7px;color:var(--muted)}main form ul{font-size:14px;padding-left:23px}.errorlist{color:#a3322d;font-size:15px;background:#faeeeb;padding:12px 12px 12px 30px;border-radius:6px}
main fieldset{border:1px solid var(--line);border-radius:8px;margin:20px 0;padding:20px}main legend{font-size:17px;font-weight:600;padding:0 7px}
.account-content{max-width:650px;margin:40px auto;padding:30px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.portal-panel .account-content{margin:0;max-width:none;padding:28px}.security-card{padding:25px;margin:24px 0}.security-card h2{font-size:26px;margin-bottom:14px}.security-card p{font-size:17px}.security-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.admin-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:32px}.admin-actions .button{background:var(--surface);color:var(--ink);border-color:var(--line)}.admin-actions .button:hover{background:var(--sand)}.admin-row{padding:22px 0;gap:22px}.admin-row h3{font-size:23px;margin-bottom:10px}.admin-row p{font-size:15px}.admin-row .button{font-size:15px;min-height:44px}.spaced{margin-top:32px}.account-list{margin-top:15px}.account-list h3{font:600 18px/1.5 Arial,sans-serif}
.filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.filters label{font-size:15px;flex:1;min-width:180px}.filters input,.filters select{width:100%}.library-top{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.library-top .filters{flex:1}.count{font-size:14px;white-space:nowrap}.document-row{padding:25px 0;gap:20px}.document-row h3{font-size:24px}.document-row .download{font-size:16px}.document-info{min-width:0}.document-info .card-meta{font-size:11px}.empty{padding:35px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-top:25px}.empty h2{font-size:27px}.empty p{font-size:17px}
.callout,.messages{background:var(--sand);color:var(--ink);border:1px solid var(--line);border-left:3px solid #aaa182;padding:16px 20px;border-radius:8px;font-size:16px;line-height:1.7;margin:20px 0}.callout a{font-weight:600;text-decoration:underline}.messages p:last-child{margin:0}.fine{font-size:14px;line-height:1.75}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:9px}table{background:var(--surface);font-size:15px}th{background:var(--sand);color:var(--ink);font-size:13px}
.account-delete{margin-top:28px;border-top:1px solid var(--line);padding-top:25px}.account-delete a{color:#a33b32;text-decoration:underline}.danger{background:#913a32!important;border-color:#913a32!important;color:white!important}
footer{max-width:1144px;margin:0 auto;padding:30px 0 45px;border-top:1px solid var(--line);display:flex;align-items:center;gap:32px;font-size:15px}footer strong{font:22px Georgia,serif}footer p,footer span{font-size:13px}.footer-links{font-size:15px;gap:8px}.theme-toggle{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:50%;flex-shrink:0;margin-left:auto}.theme-toggle span{font-size:25px;color:var(--ink);line-height:1}.theme-sun{display:none}html[data-theme=dark] .theme-sun{display:inline}html[data-theme=dark] .theme-moon{display:none}
html[data-theme=dark] .notice-card,html[data-theme=dark] .panel,html[data-theme=dark] .signup-shell,html[data-theme=dark] .account-content,html[data-theme=dark] .auth-form,html[data-theme=dark] .empty,html[data-theme=dark] .security-card,html[data-theme=dark] table{background:var(--surface);border-color:var(--line);color:var(--ink)}html[data-theme=dark] .access-pill,html[data-theme=dark] .callout,html[data-theme=dark] .messages,html[data-theme=dark] th{background:var(--sand);color:var(--ink);border-color:var(--line)}html[data-theme=dark] main input,html[data-theme=dark] main select,html[data-theme=dark] main textarea{background:var(--surface);color:var(--ink);border-color:#637165}html[data-theme=dark] .admin-actions .button{background:var(--surface);color:var(--ink);border-color:var(--line)}html[data-theme=dark] .errorlist{background:#452e2a;color:#ffd5cf}
:focus-visible{outline:2px solid #718d7b;outline-offset:4px}#main:focus{outline:none}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:1200px){main:not(.portal-main)>.page-head,main:not(.portal-main)>.section,.community-hero,footer{margin-left:28px;margin-right:28px}.portal-shell{gap:25px}.overview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-card:last-child{grid-column:1/-1}.community-hero{gap:35px}.community-hero img{height:310px}}
@media(max-width:850px){header{flex-wrap:wrap;gap:16px}.community-hero{gap:28px;grid-template-columns:1fr 1fr}.community-hero h1{font-size:43px}.community-hero .lede{font-size:19px}.community-intro{gap:25px}.portal-shell{grid-template-columns:215px minmax(0,1fr);gap:22px}.overview-cards{grid-template-columns:1fr}.overview-card:last-child{grid-column:auto}.overview-card{padding:22px}.portal-panel h1,.portal-welcome h1{font-size:33px}.portal-sidebar{padding:15px 10px}}
@media(max-width:700px){header{padding:20px;margin:0 0 0;gap:18px}.brand .sign-brand img{width:190px}header nav{width:100%;margin:0;justify-content:flex-start;gap:18px;font-size:15px;flex-wrap:wrap}header nav .button.small{font-size:15px;padding:10px 14px;margin-left:auto}.community-hero{grid-template-columns:1fr;margin:0 20px;padding:32px 0 30px;gap:24px}.community-hero h1{font-size:42px}.community-hero p{font-size:18px}.community-hero img{height:270px}.community-hero figcaption strong{font-size:23px}.community-intro{grid-template-columns:1fr;gap:20px}.community-intro h2{font-size:29px}main:not(.portal-main)>.page-head,main:not(.portal-main)>.section{margin:0 20px;padding:32px 0}main:not(.portal-main)>.section.narrow{margin:0 20px}.section-heading{align-items:center}.section-heading h2{font-size:28px}.section-heading>.text-link{font-size:15px;white-space:normal}.notice-grid{grid-template-columns:1fr}.notice-card,.panel{padding:22px}.portal-main{padding:24px 20px 0;margin-bottom:40px}.portal-shell{grid-template-columns:1fr;gap:24px}.portal-sidebar{position:static;padding:15px}.sidebar-title{padding:0 2px 13px;margin-bottom:12px}.sidebar-title strong{font-size:21px}.portal-sidebar .portal-nav{display:grid;grid-template-columns:1fr 1fr;gap:5px}.portal-nav a{font-size:15px!important;padding:10px 8px;gap:8px;min-height:48px}.portal-nav .ui-icon{width:20px;height:20px;flex-basis:20px}.role-preview{grid-template-columns:1fr auto}.role-preview label,.role-preview small{grid-column:1/-1}.portal-sidebar .signout{margin-top:16px}.portal-panel>.signup-shell,.portal-panel .account-content{padding:22px}.signup-shell{margin:30px 20px 40px;padding:25px}.signup-shell h1{font-size:35px}.portal-panel h1,.portal-welcome h1{font-size:33px}.security-card{padding:22px}.filters{display:grid;grid-template-columns:1fr;width:100%;gap:12px}.filters label{min-width:0}.admin-actions{display:grid;grid-template-columns:1fr 1fr}.admin-actions .button{font-size:15px;padding:12px}.admin-row{display:block}.admin-row .button{margin-top:13px}.document-row{flex-wrap:wrap}.document-info{flex:1;min-width:170px}.document-row .download{margin-left:0}.account-content{margin:30px 20px;padding:23px}.empty{padding:25px}.table-wrap{max-width:100%}footer{margin:0 20px;padding:26px 0 35px;flex-wrap:wrap;gap:24px;align-items:start}footer strong{font-size:21px}.footer-links{font-size:15px}.theme-toggle{margin-left:auto}}
@media(max-width:380px){header nav .button.small{margin-left:0}.portal-sidebar .portal-nav,.admin-actions{grid-template-columns:1fr}.community-hero h1{font-size:38px}}
@media(max-width:700px){header nav{gap:10px}header nav>a{font-size:15px}header nav .button.small{font-size:14px;padding:10px 12px;margin-left:auto}}

.auth-stage{padding:40px 20px 55px;display:flex;justify-content:center;background:radial-gradient(ellipse at center,var(--sand),transparent 70%)}
.auth-stage .mfa-card{width:100%;max-width:510px;margin:0;padding:32px;box-shadow:0 12px 45px #142b2110}
.auth-logo{display:block;width:220px;height:auto;margin:0 auto 25px}
.mfa-card h1{font-size:34px;line-height:1.2;margin-bottom:18px}.mfa-card .eyebrow{text-align:center}
.mfa-card .styled-form{margin-top:25px}.mfa-card input{font-size:24px!important;letter-spacing:.14em}.auth-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.mfa-card .fine{margin:25px 0 0;padding-top:20px;border-top:1px solid var(--line)}
@media(max-width:700px){.auth-stage{padding:28px 20px 40px}.auth-stage .mfa-card{padding:25px}.mfa-card h1{font-size:30px}.auth-logo{width:200px}.auth-actions .button{flex:1}}
.password-control{position:relative;display:block;width:100%}
main .password-control input{padding-right:58px!important}
main .password-eye,html[data-theme=dark] main .password-eye{position:absolute;right:3px;top:3px;width:43px;height:42px;min-height:42px;padding:10px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--muted);border:0;border-radius:5px;line-height:1}
main .password-eye:hover,html[data-theme=dark] main .password-eye:hover{background:var(--sand);color:var(--ink)}
.password-eye svg{width:23px;height:23px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
[hidden]{display:none!important}
.theme-toggle .ui-icon{width:24px;height:24px;vertical-align:middle}
.portal-sidebar .signout,html[data-theme=dark] .portal-sidebar .signout{color:#a23b33;background:#fbefed;border-color:#e3bcb7}
.portal-sidebar .signout:hover{background:#f3dfdb;border-color:#c98c83;color:#8e2922}
html[data-theme=dark] .portal-sidebar .signout{color:#f4b2a9;background:#392b28;border-color:#72504a}
html[data-theme=dark] .portal-sidebar .signout:hover{background:#49312c;color:#ffd0c8}
.messages:has(>.success){background:#edf6ee;border-color:#b6d3bb;border-left-color:#4e8a5b}
.messages .success{color:#285c36}
html[data-theme=dark] .messages:has(>.success){background:#273d2d;border-color:#547e5e}
html[data-theme=dark] .messages .success{color:#c4e6ca}
.delete-ack{display:flex!important;align-items:flex-start;gap:10px;font-size:16px!important;margin:22px 0!important;font-weight:400!important}
.delete-ack input{flex:0 0 20px;margin-top:3px}