/* Locally served Korean/Latin variable typography. License: assets/fonts/LICENSE.txt */
@font-face {
  font-family: 'Pretendard Variable';
  src: url('./assets/fonts/PretendardVariable.woff2') format('woff2');
  font-style: normal;
  font-weight: 45 920;
  font-display: swap;
}
:root {
  --font-interface: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  --ink: #153630;
  --muted: #50685e;
  --line: #bacec0;
  --canvas: #dce8df;
  --paper: #edf4e9;
  --blue: #12695c;
  --navy: #143c35;
  --surface: #eaf2e7;
  --surface-raised: #f0f5eb;
  --surface-inset: #dce9dc;
  --shadow-panel: 0 2px 3px #173e2f04, 0 12px 30px -20px #17423140;
  font-family: var(--font-interface);
  font-weight: 450;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body, button, input, select, textarea { font-family: var(--font-interface); }
svg text { font-family: var(--font-interface) !important; }
body { background: var(--canvas); color: var(--ink); }
h1, h2, h3, strong, b { font-synthesis: none; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.hero h1 { font-weight: 730; letter-spacing: -.055em; line-height: 1.22; }
.hero-description { font-weight: 520; letter-spacing: -.025em; }
.hero-detail { font-size: 15px; line-height: 1.85; font-weight: 440; }
.section-heading h2 { font-weight: 680; letter-spacing: -.045em; }
.note-heading h2 { font-weight: 660; letter-spacing: -.035em; }
.learning-steps h3 { font-weight: 650; letter-spacing: -.025em; }
.page-title h1 { font-weight: 690; letter-spacing: -.04em; }
.atlas-wordmark { font-weight: 720; letter-spacing: -.04em; }
.atlas-wordmark small { font-weight: 580; letter-spacing: .15em; }
.atlas-mark, .note-bookmark, #analysis-shell .brand-symbol {
  font-family: var(--font-interface);
  font-style: normal;
  font-weight: 760;
}
.step-number, .year-stamp {
  font-family: var(--font-interface);
  font-style: normal;
  font-weight: 580;
  letter-spacing: -.05em;
}
.coverage-strip > div:not(:first-child) > strong,
.metric b, #tr-metrics strong, .grade-graphic b, .big-input input {
  font-weight: 620;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.045em;
}
table, .bar-value, .card-stat strong { font-variant-numeric: tabular-nums; }
.tabs button, .welcome-header nav a { font-weight: 560; }
.tabs button[aria-selected=true], .button { font-weight: 650; }

