@layer abok-tokens,abok-base,abok-components;@layer abok-tokens{:root{--amber-50:#fdf6e6;--amber-100:#fbecc9;--amber-200:#f9dc9e;--amber-300:#f7cc74;--amber-400:#f5b845;--amber-500:#e09a1e;--amber-600:#c47f0d;--amber-700:#a86800;--amber-800:#894f00;--amber-900:#5e3700;--teal-50:#f1f6f7;--teal-100:#e2ebee;--teal-200:#c6d8dd;--teal-300:#9db8c1;--teal-400:#7ea3ad;--teal-500:#5a8290;--teal-600:#3d6b7a;--teal-700:#2d5866;--teal-800:#1f3a44;--teal-900:#142930;--paper-0:#ffffff;--paper-50:#faf8f3;--paper-100:#f7f5f0;--paper-200:#efe9dd;--paper-300:#e4ddce;--paper-400:#c3b9a4;--paper-500:#928a78;--paper-600:#6f6857;--paper-700:#57503f;--paper-900:#241f1a;--night-1000:#0f0d0a;--night-950:#14110d;--night-900:#1a1712;--night-850:#1c1813;--night-800:#26211a;--night-700:#322b1f;--night-600:#4f4739;--night-400:#928a78;--night-300:#c4bca8;--night-100:#ede8dd;--red-50:#fdf2f0;--red-100:#fbe6e4;--red-200:#e8c4bd;--red-500:#e15b52;--red-700:#9d1f18;--red-800:#8f2f22;--red-d-ink:#f2a99b;--red-d-bg:#221310;--red-d-border:#6b352b;--green-50:#eef7f2;--green-200:#bfdccd;--green-400:#7fc9a3;--green-500:#3f9a6c;--green-700:#1f6042;--green-d-ink:#7fc9a3;--green-d-bg:#101d16;--green-d-border:#2e563f;--warn-50:#fdf6e8;--warn-200:#e6d3ac;--warn-700:#8a5200;--warn-d-ink:#e09a1e;--warn-d-bg:#211a0e;--warn-d-border:#634a1b;--rainbow-1:#e11d48;--rainbow-2:#f97316;--rainbow-3:#eab308;--rainbow-4:#22c55e;--rainbow-5:#0066cc;--rainbow-6:#8b5cf6;--rainbow: linear-gradient(135deg, #e11d48 0%, #f97316 20%, #eab308 40%, #22c55e 60%, #0066cc 80%, #8b5cf6 100%);--rainbow-v: linear-gradient(180deg, #e11d48 0%, #f97316 20%, #eab308 40%, #22c55e 60%, #0066cc 80%, #8b5cf6 100%)}:root{--code-text:var(--night-100);--code-muted:var(--teal-300);--code-ok:var(--green-d-ink);--code-warn:var(--warn-d-ink);--code-fail:var(--red-d-ink);--code-focus:var(--amber-400);--code-border:rgba(255,255,255,.06);--code-divider:rgba(255,255,255,.08);--code-chip:rgba(255,255,255,.08);--code-control-border:rgba(255,255,255,.24);--switch-on:var(--teal-700);--switch-knob:var(--paper-0);--nav-active:var(--amber-500);--selection-bg:var(--amber-200);--selection-text:var(--paper-900)}:root,:root.light,[data-theme=light]{color-scheme:light;--bg-page:var(--paper-0);--bg-subtle:var(--paper-50);--bg-card:var(--paper-100);--bg-raised:var(--paper-0);--bg-surface-2:var(--paper-200);--bg-hover:var(--paper-100);--bg-selected:var(--paper-200);--bg-inverse:var(--teal-800);--bg-footer:var(--teal-800);--bg-code:var(--teal-900);--text:var(--paper-900);--text-secondary:var(--paper-700);--text-muted:var(--paper-600);--text-on-inverse:#ffffff;--text-on-accent:var(--paper-900);--border:var(--paper-300);--border-subtle:var(--paper-200);--border-strong:var(--paper-400);--accent-fill:var(--amber-400);--accent-fill-hover:var(--amber-500);--accent-ink:var(--amber-700);--accent-tint:var(--amber-50);--link:var(--amber-700);--link-hover:var(--amber-800);--eyebrow:var(--teal-800);--btn-outline:var(--teal-800);--border-input:var(--paper-500);--focus:var(--amber-700);--inverse-fill:var(--teal-800);--inverse-fill-hover:var(--teal-700);--ok-ink:var(--green-700);--ok-bg:var(--green-50);--ok-border:var(--green-200);--ok-solid:var(--green-500);--warn-ink:var(--warn-700);--warn-bg:var(--warn-50);--warn-border:var(--warn-200);--warn-solid:var(--amber-500);--fail-ink:var(--red-800);--fail-bg:var(--red-50);--fail-border:var(--red-200);--fail-solid:var(--red-500);--neutral-ink:var(--paper-700);--neutral-bg:var(--paper-100);--neutral-border:var(--paper-300);--glow-strong:rgba(240,170,43,.3);--glow-soft:rgba(240,170,43,.1);--ring:0 0 0 3px rgba(240,170,43,.35);--nav-bg:rgba(255,255,255,.85);--scrim:rgba(20,17,13,.45)}:root.dark,[data-theme=dark]{color-scheme:dark;--bg-page:var(--night-950);--bg-subtle:var(--night-900);--bg-card:var(--night-850);--bg-raised:var(--night-800);--bg-surface-2:var(--night-800);--bg-hover:var(--night-800);--bg-selected:var(--night-700);--bg-inverse:var(--teal-800);--bg-footer:var(--night-1000);--bg-code:var(--night-1000);--text:var(--night-100);--text-secondary:var(--night-300);--text-muted:var(--night-400);--text-on-inverse:#ffffff;--text-on-accent:var(--paper-900);--border:var(--night-700);--border-subtle:#29231b;--border-strong:var(--night-600);--accent-fill:var(--amber-400);--accent-fill-hover:var(--amber-500);--accent-ink:var(--amber-400);--accent-tint:#2b2112;--link:var(--amber-500);--link-hover:var(--amber-400);--eyebrow:var(--amber-500);--btn-outline:var(--night-300);--border-input:#6e6452;--focus:var(--amber-400);--inverse-fill:var(--teal-700);--inverse-fill-hover:var(--teal-600);--ok-ink:var(--green-d-ink);--ok-bg:var(--green-d-bg);--ok-border:var(--green-d-border);--ok-solid:var(--green-400);--warn-ink:var(--warn-d-ink);--warn-bg:var(--warn-d-bg);--warn-border:var(--warn-d-border);--warn-solid:var(--amber-500);--fail-ink:var(--red-d-ink);--fail-bg:var(--red-d-bg);--fail-border:var(--red-d-border);--fail-solid:var(--red-500);--neutral-ink:var(--night-300);--neutral-bg:var(--night-800);--neutral-border:var(--night-700);--glow-strong:rgba(240,170,43,.26);--glow-soft:rgba(240,170,43,.08);--ring:0 0 0 3px rgba(245,184,69,.4);--nav-bg:rgba(20,17,13,.85);--scrim:rgba(0,0,0,.6)}@media(prefers-color-scheme:dark){:root:not(.light):not([data-theme=light]){color-scheme:dark;--bg-page:var(--night-950);--bg-subtle:var(--night-900);--bg-card:var(--night-850);--bg-raised:var(--night-800);--bg-surface-2:var(--night-800);--bg-hover:var(--night-800);--bg-selected:var(--night-700);--bg-inverse:var(--teal-800);--bg-footer:var(--night-1000);--bg-code:var(--night-1000);--text:var(--night-100);--text-secondary:var(--night-300);--text-muted:var(--night-400);--text-on-inverse:#ffffff;--text-on-accent:var(--paper-900);--border:var(--night-700);--border-subtle:#29231b;--border-strong:var(--night-600);--accent-fill:var(--amber-400);--accent-fill-hover:var(--amber-500);--accent-ink:var(--amber-400);--accent-tint:#2b2112;--link:var(--amber-500);--link-hover:var(--amber-400);--eyebrow:var(--amber-500);--btn-outline:var(--night-300);--border-input:#6e6452;--focus:var(--amber-400);--inverse-fill:var(--teal-700);--inverse-fill-hover:var(--teal-600);--ok-ink:var(--green-d-ink);--ok-bg:var(--green-d-bg);--ok-border:var(--green-d-border);--ok-solid:var(--green-400);--warn-ink:var(--warn-d-ink);--warn-bg:var(--warn-d-bg);--warn-border:var(--warn-d-border);--warn-solid:var(--amber-500);--fail-ink:var(--red-d-ink);--fail-bg:var(--red-d-bg);--fail-border:var(--red-d-border);--fail-solid:var(--red-500);--neutral-ink:var(--night-300);--neutral-bg:var(--night-800);--neutral-border:var(--night-700);--glow-strong:rgba(240,170,43,.26);--glow-soft:rgba(240,170,43,.08);--ring:0 0 0 3px rgba(245,184,69,.4);--nav-bg:rgba(20,17,13,.85);--scrim:rgba(0,0,0,.6)}}:root{--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-slides: "Kumbh Sans", var(--font-sans);--text-3xs:11px;--text-2xs:12px;--text-xs:13px;--text-sm:14px;--text-md:15px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:32px;--text-4xl:40px;--text-5xl:56px;--text-display-2: clamp(2rem, 1.4rem + 2vw, 3rem);--text-display-1: clamp(2.25rem, 1.3rem + 3.2vw, 3.5rem);--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heavy:800;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.6;--tracking-tight:-.03em;--tracking-snug:-.02em;--tracking-normal:0;--tracking-wide:.06em;--tracking-wider:.08em;--print-xs:8.5pt;--print-sm:9.5pt;--print-body-sm:10pt;--print-body:11.5pt;--print-h4:12.5pt;--print-h3:15pt;--print-h2:19pt;--print-h1:23pt;--print-leading-dense:1.4}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--container-max:1120px;--container-narrow:860px;--measure:680px;--nav-height:64px;--sidebar-width:248px;--control-sm:32px;--control-md:40px;--control-lg:52px;--dur-fast:.12s;--dur-base:.18s;--ease:ease}:root{--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--radius-xl:18px;--radius-full:999px;--shadow-xs:0 1px 2px rgba(20,17,13,.05);--shadow-sm:0 1px 2px rgba(20,17,13,.06), 0 4px 14px rgba(20,17,13,.06);--shadow-md:0 8px 24px rgba(20,17,13,.1);--shadow-lg:0 8px 30px rgba(20,17,13,.14)}:root.dark,[data-theme=dark]{--shadow-xs:0 1px 2px rgba(0,0,0,.3);--shadow-sm:0 1px 2px rgba(0,0,0,.35), 0 4px 14px rgba(0,0,0,.25);--shadow-md:0 8px 24px rgba(0,0,0,.4);--shadow-lg:0 8px 30px rgba(0,0,0,.5)}@media(prefers-color-scheme:dark){:root:not(.light):not([data-theme=light]){--shadow-xs:0 1px 2px rgba(0,0,0,.3);--shadow-sm:0 1px 2px rgba(0,0,0,.35), 0 4px 14px rgba(0,0,0,.25);--shadow-md:0 8px 24px rgba(0,0,0,.4);--shadow-lg:0 8px 30px rgba(0,0,0,.5)}}}@layer abok-base{body{margin:0;background:var(--bg-page);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased}[data-theme]{color:var(--text)}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--text);margin:0;text-wrap:balance}h1{font-size:var(--text-display-1);font-weight:700;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}h2{font-size:var(--text-display-2);font-weight:700;letter-spacing:var(--tracking-snug);line-height:var(--leading-tight)}h3{font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-snug);line-height:var(--leading-snug)}h4{font-size:var(--text-xl);font-weight:600;letter-spacing:var(--tracking-snug);line-height:var(--leading-snug)}h5,h6{font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-snug);line-height:var(--leading-snug)}p{text-wrap:pretty}a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--dur-fast) var(--ease)}a:hover{color:var(--link-hover)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}:not(pre)>code{background:var(--bg-card);border:1px solid var(--border-subtle);padding:1px 5px;border-radius:var(--radius-sm)}hr{border:0;border-top:1px solid var(--border)}::selection{background:var(--selection-bg);color:var(--selection-text)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:0ms!important;animation-duration:0ms!important}}}@layer abok-components{.ab-container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-6);box-sizing:border-box}.ab-container-narrow{max-width:var(--container-narrow)}.ab-measure{max-width:var(--measure)}.ab-eyebrow{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--eyebrow)}.ab-mono{font-family:var(--font-mono)}.ab-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-md);padding:0 var(--space-4);box-sizing:border-box;font:600 var(--text-sm)/1 var(--font-sans);white-space:nowrap;text-decoration:none;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.ab-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ab-btn:disabled,.ab-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.ab-btn-sm{min-height:var(--control-sm);padding:0 var(--space-3);font-size:var(--text-xs);gap:6px}.ab-btn-lg{min-height:var(--control-lg);padding:0 1.3rem;font-size:var(--text-md);gap:10px}.ab-btn-block{width:100%}.ab-btn-icon{width:var(--control-md);padding:0}.ab-btn-sm.ab-btn-icon{width:var(--control-sm)}.ab-btn-primary{background:var(--accent-fill);color:var(--text-on-accent)}.ab-btn-primary:hover{background:var(--accent-fill-hover);color:var(--text-on-accent)}.ab-btn-secondary{background:var(--inverse-fill);color:var(--text-on-inverse)}.ab-btn-secondary:hover{background:var(--inverse-fill-hover);color:var(--text-on-inverse)}.ab-btn-quiet{background:var(--bg-page);color:var(--btn-outline);border-color:var(--btn-outline)}.ab-btn-quiet:hover{background:var(--bg-card);color:var(--btn-outline)}.ab-btn-link{background:transparent;color:var(--link)}.ab-btn-link:hover{background:var(--bg-card);color:var(--link-hover)}.ab-btn-danger{background:var(--bg-page);color:var(--fail-ink);border-color:var(--fail-border)}.ab-btn-danger:hover{background:var(--fail-bg);color:var(--fail-ink)}.ab-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 var(--space-2);box-sizing:border-box;font:600 var(--text-2xs)/1 var(--font-sans);white-space:nowrap;border-radius:var(--radius-full);border:1px solid;color:var(--neutral-ink);background:var(--neutral-bg);border-color:var(--neutral-border)}.ab-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.ab-badge-ok{color:var(--ok-ink);background:var(--ok-bg);border-color:var(--ok-border)}.ab-badge-ok:before{background:var(--ok-solid)}.ab-badge-warn{color:var(--warn-ink);background:var(--warn-bg);border-color:var(--warn-border)}.ab-badge-warn:before{background:var(--warn-solid)}.ab-badge-fail{color:var(--fail-ink);background:var(--fail-bg);border-color:var(--fail-border)}.ab-badge-fail:before{background:var(--fail-solid)}.ab-badge-plain:before{display:none}.ab-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.ab-card-subtle{background:var(--bg-card);box-shadow:none}.ab-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-5) 0}.ab-card-title{margin:0;font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-snug);line-height:var(--leading-snug)}.ab-card-body{padding:var(--space-5)}.ab-field{display:flex;flex-direction:column;gap:6px}.ab-label{font-size:var(--text-xs);font-weight:600;color:var(--text)}.ab-hint{font-size:var(--text-2xs);color:var(--text-muted)}.ab-error{font-size:var(--text-2xs);color:var(--fail-ink)}.ab-input{min-height:var(--control-md);padding:0 var(--space-3);box-sizing:border-box;width:100%;font:400 var(--text-sm) var(--font-sans);color:var(--text);background:var(--bg-page);border:1px solid var(--border-input);border-radius:var(--radius-md);outline:none;transition:box-shadow var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}textarea.ab-input{padding:var(--space-3);min-height:88px;resize:vertical;line-height:var(--leading-normal)}.ab-input::placeholder{color:var(--text-muted)}.ab-input-mono{font-family:var(--font-mono);font-size:var(--text-xs)}@media(pointer:coarse){.ab-input,.ab-input-mono{font-size:var(--text-base)}}.ab-input:focus-visible,.ab-input:focus{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus),0 0 0 4px var(--glow-soft)}.ab-input[aria-invalid=true]{border-color:var(--fail-ink)}[data-accent=rainbow] .ab-input:focus{border:1px solid transparent;box-shadow:0 0 0 1px transparent,0 0 0 4px var(--glow-soft);background:linear-gradient(var(--bg-page),var(--bg-page)) padding-box,var(--rainbow) border-box}.ab-switch{position:relative;width:38px;height:22px;flex:none;padding:0;border:0;border-radius:var(--radius-full);background:var(--border-input);cursor:pointer;transition:background var(--dur-base) var(--ease)}.ab-switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--switch-knob);box-shadow:var(--shadow-xs);transition:left var(--dur-base) var(--ease)}.ab-switch[aria-checked=true]{background:var(--switch-on)}.ab-switch[aria-checked=true]:after{left:19px}.ab-switch:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ab-tabs{display:flex;flex-wrap:wrap;gap:4px}.ab-tab{display:inline-flex;align-items:center;gap:6px;min-height:var(--control-sm);padding:0 var(--space-3);border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font:600 var(--text-xs)/1 var(--font-sans);cursor:pointer}.ab-tab:hover{background:var(--bg-hover);color:var(--text)}.ab-tab[aria-selected=true]{background:var(--bg-selected);color:var(--text)}.ab-tab-count{color:var(--text-muted);font-weight:500}.ab-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ab-stat{display:flex;flex-direction:column;gap:6px}.ab-stat-label{font-size:var(--text-xs);font-weight:500;color:var(--text-secondary)}.ab-stat-value{font-size:var(--text-3xl);font-weight:700;letter-spacing:var(--tracking-tight);line-height:1;font-variant-numeric:tabular-nums;color:var(--text)}.ab-stat-value small{font-size:var(--text-lg);font-weight:600;color:var(--text-muted)}.ab-stat-accent .ab-stat-value{color:var(--accent-ink)}.ab-stat-hint{font-size:var(--text-xs);color:var(--text-muted)}.ab-record{background:var(--bg-code);border:1px solid var(--code-border);border-radius:var(--radius-md);overflow:hidden;color:var(--code-text)}.ab-record-head{display:flex;align-items:center;gap:10px;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--code-divider)}.ab-record-type{font:600 var(--text-3xs) var(--font-mono);background:var(--code-chip);padding:2px 7px;border-radius:var(--radius-sm)}.ab-record-host{flex:1;min-width:0;font:400 var(--text-2xs) var(--font-mono);color:var(--code-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ab-record-status{font-size:var(--text-2xs);font-weight:600}.ab-record-status[data-status=ok]{color:var(--code-ok)}.ab-record-status[data-status=warn]{color:var(--code-warn)}.ab-record-status[data-status=fail]{color:var(--code-fail)}.ab-record-copy{font:600 var(--text-2xs) var(--font-sans);color:inherit;background:transparent;border:1px solid var(--code-control-border);border-radius:var(--radius-sm);padding:3px 8px;cursor:pointer}.ab-record-copy:focus-visible{outline:2px solid var(--code-focus);outline-offset:2px}.ab-record-copy[data-copied]{color:var(--code-ok)}.ab-record-value{margin:0;padding:var(--space-3) 14px;font:400 var(--text-xs)/1.65 var(--font-mono);white-space:pre-wrap;word-break:break-all}.ab-nav-item{position:relative;display:flex;align-items:center;gap:10px;min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);text-decoration:none}.ab-nav-item:hover{background:var(--bg-hover);color:var(--text)}.ab-nav-item[aria-current=page]{background:var(--bg-selected);color:var(--text);font-weight:600}.ab-nav-item[aria-current=page]:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:var(--radius-sm);background:var(--nav-active)}[data-accent=rainbow] .ab-nav-item[aria-current=page]:before{background:var(--rainbow-v)}.ab-table-wrap{overflow-x:auto}.ab-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ab-table th{text-align:left;font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);padding:10px var(--space-4);border-bottom:1px solid var(--border);white-space:nowrap}.ab-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.ab-table tbody tr{position:relative}.ab-table tbody tr:hover{background:var(--bg-hover)}.ab-row-link{color:var(--text);font-weight:600;text-decoration:none}.ab-row-link:after{content:"";position:absolute;inset:0}.ab-row-link:focus-visible{outline:none}.ab-table tbody tr:has(.ab-row-link:focus-visible){outline:2px solid var(--focus);outline-offset:-2px}.ab-alert{display:grid;grid-template-columns:auto 1fr;gap:2px var(--space-3);align-items:baseline;padding:var(--space-3) var(--space-4);border:1px solid var(--neutral-border);border-radius:var(--radius-md);background:var(--neutral-bg);color:var(--text);font-size:var(--text-sm);line-height:var(--leading-normal)}.ab-alert:before{content:"";grid-row:1 / span 2;width:8px;height:8px;border-radius:50%;background:var(--neutral-ink);transform:translateY(-1px)}.ab-alert-title{margin:0;font-weight:600;color:var(--neutral-ink)}.ab-alert-body{margin:0;grid-column:2;color:var(--text-secondary)}.ab-alert-body>:first-child{margin-top:0}.ab-alert-body>:last-child{margin-bottom:0}.ab-alert-ok{background:var(--ok-bg);border-color:var(--ok-border)}.ab-alert-ok:before{background:var(--ok-solid)}.ab-alert-ok .ab-alert-title{color:var(--ok-ink)}.ab-alert-warn{background:var(--warn-bg);border-color:var(--warn-border)}.ab-alert-warn:before{background:var(--warn-solid)}.ab-alert-warn .ab-alert-title{color:var(--warn-ink)}.ab-alert-fail{background:var(--fail-bg);border-color:var(--fail-border)}.ab-alert-fail:before{background:var(--fail-solid)}.ab-alert-fail .ab-alert-title{color:var(--fail-ink)}.ab-modal{width:min(100% - 2 * var(--space-4),560px);max-height:min(100dvh - 2 * var(--space-8),720px);padding:0;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--bg-raised);color:var(--text);box-shadow:var(--shadow-lg)}.ab-modal-sm{width:min(100% - 2 * var(--space-4),420px)}.ab-modal-lg{width:min(100% - 2 * var(--space-4),760px)}.ab-modal::backdrop{background:var(--scrim)}.ab-modal[open]{display:flex;flex-direction:column}.ab-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6) 0}.ab-modal-title{margin:0;font-size:var(--text-xl);font-weight:600;letter-spacing:var(--tracking-snug);line-height:var(--leading-snug)}.ab-modal-close{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--control-sm);height:var(--control-sm);margin:-4px -8px 0 0;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font:400 var(--text-xl)/1 var(--font-sans);cursor:pointer}.ab-modal-close:hover{background:var(--bg-hover);color:var(--text)}.ab-modal-close:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ab-modal-body{padding:var(--space-4) var(--space-6) var(--space-6);overflow-y:auto;color:var(--text-secondary);font-size:var(--text-md);line-height:var(--leading-relaxed)}.ab-modal-body>:first-child{margin-top:0}.ab-modal-body>:last-child{margin-bottom:0}.ab-modal-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle)}@media(prefers-reduced-motion:no-preference){.ab-modal[open]{animation:ab-modal-in var(--dur-base) var(--ease)}.ab-modal[open]::backdrop{animation:ab-fade-in var(--dur-base) var(--ease)}}@keyframes ab-modal-in{0%{opacity:0;transform:translateY(8px)}}@keyframes ab-fade-in{0%{opacity:0}}}
