/* Final shared component rules; keep page-specific layouts in their own modules. */
[hidden]:not([hidden="until-found"]){display:none!important}
:where(button,input,select,textarea){font:inherit}
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
:where(button,a,summary){-webkit-tap-highlight-color:transparent;touch-action:manipulation}
:where(input,select,textarea){scroll-margin-block:24px;accent-color:var(--brand-navy)}
:where(h1,h2,h3,p,dd,dt,button,a){overflow-wrap:break-word}
:where(p,li){text-wrap:pretty}
:where(button:disabled,[aria-disabled="true"]){cursor:not-allowed}
:where(summary){min-height:44px;align-content:center;cursor:pointer}
.field-error{display:block;color:var(--danger-ui);font-size:var(--text-xs);line-height:1.6;margin-block:var(--space-2);font-weight:500}
:where(input,select,textarea)[aria-invalid="true"]{border-color:var(--danger-ui);box-shadow:0 0 0 1px var(--danger-ui)}

/* Public website: a single container and consistent reading hierarchy. */
#public-site :is(.public-header,.public-main,.public-footer){width:min(var(--content-width),calc(100% - var(--page-gutter)*2));margin-inline:auto}
#public-site .public-header{min-height:88px;gap:var(--space-6);position:relative;z-index:10}
#public-site .public-header nav{display:flex;gap:var(--space-6);margin-left:auto}
#public-site .public-header nav a{display:flex;align-items:center;font-size:var(--text-sm);color:var(--text-secondary);min-height:44px;padding:var(--space-2);border-radius:var(--radius-control)}
#public-site .public-header nav a:hover{background:#eaf3ed;color:var(--text-primary)}
.public-menu-toggle{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--border-ui);border-radius:var(--radius-control);background:var(--surface);color:var(--text-primary)}
.public-menu-toggle svg{width:20px;height:20px}
#public-site .ve-experience{margin-top:var(--space-6);margin-bottom:var(--space-12)}
#public-site .ve-hero-layout{column-gap:clamp(24px,4vw,64px);row-gap:var(--space-6)}
#public-site .ve-hero-content{padding:var(--space-6) 0 0}
#public-site .ve-hero-content h1{font-size:clamp(44px,5.2vw,80px);line-height:1.08;margin-block:var(--space-6);letter-spacing:-.05em}
#public-site .ve-hero-content h1 em{color:#5d7b67}
#public-site .ve-hero-description{font-size:var(--text-base);line-height:1.8;max-width:440px;color:var(--text-secondary)}
#public-site .ve-hero-account-note{font-size:var(--text-xs);line-height:1.7;color:var(--text-quiet);margin-top:var(--space-4)}
#public-site .ve-hero-actions{margin-top:var(--space-6)}
#public-site .ve-hero-actions button{font-size:var(--text-sm);min-height:48px;padding:var(--space-3) var(--space-6)}
#public-site .ve-hero-content .ve-eyebrow{font-size:var(--text-xs);letter-spacing:.1em;line-height:1.7;color:var(--text-secondary)}
#public-site .ve-demo-heading{padding-inline:0;opacity:1}
#public-site .ve-demo-badge{font-size:var(--text-xs);color:var(--text-quiet)}
#public-site .ve-scene-edition{color:var(--text-quiet);font-size:var(--text-xs)}
#public-site .ve-scene-edition b{color:#58745f}
#public-site .ve-scene-edition i{font-size:var(--text-xs)}
#public-site .ve-stage{height:clamp(400px,39vw,560px)}
#public-site .ve-stage-label{font-size:var(--text-xs);color:var(--text-secondary);bottom:64px;letter-spacing:0;line-height:1.5}
#public-site .ve-scene-viewport{bottom:76px;top:32px}
#public-site .ve-kinetic-action{bottom:var(--space-2);gap:var(--space-2)}
#public-site .ve-kinetic-action small{font-size:var(--text-xs);color:var(--text-quiet)}
#public-site .ve-kinetic-action button{min-height:44px;font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}
#public-site .ve-camera-zoom{top:64px;right:var(--space-1)}
#public-site .ve-camera-zoom button{width:44px;height:44px}
#public-site .ve-compass{bottom:96px;opacity:.85}
#public-site .ve-compass>span{color:var(--text-secondary);font-size:var(--text-xs)}
#public-site .ve-scene-hint{display:none}
#public-site .ve-toolbar,#public-site .ve-display-tools{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-2);margin-top:0}
#public-site .ve-toolbar{border-top:1px solid #dce5df}
#public-site .ve-segmented button,#public-site .ve-cotas-toggle,#public-site .ve-display-tools button,#public-site .ve-advanced-tools summary{font-size:var(--text-xs);min-height:44px;color:var(--text-primary)}
#public-site .ve-layers button{padding:var(--space-2) var(--space-3)}
#public-site .ve-advanced-panel{z-index:20;max-width:calc(100vw - var(--space-8));background:#fff;box-shadow:var(--shadow-dialog);border:1px solid var(--border-ui);border-radius:var(--radius-card)}
#public-site .ve-advanced-panel :is(button,span){font-size:var(--text-xs);color:var(--text-primary)}
#public-site .ve-scenarios{padding-top:var(--space-4)}
#public-site .ve-scenarios-heading h2{font-size:var(--text-sm);color:var(--text-secondary);font-weight:650}
#public-site .ve-scenario-nav button{width:44px;height:44px}
#public-site .ve-scenario{padding:var(--space-3) var(--space-2);min-height:76px}
#public-site .ve-scenario>strong{font-size:var(--text-sm);color:var(--text-secondary)}
#public-site .ve-scenario-stats,#public-site .ve-scenario-stats b{font-size:var(--text-xs);color:var(--text-quiet);line-height:1.6}
#public-site .ve-carousel-hint{font-size:var(--text-xs);color:var(--text-quiet);margin-top:var(--space-2)}
#public-site .ve-study-details{margin-top:var(--space-4)}
#public-site .ve-study-details>summary{padding-block:var(--space-4);gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary)}
#public-site .ve-study-details>summary>span:last-child{font-size:var(--text-xs)}
#public-site .ve-hero-insight{margin:0;padding-left:var(--space-4);border-color:#91b59d}
#public-site .ve-hero-insight>span{font-size:var(--text-xs);color:var(--text-secondary)}
#public-site .ve-hero-insight h2{font-size:var(--text-base);line-height:1.5;margin-block:var(--space-2)}
#public-site .ve-hero-insight p{font-size:var(--text-sm);color:var(--text-secondary)}
#public-site .ve-hero-insight button{min-height:44px;font-size:var(--text-sm)}
#public-site .ve-comparison{padding-top:var(--space-8);margin-top:var(--space-10)}
#public-site :is(.ve-comparison-heading p,.ve-comparison-note,.ve-comparison-method,.ve-assumptions-note,.ve-comparison-table td,.ve-comparison-table th){font-size:var(--text-sm);line-height:1.7}
#public-site :is(.ve-residual-chart,.ve-comparison-winner){padding:var(--space-6);border-radius:var(--radius-card)}
#public-site .ve-residual-chart h3{font-size:var(--text-base);line-height:1.5}
#public-site .ve-residual-chart h3 small{font-size:var(--text-xs);color:var(--text-secondary)}
#public-site .ve-residual-row{min-height:48px;font-size:var(--text-sm);grid-template-columns:90px minmax(0,1fr) 100px;gap:var(--space-3)}
#public-site .ve-residual-row>span:first-child{color:var(--text-secondary)}
#public-site .ve-residual-row>strong{font-size:var(--text-xs)}
#public-site .ve-comparison :is(.ve-comparison-heading p,.ve-comparison-note){color:var(--text-secondary)}
#public-site .ve-comparison :is(th,td,caption,summary){font-size:var(--text-xs)}
#public-site .ve-comparison :is(td small,td span){font-size:var(--text-xs);line-height:1.5}
#public-site .ve-winner-kicker{font-size:var(--text-xs);letter-spacing:.06em}
#public-site .ve-comparison-winner p{font-size:var(--text-sm);line-height:1.7}
#public-site .ve-comparison-winner button{min-height:44px;font-size:var(--text-sm)}
#public-site .public-features{padding-block:var(--section-gap)}
#public-site .public-section-heading{margin-bottom:var(--space-6);gap:var(--space-6)}
#public-site .public-feature-grid{gap:var(--space-4)}
#public-site .public-feature-grid article{padding:var(--space-6);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}
#public-site .public-feature-grid :is(p,button){font-size:var(--text-sm);line-height:1.7}
#public-site .public-how{padding:var(--space-8);margin-bottom:var(--space-12);border-radius:var(--radius-card);gap:var(--space-8)}
#public-site .public-how p{font-size:var(--text-sm);line-height:1.7}
#public-site .public-footer{gap:var(--space-4);padding-block:var(--space-6);font-size:var(--text-sm)}
#public-site .public-footer small{font-size:var(--text-xs);color:var(--text-secondary)}
.ve-touch-rotation{display:none}

