/* Wise web UI · 2026-09-20. Self-hosted fonts; no OS-installed font required.
   Load after app styles. Keep this file and its WOFF2 files together.
   Canonical source: 브랜드/wise/web; distribute with sync_web_assets.py. */
@font-face {
  font-family: "Pretendard";
  src: url("./PretendardVariable.woff2") format("woff2");
  font-style: normal;
  font-weight: 45 920;
  font-display: swap;
}
@font-face {
  font-family: "Paperlogy";
  src: url("./Paperlogy-4Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Paperlogy";
  src: url("./Paperlogy-6SemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Paperlogy";
  src: url("./Paperlogy-7Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
/* Compatibility for GradeSnap's existing typography; new Wise headings use 600/700. */
@font-face {
  font-family: "Paperlogy";
  src: url("./Paperlogy-8ExtraBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

:root {
  --wise-font-body: "Pretendard", system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --wise-font-head: "Paperlogy", var(--wise-font-body);
  color-scheme: light;
}
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body { font-family: var(--wise-font-body); }
/* Form controls do not inherit the document font in browser default styles. */
button, input, select, textarea, optgroup { font-family: inherit; }
input::file-selector-button { font-family: inherit; }
:where(button, input, select, textarea) { color: inherit; letter-spacing: inherit; }
:where(button, input, select, textarea),
:where(button, input, select, textarea)::before,
:where(button, input, select, textarea)::after { box-sizing: border-box; }
button, input[type="button"], input[type="submit"], input[type="reset"] {
  -webkit-appearance: none;
  appearance: none;
}
/* Retain native checkboxes, radio buttons, file and date pickers and their semantics. */
input:where(:not([type]), [type="text"], [type="password"], [type="email"],
  [type="url"], [type="tel"], [type="search"]), textarea {
  -webkit-appearance: none;
  appearance: none;
}
select:not([multiple]):not([size]), select[size="1"] {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 2.25rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%235D5749' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  background-size: 16px;
}
:where(input[type="checkbox"], input[type="radio"]) { accent-color: #008C4E; }
:where(button, a, input, select, textarea):focus-visible {
  outline: 2px solid #008C4E;
  outline-offset: 3px;
}
/* iOS zooms focused fields below 16px. Leave browser/pinch zoom enabled. */
@media (max-width: 768px), (pointer: coarse) {
  input:where(:not([type]), [type="text"], [type="password"], [type="email"],
    [type="url"], [type="tel"], [type="search"], [type="number"],
    [type="date"], [type="time"], [type="datetime-local"]), select, textarea {
    font-size: max(1rem, 16px) !important;
  }
}
@media (forced-colors: active) {
  select:not([multiple]):not([size]), select[size="1"] {
    -webkit-appearance: auto;
    appearance: auto;
    background-image: none;
  }
}