/* Tinted light falls across the page; surfaces sit at distinct depths. */
#landing {
  background:
    radial-gradient(ellipse 65% 670px at 88% 8%, #85ad942d, transparent 80%),
    radial-gradient(ellipse 65% 750px at 0% 1%, #b8cfab70, transparent 85%),
    linear-gradient(155deg, #e5eedf 0%, #dce9e0 24%, #e5ede2 48%, #d9e7dc 78%, #e1ebdd 100%);
}
.welcome-header { border-color: #8fae9a66; }
.welcome-header nav a { color: #456455; }
.hero { position: relative; }
.hero h1 { color: #143b32; }
.hero h1 em { color: #16745b; }
.hero-description { color: #2d5143; }
.hero-detail { color: #4c695a; }
.hero-caption, .notebook-top { color: #45614e; }
.hero-visual::before {
  content: '';
  position: absolute;
  inset: 6% -13% -14%;
  background: radial-gradient(ellipse at 50% 60%, #2a6a4c28, transparent 68%);
  z-index: -1;
  pointer-events: none;
}
.research-note {
  background: linear-gradient(135deg, #f0f6e9, #e6efdf);
  border-color: #a8c2ac;
  border-top-color: #27745b;
  border-radius: 10px 10px 7px 7px;
  box-shadow: 0 2px 3px #17473305, 0 15px 25px -12px #28583b25, 0 35px 65px -28px #1c4c3b40, inset 0 1px 0 #ffffff80;
}
.notebook-edge {
  background: linear-gradient(135deg, #d0e0cb, #b5cfb8);
  border-color: #a6bea9;
  border-radius: 10px;
  box-shadow: 0 17px 35px -25px #19443255;
}
.note-subject, .preview-source { border-color: #bed0bb; }
.note-bookmark { color: #1b694f; background: #ccdfc6; }
.hero-visual .preview-chart { background: transparent; }
.preview-grid line { stroke: #bbcfb9; }
.reading-tip { background: #d9e8d2; border-color: #6c9872; }
.reading-tip p { color: #436448; }
.note-bottom { color: #526f56; }
.coverage-strip {
  position: relative;
  border-color: #9bb79e;
  background: linear-gradient(100deg, #c9ddc539, #e9f1e34d 45%, #c4dbca38);
  box-shadow: 0 1px 0 #f2f8ec80, 0 -1px 0 #f2f8ec66;
}
.coverage-strip p, .coverage-intro small { color: #4e6c57; }
.step-number { color: #5c8468; }
.learning-steps article { border-color: #a2bba2; }
.step-graphic {
  background: linear-gradient(135deg, #d5e4ce, #c6dccb);
  border: 1px solid #adc7ac;
  border-radius: 8px;
  box-shadow: inset 0 1px 0 #f1f9e680, 0 10px 22px -18px #245c3655;
}
.learning-steps article:hover .step-graphic {
  background: linear-gradient(135deg, #cbdcc2, #b8d2bd);
  border-color: #91b492;
}
.step-graphic > span, .grade-graphic > small { color: #3b5e42; }
.compare-graphic > div { border-color: #adc5ac; }
.compare-graphic i { color: #3b5e42; }
.grade-graphic i { background: #b2c8ae; }
.grade-graphic i:nth-child(-n+3) { background: #4c8260; }
.explore-section {
  background:
    radial-gradient(ellipse 72% 75% at 95% 0%, #50846047, transparent 80%),
    linear-gradient(140deg, #133d34, #16382f 55%, #102e29);
  box-shadow: inset 0 1px 0 #7eae8738, 0 25px 45px -30px #163f3a50;
}
.tool-list { border-color: #6c947679; }
.tool-list > a { border-color: #7b9e8047; }
.tool-list > a:hover { background: #7baf7e17; }
.tool-arrow { border-color: #83a58b8f; }
.tool-list > a:hover .tool-arrow { background: #d0e1c6; color: #193e30; }
.evidence-questions { border-color: #88aa8e; }
.evidence-questions details { border-color: #abc3ab; }
.evidence-questions details[open] { background: #e8f1e24d; }
.evidence-questions summary { padding-inline: 12px; }
.evidence-questions p { padding-left: 12px; }
.closing-section {
  background:
    radial-gradient(ellipse at 10% 0%, #e3efce80, transparent 70%),
    linear-gradient(120deg, #cadfc1, #bcd7c5);
  border: 1px solid #a2bfa7;
  border-radius: 12px;
  box-shadow: inset 0 1px 0 #f5fbe980, 0 18px 32px -25px #164c2c55;
}
.welcome-footer { border-color: #abc4ad; background: transparent; }
.button-teal, .primary-btn {
  background: linear-gradient(150deg, #217c62, #155c4d);
  border-color: #195f4b;
  box-shadow: inset 0 1px 0 #a4d4ad45, 0 5px 10px -5px #153c3b55;
}
.button-teal:hover, .primary-btn:hover { background: linear-gradient(150deg, #1a7058, #104f40); }
.button-ink { background: linear-gradient(145deg, #254f42, #17392f); }

/* The analysis canvas uses the same palette, with restrained contrast. */
#analysis-shell {
  min-height: 100vh;
  background:
    radial-gradient(ellipse 100% 650px at 100% 0%, #b4d1be80, transparent 80%),
    linear-gradient(150deg, #dce8db, #d5e4dc 60%, #dfe9d9);
}
#analysis-shell .topbar {
  background: #e5efdfeb;
  border-color: #aec5b0;
  box-shadow: 0 4px 18px -12px #174d3540;
}
#analysis-shell .brand-symbol { color: #235d42; background: #c9ddc2; }
.tabs button:hover { background: #d3e4cf; }
.tabs button[aria-selected=true] { background: #c7ddc4; color: #205b3d; }
.workspace-strip, #analysis-shell .edition { color: #4c6958; }
.input-panel {
  background: linear-gradient(145deg, #eef5e6, #e4efdf);
  border-color: #a7c3a9;
  border-top-color: #27745b;
  box-shadow: 0 2px 3px #173e2f08, 0 16px 35px -24px #214e3655;
}
.chart-surface, .filter-bar, .source-card, .plan-card, .five-status {
  background: var(--surface);
  border-color: #b2cbb3;
  box-shadow: var(--shadow-panel), inset 0 1px 0 #f6faef80;
}
.chart-surface { background: linear-gradient(135deg, #eef4e8, #e5efdf); }
.candidate-card {
  background: linear-gradient(140deg, #eff5e7, #e7f0e1);
  border-color: #b3ccb2;
  box-shadow: 0 4px 10px -7px #24523924;
}
.candidate-card:hover {
  background: #eef6e5;
  border-color: #82ac89;
  box-shadow: 0 12px 24px -16px #1c4d3760;
}
.card-delta { background: #dae8d3; }
.source-label, .dataset-chip { background: #d3e4ca; color: #3d6141; border-color: #a8c6a3; }
.metric, #tr-metrics > div {
  background: linear-gradient(140deg, #eaf3e2, #dbead4);
  border-color: #8eb18b;
  box-shadow: var(--shadow-panel);
}
.group-summary button { background: #dfebd6; border-color: #aac4a0; box-shadow: var(--shadow-panel); }
.group-summary button[data-scroll-bucket="상향"] { background: #eee2d3; }
.group-summary button[data-scroll-bucket="적정"] { background: #cde4d5; }
.group-summary button[data-scroll-bucket="하향"] { background: #dce8c8; }
.cl-filter-row select, .cl-filter-row input, .tr-search-row select, .tr-search-row input { background: #f0f5e9; border-color: #a8c0a7; }
.detail-panel {
  background: linear-gradient(145deg, #edf4e5, #e2edda);
  border-color: #9cbd9e;
  box-shadow: 0 17px 45px -28px #1d4d3b55;
}
.detail-panel .metric, .detail-note { background: #d7e7cf; }
.notice { background: #d4e5ce; border-color: #a5c09d; border-left-color: #6c9768; }
input[type=number], input[type=search], input[type=text], select {
  background: #f0f5e9;
  border-color: #a8c0a7;
  box-shadow: inset 0 1px 2px #36553d08;
}
input:hover, select:hover { border-color: #7b9d7d; }
.segmented span { background: #e0ecd9; border-color: #b3cbb0; }
.segmented input:checked + span { background: #cce1c6; color: #1c6041; border-color: #81a887; }
.quiet-btn { background: #e7f0de; border-color: #aec6a7; }
.quiet-btn:hover { background: #d7e8cd; border-color: #7fa17b; }
.motion-toggle { background: #d5e5d1; border-color: #abc3a5; color: #3e6245; }
.table-scroll { background: #eaf2e3; border-color: #b1c8aa; box-shadow: var(--shadow-panel); }
th { background: #cfdfc6; color: #304e34; }
th, td { border-color: #c2d5bb; }
tbody tr:nth-child(even) { background: #dce9d44d; }
tbody tr:hover { background: #cee2c3; }
th[aria-sort=ascending], th[aria-sort=descending] { background: #bcd6b3; }
.empty-state { background: #e4eedb; border-color: #a0bc99; }
.bar-track { background: #cadcc2; }
.reform-intro { background: linear-gradient(135deg, #214e3e, #163c32); border-color: #315b44; }
.year-stamp { color: #bed8b2; }
.load-status { background: #d4e6cc; border-color: #a8c29e; }
#analysis-shell footer { color: #425e4c; background: #cfdfc8; border-color: #b0c6a6; }
.cl-card, .cl-gun-card { background: #e5efdc; border-color: #afc8a5; }
.university-logo { background: #f1f5e9; border-color: #b7cdb0; }
.university-logo a:hover { background: #dcebd1; }

@media (max-width: 800px) {
  .hero-detail { font-size: 15px; }
  .hero-visual::before { inset-inline: -4%; }
  .research-note { box-shadow: 0 12px 24px -14px #24543940, inset 0 1px 0 #ffffff80; }
  .closing-section { border-radius: 9px; }
  .hero h1 { letter-spacing: -.05em; }
}
@media print {
  #analysis-shell, .chart-surface, .candidate-card, .table-scroll, .metric, .detail-panel { background: white; box-shadow: none; }
}

/* Mathesis identity: a compact open-book M, shared across navigation and metadata. */
.mathesis-logo { display:block; width:176px; height:auto; flex:none; }
.atlas-wordmark { line-height:1; }
#analysis-shell .brand { min-width:180px; }
#analysis-shell .brand .mathesis-logo { width:145px; }
#analysis-shell .brand span { margin-top:4px; font-size:15px; }
.welcome-footer .mathesis-logo { width:154px; }
.note-bookmark img { display:block; width:24px; height:24px; }
@media(max-width:800px) {
  .welcome-header .mathesis-logo { width:151px; }
  .welcome-footer .mathesis-logo { width:145px; }
  #analysis-shell .brand .mathesis-logo { width:138px; }
}
@media(max-width:400px) { .welcome-header .mathesis-logo { width:138px; } }

/* Readable type scale and a quieter information hierarchy. */
body { font-size: 17px; line-height: 1.65; }
button, input, select, textarea { font-size: 16px; }
.welcome-header nav a, .button, .button-small, .text-link,
.tabs button, .field-label, legend, .segmented span,
.filter-bar label, .filter-bar select, .filter-bar input,
.quiet-btn, .text-btn, .primary-btn { font-size: 16px; }
.hero-description { font-size: 22px; margin-bottom: 30px; }
.hero-caption, .note-subject span, .note-bottom, .note-bottom a,
.preview-source, .coverage-strip p, .coverage-intro small,
.field-note, .chart-note, .source-note, .scope-note,
.input-panel .privacy-note, .card-meta, .card-delta,
.card-actions .text-btn, .card-actions a { font-size: 15px; line-height: 1.7; }
.section-heading > p:not(.section-kicker), .learning-steps p,
.tool-list p, .evidence-questions p, .evidence-questions summary,
.notice, .method-grid p, .source-card p, .reform-facts p { font-size: 17px; }
.tool-list p span { display: block; margin: 3px 0 0; font-size: 15px; }
.learning-steps h3 { font-size: 23px; }
.step-graphic { height: auto; min-height: 198px; }
.step-graphic > span, .compare-graphic > div, .checklist-graphic > div { font-size: 16px; }
.note-subject strong { font-size: 18px; }
.reading-tip p { font-size: 15px; }
.page-title h1 { font-size: clamp(28px, 2.6vw, 36px); }
.analysis-heading h2, .candidate-toolbar h2 { font-size: 24px; }
.chart-header h2, .chart-header h3, .table-heading h2 { font-size: 21px; }
.analysis-heading p { font-size: 16px; margin-top: 5px; }
th, td { font-size: 16px; line-height: 1.55; }
.metric span, .metric small, #tr-metrics > div > span, #tr-metrics small,
.bar-row, .bucket-head span, .candidate-toolbar > span { font-size: 15px; }
.notice details { margin-top: 6px; }
.notice details p { margin: 8px 0 0; }
.notice summary { color: var(--ink); font-size: 15px; }
.group-summary button { gap: 10px; flex-wrap: wrap; }
.group-summary span { font-size: 17px; font-weight: 600; }
.group-summary strong { font-size: 28px; }
.candidate-count-unit { display: block; font-size: 15px; font-weight: 450; margin-top: 4px; }
.bucket-head { font-size: 20px; }
.candidate-card { padding: 22px 18px; }
.card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.card-identity { min-width: 0; }
.card-university { font-size: 17px; line-height: 1.45; font-weight: 550; color: var(--muted); }
.card-department { font-size: 21px; line-height: 1.45; font-weight: 700; margin: 6px 0 0; overflow-wrap: anywhere; }
.candidate-logo.university-logo { width: 68px; height: 68px; border-radius: 16px; background: #f7f9f1; border: 1px solid #bed0b7; box-shadow: 0 4px 12px -8px #26493255; }
.candidate-logo.university-logo img { width: 82%; height: 82%; }
.card-stat { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 18px 0; }
.card-stat span { font-size: 15px; }
.card-stat strong { font-size: 25px; line-height: 1.5; }
.card-actions { justify-content: flex-start; gap: 4px 15px; }
.card-actions a, .card-actions button { display: inline-flex; align-items: center; min-height: 42px; }
.candidate-card > .source-note { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.candidate-card > .source-note p { overflow-wrap: anywhere; }
#cutoff-chart, #tr-university-chart, #tr-selected-chart { overflow-x: auto; }
#cutoff-chart svg { min-width: 920px; }
#tr-university-chart svg, #tr-selected-chart svg { min-width: 650px; }
#cutoff-chart svg text, #tr-university-chart svg text, #tr-selected-chart svg text { font-size: 16px !important; }
.preview-labels { font-size: 16px; }
.preview-values { font-size: 18px; }
@media (max-width: 1200px) {
  #analysis-shell .topbar { flex-wrap: wrap; }
  #analysis-shell .tabs { order: 3; width: 100%; }
}
@media (max-width: 1150px) {
  .candidate-columns { grid-template-columns: 1fr; }
  .bucket-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .bucket-head, .bucket-column > .full, .bucket-column > .empty-state { grid-column: 1 / -1; }
  .candidate-card, .candidate-card:nth-of-type(2n) { display: block; width: auto; margin: 0; }
}
@media (max-width: 800px) {
  .welcome-header nav { display: none; }
  .welcome-header { gap: 12px; }
  .welcome-header .button { padding: 10px 13px; gap: 10px; }
  .tabs button { flex: 0 0 auto; padding: 12px; font-size: 16px; }
  .workspace-strip { flex-wrap: wrap; }
  .workspace-strip > div { flex-wrap: wrap; gap: 12px; }
  .group-summary button { align-items: flex-start; flex-direction: column; }
  .group-summary strong { font-size: 26px; }
  .hero-description { font-size: 20px; }
  .note-bottom { flex-wrap: wrap; }
  .chart-header > span { max-width: none; }
  .bar-row { grid-template-columns: 100px minmax(0,1fr) 78px; gap: 8px; }
}
@media (max-width: 650px) {
  .bucket-column { grid-template-columns: minmax(0, 1fr); }
  .card-heading { gap: 18px; }
  .candidate-logo.university-logo { width: 72px; height: 72px; }
  .subject-row, .subject-labels { grid-template-columns: minmax(0,1fr) 65px 58px 24px; }
}
@media print {
  #cutoff-chart svg, #tr-university-chart svg, #tr-selected-chart svg { min-width: 0; }
  .bucket-column { display: block; }
  .candidate-card { margin-top: 12px; }
}

/* A deep evergreen frame gives the top and bottom a clear visual anchor. */
.welcome-header, #analysis-shell .topbar {
  background: linear-gradient(120deg, #174d3e, #10382f);
  color: #f2f7ec;
  border-color: #33634f;
  box-shadow: 0 5px 18px #102d2926;
}
.welcome-header.wrap, .welcome-footer.wrap {
  width: 100%; max-width: none;
  padding-inline: max(48px, calc((100% - 1280px) / 2));
}
.welcome-header nav a { color: #d7e8da; }
.welcome-header nav a:hover { color: #fff; }
.welcome-header nav a::after { background: #d1e9af; }
.welcome-header .button-ink { background: #d2e8b8; color: #173d2d; border-color: #d2e8b8; box-shadow: none; }
.welcome-header .button-ink:hover { background: #e3f1ce; }
#analysis-shell .brand, #analysis-shell .brand span:not(.brand-symbol),
#analysis-shell .edition, #analysis-shell .edition b { color: #d7e8da; }
#analysis-shell .tabs button { color: #d7e8da; }
#analysis-shell .tabs button:hover { background: #285a48; color: #fff; }
#analysis-shell .tabs button[aria-selected=true] { background: #d2e8b8; color: #173d2d; box-shadow: inset 0 -3px 0 #a3cb7d; }
.welcome-footer, #analysis-shell footer {
  background: linear-gradient(120deg, #123c31, #092b25);
  color: #d7e8da;
  border-color: #37634f;
  padding-block: 32px;
}
.welcome-footer p, .welcome-footer a, #analysis-shell footer p,
#analysis-shell footer span, #analysis-shell footer .text-btn { color: #d7e8da; }
.welcome-footer a:hover, #analysis-shell footer .text-btn:hover { color: #fff; }
#landing { background: radial-gradient(ellipse 70% 650px at 85% 5%, #78a98c44, transparent 80%), linear-gradient(155deg, #d9e6d1, #c9ddcf 35%, #dce7d5 65%, #c6dbcc); }
#analysis-shell { background: radial-gradient(ellipse 100% 650px at 100% 0%, #8bb59b4d, transparent 80%), linear-gradient(150deg, #cddfce, #c3d8cb 60%, #d5e2cc); }
/* The original university PNG has a tight transparent canvas, without JPG padding. */
.university-logo[data-logo-variant="ajou"],
.candidate-logo.university-logo[data-logo-variant="ajou"] {
  width: 92px; height: 92px; background: transparent;
  border: 0; border-radius: 0; box-shadow: none; overflow: visible;
}
.university-logo[data-logo-variant="ajou"] img { width: 100%; height: 100%; }
.university-logo[data-logo-variant="ajou"] a:hover { background: transparent; }
@media (max-width: 800px) {
  .welcome-header.wrap, .welcome-footer.wrap { padding-inline: 20px; }
}
@media print {
  #analysis-shell { background: white; }
}

/* Social sign-in is optional; the analysis remains available to visitors. */
.header-actions, .analysis-account { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.auth-nav-button { border: 1px solid #88b29a; border-radius: 5px; background: transparent; color: #f0f7ea; font: inherit; font-size: 16px; font-weight: 580; padding: 10px 18px; min-height: 44px; cursor: pointer; white-space: nowrap; }
.auth-nav-button:hover { background: #356c54; border-color: #cbe1b8; transform: translateY(-1px); }
.auth-open { overflow: hidden; }
.auth-dialog { width: min(460px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 40px); padding: 0; border: 1px solid #aec5aa; border-radius: 20px; color: var(--ink); background: #eaf1e4; box-shadow: 0 24px 90px #06271d66; margin: auto; overflow: auto; }
.auth-dialog::backdrop { background: #092e26b8; backdrop-filter: blur(5px); }
.auth-dialog[open] { animation: auth-enter .24s var(--ease, ease-out) both; }
.auth-sheet { position: relative; padding: 44px 36px 28px; background: radial-gradient(ellipse at 100% 0%, #d0e2c4, transparent 70%); }
.auth-close { position: absolute; top: 12px; right: 14px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; color: #476453; font-size: 28px; line-height: 1; cursor: pointer; }
.auth-close:hover { background: #cbdcc6; color: #183e2c; }
.auth-brand { display: block; width: 165px; height: auto; margin-bottom: 25px; }
.auth-sheet h2 { font-size: 28px; line-height: 1.4; margin: 0 0 8px; letter-spacing: -.045em; }
#auth-dialog-description { font-size: 16px; color: #486251; line-height: 1.7; margin: 0 0 28px; }
.auth-providers { display: grid; gap: 12px; }
.auth-provider { display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 0 16px; width: 100%; min-height: 60px; border-radius: 8px; padding: 14px 18px; text-align: center; font-size: 17px; font-weight: 600; cursor: pointer; }
.auth-provider svg { grid-column: 1; grid-row: 1 / 3; }
.auth-provider > span { grid-column: 2; }
.auth-provider-note { grid-column: 2; font-size: 13px; line-height: 1.5; font-weight: 450; }
.auth-provider-note:empty { display: none; }
.auth-kakao { color: #231d00; background: #fee500; border: 1px solid #ddcb08; }
.auth-kakao:hover:enabled { background: #f3dc00; transform: translateY(-2px); box-shadow: 0 5px 12px #8d7c1525; }
.auth-google { color: #253a30; background: #fff; border: 1px solid #a9bba7; }
.auth-google:hover:enabled { background: #f2f7ee; transform: translateY(-2px); box-shadow: 0 5px 12px #254d3020; }
.auth-provider:disabled { cursor: not-allowed; opacity: .75; }
.auth-detail { font-size: 15px; color: #4f6958; text-align: center; margin: 20px 0; }
.auth-browse { display: flex; justify-content: center; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 8px; font: inherit; font-size: 16px; background: transparent; border: 0; color: #23553b; cursor: pointer; }
.auth-browse:hover { color: #113c27; background: #d4e4cd; border-radius: 5px; }
.auth-status { font-size: 15px; line-height: 1.7; margin: 17px 0 0; text-align: center; color: #49634e; }
.auth-status:empty { display: none; }
.auth-status[data-error=true] { color: #8c342b; background: #f3e1d9; padding: 12px; border-radius: 5px; }
.auth-profile { display: flex; align-items: center; gap: 17px; padding: 18px 0 24px; min-width: 0; }
.auth-profile > div { min-width: 0; }
.auth-avatar { display: grid; place-items: center; flex-shrink: 0; width: 60px; height: 60px; border-radius: 18px; background: #1b5941; color: #eff7e5; font-size: 25px; font-weight: 650; }
.auth-profile strong { font-size: 21px; }
.auth-profile p { font-size: 16px; margin: 4px 0; overflow-wrap: anywhere; }
.auth-profile div > span { font-size: 15px; color: #4a6652; }
.auth-account-actions { display: grid; gap: 10px; }
@keyframes auth-enter { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@media(max-width:800px) { .analysis-account { margin-left: auto; } .header-actions { gap: 8px; } .auth-nav-button { padding: 9px 12px; } }
@media(max-width:440px) { .welcome-header .mathesis-logo { width: 120px; } .welcome-header .button { font-size: 15px; padding: 9px 10px; gap: 5px; } .welcome-header .button > span { display: none; } .auth-sheet { padding: 40px 23px 25px; } .auth-sheet h2 { font-size: 26px; } }
@media(prefers-reduced-motion:reduce) { .auth-dialog[open] { animation: none; } }
.motion-off .auth-dialog[open] { animation: none; }
@media print { .auth-nav-button, .auth-dialog { display: none !important; } }
