*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:68px;color-scheme:light}
html[data-theme=dark]{color-scheme:dark}
body{margin:0;background:var(--surface-000);color:var(--ink-900);font:400 13px/20px var(--font-sans)}
button,input,select{font:inherit}
a{color:var(--brand-700)}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button,a,input,select,summary{touch-action:manipulation}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
button{min-height:var(--control-height);border:1px solid var(--border-300);border-radius:var(--radius-sm);background:var(--surface-100);color:var(--ink-900);padding:7px 12px;cursor:pointer;font-size:12px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px}
button:disabled{cursor:not-allowed;color:var(--ink-400);border-color:var(--border-200)}
button:hover:not(:disabled){background:var(--surface-200)}
.primary{background:var(--brand-700);color:var(--on-brand);border-color:var(--brand-700)}
.primary:hover:not(:disabled){background:var(--brand-700);filter:brightness(.96)}
.secondary{background:var(--surface-100)}
.icon-button{padding:8px}
.text-link{font-weight:500;text-underline-offset:3px}
svg.icon{display:inline-block;flex:none;width:16px;height:16px;vertical-align:middle;stroke:currentColor}
.mono{font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums}
.caption,.support,.eyebrow{color:var(--ink-600)}
.caption{font-size:11px;line-height:16px}
.support{font-size:12px;line-height:18px;margin:6px 0 0}
.logo-dark{display:none}
[data-theme=dark] .logo-dark{display:block}
[data-theme=dark] .logo-light{display:none}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;top:-80px;left:16px;z-index:20;padding:12px;background:var(--surface-100);border:1px solid var(--border-300);border-radius:4px}
.skip:focus{top:12px}
.sidebar{width:var(--sidebar-width);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:28px 14px 18px}
.office{display:flex;align-items:center;gap:10px;color:var(--ink-900);text-decoration:none;padding:8px 2px;font-size:12px;font-weight:500;line-height:18px}
.office img{width:24px;height:24px;flex-shrink:0}
.office small{display:block;font-size:11px;font-weight:400;color:var(--ink-600)}
.nav-caption{font-size:11px;color:var(--ink-600);margin:32px 10px 8px}
.sidebar nav a{min-height:var(--sidebar-row);display:flex;align-items:center;gap:10px;color:var(--sidebar-ink);text-decoration:none;padding:7px 10px;border-radius:var(--radius-sm);margin:2px 0}
.sidebar nav a.active,.sidebar nav a:hover{background:var(--sidebar-active);color:var(--ink-900)}
.sidebar nav a.active{font-weight:500}
.sidebar-note{margin:32px 10px 0;border-top:1px solid var(--border-200);padding-top:18px;color:var(--ink-600)}
.sidebar-note p{font-size:12px;margin:6px 0}
.sidebar-footer{margin-top:auto;padding:24px 10px 0;font-size:11px;line-height:18px;color:var(--ink-600)}
.workspace{margin:12px 12px 12px var(--sidebar-width);border:1px solid var(--border-200);border-radius:var(--radius-md);background:var(--surface-100);min-height:calc(100vh - 24px);overflow:visible}
.topbar{height:var(--topbar-height);padding:0 16px;border-bottom:1px solid var(--border-100);display:flex;justify-content:space-between;align-items:center;gap:12px}
.topbar-title{display:flex;align-items:center;gap:10px;min-width:0}
.topbar strong{font-size:13px;font-weight:600;white-space:nowrap}
.crumb{font-size:12px;color:var(--ink-600);white-space:nowrap}
.crumb span{padding-left:10px;color:var(--border-300)}
.theme-button{border:0;background:none;min-height:32px;padding:5px 8px;color:var(--ink-600);white-space:nowrap}
.mobile-menu{display:none}
main{max-width:var(--content-max);margin:auto;padding:var(--page-gutter);outline:none}
.intro{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:4px 0 20px}
.eyebrow{font-size:12px;margin:0 0 8px;font-weight:500}
h1{font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.025em;margin:0;max-width:29ch}
.lead{color:var(--ink-600);max-width:65ch;margin:12px 0 0;font-size:13px;line-height:20px}
.review-label{font-size:11px;color:var(--ink-600);white-space:nowrap;margin-top:5px;border:1px solid var(--border-200);padding:4px 8px;border-radius:4px}
.preview-notice{border-block:1px solid var(--border-100);padding:10px 0;margin:0 0 24px;color:var(--ink-600);font-size:12px}
.foundation-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;border-bottom:1px solid var(--border-200);padding-bottom:24px}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
h2{font-size:16px;font-weight:600;line-height:24px;margin:0}
h3{font-size:13px;font-weight:600;line-height:20px;margin:0}
.brand-stage{min-height:118px;display:flex;align-items:center;justify-content:flex-start;padding:20px 24px;background:var(--surface-000);border-radius:4px}
.brand-stage img{width:280px;max-width:100%;height:auto}
.type-sample .type-row{display:flex;flex-direction:column;gap:3px;margin-top:10px}
.type-sample .institutional{margin-top:12px}
.sans-example{font-size:13px}
.display-example{font:500 28px/32px var(--font-display);letter-spacing:-.01em}
.content-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(230px,1fr);gap:32px;margin-top:28px}
.component-block{padding:16px 0;border-top:1px solid var(--border-100)}
.component-label{font-size:12px;font-weight:500;margin:0 0 12px}
.button-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.button-row .text-link{margin:0 8px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
label{display:block;font-size:12px;font-weight:500;margin-bottom:6px}
input:not([type=checkbox]),select{width:100%;height:var(--control-height);border:1px solid var(--border-300);border-radius:var(--radius-sm);padding:6px 10px;background:var(--surface-100);color:var(--ink-900);min-width:0}
input::placeholder{color:var(--ink-400);opacity:1}
input[aria-invalid=true]{border-color:var(--danger-600)}
.error-text{color:var(--danger-600);font-size:12px;margin:6px 0 0}
.checkbox-sample{padding-top:16px}
.checkbox-sample label{display:flex;align-items:center;gap:8px;min-height:28px;font-weight:400}
.checkbox-sample input{width:16px;height:16px;accent-color:var(--brand-700);margin:0}
.badges{display:flex;gap:8px;flex-wrap:wrap}
.badge{font-size:12px;line-height:16px;font-weight:500;border-radius:4px;padding:2px 6px;display:inline-block;white-space:nowrap}
.info{color:var(--info-600);background:var(--info-100)}
.warning{color:var(--warning-700);background:var(--warning-100)}
.success{color:var(--success-600);background:var(--success-100)}
.danger{color:var(--danger-600);background:var(--danger-100)}
.neutral{color:var(--ink-600);background:var(--surface-200)}
.gold{color:var(--gold-700);background:var(--gold-100)}
.table-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border-100);padding:16px 0 12px}
.table-heading>span{color:var(--ink-600);font-size:11px}
.table-region{overflow-x:auto;border-bottom:1px solid var(--border-200)}
table{border-collapse:collapse;width:100%;min-width:460px;text-align:left;table-layout:fixed}
th,td{height:var(--row-height);padding:8px 10px;border-bottom:1px solid var(--border-100);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
thead th{font-size:12px;font-weight:500;color:var(--ink-600);border-bottom-color:var(--border-200)}
th:first-child{width:46%}
th:last-child{width:29%}
.date-cell{text-align:right}
tbody tr:hover{background:var(--sidebar-active)}
.tokens-panel{border-left:1px solid var(--border-200);padding-left:24px}
.swatches{list-style:none;padding:4px 0 0;margin:0}
.swatches li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-100)}
.swatches small{display:block;color:var(--ink-600);font:400 11px/16px var(--font-mono);margin-top:2px}
.swatch{width:32px;height:32px;border:1px solid var(--border-300);border-radius:4px;flex-shrink:0}
.swatch.surface{background:var(--surface-000)}
.swatch.panel{background:var(--surface-100)}
.swatch.brand{background:var(--brand-700)}
.swatch.ink{background:var(--ink-900)}
.swatch.border{background:var(--border-300)}
.token-note{margin-top:24px}
.token-note ul{padding-left:17px;font-size:12px;color:var(--ink-600);line-height:20px}
.states{margin-top:32px;border-top:1px solid var(--border-200);padding-top:24px}
.state-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px}
.state-grid article{padding:16px 0}
.state-grid h3{margin-top:10px}
.state-icon{display:inline-flex;width:28px;height:28px;background:var(--surface-200);color:var(--ink-600);align-items:center;justify-content:center;border-radius:8px}
.error-marker{height:28px;width:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--danger-600);background:var(--danger-100);border-radius:8px;font-weight:600}
.skeleton{height:28px;max-width:125px;background:var(--surface-200);border-radius:4px}
.provenance{border-top:1px solid var(--border-200);margin-top:20px;padding-top:24px}
.provenance>p{max-width:76ch;color:var(--ink-600);font-size:12px;line-height:20px}
.reference-links{display:flex;flex-wrap:wrap;gap:20px;font-size:12px}
.reference-links a{text-underline-offset:3px}
.page-footer{margin-top:28px;padding-top:16px;border-top:1px solid var(--border-100);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;font-size:11px;color:var(--ink-600)}
dialog{background:var(--surface-100);color:var(--ink-900);border:1px solid var(--border-300);border-radius:12px;max-width:min(480px,calc(100vw - 32px));padding:24px}
dialog::backdrop{background:#0008}
dialog p{max-width:52ch}
.dialog-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}
#nav-dialog nav{display:grid;gap:4px}
#nav-dialog a{min-height:44px;display:flex;align-items:center;padding:8px;border-radius:4px;text-decoration:none;color:var(--ink-900)}
#nav-dialog a:hover{background:var(--sidebar-active)}