/* Auth and profile use the same field, action, focus and error vocabulary. */
.auth-main{padding:var(--space-8) clamp(24px,5vw,80px)}
.auth-card{max-width:440px;padding-block:var(--space-6)}
.auth-card h1{font-size:clamp(28px,2.5vw,36px);margin-block:var(--space-3);line-height:1.25}
.auth-intro{margin-bottom:var(--space-6);font-size:var(--text-sm)}
.auth-field{gap:var(--space-2);margin-bottom:var(--space-5);font-size:var(--text-sm)}
.auth-field input{font-size:var(--text-base);min-height:48px;border-radius:var(--radius-control);padding:var(--space-3) var(--space-4);border-color:var(--border-ui)}
.auth-password input{padding-right:56px}
.auth-password button{display:grid;place-items:center;min-width:44px;width:44px;min-height:44px;padding:0;right:2px;top:2px;bottom:2px;border-radius:8px;color:var(--text-secondary);background:transparent}
.auth-password button svg{display:block;width:20px;height:20px}
.auth-password button:hover{background:#eaf3ee;color:var(--text-primary)}
.auth-password button[aria-pressed=true]{color:#11654f}
.auth-tabs{gap:var(--space-6);margin-bottom:var(--space-6)}
.auth-options{gap:var(--space-3);flex-wrap:wrap;font-size:var(--text-xs);margin-bottom:var(--space-5)}
.auth-primary,.auth-google{min-height:48px;border-radius:var(--radius-control);font-size:var(--text-sm);padding:var(--space-3) var(--space-4)}
.auth-bottom,.auth-footnote,.auth-hint{font-size:var(--text-xs);color:var(--text-secondary);line-height:1.7}
.auth-dismiss{min-height:44px;margin-bottom:var(--space-4)}
#account-dialog{padding:var(--space-6);border-radius:var(--radius-dialog);box-shadow:var(--shadow-dialog);overscroll-behavior:contain;scrollbar-gutter:stable}
.account-dialog-header{gap:var(--space-4);margin-bottom:var(--space-6)}
.account-photo-row{gap:var(--space-4);align-items:flex-start}
.account-photo-row>div{min-width:0}
.account-photo-actions button{min-height:44px}
.account-security-row{flex-wrap:wrap;gap:var(--space-3)}
.account-security-row>div{flex:1 1 200px}
.account-photo-row strong,.account-security-row p{overflow-wrap:anywhere}

/* Workspace: preserve each layout and navigation mode, normalize shared components. */
body[data-auth=ready] #main-content{max-width:var(--workspace-width);padding-inline:var(--page-gutter);padding-top:var(--space-6)}
body[data-auth=ready] .page-heading{gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}
body[data-auth=ready] .page-heading h1{font-size:clamp(26px,2.2vw,34px);line-height:1.3;margin-block:var(--space-2)}
body[data-auth=ready] .page-heading p{font-size:var(--text-sm);line-height:1.7}
body[data-auth=ready] .heading-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
body[data-auth=ready] .btn{min-height:44px;font-size:var(--text-sm);padding:var(--space-2) var(--space-4);border-radius:var(--radius-control);white-space:normal;line-height:1.5;text-align:center}
body[data-auth=ready] .icon-button{min-width:44px;min-height:44px}
body[data-auth=ready] :is(.panel,.simple-locate,.simple-measures,.recent-card,.project-card,.source-card){border-radius:var(--radius-card);border-color:#cfddd5;box-shadow:var(--shadow-card)}
body[data-auth=ready] :is(.simple-locate,.simple-measures){padding:var(--space-6)}
body[data-auth=ready] :is(.panel-title,.panel-top){padding:var(--space-4) var(--space-5);gap:var(--space-3);flex-wrap:wrap}
body[data-auth=ready] :is(.panel-title h3,.panel-top h3){font-size:var(--text-base);line-height:1.5}
body[data-auth=ready] :is(.panel-kicker,.eyebrow,.field-note,.metric-note,.control-label,.range-caps,.panel-footer,.data-origin,.source-card-bottom){font-size:var(--text-xs);line-height:1.6}
body[data-auth=ready] :is(.lookup-form input,.lookup-form select,.simple-measures input,.simple-measures select,.parcel-form input,.parcel-form select,.input-affix input){font-size:var(--text-base);min-height:48px;border-radius:var(--radius-control)}
body[data-auth=ready] :is(.simple-start,.analysis-layout,.overview-stats,.project-grid,.sources-grid){gap:var(--space-6)}
body[data-auth=ready] :is(.simple-start,.analysis-layout,.studio-layout,.finance-layout)>*{min-width:0}
body[data-auth=ready] :is(.steps,.tabs){gap:var(--space-2)}
body[data-auth=ready] .tabs button{min-height:44px;font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}
body[data-auth=ready] .table-scroll{max-width:100%;border-radius:var(--radius-control);scrollbar-gutter:stable;overscroll-behavior-x:contain}
body[data-auth=ready] table{font-size:var(--text-sm)}
body[data-auth=ready] :is(th,td){padding:var(--space-3);line-height:1.6}
body[data-auth=ready] .modal{padding:var(--space-6);border-radius:var(--radius-dialog);max-height:calc(100dvh - 32px);overscroll-behavior:contain;scrollbar-gutter:stable}
body[data-auth=ready] .modal h2{line-height:1.4;padding-right:var(--space-6);max-width:100%}
body[data-auth=ready] .modal :is(p,li){font-size:var(--text-sm);line-height:1.8}
body[data-auth=ready] .modal-footer{gap:var(--space-3);flex-wrap:wrap}
body[data-auth=ready] .account-empty{padding:var(--space-10) var(--space-6)}
body[data-auth=ready] .breadcrumb{font-size:var(--text-xs);min-width:0}
body[data-auth=ready] .topbar{padding-inline:var(--page-gutter)}

@media(max-width:1024px){
 #public-site .ve-hero-layout{gap:var(--space-6)}
 #public-site .ve-hero-content{padding-top:var(--space-3)}
 #public-site .ve-hero-content h1{font-size:clamp(44px,7vw,64px);margin-block:var(--space-4)}
 #public-site .ve-stage{height:460px}
 #public-site .ve-hero-insight{max-width:none}
 #public-site .public-header nav{gap:var(--space-2)}
}
@media(max-width:767px){
 #public-site .public-header{min-height:76px;gap:var(--space-2)}
 #public-site .public-brand{width:clamp(112px,29vw,150px);margin-right:auto}
 #public-site .public-login{min-width:88px;padding-inline:var(--space-4);margin:0;min-height:44px}
 #public-site .public-header nav{position:absolute;top:calc(100% - 4px);left:0;right:0;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-1);margin:0;padding:var(--space-3);border:1px solid var(--border-ui);border-radius:var(--radius-card);background:#fff;box-shadow:var(--shadow-dialog)}
 #public-site .ve-hero-content h1{font-size:clamp(40px,10.5vw,60px)}
 #public-site .ve-hero-description{font-size:var(--text-sm)}
 #public-site .ve-hero-account-note{max-width:34ch;font-size:var(--text-xs)}
 #public-site .ve-stage{height:clamp(360px,108vw,440px)}
 #public-site .ve-stage-label{font-size:var(--text-xs);bottom:64px;padding-inline:var(--space-3)}
 #public-site .ve-scene-viewport{top:32px;bottom:92px}
 #public-site .ve-camera-zoom{top:64px;right:0}
 #public-site .ve-toolbar{gap:var(--space-1)}
 #public-site .ve-layers button{padding:var(--space-2);gap:var(--space-1)}
 #public-site .ve-views button{min-width:44px}
 #public-site .ve-display-tools{justify-content:flex-start}
 #public-site .ve-advanced-panel{left:auto;right:0;width:min(288px,calc(100vw - 32px))}
 #public-site .ve-scenario{flex-basis:128px}
 #public-site .ve-study-details>summary{flex-wrap:wrap}
 #public-site .ve-study-details>summary>span:last-child{font-size:var(--text-xs);letter-spacing:.05em}
 #public-site .ve-residual-chart,#public-site .ve-comparison-winner{padding:var(--space-5)}
 #public-site .ve-residual-row{grid-template-columns:76px minmax(0,1fr) 88px;gap:var(--space-2);font-size:var(--text-xs)}
 #public-site .ve-residual-row>strong{font-size:var(--text-xs)}
 #public-site .public-how{padding:var(--space-6)}
 #public-site .public-footer{display:flex;flex-direction:column;align-items:flex-start}
 .ve-touch-rotation{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-ui);border-radius:24px;min-height:44px;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--text-primary);background:#fff}
 .ve-touch-rotation[aria-pressed=true]{background:#dceee2;border-color:#729e85}
 .auth-main{padding:var(--space-6) var(--space-5)}
 .auth-mobile-wordmark{margin-bottom:var(--space-6)}
 .auth-card{padding-block:var(--space-4)}
 body[data-auth=ready] :is(.simple-locate,.simple-measures){padding:var(--space-5)}
 body[data-auth=ready] :is(.simple-start,.analysis-layout,.studio-layout,.finance-layout){gap:var(--space-4)}
 body[data-auth=ready] .heading-actions{width:100%}
 body[data-auth=ready] .heading-actions .btn{flex:1 1 auto}
 body[data-auth=ready] .modal-backdrop{padding:var(--space-4)}
 body[data-auth=ready] .modal{padding:var(--space-5)}
}
@media(min-width:768px){.ve-touch-rotation{display:none}}
@media(prefers-reduced-motion:reduce){:where(*,*::before,*::after){scroll-behavior:auto!important;animation-iteration-count:1!important;transition-duration:0s!important}}
@media print{#public-site .public-header nav,.public-menu-toggle,.ve-touch-rotation{display:none!important}body[data-auth=ready] #main-content{padding:0;max-width:none}body[data-auth=ready] .panel{box-shadow:none}}
/* Metadata remains readable at the same minimum size as other supporting text. */
#public-site :is(.public-eyebrow,.ve-comparison .ve-eyebrow,.ve-comparison-badge){font-size:var(--text-xs);color:var(--text-secondary);line-height:1.7}
#public-site .ve-study-details>summary>span:last-child,#public-site .ve-study-details>summary b{color:var(--text-secondary)}
#public-site .ve-comparison :is(thead th,td small){color:var(--text-secondary)}
#public-site .ve-comparison td button{font-size:var(--text-sm);min-height:44px}
#public-site .ve-financial-state:not([data-tone=positive]):not([data-tone=negative]):not([data-tone=caution]){color:#45593f}
#public-site .ve-cotas-toggle span{font-size:var(--text-xs)}
body[data-auth=ready] :is(.parcel-field small,.parcel-calculated span,.parcel-preview-head>div,.parcel-preview-head button,.parcel-preview-note,.parcel-side-review summary,.parcel-side-review dt small,.parcel-row-head,.parcel-analysis-metrics span,.parcel-analysis-metrics p,.parcel-method-note,.simple-outcome small,.parcel-location-guide>div){font-size:var(--text-xs);line-height:1.7}
body[data-auth=ready] :is(.nav-caption,.workspace small,.region-card small,.help-link,.account-sidebar small,.recent-studies-heading p){font-size:var(--text-xs)}
body[data-auth=ready] .topbar :is(.version,.topbar-divider){display:none}
@media(min-width:1280px){body[data-auth=ready] .main-nav button{font-size:var(--text-sm);min-height:44px}}
@media(max-width:767px){body[data-auth=ready] .overview-decoration{right:0;max-width:44%}}
@media(max-width:767px){
 body[data-auth=ready] .tabs[role=tablist]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding:var(--space-1);gap:var(--space-1)}
 body[data-auth=ready] .tabs[role=tablist] button{min-width:0;width:100%;justify-content:center;white-space:normal;text-align:center;padding:var(--space-2);font-size:var(--text-sm)}
}
body[data-auth=ready] :is(.recent-study-detail,.recent-study-activity,.report-letterhead small,.report-watermark){font-size:var(--text-xs);line-height:1.7}
#mobile-dock>button>span:last-child{font-size:var(--text-xs);line-height:1.4}
@media(min-width:1900px){body[data-auth=ready] .topbar{padding-inline:max(var(--page-gutter),calc((100% - var(--workspace-width))/2 + var(--page-gutter)))}}
body[data-auth=ready] :is(#project-count,.switcher-kicker){font-size:var(--text-xs)}
body[data-auth=ready] .status{font-size:var(--text-xs);line-height:1.5}
#account-dialog :is(.account-security-row p,.account-badge){font-size:var(--text-xs);line-height:1.7}
#account-dialog .account-badge[data-status=unavailable]{background:#edf1ee;color:var(--text-secondary)}
body[data-auth=ready] .parcel-review-modal .parcel-review-list>div{font-size:var(--text-sm);line-height:1.7;gap:var(--space-3)}
body[data-auth=ready] :is(.leaflet-control-scale-line,.leaflet-control-attribution,.leaflet-control-attribution a,.maplibregl-ctrl-attrib,.maplibregl-ctrl-attrib a,.picker-location){font-size:var(--text-xs);line-height:1.5}
body[data-auth=ready] :is(.leaflet-control-attribution a,.maplibregl-ctrl-attrib a){display:inline-flex;align-items:center;min-height:24px;min-width:24px}
#public-site .ve-comparison td button span{font-size:inherit}
#public-site .ve-comparison :is(td,th) button{font-size:var(--text-sm);min-height:44px}
#public-site .ve-comparison :is(td,th) button span{font-size:inherit}
body[data-auth=ready] :is(.floor-kicker,.floor-current>p,.floor-limit>p,.setback-canvas-tag,.setback-status,.setback-model-summary>div:first-child>span,.setback-values>span,.setback-model-summary>p,.setback-scene-legend>span,.setback-scene-legend small,.studio-bottom>div>div:last-child){font-size:var(--text-xs);line-height:1.7}
body[data-auth=ready] .glass-function strong{font-size:var(--text-sm)}
body[data-auth=ready] :is(.glass-function small,.glass-eyebrow,.glass-menu-footer button){font-size:var(--text-xs);line-height:1.6}
body[data-auth=ready] .glass-menu-heading p{font-size:var(--text-sm);line-height:1.7}
/* Programmatic heading focus marks location without making titles look like controls. */
:where(h1,h2,h3)[tabindex="-1"]:focus{outline:none;box-shadow:none}

/* Official legislation catalogue: readable references and distinct document provenance. */
body[data-auth=ready] .source-toolbar{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}
body[data-auth=ready] .source-search{flex:1 1 340px;max-width:600px;margin:0}
body[data-auth=ready] .source-search input{min-height:48px;font-size:var(--text-sm);min-width:0}
body[data-auth=ready] .source-count{font-size:var(--text-xs);color:var(--text-secondary);margin:0;line-height:1.6}
body[data-auth=ready] .source-card{padding:var(--space-6);display:flex;flex-direction:column;min-width:0}
body[data-auth=ready] .source-card-top{gap:var(--space-3);align-items:center}
body[data-auth=ready] .source-kind{font-size:var(--text-xs);line-height:1.5;color:var(--text-secondary);text-align:right}
body[data-auth=ready] .source-card h3{font-size:var(--text-base);line-height:1.5;margin-top:var(--space-4)}
body[data-auth=ready] .source-card .source-description{font-size:var(--text-sm);line-height:1.8;color:var(--text-secondary);margin-bottom:var(--space-5)}
body[data-auth=ready] .source-card-bottom{gap:var(--space-3);flex-wrap:wrap;margin-top:auto}
body[data-auth=ready] .source-card-bottom a{min-height:44px;font-size:var(--text-sm);font-weight:600;gap:var(--space-2);text-decoration:underline;text-underline-offset:4px}
body[data-auth=ready] .source-card-bottom .icon{width:16px;height:16px}
body[data-auth=ready] .source-card .source-publisher{border-top:1px solid var(--border-ui);padding-top:var(--space-3);margin:var(--space-3) 0 0;font-size:var(--text-xs);color:var(--text-secondary);line-height:1.7}
body[data-auth=ready] .source-publisher span{display:block}
@media(max-width:767px){body[data-auth=ready] .source-card{padding:var(--space-5)}}

[data-admin-nav][hidden]{display:none!important}
.admin-section{margin-top:var(--space-6);overflow:hidden}
.admin-section .panel-title h2{font-size:var(--text-base);line-height:1.5}
.admin-section .panel-title>span{font-size:var(--text-xs);color:var(--text-secondary)}
.admin-table{width:100%;border-collapse:collapse;text-align:left}
.admin-table th{font-size:var(--text-xs);color:var(--text-secondary);background:var(--surface-soft)}
.admin-table td{border-top:1px solid var(--border-ui);vertical-align:middle}
.admin-table strong{font-weight:600}
.admin-email{display:block;font-size:var(--text-xs);color:var(--text-secondary);overflow-wrap:anywhere;margin-top:4px}
.admin-loading,.admin-empty{padding:var(--space-6);font-size:var(--text-sm);line-height:1.8;color:var(--text-secondary)}
.admin-section .table-scroll{overflow-x:auto}
.admin-section .account-badge{white-space:nowrap}
@media(max-width:767px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-table{min-width:540px}}

.document-upload{overflow:hidden}
.document-upload .panel-title h2,.document-library-heading h2{font-size:var(--text-base);line-height:1.5}
.document-upload .panel-title>span,.document-help{font-size:var(--text-xs);color:var(--text-secondary);line-height:1.8}
.document-form{padding:var(--space-6)}
.document-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4) var(--space-6)}
.document-form .auth-field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4);font-size:var(--text-sm);min-width:0}
.document-form :is(input,select,textarea),.document-library-heading select{width:100%;min-width:0;min-height:48px;border:1px solid var(--border-ui);border-radius:var(--radius-control);padding:var(--space-3);background:var(--surface);color:var(--text-primary);font:inherit;line-height:1.5}
.document-form textarea{resize:vertical}
.document-file{padding:var(--space-4);border:1px dashed var(--border-ui);border-radius:var(--radius-control);background:var(--surface-soft)}
.document-file input{padding:var(--space-2);font-size:var(--text-sm);border:0;background:transparent}
.document-file input::file-selector-button{min-height:44px;border:1px solid var(--border-ui);border-radius:var(--radius-control);padding:var(--space-2) var(--space-3);margin-right:var(--space-3);background:var(--surface);color:var(--text-primary);font:inherit;cursor:pointer}
.document-feedback{font-size:var(--text-sm);line-height:1.8;padding:var(--space-3);background:var(--surface-soft);border-radius:var(--radius-control);margin-bottom:var(--space-4)}
.document-feedback[role=alert]{color:#993b30;background:#fff4ef}
.document-library-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);margin-block:var(--space-6)}
.document-library-heading label{font-size:var(--text-xs);color:var(--text-secondary);display:grid;gap:var(--space-2);max-width:100%}
.document-library-heading select{font-size:var(--text-sm);max-width:420px}
.document-card-actions,.document-pagination{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}
.document-card-actions>a:not(.btn){display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);min-height:44px;text-decoration:underline;text-underline-offset:4px}
.document-notes{white-space:pre-wrap;overflow-wrap:anywhere}
.document-pagination{justify-content:flex-end}
@media(max-width:767px){.document-field-grid{grid-template-columns:1fr;gap:0}.document-form{padding:var(--space-5)}.document-library-heading{align-items:stretch;flex-direction:column}.document-library-heading select{max-width:100%}}

