/* Common surfaces and controls; section styles only define their own layout. */
body{font-size:15px;-webkit-font-smoothing:antialiased}
button,.button,input,select,textarea,summary,a{-webkit-tap-highlight-color:transparent}
button,.button{min-height:44px;border-radius:var(--radius-control);border-color:var(--control-line);font-weight:600;line-height:1.4;transition:background-color .12s,border-color .12s,color .12s}
button:active,.button:active{background:var(--soft)}
.primary{background:var(--green);border-color:var(--green);color:var(--white)}
.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.primary:active{background:var(--primary-pressed);border-color:var(--primary-pressed)}
button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;background:var(--surface-muted);color:var(--muted);border-color:var(--line)}
button[aria-busy=true],.button[aria-busy=true]{cursor:progress}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--focus);outline-offset:3px}
input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:var(--control-line)}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--focus);outline:2px solid var(--focus-ring);outline-offset:1px}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--green)}
[aria-invalid=true]{border-color:var(--error)!important}
input,select,textarea{scroll-margin-block:90px}
select,textarea,fieldset{border-radius:var(--radius-control)}
button.danger,.button.danger{color:var(--error);border-color:var(--error-line)}
button.danger:hover,.button.danger:hover{background:var(--error-bg)}
.panel,.metrics a,.article{border-radius:var(--radius-panel)}
.pagehead{margin-bottom:var(--space-6);gap:var(--space-4)}
.pagehead h1{margin:0;font-size:28px;font-weight:650;letter-spacing:-.025em}
h2,h3{font-weight:650}
.badge{border-radius:6px;padding:4px 8px;font-size:12px;font-weight:500;line-height:1.45;background:var(--soft);color:var(--green)}
.badge.amber,.amber{background:var(--warning-bg);color:var(--warning)}
.notice{background:var(--soft);border-left-color:var(--success-line);border-radius:var(--radius-control);color:var(--ink)}
.message{background:var(--success-bg);border:1px solid var(--success-line);border-radius:var(--radius-control);font-size:14px}
.message.error,.errorlist{color:var(--error);background:var(--error-bg);border-color:var(--error-line)}
.message.warning{color:var(--warning);background:var(--warning-bg);border-color:var(--warning-line)}
.tabs{gap:var(--space-6);padding-bottom:0;margin:var(--space-6) 0}
.tabs>a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0 12px;color:var(--muted)}
.tabs>a:hover{color:var(--green);text-decoration:none}
.tabs>a[aria-current=page]{color:var(--green);font-weight:600;border-bottom:2px solid var(--green);margin-bottom:-1px;text-decoration:none}
table th{font-size:12px;font-weight:500;background:var(--hover)}
table td{line-height:1.5}
table tbody tr:hover{background:var(--hover)}
table .record-title{font-weight:550}
.empty{padding:var(--space-8);line-height:1.6}
.empty h2,.empty h3{font-weight:600}
.brandmark{display:block;width:40px;height:40px;flex-shrink:0;background:var(--brand-green);border-radius:10px;object-fit:contain}
.brand:hover{text-decoration:none}
.auth-main{align-content:center;gap:24px;min-height:100dvh}
.login{padding:36px;max-width:440px;border-radius:16px;box-shadow:none}
.login .brandmark{width:64px;height:64px;border-radius:12px}
.login .eyebrow{color:var(--brand-brown);font-size:12px;font-weight:600;letter-spacing:.06em;margin:20px 0 12px}
.login h1{font-size:26px;font-weight:650;line-height:1.3;margin:0 0 16px}
.login>p{font-size:14px}
.login form label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}
.login input{font-size:16px}
.login form .primary{margin-top:8px}
.login .small{font-size:12px;line-height:1.65;margin:20px 0 0}
.auth-main footer{margin:0;text-align:center}
footer{color:var(--muted)}
dialog{border-color:var(--line);border-radius:var(--radius-panel);color:var(--ink)}
dialog::backdrop{background:#20382F66}
@media(max-width:760px){
 .pagehead{flex-direction:row;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}
 .pagehead h1{font-size:26px}
 .pagehead .button{font-size:13px;padding:10px 12px}
 .panel{padding:16px}
 .tabs{gap:20px}
 .login{padding:24px}
 .auth-main{padding:24px 16px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