@media (min-width:768px) and (max-width:1023px){.sidebar{width:56px;padding:20px 8px}
.sidebar .office span,.sidebar .nav-caption,.sidebar nav a>span:last-child,.sidebar-note,.sidebar-footer{display:none}
.sidebar .office{padding:8px}
.sidebar nav{margin-top:20px}
.sidebar nav a{padding:10px;justify-content:center}
.workspace{margin-left:56px}
main{padding:24px}
.content-grid{grid-template-columns:minmax(0,2fr) minmax(200px,1fr);gap:24px}
.tokens-panel{padding-left:20px}
.crumb{display:none}
}

@media (max-width:767px){html{scroll-padding-top:68px}
.sidebar{display:none}
.workspace{margin:var(--panel-inset-mobile);margin-left:max(var(--panel-inset-mobile),env(safe-area-inset-left));margin-right:max(var(--panel-inset-mobile),env(safe-area-inset-right));border:1px solid var(--border-200);border-radius:12px;min-height:calc(100vh - 24px);overflow:visible}
.topbar{height:var(--topbar-touch);padding:0 12px;position:sticky;top:0;background:var(--surface-100);border-radius:11px 11px 0 0;z-index:2}
.mobile-menu{display:inline-flex;border:0}
.crumb{display:none}
.topbar-title{gap:8px}
.topbar strong{font-size:13px}
.theme-button{min-height:44px;padding:8px}
.theme-button>span:last-child{font-size:12px}
main{padding:24px var(--page-gutter-mobile)}
.intro{display:block;padding-top:0}
.intro .review-label{display:inline-block;margin-top:16px}
h1{font-size:24px;line-height:30px;max-width:25ch}
.lead{font-size:14px;line-height:22px}
.foundation-grid,.content-grid,.state-grid{grid-template-columns:1fr;gap:24px}
.brand-stage{min-height:112px}
.brand-stage img{max-width:100%;width:280px}
.type-sample{border-top:1px solid var(--border-100);padding-top:20px}
.type-row{gap:6px!important}
.content-grid{margin-top:24px}
.form-grid{grid-template-columns:1fr;gap:18px}
.tokens-panel{padding:20px 0 0;border-left:0;border-top:1px solid var(--border-200)}
button{min-height:44px;padding:10px 12px}
.button-row .text-link{display:inline-flex;align-items:center;min-height:44px}
.section-heading{align-items:flex-start;flex-wrap:wrap}
input:not([type=checkbox]),select{height:44px;font-size:16px}
.checkbox-sample{padding-top:0}
.checkbox-sample label{min-height:44px}
.state-grid{gap:0}
.state-grid article{border-bottom:1px solid var(--border-100)}
td,th{height:44px}
.swatches{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.swatches small{font-size:10px}
.swatches li{gap:8px}
.swatch{width:28px;height:28px}
.reference-links{display:grid;gap:0}
.reference-links a{display:flex;align-items:center;min-height:44px}
.page-footer{font-size:11px}
.support,.provenance>p{font-size:13px}
.preview-notice{font-size:12px;line-height:18px}
}

@media (pointer:coarse){button{min-height:44px}
input:not([type=checkbox]),select{min-height:44px;font-size:16px}
.sidebar nav a{min-height:44px}
.checkbox-sample label{min-height:44px}
}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
}


/* Keep grid min-content sizing from clipping forms on narrow viewports. */
.foundation-grid > *, .content-grid > * { min-width: 0; }

.table-region { max-width: 100%; }

@media (max-width: 767px) { .foundation-grid, .content-grid, .state-grid { grid-template-columns: minmax(0, 1fr); }
 }


/* Compact the theme action before the mobile title loses its room. */
@media (max-width:360px){.theme-button>span:last-child{display:none}.theme-button{width:44px;flex-shrink:0}}