.document-form :is(input,select,textarea),.document-library-heading select{font-weight:400}
body[data-auth=ready] .source-card .document-help{font-size:var(--text-xs);line-height:1.8}
body[data-auth=ready] .source-card .document-notes{font-size:var(--text-sm);line-height:1.8}

.admin-feedback{padding:var(--space-4);border:1px solid var(--border-ui);border-radius:var(--radius-control);background:var(--surface-soft);font-size:var(--text-sm);line-height:1.8}
.admin-feedback[role=alert]{background:#fff4ef;color:#993b30}
.admin-approval-intro{padding:var(--space-4) var(--space-5);font-size:var(--text-sm);line-height:1.8;color:var(--text-secondary)}
.admin-pending-account{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-5);border-top:1px solid var(--border-ui)}
.admin-pending-account>div{min-width:0}
.admin-pending-account h3{font-size:var(--text-base);line-height:1.5}
.admin-pending-account p{font-size:var(--text-sm);line-height:1.8;overflow-wrap:anywhere}
.admin-pending-account small{font-size:var(--text-xs);color:var(--text-secondary)}
.admin-review-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);flex-shrink:0}
.account-approval{display:inline-flex;border-radius:24px;background:#e8f8f1;color:#245347;padding:4px 10px;font-size:var(--text-xs);white-space:nowrap}
.account-approval[data-status=pending]{background:#fff3d9;color:#72520c}
.account-approval[data-status=rejected]{background:#fff0eb;color:#993b30}
@media(max-width:767px){.admin-pending-account{flex-direction:column;align-items:stretch;gap:var(--space-3)}.admin-review-actions .btn{flex:1}.admin-section .admin-table{min-width:680px}}

.usage-balance{display:inline-flex;align-items:center;min-height:32px;padding:6px 12px;border:1px solid #bfdccd;border-radius:24px;background:#edf8f1;color:#245347;font-size:var(--text-xs);line-height:1.5;white-space:nowrap}
.usage-balance[hidden]{display:none!important}
.usage-notice{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);margin-bottom:var(--space-5);background:var(--surface-soft);border:1px solid var(--border-ui);border-radius:var(--radius-control);font-size:var(--text-sm);line-height:1.7;color:var(--text-secondary)}
.usage-notice strong{color:var(--text-primary)}
.usage-profile-note{font-size:var(--text-sm);line-height:1.8;margin-block:var(--space-4);color:var(--text-secondary)}
.admin-usage-card{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5);border-top:1px solid var(--border-ui)}
.admin-usage-card>div:first-child{min-width:0;flex:1}
.admin-usage-card h3{font-size:var(--text-base);line-height:1.5}
.admin-usage-card p{font-size:var(--text-sm);line-height:1.8;overflow-wrap:anywhere;margin-bottom:var(--space-2)}
.admin-usage-summary{display:grid;gap:var(--space-2);min-width:150px}
.admin-usage-summary strong{font-size:24px;font-weight:600}
.admin-usage-summary small,.admin-usage-summary>span{font-size:var(--text-xs);font-weight:400;color:var(--text-secondary)}
@media(max-width:767px){.admin-usage-card{flex-direction:column;align-items:stretch;gap:var(--space-3)}.admin-usage-summary{min-width:0}.topbar-end .usage-balance{font-size:11px;padding-inline:8px;white-space:normal;max-width:120px;text-align:center}}
