/* Base reset and typography */
*, *::before, *::after { box-sizing: border-box; }
    html, body { height: 100%; }
    body { margin: 0; background: var(--surface); color: var(--on-surface); font-family: 'Inter', system-ui, -apple-system, sans-serif; overflow: hidden; -webkit-font-smoothing: antialiased; -webkit-tap-highlight-color: transparent; }
    button, input, textarea, select { font: inherit; color: inherit; }
    button { cursor: pointer; }
    .hidden { display: none !important; }
    .tnum { font-variant-numeric: tabular-nums; }
    .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; }
    :focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

    .material-symbols-rounded { font-family: 'Material Symbols Rounded'; font-weight: normal; font-style: normal; font-size: 24px; line-height: 1; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; word-wrap: normal; direction: ltr; -webkit-font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
    .material-symbols-rounded.spin { animation: m3-spin 1s linear infinite; }
    @keyframes m3-spin { to { transform: rotate(360deg); } }
    .t-title-large { font-size: 1.375rem; line-height: 1.75rem; letter-spacing: 0; font-weight: 400; }
    .t-title-medium { font-size: 1rem; line-height: 1.5rem; letter-spacing: 0.0125em; font-weight: 500; }
    .t-title-small { font-size: 0.875rem; line-height: 1.25rem; letter-spacing: 0.007em; font-weight: 500; }
    .t-body-large { font-size: 1rem; line-height: 1.5rem; letter-spacing: 0.031em; font-weight: 400; }
    .t-body-medium { font-size: 0.875rem; line-height: 1.25rem; letter-spacing: 0.0143em; font-weight: 400; }
    .t-body-small { font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.033em; font-weight: 400; }
    .t-label-large { font-size: 0.875rem; line-height: 1.25rem; letter-spacing: 0.007em; font-weight: 500; }
    .t-label-medium { font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.0417em; font-weight: 500; }
    .t-label-small { font-size: 0.6875rem; line-height: 1rem; letter-spacing: 0.0417em; font-weight: 500; }
    .t-headline-small { font-size: 1.5rem; line-height: 2rem; letter-spacing: 0; font-weight: 400; }
