/* Canonical neutral foundation. No global reset or theme replacement. */
:root {
  --bb-canvas:#f5f7fb; --bb-surface:#ffffff; --bb-text:#17233b;
  --bb-muted:#46556f; --bb-border:#718096; --bb-accent:#2446a6;
  --bb-accent-hover:#19367f; --bb-on-accent:#ffffff; --bb-focus:#2446a6;
  --bb-success:#166534; --bb-success-surface:#f0fdf4;
  --bb-warning:#854d0e; --bb-warning-surface:#fffbeb;
  --bb-danger:#991b1b; --bb-danger-surface:#fef2f2;
  --bb-info:#1e40af; --bb-info-surface:#eff6ff;
  --bb-space-1:0.25rem; --bb-space-2:0.5rem; --bb-space-3:0.75rem;
  --bb-space-4:1rem; --bb-space-6:1.5rem; --bb-space-8:2rem;
  --bb-space-12:3rem; --bb-space-16:4rem;
  --bb-font:system-ui, -apple-system, Segoe UI, sans-serif;
  --bb-body:1rem; --bb-small:0.875rem; --bb-title:clamp(1.75rem, 1.3rem + 2vw, 2.5rem);
  --bb-section:1.5rem; --bb-line:1.6; --bb-heading-line:1.25;
  --bb-reading-measure:68ch; --bb-container:75rem; --bb-target:2.75rem;
  --bb-field:3rem; --bb-radius:0.5rem; --bb-dialog:36rem; --bb-icon:1.25rem;
  --bb-duration:150ms;
}
.bb-surface {font-family:var(--bb-font);font-size:var(--bb-body);line-height:var(--bb-line);color:var(--bb-text);background:var(--bb-canvas);overflow-wrap:anywhere;}
.bb-surface *, .bb-surface *::before, .bb-surface *::after {box-sizing:border-box;}
.bb-surface h1 {font-size:var(--bb-title);line-height:var(--bb-heading-line);}
.bb-surface h2 {font-size:var(--bb-section);line-height:var(--bb-heading-line);}
.bb-surface a {color:var(--bb-accent);text-underline-offset:0.2em;}
.bb-surface a:hover {color:var(--bb-accent-hover);}
.bb-surface :focus-visible {outline:3px solid var(--bb-focus);outline-offset:3px;}
.bb-surface button, .bb-surface input, .bb-surface select, .bb-surface textarea {font:inherit;}
.bb-surface button {min-block-size:var(--bb-target);padding:var(--bb-space-2) var(--bb-space-4);border:1px solid var(--bb-accent);border-radius:var(--bb-radius);background:var(--bb-accent);color:var(--bb-on-accent);cursor:pointer;}
.bb-surface button:hover {background:var(--bb-accent-hover);}
.bb-surface button:disabled {background:var(--bb-muted);border-color:var(--bb-muted);cursor:not-allowed;}
.bb-surface label {display:block;font-weight:600;margin-block-end:var(--bb-space-2);}
.bb-surface input, .bb-surface select, .bb-surface textarea {display:block;inline-size:100%;min-inline-size:0;min-block-size:var(--bb-field);border:1px solid var(--bb-border);padding:var(--bb-space-3);border-radius:var(--bb-radius);color:var(--bb-text);background:var(--bb-surface);}
.bb-surface input::placeholder {color:var(--bb-muted);opacity:1;}
.bb-surface [aria-invalid="true"] {border:2px solid var(--bb-danger);}
.bb-surface .bb-help {font-size:var(--bb-small);color:var(--bb-muted);}
.bb-surface .bb-error {color:var(--bb-danger);}
.bb-surface .bb-feedback {padding:var(--bb-space-4);border-inline-start:4px solid currentColor;border-radius:var(--bb-radius);}
.bb-surface .bb-feedback--success {color:var(--bb-success);background:var(--bb-success-surface);}
.bb-surface .bb-feedback--warning {color:var(--bb-warning);background:var(--bb-warning-surface);}
.bb-surface .bb-feedback--danger {color:var(--bb-danger);background:var(--bb-danger-surface);}
.bb-surface .bb-feedback--info {color:var(--bb-info);background:var(--bb-info-surface);}
.bb-surface .bb-container {max-inline-size:var(--bb-container);margin-inline:auto;padding:var(--bb-space-6) var(--bb-space-4);}
.bb-surface .bb-reading {max-inline-size:var(--bb-reading-measure);}
.bb-surface .bb-grid {display:grid;grid-template-columns:minmax(0,1fr);gap:var(--bb-space-6);}
.bb-surface .bb-panel {background:var(--bb-surface);padding:var(--bb-space-6);border:1px solid var(--bb-border);border-radius:var(--bb-radius);min-inline-size:0;}
.bb-surface svg {inline-size:var(--bb-icon);block-size:var(--bb-icon);fill:none;stroke:currentColor;stroke-width:2;vertical-align:middle;}
@media(min-width:48rem) {.bb-surface .bb-grid {grid-template-columns:repeat(2,minmax(0,1fr));}.bb-surface .bb-container {padding-inline:var(--bb-space-8);}}
@media(prefers-reduced-motion:reduce) {.bb-surface *, .bb-surface *::before, .bb-surface *::after {animation-duration:0ms!important;transition-duration:0ms!important;scroll-behavior:auto!important;}}
