* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--color-background); color: var(--color-text); font-family: var(--font-body); line-height: 1.6; }
button,input,select { font: inherit; }
a { color: var(--color-primary); }
.site-header { border-bottom: 1px solid var(--border-neutral); min-height: 90px; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.25rem clamp(1rem,5vw,5rem); }
.brand { color:var(--color-primary); text-decoration:none; display:flex; align-items:center; gap:1rem; font-size:.72rem; letter-spacing:.15em; font-weight:700; }
.brand-mark { font-size:1.8rem; letter-spacing:-.06em; border-right:1px solid var(--border-neutral); padding-right:1rem; }
.header-label,.muted,.eyebrow,.site-footer { color:var(--color-text-muted); }
.header-label { font-size:.85rem; }
main { width:min(100% - 2rem,72rem); margin:4rem auto; min-height:60vh; }
.auth-layout { display:grid; gap:3rem; align-items:center; }
.eyebrow { font-size:.75rem; letter-spacing:.13em; text-transform:uppercase; font-weight:600; }
h1 { font-size:clamp(2rem,5vw,3.7rem); font-weight:500; letter-spacing:-.04em; line-height:1.1; margin:.8rem 0 1.5rem; }
h2 { font-size:1.45rem; font-weight:600; line-height:1.3; margin:0 0 .65rem; }
h3 { font-size:1.05rem; margin:0 0 .5rem; }
p { margin:0 0 1.2rem; }
.intro p:not(.eyebrow) { max-width:28rem; }
.intro-line { width:3rem; border-top:3px solid var(--color-primary); margin:2rem 0; }
.panel { border:1px solid var(--border-neutral); border-radius:var(--radius-panel); background:var(--color-background); padding:clamp(1.25rem,4vw,2.5rem); }
.auth-panel { width:100%; max-width:30rem; }
.field { display:grid; gap:.4rem; margin:1.1rem 0; }
label { font-size:.92rem; font-weight:600; }
input:not([type=checkbox]),select { width:100%; padding:.8rem; border:1px solid var(--border-neutral); border-radius:.4rem; background:var(--color-background); color:var(--color-text); min-height:48px; }
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--color-primary); outline-offset:3px; }
.password-wrap { display:flex; position:relative; }
.password-wrap input { padding-right:3.7rem; }
.eye { position:absolute; right:3px; top:3px; bottom:3px; width:44px; border:0; background:var(--color-background); color:var(--color-primary); border-radius:.4rem; cursor:pointer; }
.eye svg { width:22px; height:22px; vertical-align:middle; }
.check { display:flex; align-items:center; gap:.7rem; font-weight:400; min-height:44px; cursor:pointer; }
.check input { width:19px; height:19px; accent-color:var(--color-primary); flex-shrink:0; }
button.primary,.button { background:var(--color-primary); color:var(--brand-white); border:1px solid var(--color-primary); border-radius:.4rem; padding:.8rem 1.2rem; min-height:48px; cursor:pointer; font-weight:600; }
.full { width:100%; margin:.8rem 0; }
button.secondary { border:1px solid var(--border-neutral); color:var(--color-primary); background:var(--color-background); padding:.65rem 1rem; border-radius:.4rem; min-height:44px; cursor:pointer; }
button.link { color:var(--color-primary); border:0; background:none; padding:.6rem 0; text-decoration:underline; cursor:pointer; min-height:44px; }
button:disabled { opacity:.6; cursor:wait; }
.help { color:var(--color-text-muted); font-size:.8rem; margin:.1rem 0; }
.message { border-left:3px solid var(--color-primary); background:var(--surface-muted); padding:.8rem 1rem; margin:1rem 0; overflow-wrap:anywhere; }
.message:empty { display:none; }
.toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:2rem; }
.toolbar h1 { font-size:clamp(1.8rem,4vw,2.6rem); margin:.5rem 0; }
.grid { display:grid; gap:1rem; }
.work { padding:1.3rem; border:1px solid var(--border-neutral); border-radius:var(--radius-panel); overflow-wrap:anywhere; }
.work p { font-size:.9rem; margin:.3rem 0; }
.tag { font-size:.75rem; padding:.2rem .5rem; background:var(--surface-muted); border-radius:.3rem; }
section + section { margin-top:2rem; }
ul.people { list-style:none; padding:0; }
.people li { border-bottom:1px solid var(--border-neutral); padding:.8rem 0; overflow-wrap:anywhere; }
summary { cursor:pointer; font-weight:600; padding:.6rem 0; }
.site-footer { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding:1.5rem clamp(1rem,5vw,5rem); font-size:.75rem; border-top:1px solid var(--border-neutral); }
@media(min-width:800px) { .auth-layout { grid-template-columns:1fr 1fr; gap:5rem; min-height:60vh; } .auth-panel { justify-self:end; } .grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .header-label { display:none; } main { margin:2rem auto; } .intro-line { margin:1.25rem 0; } .auth-layout { gap:1.5rem; } .site-footer span { display:none; } }
@media(max-width:799px) { .intro { display:none; } .auth-panel { justify-self:center; } }
.role-choices,.actions-row { display:flex; flex-wrap:wrap; gap:.75rem; margin:1rem 0; }
.space-top { margin-top:1.5rem; }
.pending-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; border-bottom:1px solid var(--border-neutral); padding:1rem 0; overflow-wrap:anywhere; }
.pending-row p { margin:.25rem 0; }
.consent-check { align-items:flex-start; line-height:1.5; }
.consent-check input { margin-top:.25rem; }
textarea { font:inherit; color:var(--color-text); background:var(--color-background); border:1px solid var(--border-neutral); border-radius:.4rem; padding:.8rem; width:100%; min-height:8rem; resize:vertical; }
textarea:focus-visible { outline:3px solid var(--color-primary); outline-offset:3px; }
input[readonly] { background:var(--surface-muted); }
@media(max-width:480px){.pending-row{align-items:flex-start;flex-direction:column}.role-choices button{width:100%}}
fieldset { border:1px solid var(--border-neutral); border-radius:.4rem; padding:1rem; margin:1rem 0; min-width:0; }
legend { font-weight:600; padding:0 .4rem; }
.admin-shell { display:grid; grid-template-columns:15rem minmax(0,1fr); gap:2.5rem; align-items:start; }
.admin-sidebar { position:sticky; top:1.5rem; padding:1.4rem; background:var(--surface-muted); border:1px solid var(--border-neutral); border-radius:var(--radius-panel); }
.admin-greeting { font-weight:600; overflow-wrap:anywhere; }
.admin-sidebar nav { display:grid; gap:.4rem; margin:1.5rem 0; }
.admin-sidebar nav a { display:block; padding:.8rem; border-radius:.4rem; text-decoration:none; font-weight:600; line-height:1.4; }
.admin-sidebar nav a:hover { text-decoration:underline; }
.admin-sidebar nav a[aria-current=page] { background:var(--color-primary); color:var(--brand-white); }
.future-sections { padding-top:1rem; margin-bottom:1.5rem; border-top:1px solid var(--border-neutral); color:var(--color-text-muted); }
.future-sections ul { list-style:none; padding:0; margin:0; font-size:.9rem; }
.future-sections li { padding:.25rem 0; }
.admin-content { min-width:0; }
.inbox-item { border-bottom:1px solid var(--border-neutral); padding:1rem 0; overflow-wrap:anywhere; font-size:.85rem; }
.inbox-item p { margin:.5rem 0; }
.section-heading h1 { font-size:clamp(2rem,4vw,2.8rem); margin:.5rem 0 1rem; }
.section-heading { margin-bottom:2rem; }
.empty-section { padding-block:3rem; }
.admin-content .grid > .panel { margin:0; }
@media(max-width:799px) {
 .admin-shell { grid-template-columns:1fr; gap:1.5rem; }
 .admin-sidebar { position:static; padding:1rem; }
 .admin-sidebar nav { grid-template-columns:repeat(3,minmax(0,1fr)); margin:1rem 0; gap:.3rem; }
 .admin-sidebar nav a { padding:.65rem .4rem; font-size:.85rem; text-align:center; }
 .future-sections { display:none; }
 .admin-sidebar > .eyebrow,.admin-greeting { margin-bottom:.4rem; }
}
