*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--background);color:var(--foreground);font:var(--body)/1.55 var(--font-sans);-webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
button,input,textarea,select{font:inherit}
button,a,input,textarea,select,summary{touch-action:manipulation}
button,.button{display:inline-flex;justify-content:center;align-items:center;gap:var(--s2);min-height:44px;padding:10px 20px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--brand);color:var(--on-brand);font-weight:600;font-size:var(--body-sm);cursor:pointer;transition:background var(--fast),transform var(--fast)}
button:hover,.button:hover{background:var(--brand-hover);text-decoration:none}
button:active,.button:active{transform:translateY(1px)}
button:disabled{opacity:.5;cursor:not-allowed}
button[aria-busy=true]{opacity:.7;cursor:wait}
.secondary,.button.secondary{background:var(--surface);border-color:var(--border);color:var(--foreground)}
.secondary:hover{background:var(--surface-subtle)}
.ghost,.quiet{background:transparent;color:var(--foreground)}
.ghost:hover,.quiet:hover{background:var(--surface-subtle)}
.destructive{background:var(--danger);color:white}
.icon-button{width:44px;padding:10px;flex-shrink:0}
.icon{width:20px;height:20px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:3px solid var(--brand);outline-offset:4px}
h1,h2,h3,p{margin-top:0}
h1{font-size:var(--h1);font-weight:650;letter-spacing:-1.2px;line-height:1.12;margin-bottom:var(--s4)}
h2{font-size:var(--h2);line-height:1.25;letter-spacing:-.5px}
h3{font-size:var(--h3);line-height:1.35}
h1,h2,h3{overflow-wrap:anywhere}
p{overflow-wrap:anywhere}
small,.muted,.helptext{color:var(--muted-foreground)}
small{font-size:var(--caption)}
.eyebrow{font-size:var(--body-sm);font-weight:600;color:var(--muted-foreground);margin-bottom:var(--s3)}
.heading,.row{display:flex;align-items:center;justify-content:space-between;gap:var(--s6)}
.heading{margin-bottom:var(--s8)}
.row{flex-wrap:wrap}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3)}
section{margin-bottom:var(--s12)}
.card{padding:var(--s6);border-radius:var(--radius);background:var(--surface);margin-bottom:var(--s6)}
.cards,.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6)}
.two-col>*{min-width:0}
.tag,.status{display:inline-flex;align-items:center;gap:6px;font-size:var(--caption);font-weight:550;color:var(--brand);background:var(--brand-soft);padding:5px 10px;border-radius:99px}
.status::before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%}
.risk{color:var(--warning);background:var(--warning-soft)}
.success{color:var(--success)}
.notice{background:var(--brand-soft);padding:var(--s4) var(--s6);border-radius:var(--radius-sm);margin-bottom:var(--s6);font-size:var(--body-sm)}
.notice.error,.notice.warning{color:var(--danger);background:var(--danger-soft)}
.notice.success{color:var(--success);background:var(--success-soft)}
.errors,.errorlist{color:var(--danger);font-size:var(--body-sm)}
.errorlist{padding-left:20px}
label{display:block;font-weight:550;font-size:var(--body-sm);margin-bottom:var(--s2)}
input,select,textarea{width:100%;min-height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:12px;color:var(--foreground);background:var(--surface)}
textarea{resize:vertical}
input[type=checkbox],input[type=radio]{width:20px;min-height:20px;height:20px;vertical-align:middle;margin-right:8px;accent-color:var(--brand)}
input[type=color]{width:64px;height:48px;padding:5px}
form p,.field{margin:0 0 var(--s6)}
.helptext{display:block;font-size:var(--caption);margin-top:6px}
.editor-form{max-width:850px}
.form-panel{max-width:760px;background:var(--surface);padding:var(--s8);border-radius:var(--radius-lg)}
summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:var(--s3);font-weight:550}
summary::after{content:"+";margin-left:auto;color:var(--muted-foreground)}
details[open]>summary::after{content:"−"}
details[open]>summary{margin-bottom:var(--s6)}
summary::-webkit-details-marker{display:none}
.disclosure{border-top:1px solid var(--border);padding:var(--s4) 0}
.empty{padding:var(--s12);background:var(--surface);border-radius:var(--radius-lg);text-align:center}
.empty .icon{width:36px;height:36px;color:var(--brand);margin-bottom:var(--s4)}
.empty p{max-width:490px;margin:0 auto var(--s6);color:var(--muted-foreground)}
.table-wrap{overflow:auto}
table{border-collapse:collapse;width:100%;text-align:left;font-size:var(--body-sm)}
th,td{padding:16px;border-bottom:1px solid var(--border)}
th{font-weight:500;color:var(--muted-foreground)}
blockquote{margin:var(--s4) 0;padding:var(--s3) var(--s4);border-left:2px solid var(--border);font-size:var(--body-sm)}
pre,code{font-family:var(--font-mono);font-size:var(--caption);overflow-wrap:anywhere}
pre{white-space:pre-wrap;max-height:360px;overflow:auto}
hr{border:0;border-top:1px solid var(--border);margin:var(--s6) 0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:100;top:8px;left:8px;transform:translateY(-160%);background:var(--surface);padding:12px}
.skip-link:focus{transform:none}
.swatch{display:inline-block;width:48px;height:48px;border-radius:var(--radius-sm);background:var(--swatch);box-shadow:inset 0 0 0 1px #0002}
.palette{display:flex;gap:var(--s2)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s2)}
.chip{font-size:var(--body-sm);border-radius:6px;padding:4px 9px;background:var(--surface-subtle)}
dialog{border:1px solid var(--border);background:var(--surface-elevated);color:var(--foreground);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);padding:var(--s6);width:min(580px,calc(100% - 32px));max-height:85dvh;overflow:auto}
dialog::backdrop{background:#1b211d66;backdrop-filter:blur(3px)}
.command-links{display:grid;gap:var(--s1);margin-top:var(--s4)}
.command-links a{padding:12px;border-radius:8px;color:var(--foreground)}
.command-links a:hover{background:var(--brand-soft)}
.toast-stack{position:fixed;right:24px;bottom:24px;max-width:420px;z-index:30}
.toast{box-shadow:var(--shadow-float);display:flex;align-items:center;gap:var(--s3)}
.toast p{margin:0}
.toast button{margin-left:auto}
.pipeline{display:flex;list-style:none;padding:0;margin:var(--s6) 0;gap:0}
.pipeline li{flex:1;position:relative;font-size:var(--caption);color:var(--muted-foreground);padding-top:26px}
.pipeline li::before{position:absolute;top:2px;left:0;content:"";width:12px;height:12px;border:2px solid var(--border-strong);border-radius:50%;background:var(--surface);z-index:1}
.pipeline li:not(:last-child)::after{position:absolute;content:"";top:8px;left:14px;right:0;height:2px;background:var(--border)}
.pipeline li.complete::before,.pipeline li.active::before{background:var(--brand);border-color:var(--brand)}
.pipeline li.complete::after{background:var(--brand)}
.pipeline li.active{font-weight:650;color:var(--brand)}
.pipeline li.active::before{box-shadow:0 0 0 4px var(--brand-soft)}
.pagination{display:flex;align-items:center;justify-content:center;gap:var(--s4);margin:var(--s8) 0}
.tabs{display:flex;gap:var(--s2);overflow:auto;white-space:nowrap;padding-bottom:var(--s3);margin-bottom:var(--s6)}
.tabs a{min-height:44px;display:inline-flex;align-items:center;padding:8px 16px;border-radius:var(--radius-sm);color:var(--muted-foreground)}
.tabs a[aria-current],.tabs a:hover{background:var(--brand-soft);color:var(--brand);text-decoration:none}
.number{font-size:42px;letter-spacing:-2px;line-height:1.1}
.skeleton{background:var(--surface-subtle);height:180px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--muted-foreground)}
[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media(max-width:767px){.cards,.two-col{grid-template-columns:1fr}
.heading{align-items:flex-start;flex-wrap:wrap;gap:var(--s4)}
.card,.form-panel{padding:var(--s6)}
.empty{padding:var(--s8) var(--s6)}
.toast-stack{right:16px;left:16px;bottom:84px;max-width:none}
.pipeline li{font-size:11px}
section{margin-bottom:var(--s8)}
}
