:root {
  --db-primary: #F2557C;
  --db-primary-hover: #E4476C;
  --db-primary-soft: #FFF2F6;
  --db-trust: #245B49;
  --db-trust-soft: #EDF6F1;
  --db-text: #25272B;
  --db-muted: #6B7280;
  --db-border: #E7E3E5;
  --db-surface: #FFFFFF;
  --db-background: #FAFAFA;
  --db-success: #2F9E67;
  --db-success-soft: #EDF8F2;
  --db-info: #3979D9;
  --db-info-soft: #EEF5FF;
  --db-warning: #E39A28;
  --db-warning-soft: #FFF7E8;
  --db-danger: #D65C67;
  --db-danger-soft: #FFF0F2;
  --brand-cream: #fafafb;
  --brand-green: #236b52;
  --brand-green-dark: #174c3a;
  --brand-green-soft: #e9f4ed;
  --brand-pink: #f44778;
  --brand-pink-soft: #fff0f4;
  --brand-ink: #222222;
  --brand-muted: #626b67;
  --brand-line: #e4e8e5;
  --brand-shadow: 0 8px 22px rgba(34, 34, 34, .06);
  --font-family-base: "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --bom-pink: var(--db-primary);
  --bom-pink-strong: var(--db-primary-hover);
  --bom-pink-soft: var(--db-primary-soft);
  --bom-green: var(--db-trust);
  --bom-mint: var(--db-trust-soft);
  --bom-cream: #fffaf3;
  --bom-gray-bg: var(--db-background);
  --bom-card: var(--db-surface);
  --bom-border: var(--db-border);
  --bom-text: var(--db-text);
  --bom-muted: var(--db-muted);
  --bom-purple-soft: #f3edff;
  --bom-yellow-soft: #fff5d9;
  --bom-blue-soft: #edf6ff;
  --settings-green: var(--bom-pink);
  --settings-green-dark: var(--bom-pink-strong);
  --settings-mint: var(--bom-pink-soft);
  --settings-cream: var(--bom-gray-bg);
  --settings-ink: var(--bom-text);
  --settings-muted: var(--bom-muted);
  --settings-line: var(--bom-border);
  --settings-shadow: 0 8px 24px rgba(45, 36, 39, .055);
}

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body, button, input, select, textarea { font-family: var(--font-family-base); font-synthesis: none; }
body { color: var(--brand-ink); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, p, li, label, button, a, span, strong, small { word-break: keep-all; overflow-wrap: break-word; }
h1, h2, h3, h4 { letter-spacing: -.025em; line-height: 1.3; }
p, li { letter-spacing: -.006em; }
.institution-content h2, .institution-content h3, .mvp-page h1, .mvp-page h2 { font-weight: 800; }
.institution-content p, .mvp-page p { line-height: 1.7; }
.brand-name, .nav-link, .header-title h1, .demo-mode-badge { font-weight: 800; }
.welcome-copy h2, .settings-hero h2, .section-title h2, .problem h2, .offer h2, .apply h2 { letter-spacing: -.025em; font-weight: 800; }
.hero h1 { letter-spacing: -.032em; font-weight: 800; }
.lead, .section-heading > p, .section-title > p, .settings-hero p { line-height: 1.7; }
.primary-button, .secondary-button, .action-button, .settings-button, .import-button, .mvp-button, .button { min-height: 48px; letter-spacing: -.012em; font-weight: 800; }

/* Shared app surface: white cards, restrained borders, pink only for actions. */
.institution-content { background: var(--bom-gray-bg); }
.content-card,
.summary-card,
.settings-panel,
.settings-save-bar,
.record-card,
.evaluation-card,
.library-card,
.lesson-card,
.program-card {
  border-color: var(--bom-border);
  border-radius: 18px;
  background: var(--bom-card);
  box-shadow: 0 8px 24px rgba(45, 36, 39, .055);
}

.primary-button,
.action-button.primary,
.settings-button.primary,
.mvp-button.primary {
  border-color: var(--bom-pink);
  background: var(--bom-pink);
  color: #fff;
}

.secondary-button,
.action-button.secondary,
.settings-button.secondary {
  border-color: #efc5d2;
  background: #fff;
  color: var(--bom-pink-strong);
}

.institution-settings-page { background: var(--bom-gray-bg); }
.settings-hero { border-color: #f4d3dd; background: linear-gradient(135deg, #fff 0%, var(--bom-pink-soft) 100%); }
.settings-hero::after { background: rgba(240, 82, 138, .07); }
.settings-eyebrow::before { background: var(--bom-pink); box-shadow: 0 0 0 5px rgba(240, 82, 138, .12); }
.form-field input,
.form-field select { border-color: var(--bom-border); }
.manager-note,
.safety-notice { border-color: #dcebe3; background: #f3faf6; }
.manager-note > span,
.safety-notice > span { background: var(--bom-green); }
.visibility-option input:checked + .visibility-card { border-color: var(--bom-pink); background: #fff8fa; box-shadow: 0 0 0 3px rgba(240, 82, 138, .10); }
.visibility-option input:checked + .visibility-card .visibility-check { border-color: var(--bom-pink); background: var(--bom-pink); }

/* The institution home screen is the visual source of truth. */
.institution-content { background: var(--color-background, #fafafb); }
.settings-panel,
.summary-card,
.settings-save-bar,
.import-hero,
.import-panel,
.preview-card,
.data-management-page .mvp-metric,
.data-management-page .mvp-form-card {
  border-color: var(--color-border, #e9e9ec);
  box-shadow: var(--shadow-card, 0 8px 22px rgba(34,34,34,.06));
}

/* Landing uses the same pink primary, white cards and neutral canvas as the app. */
body:has(.site-header) { background: #fafafb; }
.site-header .brand { color: #d93667; }
.site-header .brand-mark,
.site-header .button,
.hero .button,
.mobile-sticky-cta .button,
.apply-form .button { background: #f44778; box-shadow: 0 8px 18px rgba(244,71,120,.20); }
.site-header .button:hover,
.hero .button:hover,
.mobile-sticky-cta .button:hover,
.apply-form .button:hover { background: #d93667; }
.hero h1 em,
.text-link,
.recipe-action,
.apply-form a { color: #d93667; }
.hero-demo,
.product-mockup,
.problem-grid article,
.result-card,
.recipe-grid article,
.safety-grid article,
.apply-form { border-color: #e9e9ec; box-shadow: var(--brand-shadow); }
.results { background: #f6f6f8; }
.pilot { background: #fff3f6; }
.flow { background: #2f3035; }
.apply { background: #f6f6f8; }
@media (max-width: 768px) {
  h1, h2, h3, h4 { letter-spacing: -.018em; }
  .institution-header .demo-return-link { width: 44px; min-width: 44px; min-height: 44px; justify-content: center; padding: 0; font-size: 0; }
  .institution-header .demo-return-link::before { content: "↩"; font-size: 17px; }
  .institution-header .header-actions { gap: 6px; }
}

/* Landing palette aligned with the supplied Dasibom product screens. */
body:has(.site-header) {
  --green: #f44778;
  --green-dark: #d93667;
  --mint: #fff0f4;
  --cream: #fafafb;
  --ink: #222222;
  --muted: #626b67;
  --line: #e9e9ec;
  --shadow: 0 8px 24px rgba(34, 34, 34, .065);
  background: #fafafb;
}

.site-header { background: rgba(250, 250, 251, .94); }
.site-header .brand,
.hero h1 em,
.text-link,
.recipe-action,
.apply-form a { color: #d93667; }

.site-header .brand-mark,
.site-header .button,
.hero .button,
.mobile-sticky-cta .button,
.apply-form .button {
  background: #f44778;
  color: #fff;
  box-shadow: 0 8px 18px rgba(244, 71, 120, .20);
}

.hero .button.secondary-demo {
  border: 1px solid #f44778;
  background: #fff;
  color: #d93667;
  box-shadow: none;
}

.hero .button.secondary-demo:hover,
.hero .button.secondary-demo:focus-visible {
  background: #fff0f4;
  color: #b92d57;
}

.apply-form .button.submit,
.mobile-sticky-cta .button,
.site-header .button {
  color: #fff;
}

.operations,
.operation-history,
.apply { background: #f7f7f9; }
.lesson-showcase,
.recipes,
.evaluation-prep { background: #ffffff; }
.quick-record { background: #fff7f9; }

.operation-grid li,
.problem-grid article,
.recipe-grid article,
.required-records,
.optional-records,
.history-panel,
.prep-grid article,
.apply-form {
  border-color: #e9e9ec;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(34, 34, 34, .055);
}

.operation-grid li:not(:last-child)::after { color: #f3a3ba; }
.operation-grid b,
.lesson-showcase .problem-icon,
.required-records article > b,
.prep-grid span { color: #e83d70; }
.operation-grid span { color: #222222; }
.lesson-showcase .problem-icon,
.required-records article > b,
.prep-grid span { background: #fff0f4; }

.quick-record .eyebrow,
.quick-record .section-title h2,
.required-records strong,
.optional-records li { color: #222222; }
.quick-record .section-title > p,
.required-records small,
.optional-records p { color: #626b67; }
.required-records > span,
.optional-records > span { color: #d93667; }
.required-records article { border-bottom-color: #f0e3e7; }
.optional-records li { background: #fff5f7; }
.required-records em { background: #fff0f4; color: #d93667; }

.history-metrics article { background: #fafafb; }
.handoff-note { border-left-color: #f44778; background: #fff3f6; }
.history-head strong { color: #d93667; }
.future-grid span { border-color: #efcad5; background: #fff9fa; }

.review-note,
.privacy-note { background: #fff7f9; }
input:focus,
select:focus,
textarea:focus { border-color: #f44778; box-shadow: 0 0 0 3px rgba(244, 71, 120, .11); }
