@font-face {
  font-family: "Pretendard";
  src: url("/static/fonts/PretendardVariable.woff2") format("woff2");
  font-weight: 45 920;
  font-style: normal;
  font-display: swap;
}

:root {
  --bg: #fffafc;
  --text: #2f1d3a;
  --heading: #111;
  --muted: #666;
  --primary: #6b3a75;
  --primary-strong: #5a2f67;
  --danger: #c34268;
  --body-outer-bg: #eef0f4;
  --app-surface-base: #fff;
  --error-text: #b91c4a;
  --error-text-strong: #8f1238;
  --error-row-text: #6b273b;
  --error-border: rgba(195, 66, 104, 0.3);
  --error-surface: rgba(255, 237, 244, 0.82);
  --label-muted: #6f5a77;

  --surface: rgba(255, 255, 255, 0.84);
  --surface-soft: rgba(255, 255, 255, 0.76);
  --border: rgba(190, 155, 201, 0.4);
  --shadow: 0 18px 48px rgba(0, 0, 0, 0.05);
  --shadow-raised: 0 24px 64px rgba(0, 0, 0, 0.07);
  --shadow-soft: 0 12px 32px rgba(0, 0, 0, 0.05);
  --transition-ui: all 0.2s ease-in-out;

  --radius-lg: 20px;
  --radius-md: 14px;
  --radius-pill: 999px;

  --layout-gap-sm: 12px;
  --layout-gap-md: 20px;
  --layout-gap-lg: 28px;

  --pc-bg: #f8fafd;
  --pc-panel: rgba(255, 255, 255, 0.82);
  --pc-border: rgba(60, 64, 67, 0.12);
  --pc-text: #1f1f1f;
  --pc-muted: #5f6368;
  --pc-blue: #1a73e8;
  --pc-shadow: 0 24px 70px rgba(60, 64, 67, 0.08);
  --text-eyebrow: #a06d8f;

  /* Mobile app extended palette (maps styles.css solid fills & gradient stops) */
  --brand-deep: #3e2147;
  --brand-mid: #532a61;
  --brand-hero: #5f2a6e;
  --violet-deep: #6b3275;
  --violet-mid: #9d5ba6;
  --violet-accent: #9b5fab;
  --rose-accent: #d94b8a;
  --pink-soft: #f19ac5;
  --purple-start: #764383;
  --text-quote: #553162;
  --text-soft: #3f2b47;
  --text-warm: #5c415f;
  --text-mauve: #6d4b78;
  --text-dusty: #7b5e84;
  --text-plum-dark: #4f2b5a;
  --text-plum-deep: #4f2f5a;
  --text-example: #70417a;
  --text-kicker: #9c83a8;
  --text-nav: #6f5f78;
  --text-nav-dim: #a38cae;
  --ink-plum: #47214f;
  --ink-border: #44234d;
  --text-lilac: #8f7a98;
  --danger-bright: #b91c1c;
  --surface-camera: #1f1a24;
  --calendar-badge: #8a4b74;
  --surface-blush: #f7edf6;
  --cta-start: #7a4886;
  --cta-end: #a267af;
  --warm-gradient-start: #c36aa6;
  --warm-gradient-end: #7d4c91;

  /* PC AI (Gemini-style neutrals & accents) */
  --pc-on-surface: #202124;
  --pc-on-surface-variant: #3c4043;
  --pc-link: #0b57d0;
  --pc-surface-tint: #e8f0fe;
  --pc-surface-tint-hover: #dbe8ff;
  --pc-orb-mid: #303134;
  --pc-code-foreground: #e8eaed;
  --pc-focus-outline: #8ab4f8;
  --pc-code-block-bg: var(--pc-on-surface);
  --pc-thinking-dot: var(--pc-muted);
  --pc-error-ink: #8c1d18;
  --pc-gemini-blue: #4285f4;
  --pc-gemini-violet: #a142f4;
  --pc-gemini-red: #ea4335;
  --pc-gemini-yellow: #fbbc04;
  --pc-gemini-green: #34a853;
}

.is-hidden {
  display: none !important;
}

* {
  box-sizing: border-box;
}

button,
a,
input,
select,
textarea {
  font: inherit;
}

button,
a,
input,
select,
textarea {
  transition: var(--transition-ui);
}

button:not(:disabled),
a[href],
select:not(:disabled) {
  cursor: pointer;
}

button:not(:disabled):active,
a[href]:active {
  transform: scale(0.98);
}
