@charset "UTF-8";

:root {
    color-scheme: light;
    --app-font-size: 12px;
    --font-auxiliary: 10px;
    --font-caption: 11px;
    --font-body: 12px;
    --font-section: 13px;
    --font-emphasis: 14px;
    --color-navy: #102b46;
    --color-navy-deep: #08233c;
    --color-tech: #2477b8;
    --color-red: #b52d32;
    --color-red-dark: #a52228;
    --color-background: #f5f3ee;
    --color-surface: #ffffff;
    --color-ink: #203344;
    --color-muted: #647181;
    --color-line: #e1e5e9;
    --color-gold: #b99a65;
    --color-pale-blue: #edf3f8;
    --color-pale-red: #f8eeee;
    --color-pale-gold: #f7efe3;
    --color-error: #a7212a;
    --radius-card: 12px;
    --radius-control: 7px;
    --radius-pill: 999px;
    --shadow-card: 0 2px 8px rgb(16 43 70 / 5%), 0 1px 2px rgb(16 43 70 / 4%);
    --content-gap: 12px;
    --control-height: 44px;
    --nav-height: 68px;
    --app-max-width: 480px;
    --visible-height: 100vh;
}

/* Every text node inherits a named size; the global cap also protects controls
   and third-party descendants. Do not enlarge text with CSS transforms. */
*, *::before, *::after {
    box-sizing: border-box;
    font-size: 12px !important;
    font-size: clamp(10px, var(--app-font-size, 12px), 14px) !important;
}

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
    margin: 0;
    min-width: 0;
    background: #ebe9e5;
    color: var(--color-ink);
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
    line-height: 1.65;
    overflow-wrap: anywhere;
    -webkit-tap-highlight-color: transparent;
}
h1, h2, h3, p, figure { margin: 0; }
h1, h2 { --app-font-size: 14px; color: var(--color-navy); line-height: 1.55; font-weight: 700; }
h3 { --app-font-size: 13px; color: var(--color-navy); line-height: 1.6; font-weight: 650; }
small, .small { --app-font-size: 11px; }
button, input, select, textarea { font: inherit; color: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
a { color: var(--color-tech); text-decoration: none; }
button, input, select, textarea { border-radius: var(--radius-control); }
img { max-width: 100%; vertical-align: middle; }
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
ul, ol { padding-left: 20px; }
dl, dd { margin: 0; }
button, a { -webkit-user-select: none; user-select: none; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--color-tech); outline-offset: 3px; }
.muted { color: var(--color-muted); }
.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;
}
.js-only { display: none !important; }
.js .js-only { display: flex !important; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
