/* Shared Vocab / Pindle foundations. Native Apple system type; content first. */
:root {
  color-scheme: light dark;
  --ui-bg:#f5f5f7; --ui-surface:#fff; --ui-ink:#1d1d1f; --ui-muted:#636366;
  --ui-line:#d8d8dc; --ui-accent:#245e9b; --ui-on-accent:#fff;
  --ui-tint:#eaf0f8; --ui-warning:#8a5300; --ui-warning-bg:#fff3d6;
  --ui-grade-easy:#257347; --ui-grade-easy-bg:#eaf5ec;
  --ui-complete:#245e9b; --ui-complete-bg:#eaf0f8; --ui-exclude:#636366; --ui-exclude-bg:#f0f0f2;
  --ui-grade-medium:var(--ui-warning); --ui-grade-medium-bg:var(--ui-warning-bg);
  --ui-error:#b42327; --ui-error-bg:#fff0ef; --ui-bar:rgba(245,245,247,.92);
  --ui-font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","PingFang TC",system-ui,sans-serif;
  --ui-shadow:0 16px 48px #0000000d,0 2px 8px #00000005;
}
@media(prefers-color-scheme:dark) {
  :root { --ui-bg:#000; --ui-surface:#1c1c1e; --ui-ink:#f5f5f7; --ui-muted:#aeaeb2;
    --ui-line:#38383a; --ui-accent:#8cbef3; --ui-on-accent:#10243a;
    --ui-tint:#1c3048; --ui-warning:#ffd080; --ui-warning-bg:#3e3017;
    --ui-complete:#8cbef3; --ui-complete-bg:#1c3048; --ui-exclude:#aeaeb2; --ui-exclude-bg:#2c2c2e;
    --ui-grade-easy:#a6dbb7; --ui-grade-easy-bg:#203d2b;
    --ui-error:#ffb0ad; --ui-error-bg:#441c20; --ui-bar:rgba(0,0,0,.92); }
}
*,*::before,*::after {box-sizing:border-box}
html {font-family:var(--ui-font); -webkit-text-size-adjust:100%; scroll-padding-top:88px}
body {margin:0; background:var(--ui-bg);color:var(--ui-ink);font-size:1.0625rem;line-height:1.5}
button,input,select,textarea {font:inherit}
button,a,input,select,textarea {-webkit-tap-highlight-color:transparent}
button {touch-action:manipulation}
button:not(:disabled),a {cursor:pointer}
button:disabled {cursor:default}
button:active:not(:disabled) {filter:brightness(.94)}
:focus-visible {outline:3px solid var(--ui-accent);outline-offset:3px}
button:focus:not(:focus-visible) {outline:none}
input,select,textarea {color:var(--ui-ink);background:var(--ui-surface)}
a {color:var(--ui-accent);text-underline-offset:3px}
svg.ui-icon {display:inline-block;width:1.25rem;height:1.25rem;flex:0 0 auto;vertical-align:-.2em;overflow:visible}
.ui-icon-button {display:inline-flex;align-items:center;justify-content:center;width:44px;min-height:44px;padding:0;flex:0 0 auto;border:0;border-radius:50%;background:transparent;color:var(--ui-ink)}
.ui-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}
.ui-dialog-open {overflow:hidden}
.ui-notice[data-tone] {display:flex;align-items:flex-start;gap:10px;text-align:left;border:1px solid color-mix(in srgb,currentColor 18%,transparent)}
.ui-notice[data-tone="info"] {color:var(--ui-muted);background:var(--ui-surface)}
.ui-notice[data-tone="success"] {color:var(--ui-accent);background:var(--ui-tint)}
.ui-notice[data-tone="warning"] {color:var(--ui-warning);background:var(--ui-warning-bg)}
.ui-notice[data-tone="error"] {color:var(--ui-error);background:var(--ui-error-bg)}
.ui-notice > .ui-icon {margin-top:.13em}
.ui-notice > span {min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}
@media(prefers-contrast:more) {
  :root {--ui-muted:#48484a;--ui-line:#77777b;--ui-bar:var(--ui-bg)}
  @media(prefers-color-scheme:dark) {:root {--ui-muted:#d1d1d6;--ui-line:#8e8e93}}
}
@media(prefers-reduced-transparency:reduce) {:root {--ui-bar:var(--ui-bg)}}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
