﻿:root {
  --navy: #061844;
  --navy-2: #102a5c;
  --blue: #3156d4;
  --green: #13865f;
  --amber: #c47a12;
  --red: #d54444;
  --gray-25: #fbfcfe;
  --gray-50: #f4f6fa;
  --gray-100: #e8edf5;
  --gray-300: #c9d2e1;
  --text: #172033;
  --muted: #66738a;
  --panel: #ffffff;
  --shadow: 0 16px 36px rgba(17, 31, 61, 0.08);
}

* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--text);
  background: var(--gray-50);
  font-family: Arial, "Noto Sans KR", "Malgun Gothic", sans-serif;
}
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
textarea { resize: vertical; line-height: 1.55; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px 1fr; }
.sidebar {
  position: sticky; top: 0; height: 100vh; padding: 22px;
  background: var(--navy); color: white; display: flex; flex-direction: column; gap: 22px;
}
.brand { display: grid; gap: 4px; }
.brand strong { font-size: 32px; letter-spacing: 0; }
.brand span { color: #d8e2f3; font-size: 13px; }
.sidebar-footer {
  display: grid;
  gap: 4px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.14);
  color: #d8e2f3;
  font-size: 11px;
}
.sidebar-footer strong {
  color: #fff;
  font-size: 13px;
}
.nav, .sidebar-actions { display: grid; gap: 8px; }
.sidebar-actions { margin-top: auto; }
.nav-button, .ghost-button {
  min-height: 42px; border: 1px solid rgba(255,255,255,.14); border-radius: 8px;
  color: #eef4ff; background: transparent; text-align: left; padding: 10px 12px; font-weight: 700;
}
.nav-button.active, .nav-button:hover, .ghost-button:hover { background: rgba(255,255,255,.12); }
.file-label { display: block; }
#restoreJson { display: none; }
.main { min-width: 0; padding: 24px; }
.topbar { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 20px; }
.eyebrow { margin: 0 0 5px; color: var(--muted); font-size: 12px; font-weight: 800; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: 28px; }
h2 { margin-bottom: 12px; color: var(--navy); font-size: 18px; }
.top-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.save-pill {
  display: inline-flex; align-items: center; min-height: 38px; padding: 8px 12px;
  border: 1px solid var(--gray-100); border-radius: 999px; background: white; color: var(--green); font-size: 13px;
}
.primary-button, .line-button { min-height: 38px; border-radius: 8px; padding: 8px 12px; font-weight: 800; }
.primary-button { border: 0; color: white; background: var(--blue); }
.line-button { border: 1px solid var(--gray-300); color: var(--navy); background: white; }
.line-button.accent { border-color: #b8a7ff; color: #5634c9; }
.danger-text { border: 0; background: transparent; color: var(--red); font-weight: 800; }
.button-row { display: flex; gap: 8px; flex-wrap: wrap; }

.view { display: none; }
.view.active { display: block; }
.dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.dashboard-command-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 18px; }
.dashboard-welcome-card {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, #ffffff 0%, #f5f8ff 100%);
}
.dashboard-welcome-card h2 {
  margin: 0 0 8px;
  color: var(--navy);
  font-size: 24px;
}
.dashboard-welcome-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}
.dashboard-card {
  min-width: 0; padding: 20px; border: 1px solid var(--gray-100); border-radius: 8px;
  background: white; box-shadow: var(--shadow);
}
.dashboard-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.dashboard-card-head h2 { margin: 0; font-size: 17px; }
.dashboard-card-head h2 span { margin-left: 4px; color: var(--muted); font-size: 11px; font-weight: 900; }
.dashboard-card-desc { margin: 0 0 20px; color: var(--muted); text-align: center; font-size: 13px; }
.today-focus-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.today-focus-layout section + section { padding-left: 18px; border-left: 1px solid var(--gray-100); }
.today-focus-layout h3 { margin: 0 0 10px; color: var(--navy); font-size: 13px; }
.today-check-list, .deadline-list, .recent-list, .dashboard-goal-card ul {
  display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; color: var(--text); font-size: 13px;
}
.today-check-list li { display: flex; align-items: center; gap: 8px; }
.fake-checkbox { width: 14px; height: 14px; flex: 0 0 auto; border: 1px solid var(--gray-300); border-radius: 4px; background: white; }
.deadline-list li { display: flex; align-items: center; gap: 8px; }
.deadline-list strong {
  min-width: 42px; padding: 3px 8px; border-radius: 999px; color: var(--red); background: #fff0f0;
  text-align: center; font-size: 12px;
}
.recent-title { margin-top: 18px !important; padding-top: 14px; border-top: 1px solid var(--gray-100); }
.recent-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.recent-list small, .dashboard-empty { color: var(--muted); font-size: 12px; }
.dashboard-report-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 8px 0 12px; }
.dashboard-report-button { width: 100%; }
.business-status-section { grid-column: 1 / -1; }
.dashboard-business-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.business-status-card { display: grid; gap: 16px; padding: 16px; border: 1px solid var(--gray-100); border-radius: 8px; background: var(--gray-25); }
.business-status-top { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 12px; align-items: start; }
.business-status-top h3 { margin: 0 0 8px; color: var(--navy); font-size: 15px; line-height: 1.25; }
.business-status-top p { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.business-icon {
  display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px;
  color: var(--blue); background: #edf4ff; font-weight: 900;
}
.business-status-metrics { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--gray-100); padding-top: 12px; }
.business-status-metrics div + div { border-left: 1px solid var(--gray-100); padding-left: 14px; }
.business-status-metrics span { display: block; color: var(--muted); font-size: 12px; }
.business-status-metrics strong { display: block; margin-top: 4px; color: var(--navy); font-size: 22px; }
.dashboard-detail-button { width: 100%; }
.dashboard-bottom-grid { grid-column: 1 / -1; display: grid; grid-template-columns: 7fr 3fr; gap: 18px; }
.dashboard-goals-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.dashboard-goal-card { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--gray-100); border-radius: 8px; background: var(--gray-25); }
.dashboard-goal-card h3 { margin: 0; color: var(--navy); font-size: 14px; }
.dashboard-goal-card li { position: relative; padding-left: 10px; }
.dashboard-goal-card li::before { content: ""; position: absolute; left: 0; top: 8px; width: 4px; height: 4px; border-radius: 50%; background: var(--navy); }
.goal-progress-label { color: var(--navy); font-size: 12px; font-weight: 800; }
.goal-progress { height: 7px; border-radius: 999px; background: #e2e8f2; overflow: hidden; }
.goal-progress span { display: block; height: 100%; border-radius: inherit; background: var(--blue); }
.ceo-memo-card textarea { min-height: 180px; resize: vertical; }
.panel, .division-list-panel, .form-section { background: var(--panel); border: 1px solid var(--gray-100); border-radius: 8px; box-shadow: var(--shadow); }
.panel { padding: 18px; min-width: 0; }
.panel.wide { grid-column: span 2; }
.panel-head, .section-line, .detail-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.panel-head h2, .section-line h2 { margin-bottom: 0; }

input, textarea, select {
  width: 100%; border: 1px solid var(--gray-300); border-radius: 8px; background: white;
  color: var(--text); padding: 10px 11px; outline: none;
}
input:focus, textarea:focus, select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(49,86,212,.12); }

.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 720px; }
th, td { border: 1px solid var(--gray-100); padding: 10px; text-align: left; vertical-align: top; font-size: 13px; }
th { color: var(--navy); background: #f8faff; font-weight: 800; white-space: nowrap; }
td { background: white; }
.compact table { min-width: 420px; }
.editable-table input, .editable-table textarea, .editable-table select { border: 0; border-radius: 0; background: transparent; padding: 5px; min-width: 90px; }
.editable-table textarea { min-height: 54px; }
.item-table { min-width: 1280px; }
.weekly-table { min-width: 1040px; }
.center { text-align: center; vertical-align: middle; }
.center input[type="checkbox"] { width: auto; transform: scale(1.15); }
.period-cell { min-width: 260px; }
.period-cell select { width: calc(50% - 4px); display: inline-block; margin: 2px; border: 1px solid var(--gray-100); border-radius: 6px; }
.remove-row { width: 32px; height: 32px; border: 1px solid var(--gray-300); border-radius: 8px; background: white; color: var(--red); font-weight: 900; }

.donut-wrap { display: grid; grid-template-columns: 220px 1fr; gap: 14px; align-items: center; }
.legend { display: grid; gap: 8px; font-size: 13px; }
.legend-item { display: flex; align-items: center; gap: 8px; }
.legend-dot { width: 10px; height: 10px; border-radius: 50%; }
.tiny-done { display:inline-flex; margin-left: 4px; padding: 2px 6px; border-radius:999px; background:#e7f6ef; color:var(--green); font-size:11px; font-weight:800; }

.status-badge { display: inline-flex; align-items: center; min-height: 26px; padding: 4px 9px; border-radius: 999px; font-weight: 800; font-size: 12px; color: white; }
.status-idea { background: #778195; }
.status-ready { background: var(--amber); }
.status-active { background: var(--green); }
.status-deal { background: #4b65d9; }
.status-done { background: #343b4d; }
.status-hold { background: #9098a8; }

.division-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 16px; align-items: start; }
.division-list-panel { padding: 16px; position: sticky; top: 20px; }
.division-list { display: grid; gap: 8px; }
.division-item { border: 1px solid var(--gray-100); border-radius: 8px; background: var(--gray-25); padding: 11px; text-align: left; }
.division-item.active { border-color: var(--blue); box-shadow: inset 3px 0 0 var(--blue); background: white; }
.division-item strong { display: block; margin-bottom: 4px; color: var(--navy); }
.division-item span { color: var(--muted); font-size: 12px; }
.division-detail { display: grid; gap: 14px; }
.division-title-input { font-size: 24px; font-weight: 900; color: var(--navy); }
.summary-cards { display: grid; grid-template-columns: 1fr 1fr 2fr 1fr; gap: 10px; }
.summary-card { min-height: 86px; padding: 14px; border: 1px solid var(--gray-100); border-radius: 8px; background: white; box-shadow: var(--shadow); color: var(--muted); font-size: 12px; font-weight: 800; }
.summary-card strong { display: block; margin-top: 14px; color: var(--navy); font-size: 15px; }
.summary-card select, .summary-card textarea { margin-top: 8px; font-size: 13px; font-weight: 400; }
.card-label { color: var(--muted); font-size:12px; font-weight:800; margin-bottom:8px; }
.year-goal-card { min-height: 118px; }
.year-goal-list { display:grid; gap:6px; }
.year-goal-input { min-height: 32px; padding: 6px 8px; font-size: 13px; }

.form-section { padding: 18px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
label { display: grid; gap: 7px; color: var(--navy); font-weight: 800; }
label textarea { min-height: 116px; font-weight: 400; color: var(--text); }
.platforms { border: 1px solid var(--gray-100); border-radius: 8px; padding: 14px; margin: 0; }
.platforms legend { color: var(--navy); font-weight: 800; }
#platformChecks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin-bottom: 10px; }
.check-option, .checklist-row { display: flex; align-items: center; gap: 8px; color: var(--text); font-weight: 400; }
.check-option input, .checklist-row input[type="checkbox"] { width: auto; }
.monthly-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.month-goal { min-height: 92px; }
.split-section { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.checklist { display: grid; gap: 8px; }
.checklist-row input[type="text"] { flex: 1; }
.large-note { min-height: 192px; }
.filter-bar { display:grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap:8px; margin: 14px 0 8px; }
.item-summary { margin-bottom: 8px; color: var(--muted); font-size: 13px; font-weight: 800; }
.hint { color: var(--muted); font-size: 12px; font-weight: 400; }

.print-area { display: none; }
.print-document { color: #111a35; background: white; font-size: 12px; }
.print-document h1 { text-align: center; color: var(--navy); margin: 20px 0 6px; }
.print-document h2 { margin-top: 22px; border-bottom: 1px solid #b8c1d2; padding-bottom: 8px; }
.print-document .print-subtitle { text-align: center; font-weight: 800; margin-bottom: 24px; }
.print-document table { min-width: 0; page-break-inside: avoid; }
.summary-print-document {
  font-family: Arial, "Noto Sans KR", sans-serif;
  color: #111827;
  font-size: 10.5pt;
  line-height: 1.4;
}
.summary-print-page {
  min-height: 250mm;
  page-break-after: always;
}
.summary-print-page:last-child {
  page-break-after: auto;
}
.summary-print-head {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
  padding-bottom: 9px;
  margin-bottom: 10px;
  border-bottom: 2px solid #071a3f;
}
.summary-print-head p {
  margin: 0 0 2px;
  color: #52627b;
  font-size: 9pt;
  font-weight: 800;
}
.summary-print-head h1 {
  margin: 0;
  text-align: left;
  color: #071a3f;
  font-size: 20pt;
}
.summary-print-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 14px;
  color: #394963;
  font-size: 9.2pt;
}
.summary-print-meta span strong {
  color: #071a3f;
}
.summary-print-grid {
  display: grid;
  gap: 10px;
}
.summary-print-grid.two-col {
  grid-template-columns: 1fr 1fr;
}
.summary-print-document h2 {
  margin: 8px 0 6px;
  padding-bottom: 4px;
  border-bottom: 1px solid #d8e2f0;
  color: #071a3f;
  font-size: 12.5pt;
}
.summary-text-block {
  margin: 0 0 7px;
  page-break-inside: avoid;
}
.summary-text-block h3 {
  margin: 0 0 3px;
  color: #283a59;
  font-size: 10.2pt;
}
.summary-text-block p,
.summary-goals {
  margin: 0;
  white-space: pre-wrap;
  color: #1f2937;
}
.summary-decision-box {
  display: grid;
  gap: 6px;
}
.summary-decision-box div {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 8px;
  padding-bottom: 5px;
  border-bottom: 1px solid #edf1f7;
}
.summary-decision-box strong {
  color: #283a59;
}
.summary-strategy-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px 12px;
}
.summary-month-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 14px;
}
.summary-month-list div {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 6px;
  padding-bottom: 3px;
  border-bottom: 1px solid #edf1f7;
}
.summary-month-list strong {
  color: #071a3f;
}

@media (max-width: 1180px) {
  .dashboard-grid { grid-template-columns: 1fr 1fr; }
  .dashboard-command-grid, .dashboard-bottom-grid { grid-template-columns: 1fr; }
  .dashboard-business-grid, .dashboard-goals-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .panel.wide { grid-column: span 2; }
  .summary-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .monthly-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .app-shell, .division-layout, .split-section { grid-template-columns: 1fr; }
  .sidebar, .division-list-panel { position: static; height: auto; }
  .nav, .sidebar-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-grid, .form-grid { grid-template-columns: 1fr; }
  .today-focus-layout, .dashboard-report-controls, .dashboard-business-grid, .dashboard-goals-grid { grid-template-columns: 1fr; }
  .today-focus-layout section + section { padding-left: 0; border-left: 0; padding-top: 14px; border-top: 1px solid var(--gray-100); }
  .panel.wide { grid-column: auto; }
  .topbar, .panel-head, .detail-title-row { flex-direction: column; align-items: stretch; }
}
@media (max-width: 560px) {
  .main { padding: 14px; }
  .summary-cards, .monthly-grid, .filter-bar { grid-template-columns: 1fr; }
  .top-actions, .nav, .sidebar-actions { grid-template-columns: 1fr; display: grid; }
  .donut-wrap { grid-template-columns: 1fr; justify-items: center; }
  h1 { font-size: 23px; }
}

@media print {
  body { background: white; }
  .app-shell { display: none; }
  .print-area { display: block; }
  @page { size: A4 portrait; margin: 12mm; }
}

/* --- 2026-06 UX refinement patch --- */
.topbar {
  align-items: center;
  padding: 18px 20px;
  margin: -4px 0 16px;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(17,31,61,.05);
}
.topbar h1 { font-size: 26px; }
.top-actions .line-button,
.top-actions .primary-button { min-height: 34px; padding: 7px 11px; }
.save-pill { min-height: 34px; }

.detail-title-row {
  padding: 12px 14px;
  background: white;
  border: 1px solid var(--gray-100);
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(17,31,61,.05);
}
.division-title-input {
  border: 0;
  box-shadow: none !important;
  background: transparent;
  padding: 4px 8px;
}
.summary-cards {
  grid-template-columns: 1fr 1fr minmax(360px, 2fr) 1fr;
  gap: 12px;
}
.summary-card {
  min-height: 92px;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 14px 16px;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(17,31,61,.05);
}
.summary-card select { margin-top: 2px; min-height: 42px; }
.year-goal-card { min-height: 92px; }
.year-goal-list { grid-template-columns: 1fr; gap: 5px; }
.year-goal-input { min-height: 30px; font-size: 13px; padding: 5px 8px; }

.form-section {
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(17,31,61,.05);
}
.form-section h2 { display: flex; align-items: baseline; gap: 8px; }
.form-grid { grid-template-columns: 1fr 1fr 1.2fr 1fr; align-items: stretch; }
.form-grid > label,
.form-grid > fieldset { min-width: 0; }
label textarea,
textarea {
  overflow: hidden;
  min-height: 46px;
}
textarea[data-field="brochureArea"] { min-height: 150px; }
.platforms { min-height: 150px; }
#platformChecks { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.filter-bar {
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  padding: 10px;
  background: #f8faff;
  border: 1px solid var(--gray-100);
  border-radius: 12px;
}
.item-summary { padding-left: 4px; }
.item-table { min-width: 1220px; }
.editable-table td { padding: 6px 8px; }
.editable-table textarea {
  min-height: 38px;
  line-height: 1.35;
}
.editable-table select { min-height: 34px; }
.period-cell { min-width: 260px; }
.period-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
.period-cell select { width: 100%; margin: 0; border: 1px solid var(--gray-100); border-radius: 8px; background: #fff; }
.period-hint { display: inline-flex; margin-top: 6px; color: var(--muted); font-size: 12px; font-weight: 800; }

.monthly-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.month-card-auto {
  min-height: 118px;
  border: 1px solid var(--gray-100);
  border-radius: 12px;
  background: #fff;
  padding: 12px;
}
.month-card-title { color: var(--navy); font-weight: 900; margin-bottom: 8px; }
.month-card-body {
  color: var(--text);
  font-size: 13px;
  line-height: 1.55;
  white-space: normal;
}
.empty-month .month-card-body { color: var(--muted); }
.weekly-table textarea { min-height: 38px; }
.large-note { min-height: 120px; }

@media (max-width: 1400px) {
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1180px) {
  .summary-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .monthly-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --- v4 媛먯꽦/媛?낆꽦 ?붿옄???⑥튂 --- */
:root {
  --navy: #071a3f;
  --navy-2: #18345f;
  --blue: #4169e1;
  --sky: #eef5ff;
  --lilac: #f4f0ff;
  --cream: #fffaf0;
  --mint: #eefaf5;
  --line-soft: #dce6f3;
  --shadow-soft: 0 18px 45px rgba(36, 57, 103, 0.09);
}
body {
  background:
    radial-gradient(circle at top left, rgba(236,245,255,.92), transparent 34%),
    linear-gradient(180deg, #f6f8fc 0%, #eef2f8 100%);
}
.sidebar {
  background: linear-gradient(180deg, #061844 0%, #0c234f 55%, #102a5c 100%);
  box-shadow: 14px 0 40px rgba(6,24,68,.16);
}
.main { padding: 22px 26px 34px; }
.topbar {
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(243,248,255,.95));
  border: 1px solid rgba(201, 210, 225, .72);
  box-shadow: var(--shadow-soft);
}
.topbar h1 { letter-spacing: -0.04em; }
.primary-button, .line-button, .ghost-button, .nav-button {
  border-radius: 12px;
}
.line-button.soft, .upload-label {
  background: #f7f9fd;
  border-color: #d6e0ef;
  color: #102a5c;
}
.upload-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 12px;
  font-weight: 800;
  cursor: pointer;
}
.hidden-file { display: none; }

.detail-title-row {
  border-radius: 22px;
  padding: 18px 20px;
  background: linear-gradient(135deg, #ffffff, #f8fbff);
  box-shadow: var(--shadow-soft);
}
.detail-title-row .line-button {
  width: 78px;
  min-height: 50px;
  white-space: normal;
  line-height: 1.2;
  background: #ffffff;
}
.division-title-input {
  font-size: 28px;
  letter-spacing: -0.04em;
}
.summary-cards {
  grid-template-columns: 0.9fr 0.9fr minmax(520px, 2.5fr) 0.9fr;
}
.summary-card {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  border-color: rgba(201,210,225,.8);
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow-soft);
}
.summary-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, #4169e1, #9b8cff);
  opacity: .75;
}
.summary-card select, .summary-card textarea, .year-goal-input {
  background: #fbfdff;
  border-color: #d6e0ef;
}
.year-goal-list {
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 8px;
}
.year-goal-input { min-width: 0; }

.form-section {
  border-radius: 22px;
  padding: 24px;
  border-color: rgba(201,210,225,.76);
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-soft);
}
.form-section h2 {
  font-size: 19px;
  letter-spacing: -0.03em;
  margin-bottom: 18px;
}
/* ?ъ뾽 媛쒖슂: ??3移?+ ?꾨옒 釉뚮줈???뚮옯?쇱쑝濡??쎄린 醫뗪쾶 */
.form-section:first-of-type .form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 0.78fr;
  grid-template-areas:
    "vision description platforms"
    "brochure brochure platforms";
  gap: 16px;
}
.form-section:first-of-type .form-grid > label:nth-child(1) { grid-area: vision; }
.form-section:first-of-type .form-grid > label:nth-child(2) { grid-area: description; }
.form-section:first-of-type .form-grid > label:nth-child(3) { grid-area: brochure; }
.form-section:first-of-type .form-grid > fieldset { grid-area: platforms; }
.form-section:first-of-type label,
.platforms {
  padding: 18px;
  border: 1px solid #e1e8f2;
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.92));
}
.form-section:first-of-type label:nth-child(1) { background: linear-gradient(180deg, #ffffff, #fffaf0); }
.form-section:first-of-type label:nth-child(2) { background: linear-gradient(180deg, #ffffff, #f2f7ff); }
.form-section:first-of-type label:nth-child(3) { background: linear-gradient(180deg, #ffffff, #f7f3ff); }
.platforms { background: linear-gradient(180deg, #ffffff, #f4fbf8); }
.form-section:first-of-type label textarea {
  min-height: 190px;
  border-radius: 16px;
  border-color: #d8e3f1;
  background: rgba(255,255,255,.92);
  font-size: 15px;
  line-height: 1.65;
}
.form-section:first-of-type textarea[data-field="brochureArea"] {
  min-height: 260px;
}
#platformChecks { gap: 10px; }
.check-option {
  padding: 10px 12px;
  border-radius: 13px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(220,230,243,.72);
}
.check-option input { accent-color: var(--blue); }
#customPlatform { margin-top: 10px; border-radius: 14px; }

/* ?ㅽ뻾 ?꾩씠?? ?묒? ?먮굦? ?좎??섎릺 ???깅뵳?섍쾶 */
.form-section:nth-of-type(2) {
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,250,255,.96));
}
.form-section:nth-of-type(2) .section-line {
  align-items: flex-start;
}
.item-tools { justify-content: flex-end; }
.filter-bar {
  background: rgba(238,245,255,.82);
  border: 1px solid #dce6f3;
  border-radius: 18px;
  padding: 12px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.filter-bar select { border-radius: 14px; background: #fff; }
.item-summary {
  display: inline-flex;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #f3f7ff;
  color: #455a78;
}
.table-wrap {
  border: 1px solid #e0e8f3;
  border-radius: 18px;
  background: white;
  overflow: auto;
}
table { border-collapse: separate; border-spacing: 0; }
th, td { border-left: 0; border-right: 0; border-top: 0; }
th {
  background: #f6f9ff;
  color: #071a3f;
  font-size: 12px;
  letter-spacing: -0.02em;
}
.editable-table textarea,
.editable-table input,
.editable-table select {
  background: #ffffff;
  border: 1px solid transparent;
  border-radius: 12px;
}
.editable-table textarea:focus,
.editable-table input:focus,
.editable-table select:focus {
  background: #fbfdff;
  border-color: #b9c9e4;
}
.item-table { min-width: 1160px; }
.item-table textarea { min-height: 44px; }
.period-cell { min-width: 235px; }
.period-row { grid-template-columns: .9fr .7fr .7fr; }
.period-cell select { border-color: #d8e2f0; }
.remove-row {
  border-radius: 12px;
  background: #fff7f7;
  border-color: #f0d4d4;
}

.month-card-auto {
  border-radius: 18px;
  border-color: #e0e8f3;
  background: linear-gradient(180deg, #ffffff, #fbfdff);
  box-shadow: 0 8px 20px rgba(17,31,61,.045);
}
.month-card-title { letter-spacing: -0.03em; }
.month-card-body { white-space: pre-line; }
.weekly-table { min-width: 960px; }
.split-section .form-section { background: rgba(255,255,255,.94); }

@media (max-width: 1480px) {
  .summary-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .year-goal-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-section:first-of-type .form-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "vision description"
      "brochure platforms";
  }
}
@media (max-width: 980px) {
  .form-section:first-of-type .form-grid {
    grid-template-columns: 1fr;
    grid-template-areas: "vision" "description" "brochure" "platforms";
  }
}

/* --- v5 compact & elegant layout patch --- */
:root {
  --shadow-soft: 0 10px 28px rgba(17,31,61,.055);
  --soft-blue: #f5f8ff;
  --soft-mint: #f7fbf9;
  --soft-cream: #fffdf7;
}
.main { padding: 16px 18px; }
.topbar { padding: 14px 18px; margin-bottom: 14px; border-radius: 18px; }
.topbar h1 { font-size: 24px; letter-spacing: -0.03em; }
.top-actions .line-button,
.top-actions .primary-button,
.save-pill { min-height: 32px; padding: 6px 10px; font-size: 13px; }
.division-layout { grid-template-columns: 255px minmax(0, 1fr); gap: 14px; }
.division-list-panel { padding: 14px; border-radius: 18px; }
.division-item { display:flex; align-items:center; gap:8px; padding:10px 11px; border-radius:14px; cursor:grab; }
.division-item:active { cursor:grabbing; }
.division-item small { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
.division-item-text { min-width:0; }
.drag-handle { color:#9aa8bd; font-weight:900; letter-spacing:-4px; cursor:grab; user-select:none; }
.dragging { opacity:.48; outline:2px dashed #8da2ff; outline-offset:2px; }
.detail-title-row { padding: 12px 16px; border-radius: 18px; }
.detail-title-row .line-button { width: auto; min-height: 38px; padding: 8px 13px; white-space: nowrap; }
.division-title-input { font-size: 26px; }
.summary-cards { grid-template-columns: 210px 210px minmax(360px, 1fr) 230px; gap: 10px; }
.summary-card { min-height: 84px; padding: 12px 14px; border-radius: 18px; }
.summary-card select { min-height: 40px; }
.year-goal-card { min-height: 118px; }
.year-goal-list { display:grid; grid-template-columns: 1fr !important; gap:7px; }
.year-goal-input { min-height: 34px; padding: 7px 10px; border-radius: 999px; background: #fbfdff; }
.form-section { padding: 18px; border-radius: 18px; margin-bottom: 0; }
.form-section h2 { font-size: 18px; margin-bottom: 13px; }
.form-section:first-of-type .form-grid {
  grid-template-columns: 1fr 1fr .78fr;
  grid-template-areas:
    "vision description platforms"
    "brochure brochure platforms";
  gap: 12px;
}
.form-section:first-of-type label,
.platforms { padding: 14px; border-radius: 16px; }
.form-section:first-of-type label textarea { min-height: 155px; font-size: 14px; line-height: 1.58; }
.form-section:first-of-type textarea[data-field="brochureArea"] { min-height: 210px; }
.platforms { min-height: auto; }
.check-option { padding: 8px 10px; border-radius: 12px; }
#customPlatform { min-height: 38px; }
.section-line { margin-bottom: 10px; }
.filter-bar { grid-template-columns: repeat(7, minmax(118px, 1fr)); gap: 8px; padding: 10px; margin: 10px 0 8px; }
.filter-bar select { min-height: 38px; padding: 7px 10px; }
.item-summary { padding: 6px 11px; font-size: 12px; }
.table-wrap { border-radius: 16px; }
.item-table { min-width: 1120px; }
.item-table th:nth-child(1) { width: 48px; }
.item-table th:nth-child(2) { width: 58px; }
.item-table th:nth-child(6) { width: 105px; }
.item-table th:nth-child(7) { width: 228px; }
.editable-table td { padding: 6px 8px; }
.editable-table textarea { min-height: 36px; font-size: 13px; line-height: 1.35; }
.editable-table select { min-height: 34px; font-size: 13px; }
.drag-cell { text-align:center; vertical-align:middle; width:42px; background:#fbfdff; }
.period-cell { min-width: 220px; width: 220px; }
.period-row { display:grid; grid-template-columns: 1fr .75fr .75fr; gap: 5px; }
.period-row select { min-width:0; padding:6px 7px; }
.period-hint { display:none !important; }
.remove-row { width:30px; height:30px; }
.monthly-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.month-card-auto { min-height: 92px; padding: 10px; border-radius: 14px; }
.month-card-body { font-size: 12.5px; line-height:1.45; max-height: 90px; overflow:auto; }
.weekly-table { min-width: 960px; }
.weekly-table textarea { min-height: 34px; }
.split-section { gap: 12px; }
.large-note { min-height: 110px; }
@media (max-width: 1500px) {
  .summary-cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .form-section:first-of-type .form-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "vision description" "brochure platforms";
  }
  .filter-bar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .division-layout { grid-template-columns: 1fr; }
  .form-section:first-of-type .form-grid { grid-template-columns: 1fr; grid-template-areas:"vision" "description" "brochure" "platforms"; }
  .filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* --- v7: balanced overview + calendar roadmap patch --- */
/* ?ъ뾽 媛쒖슂: 鍮꾩쟾/?ъ뾽 ?ㅻ챸 ?ш린 ?듭씪, ?띿뒪?몄뭏 ?뺣? */
.form-section:first-of-type .form-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 360px !important;
  grid-template-areas:
    "vision description platforms"
    "brochure brochure platforms" !important;
  gap: 14px !important;
  align-items: stretch;
}
.form-section:first-of-type .form-grid > label:nth-child(1),
.form-section:first-of-type .form-grid > label:nth-child(2) {
  min-height: 300px;
  display: flex;
  flex-direction: column;
}
.form-section:first-of-type .form-grid > label:nth-child(1) textarea,
.form-section:first-of-type .form-grid > label:nth-child(2) textarea {
  min-height: 218px !important;
  flex: 1;
  font-size: 15px;
  line-height: 1.7;
}
.form-section:first-of-type textarea[data-field="brochureArea"] {
  min-height: 200px !important;
}
.platforms {
  min-height: 300px;
}

/* ??젣???섎떒 ?≪뀡蹂대뱶/硫붾え ????뱀뀡 媛꾧꺽 ?뺣━ */
.division-detail { gap: 12px; }

/* ?곌컙 濡쒕뱶留? ?몃줈?????罹섎┛??移대뱶??*/
.roadmap-section {
  background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(248,251,255,.97));
}
.roadmap-head {
  align-items: center;
  margin-bottom: 14px;
}
.section-desc {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
}
.roadmap-calendar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.roadmap-month {
  min-height: 190px;
  border: 1px solid #dfe8f5;
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(17,31,61,.045);
}
.roadmap-month header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
  background: linear-gradient(135deg, #f7faff, #eef5ff);
  border-bottom: 1px solid #e2eaf6;
}
.roadmap-month header strong {
  color: var(--navy);
  font-size: 17px;
  letter-spacing: -0.03em;
}
.roadmap-month header span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #fff;
  color: #49617f;
  font-size: 12px;
  font-weight: 800;
}
.roadmap-month-body {
  padding: 10px;
  max-height: 170px;
  overflow: auto;
}
.roadmap-item {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px dashed #e4ecf7;
}
.roadmap-item:last-child { border-bottom: 0; }
.roadmap-week {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 26px;
  border-radius: 999px;
  background: #eef5ff;
  color: #3156d4;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.roadmap-copy strong {
  display: block;
  color: var(--navy);
  font-size: 13px;
  line-height: 1.35;
}
.roadmap-copy small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.35;
}
.roadmap-copy p {
  margin: 3px 0 0;
  color: var(--text);
  font-size: 12.5px;
  line-height: 1.4;
}
.roadmap-item.done .roadmap-week {
  background: #e7f6ef;
  color: var(--green);
}
.roadmap-item.done .roadmap-copy strong,
.roadmap-item.done .roadmap-copy p {
  color: #68778d;
  text-decoration: line-through;
}
.roadmap-empty {
  height: 116px;
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: 12.5px;
  text-align: center;
  border: 1px dashed #e1e8f2;
  border-radius: 14px;
  background: #fbfdff;
}
.empty-month header { background: #f8fafc; }

/* 湲곗〈 ?붾퀎 移대뱶 CSS 臾대젰??*/
.monthly-grid { display: block; }
.month-card-auto { display: none; }

@media (max-width: 1500px) {
  .form-section:first-of-type .form-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "vision description"
      "brochure platforms" !important;
  }
  .roadmap-calendar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .roadmap-calendar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .form-section:first-of-type .form-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas: "vision" "description" "brochure" "platforms" !important;
  }
  .roadmap-calendar { grid-template-columns: 1fr; }
}

/* --- v8: weekly actions derived from roadmap + compact done/future plan --- */
.weekly-table { min-width: 1120px; }
.weekly-table th:nth-child(6),
.weekly-table td:nth-child(6) {
  width: 54px;
  min-width: 54px;
  max-width: 54px;
  text-align: center;
  padding-left: 4px;
  padding-right: 4px;
}
.weekly-table th:nth-child(1) { width: 72px; }
.weekly-table th:nth-child(2),
.weekly-table th:nth-child(3) { width: 150px; }
.weekly-table th:nth-child(5) { width: 92px; }
.weekly-table th:nth-child(7),
.weekly-table th:nth-child(8) { width: 180px; }
.weekly-table .done-cell input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0 auto;
  display: block;
  accent-color: var(--blue);
}
.weekly-derived-row textarea,
.weekly-derived-row input {
  min-height: 34px;
  font-size: 13px;
  background: #fff;
}
.weekly-item-name {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.3;
}
.weekly-empty-row td {
  padding: 22px 16px;
  text-align: center;
  color: var(--muted);
  background: #fbfdff;
  font-weight: 700;
}
.mini-divider {
  border: 0;
  border-top: 1px dashed #dfe8f5;
  margin: 6px 0;
}

/* --- v9: brochure business areas as structured list --- */
.brochure-area-panel {
  grid-area: brochure;
  padding: 14px;
  border: 1px solid #e1e8f2;
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff, #f7f3ff);
  min-width: 0;
}
.brochure-area-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}
.brochure-area-head h3 {
  margin: 0;
  color: var(--navy);
  font-size: 16px;
  letter-spacing: -0.03em;
}
.brochure-area-help {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}
.brochure-area-list {
  display: grid;
  gap: 8px;
}
.brochure-area-card {
  display: grid;
  grid-template-columns: 42px minmax(150px, .8fr) minmax(220px, 1.4fr) 34px;
  gap: 8px;
  align-items: stretch;
  padding: 9px;
  border: 1px solid #dfe8f5;
  border-radius: 14px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 6px 16px rgba(17,31,61,.035);
}
.brochure-area-drag {
  display: grid;
  place-items: center;
  gap: 2px;
  color: #8796ad;
  font-size: 12px;
  font-weight: 900;
  cursor: grab;
}
.brochure-area-card label {
  gap: 4px;
  font-size: 12px;
  color: var(--muted);
}
.brochure-area-card input,
.brochure-area-card textarea {
  min-height: 38px !important;
  padding: 8px 10px;
  border-radius: 12px;
  background: #fff;
  font-size: 13px;
  line-height: 1.45;
}
.brochure-area-card textarea {
  resize: vertical;
}
.brochure-area-card .remove-row {
  align-self: center;
}
@media (max-width: 980px) {
  .brochure-area-panel { grid-area: brochure; }
  .brochure-area-card {
    grid-template-columns: 38px 1fr 34px;
  }
  .brochure-area-card label:nth-of-type(2) {
    grid-column: 2 / 3;
  }
}

/* --- Strategy read mode + edit panel refinement --- */
.strategy-master-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.strategy-summary-row {
  min-height: 88px;
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr) 92px;
  gap: 14px;
  align-items: start;
  padding: 14px;
  border: 1px solid #dfe8f4;
  border-radius: 16px;
  background: #fff;
}
.strategy-summary-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}
.strategy-row-index {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: #eef5ff;
  color: var(--blue);
  font-weight: 950;
  font-size: 12px;
}
.strategy-summary-label strong {
  display: block;
  color: var(--navy);
  font-size: 14px;
}
.strategy-summary-label small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.strategy-summary-text {
  max-height: 72px;
  overflow-y: auto;
  white-space: pre-wrap;
  line-height: 1.5;
  color: var(--text);
  font-size: 13px;
  padding: 2px 4px;
}
.strategy-summary-actions {
  display: flex;
  justify-content: flex-end;
}
.muted-inline {
  color: var(--muted);
  font-weight: 700;
}
.strategy-month-plan-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}
.strategy-month-plan-card {
  min-height: 170px;
  height: 100%;
}
.strategy-month-plan-card header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.month-plan-summary {
  flex: 1;
  min-height: 104px;
  max-height: 126px;
  overflow-y: auto;
  white-space: pre-wrap;
  line-height: 1.5;
  padding: 10px;
  border: 1px solid #e3ebf6;
  border-radius: 12px;
  background: #fbfdff;
  font-size: 13px;
}
.edit-panel {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  pointer-events: none;
}
.edit-panel.open {
  display: block;
  pointer-events: auto;
}
.edit-panel-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6,24,68,.28);
}
.edit-panel-sheet {
  position: absolute;
  top: 0;
  right: 0;
  width: min(560px, 100%);
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0;
  padding: 22px;
  background: #fff;
  box-shadow: -18px 0 50px rgba(6,24,68,.18);
}
.edit-panel-sheet header,
.edit-panel-sheet footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.edit-panel-body {
  overflow: auto;
  padding: 18px 0;
}
.panel-field {
  display: grid;
  gap: 8px;
}
.panel-field textarea {
  min-height: 280px;
  resize: vertical;
  overflow-y: auto;
  line-height: 1.6;
  padding: 14px;
}
.panel-help {
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px;
}
.panel-line-editor {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
}
.panel-line-item {
  display: grid;
  grid-template-columns: minmax(100px, .8fr) minmax(180px, 1.5fr) 32px;
  gap: 8px;
}

/* --- Business Portfolio document layout refinement --- */
.business-plan-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
.portfolio-section-row {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 16px;
  padding: 18px;
  border: 1px solid #dfe8f4;
  border-radius: 18px;
  background: #fff;
}
.portfolio-section-label {
  border-right: 1px solid #edf2f8;
  padding-right: 16px;
}
.portfolio-section-label span {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #eef5ff;
  color: var(--blue);
  font-weight: 950;
}
.portfolio-section-label h3 {
  margin: 10px 0 6px;
  color: var(--navy);
}
.portfolio-section-label p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}
.portfolio-section-content {
  display: grid;
  gap: 10px;
}
.portfolio-summary-block {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 74px;
  gap: 12px;
  align-items: start;
  padding: 12px;
  border: 1px solid #edf2f8;
  border-radius: 14px;
  background: #fbfdff;
}
.portfolio-summary-block strong {
  display: block;
  margin-bottom: 6px;
  color: var(--navy);
}
.portfolio-summary-text {
  max-height: 88px;
  overflow-y: auto;
  white-space: pre-wrap;
  line-height: 1.5;
}
.portfolio-readonly-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.portfolio-readonly-grid article {
  min-height: 92px;
  padding: 12px;
  border: 1px solid #edf2f8;
  border-radius: 10px;
  background: #fff;
}
.portfolio-readonly-grid strong {
  display: block;
  margin-bottom: 6px;
  color: var(--navy);
}
.portfolio-readonly-grid span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  margin-bottom: 6px;
  border-radius: 999px;
  background: #eef5ff;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
}
.portfolio-readonly-grid p {
  margin: 0;
  max-height: 96px;
  overflow-y: auto;
  white-space: pre-wrap;
  line-height: 1.5;
}
.portfolio-period-label {
  padding: 10px 14px;
  border: 1px solid #dfe8f4;
  border-radius: 14px;
  background: #eef5ff;
  color: var(--navy);
  font-weight: 950;
}
.quarterly-summary-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.quarter-month-summary {
  padding: 10px;
  border: 1px solid #edf2f8;
  border-radius: 12px;
  background: #fbfdff;
  margin-top: 8px;
}
.quarter-month-summary ul {
  margin: 6px 0 0;
  padding-left: 18px;
}
@media (max-width: 900px) {
  .strategy-summary-row,
  .portfolio-section-row,
  .portfolio-readonly-grid,
  .quarterly-summary-grid {
    grid-template-columns: 1fr;
  }
  .portfolio-section-label {
    border-right: 0;
    border-bottom: 1px solid #edf2f8;
    padding-right: 0;
    padding-bottom: 12px;
  }
  .strategy-month-plan-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .strategy-month-plan-grid {
    grid-template-columns: 1fr;
  }
  .panel-line-item,
  .portfolio-summary-block {
    grid-template-columns: 1fr;
  }
}

/* --- v10: ?ъ뾽 媛쒖슂 ?덉씠?꾩썐 + 二쇰퀎 ?≪뀡 ?꾨즺 泥댄겕諛뺤뒪 ?섏젙 --- */
/* ?ъ슜???뚮옯?쇱? ?곷떒 移대뱶 ?ш린濡?以꾩씠怨? 釉뚮줈?붿슜 ?ъ뾽 ?곸뿭? ?꾨옒?먯꽌 ?꾩껜 ???ъ슜 */
.form-section:first-of-type .form-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 330px !important;
  grid-template-areas:
    "vision description platforms"
    "brochure brochure brochure" !important;
  gap: 14px !important;
  align-items: stretch !important;
}
.form-section:first-of-type .form-grid > label:nth-child(1),
.form-section:first-of-type .form-grid > label:nth-child(2),
.form-section:first-of-type .form-grid > fieldset {
  min-height: 260px !important;
  max-height: 260px;
  display: flex;
  flex-direction: column;
}
.form-section:first-of-type .form-grid > label:nth-child(1) textarea,
.form-section:first-of-type .form-grid > label:nth-child(2) textarea {
  min-height: 170px !important;
  height: 100% !important;
  flex: 1;
  overflow: auto !important;
}
.form-section:first-of-type .form-grid > fieldset.platforms {
  grid-area: platforms !important;
  min-height: 260px !important;
  max-height: 260px;
  overflow: hidden;
}
.platforms #platformChecks {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.platforms .check-option {
  min-height: 42px;
  padding: 8px 10px;
}
#customPlatform {
  margin-top: 8px;
  min-height: 40px;
}
.brochure-area-panel {
  grid-area: brochure !important;
  width: 100%;
  margin-top: 2px;
}
.brochure-area-card {
  grid-template-columns: 42px minmax(240px, .75fr) minmax(480px, 2fr) 34px !important;
}
.brochure-area-card input,
.brochure-area-card textarea {
  font-size: 14px;
}

/* 二쇰퀎 ?≪뀡 怨꾪쉷: ?꾨즺 ?댁? 泥댄겕諛뺤뒪留??ㅼ뼱媛?꾨줉 媛뺤젣 異뺤냼 */
.weekly-table th:nth-child(6),
.weekly-table td:nth-child(6),
.weekly-table .done-cell {
  width: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  padding: 0 !important;
  text-align: center !important;
  vertical-align: middle !important;
}
.weekly-table .done-cell input[type="checkbox"],
.weekly-table td:nth-child(6) input[type="checkbox"] {
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  padding: 0 !important;
  margin: 0 auto !important;
  display: block !important;
  transform: none !important;
  accent-color: var(--blue);
}
.weekly-table th:nth-child(7),
.weekly-table th:nth-child(8) {
  width: 190px !important;
}

@media (max-width: 1500px) {
  .form-section:first-of-type .form-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "vision description"
      "platforms platforms"
      "brochure brochure" !important;
  }
  .form-section:first-of-type .form-grid > fieldset.platforms {
    max-height: none;
    min-height: 150px !important;
  }
}
@media (max-width: 980px) {
  .form-section:first-of-type .form-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas: "vision" "description" "platforms" "brochure" !important;
  }
  .form-section:first-of-type .form-grid > label:nth-child(1),
  .form-section:first-of-type .form-grid > label:nth-child(2),
  .form-section:first-of-type .form-grid > fieldset {
    max-height: none;
    min-height: 180px !important;
  }
  .brochure-area-card {
    grid-template-columns: 38px 1fr 34px !important;
  }
}

/* --- v11: summary re-layout + compact platform card --- */
.refined-summary {
  display: grid !important;
  grid-template-columns: 210px minmax(420px, 1fr) 330px 220px !important;
  gap: 10px !important;
  align-items: stretch;
}
.status-priority-card {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 10px;
  align-content: start;
}
.status-priority-card label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.status-priority-card select {
  min-height: 36px !important;
  margin-top: 0 !important;
  font-size: 13px !important;
}
.refined-summary .year-goal-card {
  min-height: 130px;
}
.refined-summary .year-goal-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px !important;
}
.refined-summary .year-goal-input {
  min-height: 30px !important;
  padding: 5px 10px !important;
  font-size: 12.5px !important;
  border-radius: 999px !important;
}
.summary-platforms {
  min-height: 130px !important;
  padding: 12px 14px !important;
  margin: 0 !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, #ffffff, #f6fbf8) !important;
  overflow: hidden;
}
.summary-platforms legend {
  padding: 0 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.summary-platforms::before { display: none; }
.summary-platforms #platformChecks {
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px !important;
  margin: 4px 0 10px !important;
}
.summary-platforms .check-option {
  flex: 0 0 auto;
  min-height: 30px;
  padding: 6px 9px !important;
  border-radius: 999px !important;
  font-size: 12.5px;
  line-height: 1;
  background: rgba(255,255,255,.86) !important;
  border-color: #dfe7f2 !important;
}
.summary-platforms .check-option input {
  width: 14px !important;
  height: 14px !important;
  margin: 0 4px 0 0;
}
.platform-add-row {
  display: grid;
  grid-template-columns: 1fr 54px;
  gap: 6px;
}
.platform-add-row input {
  min-height: 32px !important;
  padding: 6px 10px !important;
  font-size: 12.5px;
  border-radius: 999px !important;
}
.platform-add-row .line-button {
  min-height: 32px !important;
  padding: 5px 9px !important;
  font-size: 12px;
  border-radius: 999px !important;
}
.updated-card { min-height: 130px; }
/* ?ъ뾽 媛쒖슂?먯꽌???뚮옯?쇱쓣 ?곷떒?쇰줈 ??꼈?쇰?濡?蹂몃Ц? 媛濡쒕? ?볤쾶 ?ъ슜 */
.form-section:first-of-type .form-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) !important;
  grid-template-areas:
    "vision description"
    "brochure brochure" !important;
}
.form-section:first-of-type .brochure-area-section {
  grid-area: brochure;
}
.form-section:first-of-type .form-grid > label:nth-child(1) { grid-area: vision; }
.form-section:first-of-type .form-grid > label:nth-child(2) { grid-area: description; }
.brochure-area-list .brochure-area-row {
  grid-template-columns: 44px minmax(220px, .75fr) minmax(420px, 1.45fr) 42px;
}
@media (max-width: 1500px) {
  .refined-summary {
    grid-template-columns: 190px minmax(360px, 1fr) 300px !important;
  }
  .updated-card { display: none !important; }
}
@media (max-width: 1120px) {
  .refined-summary { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 760px) {
  .refined-summary { grid-template-columns: 1fr !important; }
  .form-section:first-of-type .form-grid { grid-template-columns: 1fr !important; grid-template-areas: "vision" "description" "brochure" !important; }
  .brochure-area-list .brochure-area-row { grid-template-columns: 1fr; }
}


/* --- v12: business area strategy card layer --- */
.strategy-section {
  background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(248,251,255,.97));
}
.strategy-head select {
  max-width: 360px;
  min-height: 42px;
}
.brochure-area-card.active {
  border-color: #7d9bff !important;
  box-shadow: 0 0 0 3px rgba(65,105,225,.13), 0 10px 24px rgba(17,31,61,.06);
  background: linear-gradient(180deg, #ffffff, #f6f9ff);
}
.area-open-btn {
  border: 1px solid #cbd7ea;
  background: #f7f9fd;
  color: var(--navy);
  border-radius: 12px;
  padding: 8px 10px;
  font-weight: 800;
  white-space: nowrap;
}
.area-open-btn:hover { background: #eef5ff; border-color: #9cb2e8; }
.strategy-area-detail { display: grid; gap: 14px; }
.strategy-overview-grid {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) 160px 150px minmax(320px, 1.4fr);
  gap: 10px;
  padding: 14px;
  border: 1px solid #dfe8f5;
  border-radius: 18px;
  background: #fff;
}
.strategy-overview-grid label,
.strategy-card {
  display: grid;
  gap: 7px;
  color: var(--navy);
  font-weight: 900;
}
.strategy-desc textarea { min-height: 72px; }
.strategy-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.strategy-card {
  padding: 14px;
  border: 1px solid #dfe8f5;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff, #fbfdff);
  box-shadow: 0 8px 20px rgba(17,31,61,.04);
}
.strategy-card span { font-size: 15px; }
.strategy-card textarea {
  min-height: 120px;
  font-size: 13px;
  line-height: 1.55;
  background: #fff;
}
.related-items-box {
  border: 1px solid #dfe8f5;
  border-radius: 18px;
  padding: 14px 16px;
  background: #fff;
}
.related-items-box h3 { margin: 0 0 10px; color: var(--navy); font-size: 16px; }
.related-items-box ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; }
.related-items-box li span { margin-left: 8px; color: var(--muted); }
.related-items-box p { margin: 0; color: var(--muted); }
@media (max-width: 1400px) {
  .strategy-overview-grid { grid-template-columns: 1fr 1fr; }
  .strategy-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .strategy-overview-grid, .strategy-card-grid { grid-template-columns: 1fr; }
  .strategy-head { align-items: stretch; }
  .strategy-head select { max-width: none; }
}

/* --- v13: strategy details moved to popup + clean brochure list --- */
.brochure-area-panel {
  background: linear-gradient(180deg, #ffffff, #fbfdff) !important;
  border-radius: 18px !important;
  padding: 16px !important;
}
.brochure-area-list {
  gap: 7px !important;
}
.brochure-area-card,
.brochure-area-list .brochure-area-row {
  display: grid !important;
  grid-template-columns: 34px minmax(180px, 240px) minmax(320px, 1fr) 62px 34px !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 78px !important;
  padding: 8px 10px !important;
  border-radius: 14px !important;
  background: #fff !important;
  border: 1px solid #dfe8f5 !important;
  box-shadow: none !important;
}
.brochure-area-card.active {
  border-color: #dfe8f5 !important;
  box-shadow: none !important;
  background: #fff !important;
}
.brochure-area-drag {
  display: grid !important;
  place-items: center !important;
  gap: 0 !important;
  color: #99a8be !important;
}
.brochure-area-drag strong {
  font-size: 12px !important;
}
.brochure-area-card label {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 11.5px !important;
  color: #66738a !important;
}
.brochure-area-card input,
.brochure-area-card textarea {
  min-height: 38px !important;
  padding: 7px 10px !important;
  border-radius: 10px !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}
.brochure-area-card textarea {
  max-height: 72px !important;
  overflow: auto !important;
}
.area-open-btn.compact,
.area-open-btn {
  align-self: center !important;
  justify-self: center !important;
  min-height: 32px !important;
  padding: 6px 10px !important;
  border: 1px solid #cbd7ea !important;
  border-radius: 999px !important;
  background: #f7f9fd !important;
  color: #071a3f !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}
.brochure-area-card .remove-row {
  align-self: center !important;
  justify-self: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
}
.strategy-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  pointer-events: none;
}
.strategy-modal.open {
  display: block;
  pointer-events: auto;
}
.strategy-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 26, 63, .42);
  backdrop-filter: blur(3px);
}
.strategy-modal-panel {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(1180px, calc(100vw - 48px));
  max-height: calc(100vh - 56px);
  transform: translate(-50%, -50%);
  overflow: auto;
  padding: 22px;
  border: 1px solid #dfe8f5;
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff, #f8fbff);
  box-shadow: 0 28px 90px rgba(7, 26, 63, .25);
}
.strategy-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e4ecf7;
}
.strategy-modal-head h2 {
  margin: 0;
  font-size: 24px;
  letter-spacing: -0.04em;
}
.strategy-modal .strategy-overview-grid,
.strategy-modal .strategy-card,
.strategy-modal .related-items-box {
  background: #fff;
}
.strategy-modal .strategy-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.strategy-modal .strategy-card textarea {
  min-height: 120px;
  max-height: 190px;
  overflow: auto;
}
@media (max-width: 1100px) {
  .brochure-area-card,
  .brochure-area-list .brochure-area-row {
    grid-template-columns: 34px 1fr 62px 34px !important;
  }
  .brochure-area-card label:nth-of-type(2) {
    grid-column: 2 / 5;
  }
  .strategy-modal .strategy-card-grid,
  .strategy-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 760px) {
  .brochure-area-card,
  .brochure-area-list .brochure-area-row {
    grid-template-columns: 30px 1fr 56px 30px !important;
  }
  .strategy-modal-panel {
    width: calc(100vw - 22px);
    padding: 16px;
    border-radius: 18px;
  }
  .strategy-modal-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .strategy-modal .strategy-card-grid,
  .strategy-overview-grid {
    grid-template-columns: 1fr !important;
  }
}

/* --- v16: quarterly strategy snapshots --- */
.strategy-snapshot-bar {
  display: grid;
  grid-template-columns: minmax(220px, 280px) auto 1fr;
  gap: 10px;
  align-items: end;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid #dfe8f5;
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff, #f5f8ff);
}
.strategy-snapshot-bar label {
  gap: 6px;
  color: var(--navy);
  font-size: 12px;
  font-weight: 900;
}
.strategy-snapshot-bar select {
  min-height: 38px;
  border-radius: 999px;
  background: #fff;
  font-size: 13px;
}
.strategy-snapshot-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.strategy-snapshot-actions .line-button {
  min-height: 38px;
  border-radius: 999px;
  font-size: 13px;
}
.strategy-snapshot-bar p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  justify-self: end;
  align-self: center;
}
@media (max-width: 900px) {
  .strategy-snapshot-bar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .strategy-snapshot-bar p { justify-self: start; }
}

/* --- v17: strategy quarterly weekly goals --- */
.quarter-goals-box {
  border: 1px solid #dfe8f5;
  border-radius: 18px;
  padding: 14px 16px;
  background: linear-gradient(180deg, #ffffff, #fbfdff);
  box-shadow: 0 8px 20px rgba(17,31,61,.04);
}
.quarter-goals-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.quarter-goals-head h3 {
  margin: 0;
  color: var(--navy);
  font-size: 16px;
  letter-spacing: -0.03em;
}
.quarter-goals-head p {
  margin: 2px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.quarter-goals-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.quarter-month-goals {
  border: 1px solid #e2eaf6;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}
.quarter-month-goals header {
  padding: 9px 12px;
  background: linear-gradient(135deg, #f7faff, #eef5ff);
  border-bottom: 1px solid #e2eaf6;
  color: var(--navy);
  font-weight: 900;
}
.quarter-month-goals label {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 8px;
  align-items: start;
  padding: 8px 10px;
  border-bottom: 1px dashed #e7eef8;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.quarter-month-goals label:last-child { border-bottom: 0; }
.quarter-month-goals label span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border-radius: 999px;
  background: #eef5ff;
  color: #3156d4;
  white-space: nowrap;
}
.quarter-month-goals textarea {
  min-height: 32px !important;
  max-height: 84px;
  padding: 7px 9px !important;
  border-radius: 10px !important;
  font-size: 12.5px !important;
  line-height: 1.35 !important;
  overflow: auto !important;
}
@media (max-width: 1100px) {
  .quarter-goals-grid { grid-template-columns: 1fr; }
  .quarter-goals-head { display: block; }
}

/* --- v18: brochure areas progress status layout --- */
.brochure-area-card,
.brochure-area-list .brochure-area-row {
  grid-template-columns: 34px minmax(150px, 220px) minmax(260px, 1.15fr) 128px minmax(240px, .95fr) 62px 34px !important;
  min-height: 76px !important;
}
.brochure-area-card label:nth-of-type(3) select {
  min-height: 36px !important;
  padding: 7px 10px !important;
  border-radius: 10px !important;
  font-size: 12.5px !important;
  background: #fff !important;
}
.brochure-area-card label:nth-of-type(4) textarea {
  max-height: 62px !important;
  min-height: 38px !important;
  overflow: auto !important;
}
.strategy-progress-note textarea {
  min-height: 72px;
}
.strategy-overview-grid {
  grid-template-columns: minmax(220px, 1fr) 150px 140px minmax(260px, 1.2fr) minmax(260px, 1.2fr) !important;
}
@media (max-width: 1320px) {
  .brochure-area-card,
  .brochure-area-list .brochure-area-row {
    grid-template-columns: 34px minmax(160px, 220px) minmax(260px, 1fr) 120px 62px 34px !important;
  }
  .brochure-area-card label:nth-of-type(4) {
    grid-column: 2 / 5;
  }
}
@media (max-width: 900px) {
  .brochure-area-card,
  .brochure-area-list .brochure-area-row {
    grid-template-columns: 30px 1fr 58px 30px !important;
  }
  .brochure-area-card label:nth-of-type(2),
  .brochure-area-card label:nth-of-type(3),
  .brochure-area-card label:nth-of-type(4) {
    grid-column: 2 / 5;
  }
  .strategy-overview-grid {
    grid-template-columns: 1fr !important;
  }
}

/* --- v19: strategy modal readability fix --- */
.strategy-modal-panel {
  width: min(1240px, calc(100vw - 56px));
}
.strategy-overview-compact {
  display: grid !important;
  grid-template-columns: minmax(240px, 1.1fr) 150px 130px minmax(280px, 1fr) !important;
  grid-template-areas:
    "title status priority progress"
    "desc desc desc progress" !important;
  align-items: start !important;
  gap: 12px !important;
  padding: 16px !important;
}
.strategy-title-field { grid-area: title; }
.strategy-status-field { grid-area: status; }
.strategy-priority-field { grid-area: priority; }
.strategy-desc { grid-area: desc; }
.strategy-progress-note { grid-area: progress; }
.strategy-overview-compact label {
  align-self: start !important;
  min-height: 0 !important;
}
.strategy-overview-compact input,
.strategy-overview-compact select {
  min-height: 42px !important;
  height: 42px !important;
  padding: 8px 11px !important;
  border-radius: 12px !important;
  font-size: 14px !important;
}
.strategy-overview-compact textarea.fixed-textarea {
  height: 118px !important;
  min-height: 118px !important;
  max-height: 118px !important;
  overflow: auto !important;
  resize: vertical !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}
.strategy-progress-note textarea.fixed-textarea {
  height: 180px !important;
  min-height: 180px !important;
  max-height: 180px !important;
}
.strategy-card-grid {
  margin-top: 2px;
}
.strategy-modal .strategy-card textarea {
  min-height: 104px !important;
  max-height: 150px !important;
  overflow: auto !important;
}
@media (max-width: 1100px) {
  .strategy-overview-compact {
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "title title"
      "status priority"
      "desc desc"
      "progress progress" !important;
  }
  .strategy-progress-note textarea.fixed-textarea,
  .strategy-overview-compact textarea.fixed-textarea {
    height: 120px !important;
    min-height: 120px !important;
    max-height: 120px !important;
  }
}
@media (max-width: 760px) {
  .strategy-modal-panel { width: calc(100vw - 22px); }
  .strategy-overview-compact {
    grid-template-columns: 1fr !important;
    grid-template-areas: "title" "status" "priority" "desc" "progress" !important;
  }
}

/* --- v21: professional strategy card layout + monthly-only strategy goals --- */
.strategy-modal-panel {
  width: min(1340px, calc(100vw - 56px)) !important;
  padding: 24px !important;
  background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%) !important;
}
.strategy-area-detail {
  gap: 16px !important;
}
.strategy-overview-pro {
  display: grid !important;
  grid-template-columns: minmax(260px, 1.1fr) 160px 130px minmax(280px, .95fr) !important;
  grid-template-areas:
    "title status priority progress"
    "brochure brochure internal internal" !important;
  gap: 14px !important;
  padding: 18px !important;
  border: 1px solid #dfe8f5 !important;
  border-radius: 22px !important;
  background:
    radial-gradient(circle at top left, rgba(238,245,255,.95), transparent 36%),
    #ffffff !important;
  box-shadow: 0 12px 28px rgba(17,31,61,.055) !important;
  align-items: start !important;
}
.strategy-overview-pro label {
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--navy) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em;
}
.strategy-overview-pro .strategy-title-field { grid-area: title; }
.strategy-overview-pro .strategy-status-field { grid-area: status; }
.strategy-overview-pro .strategy-priority-field { grid-area: priority; }
.strategy-overview-pro .strategy-progress-note { grid-area: progress; }
.strategy-overview-pro .strategy-brochure-copy { grid-area: brochure; }
.strategy-overview-pro .strategy-internal-desc { grid-area: internal; }
.strategy-overview-pro input,
.strategy-overview-pro select,
.strategy-overview-pro textarea.fixed-textarea {
  border: 1px solid #d4dfef !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85) !important;
  color: var(--text) !important;
}
.strategy-overview-pro input,
.strategy-overview-pro select {
  height: 44px !important;
  min-height: 44px !important;
  padding: 9px 12px !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}
.strategy-overview-pro textarea.fixed-textarea {
  height: 138px !important;
  min-height: 138px !important;
  max-height: 138px !important;
  padding: 12px 14px !important;
  overflow: auto !important;
  resize: vertical !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}
.strategy-overview-pro .strategy-progress-note textarea.fixed-textarea {
  height: 138px !important;
  min-height: 138px !important;
  max-height: 138px !important;
}
.field-hint {
  display: block;
  margin-top: -2px;
  color: #7a879d;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.35;
}
.strategy-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
}
.strategy-modal .strategy-card {
  border-radius: 18px !important;
  padding: 14px !important;
  background: linear-gradient(180deg, #ffffff, #fbfdff) !important;
}
.strategy-modal .strategy-card textarea {
  min-height: 110px !important;
  max-height: 150px !important;
  line-height: 1.52 !important;
}
.monthly-only-goals {
  border-radius: 22px !important;
  background: linear-gradient(180deg, #ffffff, #f8fbff) !important;
}
.monthly-only-goals .quarter-goals-head {
  margin-bottom: 12px !important;
}
.quarter-main-goal {
  display: grid;
  gap: 7px;
  margin-bottom: 12px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 900;
}
.quarter-main-goal textarea {
  min-height: 76px !important;
  max-height: 120px !important;
  overflow: auto !important;
  border-radius: 14px !important;
  border: 1px solid #d4dfef !important;
  background: #fff !important;
  padding: 11px 13px !important;
  line-height: 1.55 !important;
}
.monthly-goals-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
}
.monthly-goal-card {
  border-radius: 18px !important;
  box-shadow: 0 8px 20px rgba(17,31,61,.04) !important;
}
.monthly-goal-card header {
  font-size: 14px !important;
  letter-spacing: -0.02em;
}
.monthly-goal-card textarea {
  width: 100%;
  min-height: 104px !important;
  max-height: 150px !important;
  overflow: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 12px !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}
@media (max-width: 1180px) {
  .strategy-overview-pro {
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "title title"
      "status priority"
      "progress progress"
      "brochure brochure"
      "internal internal" !important;
  }
  .strategy-card-grid,
  .monthly-goals-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 760px) {
  .strategy-overview-pro,
  .strategy-card-grid,
  .monthly-goals-grid {
    grid-template-columns: 1fr !important;
  }
  .strategy-overview-pro {
    grid-template-areas:
      "title" "status" "priority" "progress" "brochure" "internal" !important;
  }
}

/* --- v22: 100-point professional strategy canvas --- */
.strategy-modal-panel {
  width: min(1380px, calc(100vw - 48px)) !important;
  max-height: calc(100vh - 42px) !important;
  padding: 22px !important;
  border-radius: 26px !important;
  background:
    radial-gradient(circle at top left, rgba(238,245,255,.9), transparent 30%),
    linear-gradient(180deg, #ffffff 0%, #f7faff 100%) !important;
}
.strategy-modal-head {
  position: sticky;
  top: -22px;
  z-index: 10;
  margin: -22px -22px 16px !important;
  padding: 18px 22px 14px !important;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(10px);
  border-radius: 26px 26px 0 0;
}
.strategy-modal-head h2 { font-size: 28px !important; }
.strategy-area-detail { gap: 14px !important; }
.strategy-hero-pro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 14px;
  align-items: stretch;
  padding: 18px;
  border: 1px solid #dfe8f5;
  border-radius: 24px;
  background: linear-gradient(135deg, #ffffff 0%, #f4f8ff 100%);
  box-shadow: 0 14px 34px rgba(17,31,61,.06);
}
.strategy-hero-main { display: grid; align-content: center; gap: 8px; }
.strategy-title-inline { gap: 8px !important; font-size: 12px !important; color: #66738a !important; }
.strategy-title-inline input {
  min-height: 54px !important;
  border: 0 !important;
  padding: 4px 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--navy) !important;
  font-size: 30px !important;
  font-weight: 900 !important;
  letter-spacing: -0.04em;
}
.strategy-hero-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.strategy-hero-controls label,
.strategy-snapshot-pro label {
  color: #66738a !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}
.strategy-hero-controls select {
  min-height: 48px !important;
  border-radius: 16px !important;
  background: #fff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}
.strategy-snapshot-pro {
  grid-template-columns: 300px auto minmax(180px, 1fr) !important;
  margin-bottom: 0 !important;
  border-radius: 20px !important;
  box-shadow: 0 8px 20px rgba(17,31,61,.035);
}
.strategy-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.strategy-kpi-card {
  min-height: 96px;
  padding: 15px 16px;
  border: 1px solid #dfe8f5;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(17,31,61,.045);
}
.strategy-kpi-card span { display:block; color:#66738a; font-size:12px; font-weight:900; }
.strategy-kpi-card strong { display:block; margin-top:8px; color:var(--navy); font-size:28px; letter-spacing:-0.04em; }
.strategy-kpi-card small { color:#7a879d; font-size:11.5px; font-weight:700; }
.strategy-description-stack {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.strategy-copy-panel {
  display: grid !important;
  gap: 10px !important;
  padding: 16px !important;
  border: 1px solid #dfe8f5 !important;
  border-radius: 22px !important;
  background: #fff !important;
  box-shadow: 0 10px 24px rgba(17,31,61,.04);
}
.strategy-copy-panel div { display:grid; gap:2px; }
.strategy-copy-panel strong { color:var(--navy); font-size:16px; letter-spacing:-0.03em; }
.strategy-copy-panel span { color:#7a879d; font-size:12px; font-weight:800; }
.strategy-copy-panel textarea.fixed-textarea {
  height: 132px !important;
  min-height: 132px !important;
  max-height: 132px !important;
  border-radius: 16px !important;
  border: 1px solid #d4dfef !important;
  background: #fbfdff !important;
  font-size: 14px !important;
  line-height: 1.62 !important;
  overflow: auto !important;
  padding: 12px 14px !important;
}
.brochure-copy-panel { background: linear-gradient(180deg, #ffffff, #fffdf7) !important; }
.internal-copy-panel { background: linear-gradient(180deg, #ffffff, #f7f3ff) !important; }
.progress-copy-panel { background: linear-gradient(180deg, #ffffff, #f4fbf8) !important; }
.strategy-canvas-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.strategy-canvas-grid .strategy-card {
  min-height: 196px;
  border-radius: 22px !important;
  border: 1px solid #dfe8f5 !important;
  background: linear-gradient(180deg, #ffffff, #fbfdff) !important;
  box-shadow: 0 10px 24px rgba(17,31,61,.04) !important;
}
.strategy-canvas-grid .strategy-card span {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #eef5ff;
  color: #3156d4;
  font-size: 13px !important;
  font-weight: 900;
}
.strategy-canvas-grid .strategy-card textarea {
  min-height: 126px !important;
  max-height: 126px !important;
  border-radius: 16px !important;
  border: 1px solid #e0e8f3 !important;
  background: #fff !important;
  padding: 11px 12px !important;
  font-size: 13.5px !important;
  line-height: 1.55 !important;
}
.monthly-only-goals,
.related-items-pro {
  border-radius: 24px !important;
  border: 1px solid #dfe8f5 !important;
  box-shadow: 0 10px 24px rgba(17,31,61,.04) !important;
}
.related-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.related-head h3 { margin:0 !important; }
.related-head span { padding:5px 10px; border-radius:999px; background:#eef5ff; color:#3156d4; font-size:12px; font-weight:900; }
@media (max-width: 1180px) {
  .strategy-hero-pro { grid-template-columns: 1fr; }
  .strategy-kpi-row, .strategy-description-stack, .strategy-canvas-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .strategy-modal-panel { width: calc(100vw - 18px) !important; padding: 14px !important; }
  .strategy-modal-head { margin: -14px -14px 12px !important; padding: 14px !important; }
  .strategy-hero-controls, .strategy-kpi-row, .strategy-description-stack, .strategy-canvas-grid { grid-template-columns: 1fr; }
  .strategy-title-inline input { font-size: 24px !important; }
}


/* --- v23: resizable weekly action columns --- */
.resizable-weekly-table {
  table-layout: fixed;
  width: max-content;
  min-width: 1120px;
}
.resizable-weekly-table th {
  position: relative;
  user-select: none;
}
.resizable-weekly-table .column-resizer {
  position: absolute;
  top: 0;
  right: -4px;
  width: 8px;
  height: 100%;
  cursor: col-resize;
  z-index: 5;
}
.resizable-weekly-table .column-resizer::after {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 3px;
  width: 2px;
  border-radius: 999px;
  background: transparent;
}
.resizable-weekly-table .column-resizer:hover::after,
.resizable-weekly-table.is-resizing .column-resizer::after {
  background: #4169e1;
}
.column-resize-active {
  cursor: col-resize !important;
  user-select: none !important;
}
.resizable-weekly-table td,
.resizable-weekly-table th {
  overflow: hidden;
}
.resizable-weekly-table textarea,
.resizable-weekly-table input,
.resizable-weekly-table select {
  min-width: 0 !important;
}

/* --- Weekly report page --- */
.weekly-report-page { display: grid; gap: 16px; }
.weekly-report-head {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
  padding: 22px 24px; border: 1px solid rgba(201,210,225,.76); border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(243,248,255,.95));
  box-shadow: var(--shadow-soft);
}
.weekly-report-head h2 { margin-bottom: 6px; font-size: 24px; letter-spacing: -0.04em; }
.weekly-report-controls { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; min-width: 360px; justify-content: flex-end; }
.weekly-report-controls label { min-width: 120px; font-size: 12px; }
.weekly-report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.weekly-report-card {
  padding: 18px; border: 1px solid rgba(201,210,225,.76); border-radius: 20px;
  background: rgba(255,255,255,.94); box-shadow: var(--shadow-soft);
}
.report-main-card { min-height: 300px; }
.report-card-title { margin-bottom: 10px; color: var(--navy); font-size: 15px; font-weight: 900; letter-spacing: -0.03em; }
.weekly-report-card textarea { min-height: 170px; border-radius: 16px; background: #fbfdff; line-height: 1.65; }
.report-main-card textarea { min-height: 245px; }
.weekly-report-history { display: grid; gap: 12px; }
.weekly-report-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.weekly-report-history-item {
  text-align: left; padding: 12px 14px; border: 1px solid #dce6f3; border-radius: 16px; background: #fbfdff; color: var(--text);
}
.weekly-report-history-item.active { border-color: var(--blue); box-shadow: inset 4px 0 0 var(--blue); background: white; }
.weekly-report-history-item strong { display: block; color: var(--navy); margin-bottom: 4px; }
.weekly-report-history-item span { color: var(--muted); font-size: 12px; }
@media (max-width: 980px) {
  .weekly-report-head { flex-direction: column; }
  .weekly-report-controls { width: 100%; min-width: 0; justify-content: stretch; }
  .weekly-report-controls label { flex: 1; }
  .weekly-report-grid { grid-template-columns: 1fr; }
}

/* --- weekly report list/editor refinement --- */
.weekly-report-list-panel {
  margin-top: 16px;
}
.weekly-report-editor {
  display: grid;
  gap: 16px;
  margin-top: 16px;
}
.weekly-report-editor[hidden] { display: none !important; }
.weekly-report-editor-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--gray-100);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(17,31,61,.05);
}
.weekly-report-controls label {
  min-width: 130px;
}
.weekly-report-month-title {
  margin: 16px 0 8px;
  padding: 8px 12px;
  border-radius: 12px;
  background: #eef5ff;
  color: var(--navy);
  font-weight: 900;
}
.weekly-report-list {
  display: grid;
  gap: 8px;
}
.weekly-report-history-item {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid #dce6f3;
  border-radius: 14px;
  background: #fff;
  color: var(--text);
  text-align: left;
}
.weekly-report-history-item.active {
  border-color: var(--blue);
  box-shadow: inset 4px 0 0 var(--blue);
  background: #f8fbff;
}
.weekly-derived-report {
  min-height: 150px;
  padding: 14px;
  border: 1px solid #d6e0ef;
  border-radius: 14px;
  background: #fbfdff;
  line-height: 1.6;
}
.derived-report-group + .derived-report-group { margin-top: 12px; }
.derived-report-group strong {
  display: block;
  margin-bottom: 6px;
  color: var(--navy);
}
.derived-report-group ul {
  margin: 0;
  padding-left: 20px;
}
.empty-report-line {
  margin: 0;
  color: var(--muted);
}
.weekly-report-card.full-row {
  grid-column: 1 / -1;
}
@media (max-width: 860px) {
  .weekly-report-editor-head { flex-direction: column; align-items: stretch; }
  .weekly-report-controls { grid-template-columns: 1fr; }
}

/* --- Global roadmap / Gantt page --- */
.global-roadmap-page {
  display: grid;
  gap: 16px;
}
.roadmap-main-head {
  align-items: flex-start;
}
.roadmap-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: flex-end;
  gap: 10px;
}
.roadmap-controls label {
  min-width: 120px;
  font-size: 12px;
}
.roadmap-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}
.roadmap-stat-card {
  position: relative;
  overflow: hidden;
  min-height: 110px;
  padding: 18px;
  border: 1px solid #dfe8f4;
  border-radius: 20px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 12px 28px rgba(17,31,61,.06);
}
.roadmap-stat-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  background: #9aa6b7;
}
.roadmap-stat-card.done::before { background: #13865f; }
.roadmap-stat-card.active::before { background: #4169e1; }
.roadmap-stat-card.ready::before { background: #c47a12; }
.roadmap-stat-card.idea::before { background: #778195; }
.roadmap-stat-card span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
}
.roadmap-stat-card strong {
  display: block;
  margin-top: 14px;
  color: var(--navy);
  font-size: 34px;
  line-height: 1;
}
.roadmap-stat-card em {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
}
.roadmap-board {
  padding: 18px;
  border: 1px solid rgba(201,210,225,.76);
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  box-shadow: var(--shadow-soft);
}
.roadmap-board-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 14px;
}
.roadmap-board-head h2 {
  margin-bottom: 4px;
  font-size: 22px;
}
.global-roadmap {
  overflow-x: auto;
  border: 1px solid #dfe8f4;
  border-radius: 18px;
  background: white;
}
.global-roadmap-grid {
  min-width: 980px;
  display: grid;
  grid-template-columns: 260px repeat(var(--cols), minmax(74px, 1fr));
  align-items: stretch;
}
.roadmap-header {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f6f9ff;
  border-bottom: 1px solid #dfe8f4;
  font-weight: 900;
  color: var(--navy);
}
.roadmap-left-head,
.roadmap-col-head {
  min-height: 44px;
  padding: 13px 14px;
  border-right: 1px solid #e8eef7;
  font-size: 13px;
}
.roadmap-col-head {
  text-align: center;
}
.roadmap-division-group {
  min-width: 980px;
  border-bottom: 1px solid #eef2f8;
}
.roadmap-division-name {
  padding: 14px 16px;
  background: linear-gradient(90deg, #fbfdff, #f3f7ff);
  color: var(--navy);
  font-weight: 950;
  border-bottom: 1px solid #e6edf7;
  cursor: pointer;
}
.roadmap-item-row {
  position: relative;
  min-height: 58px;
  border-bottom: 1px solid #f0f4fa;
  background-image: linear-gradient(to right, transparent 259px, #edf2f8 260px, transparent 261px);
  cursor: pointer;
}
.roadmap-item-row::after {
  content: "";
  position: absolute;
  inset: 0 0 0 260px;
  pointer-events: none;
  background: repeating-linear-gradient(to right, transparent 0, transparent calc((100% / var(--cols)) - 1px), #edf2f8 calc((100% / var(--cols)) - 1px), #edf2f8 calc(100% / var(--cols)));
}
.roadmap-item-label {
  grid-column: 1;
  z-index: 1;
  padding: 10px 14px;
  background: rgba(255,255,255,.92);
  border-right: 1px solid #e8eef7;
}
.roadmap-item-label strong {
  display: block;
  color: var(--text);
  font-size: 13px;
  line-height: 1.3;
}
.roadmap-item-label span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}
.roadmap-bar {
  align-self: center;
  z-index: 1;
  margin: 8px 6px;
  min-height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  color: white;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
  box-shadow: 0 8px 18px rgba(17,31,61,.12);
  overflow: hidden;
}
.roadmap-bar.done { background: linear-gradient(90deg, #11875f, #47bf88); }
.roadmap-bar.active { background: linear-gradient(90deg, #3156d4, #6f91ff); }
.roadmap-bar.ready { background: linear-gradient(90deg, #c47a12, #ffad38); }
.roadmap-bar.hold { background: linear-gradient(90deg, #7b8494, #a9b2c2); }
.roadmap-bar.idea { background: linear-gradient(90deg, #778195, #aeb7c8); }
.roadmap-empty-state {
  min-width: 980px;
  padding: 36px;
  color: var(--muted);
  font-weight: 800;
  text-align: center;
}
@media (max-width: 1280px) {
  .roadmap-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .roadmap-controls { justify-content: flex-start; }
}
@media (max-width: 760px) {
  .roadmap-stats { grid-template-columns: 1fr; }
  .roadmap-board-head { flex-direction: column; }
}

/* --- ?댁쁺 吏?? ?ъ뾽遺 紐⑸줉怨??꾩쟾???숈씪???대┃??移대뱶 紐⑸줉 --- */
.division-group-block,
.support-division-list {
  display: grid;
  gap: 8px;
}
.division-subgroup {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px dashed rgba(201, 210, 225, .9);
}
.division-subgroup-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.division-subgroup-head h2 {
  margin: 0;
  color: var(--navy);
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.03em;
}

/* --- Operations menu + page patch --- */
.nav-divider {
  height: 1px;
  background: rgba(255,255,255,.18);
  margin: 10px 0 6px;
}
.nav-section-title {
  padding: 6px 4px 2px;
  color: #b8c8e6;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .13em;
}
.operation-nav-list {
  display: grid;
  gap: 7px;
}
.operation-sub-button {
  min-height: 38px;
  padding: 9px 12px 9px 18px;
  font-size: 12px;
  line-height: 1.25;
  border-color: rgba(19,134,95,.4);
  background: rgba(19,134,95,.10);
}
.operation-sub-button.active,
.operation-sub-button:hover {
  background: rgba(19,134,95,.25);
  border-color: rgba(19,134,95,.62);
}
.operations-page {
  display: grid;
  gap: 16px;
}
.operations-main-head {
  border: 1px solid rgba(201,210,225,.72);
  border-radius: 22px;
  padding: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,251,248,.95));
  box-shadow: var(--shadow-soft);
}
.operation-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.operation-kpi-card,
.operation-card {
  border: 1px solid rgba(201,210,225,.76);
  border-radius: 20px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-soft);
}
.operation-kpi-card {
  padding: 15px;
  color: var(--navy);
  font-size: 12px;
  font-weight: 900;
}
.operation-kpi-card input {
  margin-top: 9px;
  min-height: 42px;
  border-radius: 14px;
  background: #fbfdff;
}
.operations-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.operation-card {
  padding: 18px;
}
.operation-card h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font-size: 17px;
}
.operation-card textarea {
  min-height: 150px;
  border-radius: 16px;
  background: #fbfdff;
  line-height: 1.6;
}
@media (max-width: 1180px) {
  .operation-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .operation-kpi-grid,
  .operations-grid { grid-template-columns: 1fr; }
}

/* --- Atelier de Margaux sidebar & page --- */
.adm-nav-list {
  display: grid;
  gap: 7px;
}
.adm-sub-button {
  border-color: rgba(28, 180, 157, .42);
  background: rgba(7, 70, 95, .30);
}
.adm-sub-button:hover,
.adm-sub-button.active {
  background: rgba(12, 92, 101, .52);
  border-color: rgba(42, 218, 186, .62);
}
.adm-etc-button {
  background: rgba(19, 112, 98, .34);
  border-color: rgba(48, 219, 177, .50);
}
.adm-etc-button:hover,
.adm-etc-button.active {
  background: rgba(20, 132, 113, .58);
}
.atelier-page { display: grid; gap: 16px; }
.atelier-main-head {
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,248,255,.96));
}
.atelier-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.atelier-card {
  padding: 18px;
  border: 1px solid rgba(201,210,225,.76);
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-soft);
}
.atelier-card.full-row { grid-column: 1 / -1; }
.atelier-card h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font-size: 17px;
}
.atelier-card textarea {
  min-height: 145px;
  border-radius: 16px;
  border-color: #d8e3f1;
  background: #fbfdff;
}
@media (max-width: 860px) {
  .adm-nav-list, .atelier-grid { grid-template-columns: 1fr; }
  .adm-nav-button { min-height: 56px; }
}


/* --- v ADM sidebar fix: scrollable left menu + remove overflow cut-off --- */
.sidebar {
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}
.sidebar::-webkit-scrollbar { width: 8px; }
.sidebar::-webkit-scrollbar-track { background: rgba(255,255,255,.05); border-radius: 999px; }
.sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.22); border-radius: 999px; }
.sidebar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.34); }
.nav { flex: 0 0 auto; }
.sidebar-actions {
  flex-shrink: 0;
  margin-top: 14px;
  padding-bottom: 18px;
}
.operation-nav-list,
.adm-nav-list {
  display: grid;
  gap: 8px;
}
/* 湲곗〈???섎せ ?ㅼ뼱媛붾뜕 ADM ?꾩슜 ??硫붾돱 ?ㅽ??쇱씠 ?⑥븘???붾㈃???곹뼢 ?녿룄濡?鍮꾪솢?깊솕 */
.adm-nav-button { display: none !important; }

/* --- final sidebar cleanup: prevent legacy ADM operation buttons and allow full menu scrolling --- */
.sidebar {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  align-content: start;
}
.nav {
  display: grid;
  gap: 8px;
  flex: none;
}
.operation-nav-list .nav-button[data-operation-division-id*="Atelier"],
.operation-nav-list .nav-button[data-operation-division-id*="atelier"] {
  display: none !important;
}

/* --- K-Culture dropdown + stockout management table --- */
.operation-menu {
  display: grid;
  gap: 6px;
}
.operation-parent-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.operation-caret {
  font-size: 13px;
  opacity: .75;
}
.operation-menu .operation-dropdown {
  display: none;
  gap: 6px;
  padding-left: 14px;
  margin-top: -2px;
}
.operation-menu.open .operation-dropdown {
  display: grid;
}
.operation-child-button {
  min-height: 36px;
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 13px;
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
  color: #dfeaff;
}
.operation-child-button::before {
  content: ">";
  opacity: .8;
}
.operation-menu.open .operation-child-button,
.operation-child-button.active {
  background: rgba(23, 122, 141, .42);
  border-color: rgba(63, 203, 220, .55);
}
.stockout-page {
  display: grid;
  gap: 14px;
}
.stockout-filter-bar {
  display: grid;
  grid-template-columns: 220px minmax(260px, 1fr);
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow-soft, 0 12px 28px rgba(17,31,61,.06));
}
.stockout-table {
  min-width: 1900px;
}
.stockout-table th:nth-child(1) { min-width: 230px; }
.stockout-table th:nth-child(2) { min-width: 150px; }
.stockout-table th:nth-child(3) { min-width: 130px; }
.stockout-table th:nth-child(4) { min-width: 260px; }
.stockout-table th:nth-child(15) { min-width: 240px; }
.stockout-table textarea {
  min-height: 38px;
}
.stockout-table input[type="date"] {
  min-width: 130px;
}
.muted-empty {
  color: var(--muted);
  padding: 28px 12px;
  font-weight: 800;
}
@media (max-width: 860px) {
  .stockout-filter-bar { grid-template-columns: 1fr; }
}


/* --- Firebase login/auth step --- */
.auth-panel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 4px 6px 4px 10px;
  border: 1px solid var(--gray-100);
  border-radius: 999px;
  background: rgba(255,255,255,.86);
}
.user-info {
  max-width: 210px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--navy);
  font-size: 12px;
  font-weight: 800;
}
.auth-button {
  min-height: 28px;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 12px;
}
.adm-private.auth-hidden {
  display: none !important;
}
body:not(.is-admin) #atelierView {
  display: none !important;
}
body:not(.is-admin) #creativePlannerView,
body:not(.is-admin) .creative-planner-nav {
  display: none !important;
}

/* ADM Creative Planner */
.creative-planner-nav {
  border-color: rgba(205, 226, 215, .5) !important;
  background: rgba(231, 244, 235, .12) !important;
}
.creative-planner-nav.active {
  color: #123f35 !important;
  background: #e5f0e7 !important;
}
.creative-planner-page {
  display: grid;
  gap: 16px;
  color: #173f36;
}
.creative-planner-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 22px;
  border-bottom: 2px solid #174f42;
  background: #fff;
}
.creative-planner-head h2 {
  margin: 2px 0 5px;
  color: #143f35;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px;
  letter-spacing: 0;
}
.creative-planner-head .primary-button {
  min-width: 132px;
  background: #17654f;
}
.creative-planner-stats {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 12px;
}
.creative-planner-stats.board-mode { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.creative-planner-menu-title {
  padding: 3px 8px 6px;
  color: #f1ebdc;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0;
}
.creative-menu-group {
  display: grid;
  gap: 4px;
}
.creative-submenu {
  display: none;
  gap: 3px;
  padding-left: 10px;
}
.creative-menu-group.open .creative-submenu {
  display: grid;
}
.creative-submenu .creative-planner-nav {
  min-height: 29px !important;
  padding: 6px 9px !important;
  border-radius: 6px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
}
.creative-board-root {
  position: relative;
  font-weight: 900 !important;
}
.creative-board-root::before {
  margin-right: 6px;
  content: ">";
  font-size: 10px;
}
.creative-menu-group.open .creative-board-root::before {
  content: "v";
}
.creative-stat-card {
  min-height: 118px;
  padding: 16px;
  border: 1px solid #d7e5dd;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(30, 68, 56, .07);
}
.creative-stat-card > span {
  display: block;
  color: #315e52;
  font-size: 13px;
  font-weight: 800;
}
.creative-stat-card strong {
  display: block;
  margin-top: 9px;
  color: #123f35;
  font-size: 29px;
  line-height: 1;
}
.creative-stat-card strong small {
  margin-left: 4px;
  font-size: 12px;
  font-weight: 700;
}
.creative-stat-card p {
  margin: 9px 0 0;
  color: #718078;
  font-size: 11px;
}
.creative-stat-card.tone-2 { border-color: #eadfb8; background: #fffdf6; }
.creative-stat-card.tone-3 { border-color: #cce4d3; background: #f8fdf9; }
.creative-stat-card.tone-4 { border-color: #ded3ee; background: #fcf9ff; }
.creative-stat-card.tone-5 { border-color: #ead8c9; background: #fffaf6; }
.creative-planner-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.creative-planner-area-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.creative-area-card {
  min-width: 0;
  padding: 18px;
  border: 1px solid #d7e3da;
  border-radius: 8px;
  color: #173f36;
  background: #fff;
  box-shadow: 0 8px 22px rgba(35, 65, 54, .05);
  text-align: left;
}
.creative-area-card:hover {
  border-color: #82aa98;
  background: #f8fcf8;
  transform: translateY(-1px);
}
.creative-area-card > span {
  display: block;
  margin-bottom: 14px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  font-weight: 700;
}
.creative-area-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}
.creative-area-metrics b {
  color: #165947;
  font-size: 18px;
  text-align: center;
}
.creative-area-metrics small {
  display: block;
  margin-top: 3px;
  color: #77867f;
  font-size: 9px;
  font-weight: 600;
  white-space: nowrap;
}
.creative-area-card p {
  min-height: 32px;
  margin: 13px 0 0;
  color: #68776f;
  font-size: 10px;
  line-height: 1.5;
}
.creative-summary-panel {
  min-height: 170px;
  padding: 15px 17px;
  border: 1px solid #dfe7e2;
  border-radius: 8px;
  background: #fff;
}
.creative-summary-panel h3 {
  margin: 0 0 11px;
  color: #173f36;
  font-size: 15px;
}
.creative-summary-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.creative-summary-list li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 7px;
  border-bottom: 1px solid #edf2ef;
}
.creative-summary-list span {
  min-width: 0;
  overflow: hidden;
  color: #263e38;
  font-size: 12px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.creative-summary-list small {
  flex: 0 0 auto;
  color: #78847e;
  font-size: 10px;
}
.creative-empty {
  margin: 25px 0 0;
  color: #84918b;
  font-size: 12px;
  text-align: center;
}
.creative-planner-workspace {
  overflow: hidden;
  border: 1px solid #dbe5df;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(28, 58, 49, .06);
}
.creative-planner-toolbar {
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, .7fr)) minmax(190px, 1.2fr);
  gap: 8px;
  padding: 12px;
  border-bottom: 1px solid #e3ebe6;
  background: #f7faf8;
}
.creative-planner-toolbar select,
.creative-planner-toolbar input {
  width: 100%;
  min-width: 0;
  min-height: 36px;
  border-radius: 6px;
  font-size: 12px;
}
.creative-planner-toolbar [hidden] {
  display: none !important;
}
.creative-planner-table-wrap {
  width: 100%;
  overflow-x: auto;
  scrollbar-width: thin;
}
.creative-planner-table {
  width: 100%;
  min-width: 1370px;
  border-collapse: collapse;
  table-layout: fixed;
}
.creative-planner-table th,
.creative-planner-table td {
  border-right: 1px solid #e7ede9;
  border-bottom: 1px solid #e2e9e5;
  padding: 7px 6px;
  vertical-align: middle;
}
.creative-planner-table th {
  height: 39px;
  color: #31564d;
  background: #f4f8f5;
  font-size: 11px;
  font-weight: 800;
  text-align: center;
}
.creative-planner-table th:nth-child(1) { width: 45px; }
.creative-planner-table th:nth-child(2) { width: 155px; }
.creative-planner-table th:nth-child(3) { width: 190px; }
.creative-planner-table th:nth-child(4) { width: 220px; }
.creative-planner-table th:nth-child(5) { width: 110px; }
.creative-planner-table th:nth-child(6),
.creative-planner-table th:nth-child(7) { width: 122px; }
.creative-planner-table th:nth-child(8) { width: 90px; }
.creative-planner-table th:nth-child(9) { width: 74px; }
.creative-planner-table th:nth-child(10) { width: 190px; }
.creative-planner-table th:nth-child(11) { width: 44px; }
.creative-planner-table select,
.creative-planner-table input,
.creative-planner-table textarea {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  font-size: 11px;
}
.creative-planner-table select,
.creative-planner-table input { min-height: 32px; }
.creative-planner-table textarea {
  min-height: 34px;
  padding: 7px;
  overflow: hidden;
  line-height: 1.35;
  resize: vertical;
}
.creative-planner-table .tiny-action {
  min-height: 26px;
  margin-right: 4px;
  padding: 4px 7px;
  border-radius: 5px;
  font-size: 10px;
}
.creative-planner-table select:focus,
.creative-planner-table input:focus,
.creative-planner-table textarea:focus {
  border-color: #84b5a6;
  background: #fff;
  outline: 2px solid rgba(42, 125, 101, .12);
}
.creative-number,
.creative-done { text-align: center; }
.creative-done input { width: 17px; min-height: 17px; accent-color: #17654f; }
.creative-status-select { font-weight: 800; }
.creative-row-progress {
  height: 3px;
  margin: 3px 4px 0;
  overflow: hidden;
  border-radius: 3px;
  background: #e6ede9;
}
.creative-row-progress span { display: block; height: 100%; background: #2b8a68; }
.creative-planner-count {
  padding: 11px 14px;
  color: #67766f;
  background: #fafcfb;
  font-size: 11px;
}
.creative-empty-row {
  padding: 34px !important;
  color: #7d8c85;
  text-align: center;
}
@media (max-width: 1180px) {
  .creative-planner-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .creative-planner-stats.board-mode { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .creative-planner-area-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .creative-planner-toolbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1500px) and (min-width: 1181px) {
  .creative-planner-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .creative-planner-stats.board-mode { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .creative-planner-head { align-items: stretch; flex-direction: column; }
  .creative-planner-head .primary-button { width: 100%; }
  .creative-planner-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .creative-planner-stats.board-mode { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .creative-planner-summary-grid { grid-template-columns: 1fr; }
  .creative-planner-area-cards { grid-template-columns: 1fr; }
  .creative-planner-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .creative-planner-toolbar input { grid-column: 1 / -1; }
}
@media (max-width: 460px) {
  .creative-planner-stats,
  .creative-planner-stats.board-mode,
  .creative-planner-toolbar { grid-template-columns: 1fr; }
  .creative-planner-toolbar input { grid-column: auto; }
}

/* Creative Planner visual refinement */
body.creative-planner-mode {
  background: #f6f4ee;
}
body.creative-planner-mode .sidebar {
  background: #123f35;
  box-shadow: 8px 0 30px rgba(18, 63, 53, .16);
}
body.creative-planner-mode .brand {
  position: relative;
  min-height: 86px;
  padding-top: 8px;
  border-bottom-color: rgba(233, 240, 226, .2);
}
body.creative-planner-mode .brand strong,
body.creative-planner-mode .brand span {
  visibility: hidden;
}
body.creative-planner-mode .brand::after {
  position: absolute;
  inset: 8px 0 auto;
  color: #f4f0e5;
  content: "ATELIER DE\A MARGAUX\A Creative Workspace";
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  line-height: 1.35;
  letter-spacing: 0;
  text-align: center;
  white-space: pre;
}
body.creative-planner-mode .brand::first-line { font-weight: 700; }
body.creative-planner-mode .nav > .nav-button:not([data-view="dashboard"]),
body.creative-planner-mode .nav > .nav-section-title:not(.adm-private),
body.creative-planner-mode #operationNavButtons,
body.creative-planner-mode .sidebar-actions {
  display: none !important;
}
body.creative-planner-mode .nav > .nav-button[data-view="dashboard"] {
  min-height: 34px;
  margin-bottom: 8px;
  border: 1px solid rgba(231, 241, 233, .24);
  color: #dce8df;
  background: transparent;
  font-size: 11px;
}
body.creative-planner-mode .nav > .nav-button[data-view="dashboard"]::before { content: "<"; }
body.creative-planner-mode .nav-divider { display: none; }
body.creative-planner-mode .nav-section-title.adm-private {
  margin: 12px 5px 4px;
  color: #dbe8dc;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  letter-spacing: 0;
}
body.creative-planner-mode .adm-nav-list { gap: 9px; }
body.creative-planner-mode .adm-sub-button {
  min-height: 43px;
  border: 1px solid rgba(223, 235, 224, .28);
  border-radius: 7px;
  color: #edf3ec;
  background: rgba(255,255,255,.035);
  font-size: 12px;
}
body.creative-planner-mode .adm-sub-button:hover {
  border-color: rgba(244, 241, 218, .55);
  background: rgba(255,255,255,.09);
}
body.creative-planner-mode .creative-planner-nav.active {
  color: #163f35 !important;
  background: #e7edda !important;
  box-shadow: 0 7px 18px rgba(0,0,0,.12);
}
body.creative-planner-mode .main {
  background: #f8f7f2;
}
body.creative-planner-mode .topbar {
  min-height: 48px;
  padding-block: 7px;
  border-bottom-color: #e4e4dc;
  background: rgba(255,255,255,.94);
}
body.creative-planner-mode .topbar > div:first-child,
body.creative-planner-mode #saveNow,
body.creative-planner-mode #exportDivisionExcel,
body.creative-planner-mode #exportMasterExcel,
body.creative-planner-mode #printDivisionPdf,
body.creative-planner-mode #printMasterPdf,
body.creative-planner-mode #printMonthlyPdf,
body.creative-planner-mode #saveState {
  display: none !important;
}
body.creative-planner-mode .top-actions {
  width: 100%;
  justify-content: flex-end;
}
body.creative-planner-mode #creativePlannerView {
  padding: 0;
  background: #f8f7f2;
}
.creative-planner-page {
  gap: 18px;
  padding: 0 20px 28px;
}
.creative-planner-head {
  position: relative;
  min-height: 168px;
  margin-inline: -20px;
  padding: 30px 34px;
  overflow: hidden;
  align-items: flex-start;
  border-bottom: 0;
  background-color: #fff;
  background-image: url("assets/adm-creative-planner-header.png");
  background-position: right center;
  background-repeat: no-repeat;
  background-size: auto 100%;
}
.creative-planner-head::after {
  position: absolute;
  inset: auto 34px 0 34px;
  height: 1px;
  background: #d7dfd6;
  content: "";
}
.creative-planner-head > div {
  position: relative;
  z-index: 1;
  max-width: 54%;
}
.creative-planner-head .eyebrow {
  color: #638176;
  font-size: 10px;
  letter-spacing: .12em;
}
.creative-planner-head h2 {
  margin-top: 8px;
  color: #143f35;
  font-size: 39px;
  font-weight: 700;
}
.creative-planner-head h2 span {
  color: #9c8e66;
  font-family: Arial, sans-serif;
  font-size: 20px;
}
.creative-planner-head .section-desc {
  color: #566961;
  font-size: 13px;
}
.creative-planner-quote {
  position: absolute;
  z-index: 1;
  top: 28px;
  right: 28%;
  margin: 0;
  color: #766f66;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12px;
  font-style: italic;
}
.creative-planner-stats { gap: 14px; }
.creative-stat-card {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 116px;
  padding: 17px;
  border-color: #d7e4d9;
  box-shadow: 0 10px 25px rgba(38, 67, 57, .055);
}
.creative-stat-icon {
  display: grid;
  flex: 0 0 43px;
  width: 43px;
  height: 43px;
  place-items: center;
  border-radius: 8px;
  color: #247252;
  background: #e7f2e6;
  font-family: Arial, sans-serif;
  font-size: 21px;
  font-style: normal;
  font-weight: 700;
}
.creative-stat-card.tone-2 .creative-stat-icon { color: #aa720a; background: #fff0ce; }
.creative-stat-card.tone-3 .creative-stat-icon { color: #25864a; background: #e5f4e8; }
.creative-stat-card.tone-4 .creative-stat-icon { color: #7650a6; background: #efe5f8; }
.creative-stat-card.tone-5 .creative-stat-icon { color: #a06820; background: #f7ecdc; }
.creative-stat-card > div { min-width: 0; }
.creative-stat-card > div > span {
  display: block;
  color: #315e52;
  font-size: 12px;
  font-weight: 800;
}
.creative-stat-card strong { margin-top: 8px; font-family: Georgia, "Times New Roman", serif; }
.creative-planner-summary-grid { gap: 14px; }
.creative-summary-panel {
  padding: 18px 20px;
  border-color: #dde4df;
  box-shadow: 0 8px 22px rgba(35, 62, 53, .045);
}
.creative-summary-panel h3 {
  padding-bottom: 10px;
  border-bottom: 1px solid #e5ebe7;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
}
.creative-planner-workspace { box-shadow: 0 12px 30px rgba(34, 59, 51, .065); }
.creative-planner-toolbar {
  grid-template-columns: 142px 150px 164px 110px repeat(4, minmax(120px, .7fr)) minmax(180px, 1.2fr);
  padding: 13px;
  background: #fbfcfa;
}
.creative-planner-toolbar .primary-button {
  min-height: 36px;
  border-radius: 6px;
  background: #17654f;
  box-shadow: 0 5px 12px rgba(23, 101, 79, .16);
}
.creative-excel-button {
  display: inline-flex;
  min-width: 0;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  padding-inline: 10px;
  border-radius: 6px;
  color: #31584d;
  background: #fff;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.creative-upload-label { cursor: pointer; }
.creative-planner-table th {
  color: #294d44;
  background: #f2f6f2;
}
.creative-planner-table tbody tr:nth-child(even) { background: #fcfdfc; }
.creative-planner-table tbody tr:hover { background: #f2f8f3; }
.creative-planner-table td:first-child { color: #65766f; font-weight: 800; }
.adm-category-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.adm-category-modal.open {
  display: flex;
}
.adm-category-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 32, 27, .42);
}
.adm-category-modal-panel {
  position: relative;
  z-index: 1;
  width: min(420px, 100%);
  padding: 22px;
  border: 1px solid #d7e4d9;
  border-radius: 8px;
  background: #fffdf8;
  box-shadow: 0 22px 60px rgba(20, 63, 53, .22);
}
.adm-category-modal-panel h2 {
  margin: 0 0 16px;
  color: #143f35;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
}
.adm-category-modal-panel label {
  display: grid;
  gap: 7px;
  color: #31584d;
  font-size: 12px;
  font-weight: 800;
}
.adm-category-modal-panel input {
  min-height: 42px;
  border: 1px solid #d5e1da;
  border-radius: 7px;
  padding: 8px 11px;
  font-size: 14px;
}
.adm-category-modal-panel footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 18px;
}
@media (max-width: 1180px) {
  .creative-planner-quote { display: none; }
  .creative-planner-toolbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  body.creative-planner-mode .topbar { display: none; }
  .creative-planner-page { padding-inline: 12px; }
  .creative-planner-head { min-height: 145px; margin-inline: -12px; padding: 24px 20px; background-position: 85% center; }
  .creative-planner-head::before {
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,.78);
    content: "";
  }
  .creative-planner-head > div { max-width: 100%; }
  .creative-planner-head h2 { font-size: 31px; }
}
@media (max-width: 860px) {
  .auth-panel {
    justify-content: space-between;
    width: 100%;
    border-radius: 14px;
  }
  .user-info { max-width: 100%; }
}


/* --- Firebase login gate patch --- */
.login-screen {
  height: 100vh;
  height: 100svh;
  display: grid;
  place-items: center;
  padding: 0;
  overflow: hidden;
  background: #f7f1e8;
  color: #0b3d32;
}
.login-shell {
  display: grid;
  grid-template-columns: minmax(520px, 1.12fr) minmax(460px, .88fr);
  width: 100%;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
}
.login-hero {
  position: relative;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  background:
    url("./assets/login-hero.jpg") center bottom/cover no-repeat,
    linear-gradient(145deg, #082c24 0%, #0f4a3d 55%, #06251f 100%);
}
.login-hero::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  background:
    linear-gradient(90deg, rgba(0, 38, 31, .94) 0%, rgba(0, 48, 39, .88) 42%, rgba(0, 48, 39, .5) 72%, rgba(0, 48, 39, .22) 100%),
    linear-gradient(180deg, rgba(0, 34, 27, .34), rgba(0, 34, 27, .12));
  content: "";
}
.login-hero::after {
  display: none;
}
.login-hero-content {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: space-between;
  height: 100vh;
  height: 100svh;
  padding: 52px 64px 58px;
  color: #fffaf0;
  opacity: 1;
  pointer-events: auto;
}
.login-hero-logo {
  display: grid;
  gap: 6px;
  width: max-content;
}
.login-hero-logo strong,
.login-brand strong {
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: 0;
}
.login-hero-logo strong {
  font-size: 61px;
  font-weight: 400;
  line-height: .9;
}
.login-hero-logo span {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.login-hero-copy {
  max-width: 560px;
  margin-top: 32px;
}
.login-hero-copy h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(58px, 6.4vw, 86px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: 0;
}
.login-hero-copy i {
  display: block;
  width: 80px;
  height: 3px;
  margin: 34px 0 30px;
  background: #d7a64e;
}
.login-hero-copy span {
  display: block;
  max-width: 360px;
  font-size: 23px;
  line-height: 1.42;
}
.login-hero-note {
  display: flex;
  max-width: 380px;
  align-items: center;
  gap: 16px;
  color: rgba(255,250,240,.9);
  font-size: 19px;
  line-height: 1.5;
}
.login-hero-note span {
  color: #d7a64e;
  font-size: 24px;
}
.login-panel {
  display: grid;
  align-content: center;
  justify-items: center;
  height: 100vh;
  height: 100svh;
  padding: 24px 42px;
  overflow: hidden;
}
.login-card {
  width: min(540px, 100%);
  max-height: calc(100svh - 82px);
  padding: clamp(30px, 4.2vh, 46px) 44px clamp(24px, 3.8vh, 34px);
  border: 1px solid rgba(255,255,255,.75);
  border-radius: 30px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 30px 72px rgba(47, 42, 32, .18);
  backdrop-filter: blur(20px);
}
.login-brand {
  display: grid;
  gap: 9px;
  justify-items: center;
  margin-bottom: clamp(20px, 3.5vh, 34px);
  color: #0b3d32;
  text-align: center;
}
.login-brand strong {
  font-size: clamp(54px, 7vh, 72px);
  font-weight: 400;
  line-height: .85;
}
.login-brand span {
  color: #0b3d32;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.login-card-heading {
  margin-bottom: clamp(24px, 4.4vh, 42px);
  text-align: center;
}
.login-card-heading p {
  margin: 0;
  color: #0b3d32;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: .28em;
}
.login-card-heading p::after {
  display: block;
  width: 48px;
  height: 2px;
  margin: clamp(16px, 2.8vh, 26px) auto 0;
  background: #c99a42;
  content: "";
}
.login-form {
  display: grid;
  gap: clamp(16px, 2.6vh, 22px);
}
.login-field {
  display: grid;
  gap: 12px;
}
.login-field > label {
  color: #202824;
  font-size: 18px;
  font-weight: 900;
}
.login-input-wrap {
  display: grid;
  grid-template-columns: 38px 1fr auto;
  align-items: center;
  min-height: clamp(52px, 6vh, 60px);
  padding: 0 14px;
  border: 1px solid #d3d6d5;
  border-radius: 8px;
  background: rgba(255,255,255,.92);
  box-shadow: inset 0 1px 3px rgba(18, 63, 53, .05);
}
.login-input-wrap:focus-within {
  border-color: #0d5a49;
  box-shadow: 0 0 0 4px rgba(13, 90, 73, .12);
}
.login-icon {
  position: relative;
  display: inline-block;
  width: 23px;
  height: 23px;
  color: #767d7a;
}
.login-icon-mail {
  border: 2px solid currentColor;
  border-radius: 3px;
}
.login-icon-mail::before,
.login-icon-mail::after {
  position: absolute;
  top: 7px;
  width: 13px;
  height: 2px;
  background: currentColor;
  content: "";
}
.login-icon-mail::before {
  left: -1px;
  transform: rotate(35deg);
  transform-origin: left center;
}
.login-icon-mail::after {
  right: -1px;
  transform: rotate(-35deg);
  transform-origin: right center;
}
.login-icon-lock::before {
  position: absolute;
  left: 5px;
  top: 0;
  width: 10px;
  height: 10px;
  border: 2px solid currentColor;
  border-bottom: 0;
  border-radius: 9px 9px 0 0;
  content: "";
}
.login-icon-lock::after {
  position: absolute;
  left: 2px;
  bottom: 1px;
  width: 17px;
  height: 14px;
  border: 2px solid currentColor;
  border-radius: 3px;
  content: "";
}
.login-icon-eye {
  width: 25px;
}
.login-icon-eye::before {
  position: absolute;
  inset: 5px 1px;
  border: 2px solid currentColor;
  border-radius: 50% 50% 50% 50% / 65% 65% 35% 35%;
  transform: rotate(8deg);
  content: "";
}
.login-icon-eye::after {
  position: absolute;
  left: 10px;
  top: 10px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  content: "";
}
.login-input-wrap input {
  width: 100%;
  min-width: 0;
  min-height: clamp(50px, 5.8vh, 58px);
  padding: 0 8px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #132f28;
  font-size: 18px;
}
.login-input-wrap input::placeholder {
  color: #9a9f9c;
}
.login-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: -2px;
  color: #1e2925;
  font-size: 16px;
}
.login-remember {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
}
.login-remember input {
  width: 22px;
  height: 22px;
  accent-color: #075443;
}
.login-forgot {
  border: 0;
  background: transparent;
  color: #0b4c3e;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}
.login-forgot:hover {
  text-decoration: underline;
}
.login-form > button {
  min-height: clamp(56px, 6.4vh, 64px);
  margin-top: 4px;
  border-radius: 9px;
  background: linear-gradient(135deg, #053d32, #00503f);
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(7, 84, 67, .22);
}
.login-form > button:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 30px rgba(7, 84, 67, .28);
}
.login-authorized {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  margin: clamp(18px, 3.2vh, 30px) 0 0;
  color: #5f6964;
  font-size: 17px;
  text-align: center;
}
.login-authorized span {
  color: #c99a42;
  font-size: 17px;
}
.login-status {
  margin-top: 10px;
  color: #69756f;
  font-size: 13px;
  line-height: 1.5;
  text-align: center;
}
.login-copyright {
  margin: 16px 0 0;
  color: #59645e;
  font-size: 17px;
  text-align: center;
}
body:not(.auth-logged-in) .app-shell,
body:not(.auth-logged-in) .strategy-modal,
body:not(.auth-logged-in) .print-area { display: none !important; }
body:not(.auth-logged-in) {
  overflow: hidden;
}
body.auth-logged-in .login-screen { display: none !important; }
body.auth-logged-in .app-shell { display: grid; }
body.auth-pending .login-status { color: var(--amber); }
body.auth-error .login-status { color: var(--red); }
@media (max-width: 920px) {
  .login-shell {
    grid-template-columns: 1fr;
  }
  .login-hero {
    height: 34svh;
    min-height: 260px;
  }
  .login-hero-content {
    height: 34svh;
    min-height: 260px;
    padding: 34px 28px;
  }
  .login-hero-copy h1 {
    font-size: 44px;
  }
  .login-hero-copy span {
    font-size: 17px;
  }
  .login-panel {
    height: 66svh;
    min-height: 0;
    padding: 0 22px 18px;
  }
  .login-card {
    max-height: calc(66svh + 56px);
    margin-top: -56px;
  }
}
@media (max-width: 620px) {
  .login-hero {
    height: 32svh;
    min-height: 230px;
  }
  .login-hero-content {
    height: 32svh;
    min-height: 230px;
    padding: 26px 20px;
  }
  .login-hero-logo strong { font-size: 42px; }
  .login-hero-copy h1 { font-size: 38px; }
  .login-hero-note { font-size: 13px; }
  .login-card {
    max-height: calc(68svh + 48px);
    padding: 24px 22px 18px;
    border-radius: 22px;
  }
  .login-brand strong { font-size: 48px; }
  .login-card-heading p { font-size: 17px; letter-spacing: .16em; }
  .login-input-wrap input { font-size: 15px; }
  .login-options {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    font-size: 14px;
  }
  .login-form button {
    min-height: 58px;
    font-size: 18px;
  }
  .login-copyright { font-size: 13px; }
}
/* --- Strategy master tab patch --- */
.strategy-master-page { display: grid; gap: 16px; }
.strategy-master-head { align-items: flex-start; }
.strategy-master-controls { align-items: end; }
.strategy-master-controls label { min-width: 190px; }
.strategy-empty {
  padding: 24px;
  border: 1px dashed var(--line-soft);
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  color: var(--muted);
  font-weight: 800;
}
.strategy-master-editor {
  display: grid;
  gap: 14px;
}
.strategy-master-title-row {
  display: grid;
  grid-template-columns: minmax(280px, 1.4fr) 180px 160px;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(201,210,225,.72);
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 10px 24px rgba(17,31,61,.05);
}
.strategy-master-title-row input {
  min-height: 46px;
  font-size: 20px;
  font-weight: 900;
  color: var(--navy);
}
.strategy-annual-goals {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid #dfe8f4;
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  color: var(--navy);
  font-weight: 900;
}
.strategy-annual-goals textarea {
  width: 100%;
  min-height: 120px;
  resize: vertical;
  white-space: pre-wrap;
  box-sizing: border-box;
  line-height: 1.6;
  font-weight: 500;
}
.strategy-master-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.strategy-master-card {
  min-height: 168px;
  padding: 16px;
  border: 1px solid var(--line-soft);
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 10px 24px rgba(17,31,61,.05);
  display: grid;
  gap: 8px;
}
.strategy-master-card span {
  display: inline-flex;
  width: fit-content;
  padding: 5px 10px;
  border-radius: 999px;
  background: #edf3ff;
  color: var(--blue);
  font-weight: 900;
  font-size: 13px;
}
.strategy-master-card small {
  color: var(--muted);
  font-weight: 800;
}
.strategy-master-card textarea {
  min-height: 104px;
  border-radius: 14px;
  background: #fbfdff;
}
.strategy-master-card.brochure-card { background: linear-gradient(135deg, #ffffff 0%, var(--cream) 100%); }
.strategy-master-card.internal-card { background: linear-gradient(135deg, #ffffff 0%, var(--lilac) 100%); }
.strategy-master-card.progress-card { background: linear-gradient(135deg, #ffffff 0%, var(--mint) 100%); }
@media (max-width: 1180px) {
  .strategy-master-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strategy-master-title-row { grid-template-columns: 1fr 1fr; }
  .strategy-master-title-row label:first-child { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .strategy-master-grid,
  .strategy-master-title-row { grid-template-columns: 1fr; }
  .strategy-master-controls label { min-width: 0; }
}

/* --- Business Plan lite + Strategy operations restructure --- */
.business-plan-lite {
  background: rgba(255,255,255,.96);
}
.business-plan-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 14px;
}
.business-plan-lite h2 {
  margin-bottom: 4px;
  font-size: 22px;
}
.period-filter-bar {
  display: flex;
  align-items: end;
  gap: 10px;
  flex-wrap: wrap;
}
.period-filter-bar label {
  min-width: 130px;
  font-size: 12px;
}
.business-plan-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.portfolio-structured-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.portfolio-card {
  padding: 16px;
  border: 1px solid #dfe8f4;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff, #fbfdff);
  box-shadow: 0 8px 18px rgba(17,31,61,.04);
}
.portfolio-card.full-row {
  grid-column: 1 / -1;
}
.portfolio-area-summary-table {
  min-width: 920px;
}
.portfolio-area-summary-table td {
  line-height: 1.45;
}
.mini-pill {
  display: inline-flex;
  min-width: 34px;
  justify-content: center;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef5ff;
  color: var(--blue);
  font-weight: 900;
}
.portfolio-tabbar {
  display: flex;
  gap: 22px;
  margin: 12px 0 14px;
  border-bottom: 1px solid #dfe8f4;
  overflow-x: auto;
}
.portfolio-tabbar span {
  padding: 10px 0;
  color: var(--navy);
  font-weight: 900;
  white-space: nowrap;
}
.portfolio-tabbar .active {
  color: var(--blue);
  border-bottom: 3px solid var(--blue);
}
.portfolio-card header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.portfolio-card h3 { margin: 0 0 4px; color: var(--navy); font-size: 16px; }
.portfolio-card p { margin: 0; color: var(--muted); font-size: 12px; }
.portfolio-table,
.portfolio-list-fields,
.portfolio-kpi-list,
.investment-grid {
  display: grid;
  gap: 8px;
}
.portfolio-table label,
.portfolio-kpi-row {
  display: grid;
  grid-template-columns: 110px 90px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}
.portfolio-kpi-row {
  grid-template-columns: minmax(90px, 1fr) minmax(90px, 1fr) 70px minmax(100px, 1fr) 32px;
}
.portfolio-list-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.portfolio-list-fields textarea,
.investment-card textarea {
  min-height: 74px;
  max-height: 120px;
  overflow: auto;
}
.investment-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.business-plan-card {
  height: 260px;
  padding: 15px;
  border: 1px solid #dfe8f4;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff, #fbfdff);
  box-shadow: 0 8px 18px rgba(17,31,61,.04);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
}
.business-plan-card header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}
.business-plan-card h3 {
  margin: 0 0 4px;
  color: var(--navy);
  font-size: 16px;
}
.business-plan-card p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}
.business-plan-card .line-button {
  min-height: 32px;
  padding: 6px 9px;
  white-space: nowrap;
  font-size: 12px;
}
.plan-line-list {
  min-height: 0;
  overflow: auto;
  display: grid;
  align-content: start;
  gap: 7px;
  padding-right: 2px;
}
.plan-line-item {
  display: grid;
  grid-template-columns: minmax(78px, .8fr) minmax(120px, 1.5fr) 30px 30px 32px;
  gap: 6px;
  align-items: center;
}
.plan-line-item input {
  min-height: 34px;
  padding: 7px 8px;
  border-radius: 10px;
  font-size: 12px;
}
.icon-text-button {
  width: 30px;
  height: 30px;
  border: 1px solid #d6e0ef;
  border-radius: 9px;
  background: #fff;
  color: var(--navy);
  font-weight: 900;
}
.plan-empty {
  padding: 16px 8px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}
.strategy-master-editor {
  gap: 16px;
}
.strategy-master-grid {
  grid-template-columns: 1fr;
}
.strategy-master-card.focus-card {
  min-height: 132px;
  border-color: #d7e2f1;
  background: linear-gradient(180deg, #ffffff, #f7fbff);
  grid-template-columns: 240px minmax(0, 1fr) 90px;
  align-items: stretch;
  gap: 12px;
}
.strategy-master-card.focus-card span {
  margin-bottom: 2px;
}
.strategy-master-card.focus-card small {
  grid-column: 1;
  grid-row: 2;
}
.strategy-master-card.focus-card textarea {
  grid-column: 2;
  grid-row: 1 / span 2;
  min-height: 104px;
  max-height: none;
  resize: vertical;
  overflow-y: auto;
  padding: 14px;
  line-height: 1.55;
}
.strategy-master-card.focus-card button {
  grid-column: 3;
  grid-row: 1 / span 2;
  align-self: center;
}
.strategy-ops-section {
  padding: 18px;
  border: 1px solid rgba(201,210,225,.76);
  border-radius: 22px;
  background: rgba(255,255,255,.95);
  box-shadow: var(--shadow-soft);
}
.strategy-ops-section h2 {
  margin-bottom: 4px;
  font-size: 20px;
}
.strategy-filter-bar {
  grid-template-columns: repeat(8, minmax(118px, 1fr));
}
.bulk-edit-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 12px;
  border: 1px solid #dce6f3;
  border-radius: 18px;
  background: #fbfdff;
}
.bulk-edit-bar strong {
  flex: 0 0 140px;
  color: var(--navy);
  font-size: 13px;
}
.bulk-edit-bar input,
.bulk-edit-bar select {
  flex: 1 1 92px;
  min-height: 36px;
  border-radius: 12px;
}
.bulk-edit-bar input {
  max-width: 140px;
}
.bulk-edit-bar button {
  flex: 0 0 auto;
}
.bulk-reset-select,
.bulk-delete-select {
  min-width: 150px;
}
.danger-line {
  border-color: #f0b4ad !important;
  background: #fff5f4 !important;
  color: #b42318 !important;
}
.danger-line:hover {
  background: #ffe7e4 !important;
}
.bulk-select-actions {
  display: flex;
  gap: 6px;
  flex-wrap: nowrap;
}
.bulk-select-actions .line-button {
  min-height: 34px;
  padding: 6px 9px;
  white-space: nowrap;
}
.item-table {
  min-width: 1462px;
  width: 100%;
  table-layout: fixed;
}
.action-table .col-order { width: 44px; }
.action-table .col-select { width: 44px; }
.action-table .col-done { width: 44px; }
.action-table .col-main-category { width: 110px; }
.action-table .col-sub-category { width: 120px; }
.action-table .col-task { width: 220px; }
.action-table .col-owner { width: 80px; }
.action-table .col-priority { width: 70px; }
.action-table .col-year { width: 70px; }
.action-table .col-quarter { width: 60px; }
.action-table .col-month { width: 50px; }
.action-table .col-week { width: 60px; }
.action-table .col-date { width: 110px; }
.action-table .col-progress { width: 70px; }
.action-table .col-status { width: 80px; }
.action-table .col-memo { width: 180px; }
.action-table .col-delete { width: 50px; }
.action-table th,
.action-table td {
  padding-left: 6px;
  padding-right: 6px;
}
.action-table select,
.action-table input,
.action-table textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.action-table .compact-select {
  min-width: 0;
  max-width: 100%;
}
.action-table td:nth-child(14) {
  white-space: nowrap;
}
.action-table td:nth-child(14) input {
  width: calc(100% - 12px);
}
.selected-count-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  background: #e8f2ff;
  color: var(--blue);
  font-size: 12px;
}
.item-undo-notice {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  padding: 4px 10px;
  border: 1px solid #c8d7eb;
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.item-undo-notice:hover {
  background: #eef5ff;
}
.strategy-month-plan-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
  align-items: stretch;
}
.strategy-portfolio-summary {
  margin-top: 10px;
}
.strategy-portfolio-readonly-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.strategy-portfolio-readonly-grid article,
.strategy-roadmap-card {
  padding: 14px;
  border: 1px solid #dfe8f4;
  border-radius: 16px;
  background: #fbfdff;
}
.strategy-portfolio-readonly-grid strong,
.strategy-roadmap-card span {
  display: block;
  margin-bottom: 7px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 900;
}
.strategy-portfolio-readonly-grid p {
  margin: 0;
  white-space: pre-wrap;
  color: #334155;
  line-height: 1.5;
}
.portfolio-detail-section h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.mini-edit-button {
  min-height: 28px;
  padding: 4px 8px;
  font-size: 12px;
}
.strategy-roadmap-editor {
  display: grid;
  gap: 12px;
  margin-top: 10px;
}
.strategy-roadmap-grid {
  display: grid;
  gap: 12px;
}
.business-model-strategy {
  display: grid;
  gap: 10px;
}
.business-model-strategy h3 {
  margin: 0;
  color: var(--navy);
  font-size: 16px;
}
.business-model-strategy h3 span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.business-model-step-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}
.business-model-step-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  border: 1px solid #dfe8f4;
  border-radius: 16px;
  background: #fbfdff;
  height: 100%;
  min-height: 260px;
  overflow: visible;
}
.business-model-step-card strong {
  color: var(--blue);
  font-size: 12px;
}
.business-model-step-card input,
.business-model-step-card textarea {
  width: 100%;
  min-width: 0;
}
.business-model-step-card textarea {
  min-height: 120px;
  flex: 1 1 auto;
  height: auto;
  resize: vertical;
  overflow: hidden;
  max-height: none;
  white-space: pre-wrap;
  line-height: 1.55;
}
.strategy-roadmap-grid {
  grid-template-columns: 1fr;
}
.strategy-roadmap-card textarea {
  min-height: 118px;
  resize: vertical;
  background: #fff;
}
.strategy-roadmap-list-card {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid #dfe8f4;
  border-radius: 16px;
  background: #fbfdff;
}
.roadmap-list-head,
.roadmap-list-header,
.roadmap-list-row {
  display: grid;
  align-items: start;
  gap: 8px;
}
.roadmap-list-head {
  grid-template-columns: 1fr auto;
  align-items: center;
}
.roadmap-list-head strong {
  color: var(--navy);
}
.roadmap-list-header,
.roadmap-list-row {
  grid-template-columns: 56px minmax(240px, 1fr) 116px minmax(150px, .42fr) 112px 156px;
}
.roadmap-list-header {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.roadmap-list-row {
  padding: 8px 0;
  border-top: 1px solid #e6edf7;
}
.roadmap-row-order,
.roadmap-row-actions {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
.roadmap-list-row textarea,
.roadmap-list-row select {
  min-height: 44px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid #d8e1ef;
  border-radius: 12px;
  background: #fff;
}
.roadmap-list-row textarea {
  resize: vertical;
  overflow-y: hidden;
}
.roadmap-list-row select {
  padding: 0 10px;
  color: var(--navy);
  font-weight: 800;
}
.roadmap-empty-row {
  padding: 10px;
  border-radius: 12px;
  background: #f4f8fd;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}
.strategy-month-plan-card {
  min-height: 300px;
  height: auto;
  padding: 14px;
  border: 1px solid #dfe8f4;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff, #fbfdff);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.strategy-month-plan-card span {
  display: inline-flex;
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  background: #eef5ff;
  color: var(--navy);
  font-size: 13px;
  font-weight: 950;
}
.month-goal-section,
.month-detail-section {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.month-goal-section {
  flex: 0 1 38%;
  min-height: 118px;
}
.month-detail-section {
  flex: 1 1 62%;
  min-height: 160px;
}
.month-goal-section strong,
.month-detail-section strong {
  color: var(--navy);
  font-size: 13px;
}
.month-goal-section strong::after,
.month-detail-section strong::after {
  content: "";
  display: block;
  margin-top: 6px;
  border-bottom: 1px solid #d8e1ef;
}
.month-goal-auto-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.month-goal-auto-list li {
  padding: 8px 9px;
  border: 1px solid #d8e1ef;
  border-radius: 12px;
  background: #fff;
  color: var(--navy);
  line-height: 1.45;
  word-break: keep-all;
}
.month-goal-auto-list li span {
  display: block;
  width: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  font-size: 13px;
  font-weight: 800;
}
.month-goal-auto-list li small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  white-space: pre-wrap;
}
.month-goal-empty {
  padding: 12px;
  border: 1px dashed #c7d5e8;
  border-radius: 12px;
  background: #f8fbff;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.month-plan-summary {
  flex: 1;
  min-height: 130px;
  max-height: none;
  overflow: visible;
  white-space: pre-wrap;
  line-height: 1.45;
  padding: 10px 12px;
  border-radius: 14px;
  background: #f8fbff;
  border: 1px solid #e2ebf7;
}
.roadmap-bar {
  white-space: pre-line;
  border-radius: 14px;
}
.roadmap-bar[title] {
  justify-content: flex-start;
  text-align: left;
}
.strategy-area-list {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  padding: 7px;
  border: 1px solid #dfe8f4;
  border-radius: 8px;
  background: rgba(255,255,255,.9);
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  scrollbar-width: thin;
}
.strategy-area-list::-webkit-scrollbar {
  height: 4px;
}
.strategy-area-list::-webkit-scrollbar-track {
  background: #eef3fb;
  border-radius: 999px;
}
.strategy-area-list::-webkit-scrollbar-thumb {
  background: #b9c9e4;
  border-radius: 999px;
}
.strategy-area-manager {
  padding: 14px;
  border: 1px solid #dfe8f4;
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  box-shadow: var(--shadow-soft);
}
.manager-head,
.manager-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.manager-head { margin-bottom: 10px; }
.manager-head strong { display: block; color: var(--navy); }
.manager-head span { color: var(--muted); font-size: 12px; }
.manager-list { display: grid; gap: 8px; }
.manager-row input { min-height: 38px; }
.strategy-area-chip,
.strategy-area-delete {
  min-height: 28px;
  border: 1px solid #d6e0ef;
  background: #fff;
  color: var(--navy);
}
.strategy-area-chip {
  flex: 0 0 auto;
  max-width: 220px;
  height: 28px;
  border-radius: 6px;
  padding: 4px 9px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  white-space: nowrap;
  overflow: hidden;
}
.strategy-area-chip span {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.strategy-area-chip.active {
  border-color: var(--blue);
  background: #eef5ff;
  color: var(--blue);
}
.strategy-area-delete {
  display: none !important;
  width: 32px;
  border-radius: 50%;
  color: var(--red);
  font-weight: 900;
}
@media (max-width: 560px) {
  .strategy-area-list {
    gap: 3px;
    padding: 6px;
  }
  .strategy-area-chip {
    max-width: 180px;
    height: 27px;
    min-height: 27px;
    padding: 3px 8px;
    font-size: 11px;
  }
}
.compact-action {
  min-height: 32px;
  padding: 6px 10px;
  font-size: 12px;
}
@media (max-width: 1420px) {
  .business-plan-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1280px) {
  .business-plan-grid,
  .portfolio-structured-grid,
  .strategy-month-plan-grid,
  .business-model-step-grid,
  .strategy-roadmap-grid,
  .strategy-portfolio-readonly-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strategy-filter-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bulk-edit-bar input,
  .bulk-edit-bar select { flex-basis: 150px; }
  .investment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .business-plan-head { flex-direction: column; }
  .period-filter-bar { width: 100%; }
  .period-filter-bar label { flex: 1; min-width: 0; }
  .business-plan-grid,
  .portfolio-structured-grid,
  .strategy-month-plan-grid,
  .business-model-step-grid,
  .strategy-roadmap-grid,
  .strategy-portfolio-readonly-grid,
  .strategy-master-grid,
  .strategy-filter-bar { grid-template-columns: 1fr; }
  .bulk-edit-bar > * { flex: 1 1 100%; }
  .portfolio-list-fields,
  .investment-grid { grid-template-columns: 1fr; }
  .portfolio-table label,
  .portfolio-kpi-row,
  .roadmap-list-header,
  .roadmap-list-row,
  .strategy-master-card.focus-card {
    grid-template-columns: 1fr;
  }
  .strategy-master-card.focus-card small,
  .strategy-master-card.focus-card textarea,
  .strategy-master-card.focus-card button {
    grid-column: auto;
    grid-row: auto;
  }
}

/* Business Portfolio is a one-page summary report, not a tabbed input grid. */
.business-plan-lite,
.business-plan-lite * {
  box-sizing: border-box;
}
.business-plan-lite {
  max-width: 100%;
  overflow-x: hidden;
}
.business-plan-lite .business-plan-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  max-width: 100%;
  overflow-x: hidden;
}
.business-plan-lite .portfolio-structured-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
  max-width: 100%;
  overflow-x: hidden;
}
.business-plan-lite .portfolio-card,
.business-plan-lite .portfolio-section-row,
.business-plan-lite .portfolio-summary-block,
.business-plan-lite .portfolio-section-content {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.business-plan-lite .portfolio-area-summary-card,
.business-plan-lite .quarterly-summary-card,
.business-plan-lite .full-row {
  grid-column: 1 / -1;
}
.business-plan-lite .table-wrap {
  max-width: 100%;
  overflow-x: auto;
}
.business-plan-lite .portfolio-area-summary-table {
  min-width: 980px;
  width: 100%;
}
.business-plan-lite .portfolio-summary-text,
.business-plan-lite .portfolio-readonly-grid p {
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.business-plan-lite .portfolio-tabbar {
  display: none !important;
}
@media (max-width: 1100px) {
  .business-plan-lite .portfolio-structured-grid,
  .business-plan-lite .portfolio-readonly-grid {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 760px) {
  .business-plan-lite .portfolio-section-row,
  .business-plan-lite .portfolio-summary-block {
    grid-template-columns: 1fr !important;
  }
}

/* Strategy page: filters and long-form planning rows */
.strategy-master-controls {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
  align-items: stretch !important;
  min-width: min(100%, 760px);
}
.strategy-filter-row {
  display: grid;
  grid-template-columns: minmax(170px, 1.1fr) minmax(260px, 1.8fr) minmax(110px, .65fr) minmax(110px, .65fr);
  gap: 18px;
  align-items: end;
  width: 100%;
}
.strategy-filter-row label,
.strategy-button-row label {
  min-width: 0;
}
.strategy-filter-row select,
.strategy-filter-row input,
.strategy-master-title-row input,
.strategy-master-title-row select {
  min-height: 42px;
}
.strategy-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
  width: 100%;
}
.strategy-master-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
}
.strategy-summary-row {
  display: grid !important;
  grid-template-columns: 60px 280px minmax(0, 1fr) 100px !important;
  gap: 16px !important;
  align-items: start !important;
  min-height: 88px !important;
  height: auto !important;
  overflow: visible !important;
}
.strategy-row-index {
  width: 34px !important;
  height: 34px !important;
  justify-self: center;
  margin-top: 2px;
}
.strategy-summary-label {
  display: block !important;
  min-width: 0 !important;
  width: 100% !important;
  align-items: flex-start !important;
}
.strategy-summary-label strong {
  font-size: 14px;
  line-height: 1.35;
}
.strategy-summary-label small {
  line-height: 1.45;
}
.strategy-summary-text {
  min-width: 0 !important;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  white-space: pre-wrap !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  line-height: 1.6 !important;
  padding: 0 4px !important;
}
.strategy-summary-text p {
  margin: 0 0 6px;
}
.strategy-summary-actions {
  justify-content: flex-end !important;
}
.strategy-summary-actions .line-button {
  width: 100%;
  min-width: 0;
}
.panel-field textarea,
#editPanelMainText {
  min-height: 120px !important;
  resize: vertical !important;
  overflow-y: auto !important;
  max-height: none !important;
  white-space: pre-wrap;
  line-height: 1.6 !important;
}
@media (max-width: 1180px) {
  .strategy-filter-row {
    grid-template-columns: minmax(170px, 1fr) minmax(220px, 1.4fr) repeat(2, minmax(110px, .7fr));
  }
  .strategy-summary-row {
    grid-template-columns: 52px 230px minmax(0, 1fr) 92px !important;
  }
}
@media (max-width: 860px) {
  .strategy-filter-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .strategy-button-row {
    justify-content: flex-start;
  }
  .strategy-summary-row {
    grid-template-columns: 44px minmax(0, 1fr) 92px !important;
  }
  .strategy-summary-label {
    grid-column: 2 / 3;
  }
  .strategy-summary-text {
    grid-column: 1 / -1;
  }
  .strategy-summary-actions {
    grid-column: 3 / 4;
    grid-row: 1 / 2;
  }
}
@media (max-width: 560px) {
  .strategy-filter-row {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .strategy-summary-row {
    grid-template-columns: 40px minmax(0, 1fr) !important;
  }
  .strategy-summary-actions {
    grid-column: 1 / -1;
    grid-row: auto;
    justify-content: stretch !important;
  }
}

/* Business Portfolio: selected-area detail layout */
.business-plan-lite .business-plan-grid {
  display: none !important;
}
.business-plan-lite .portfolio-structured-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
}
.business-portfolio-layout {
  display: grid;
  grid-template-columns: minmax(240px, 24%) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}
.business-area-list {
  min-width: 0;
  max-height: calc(100vh - 260px);
  overflow-y: auto;
  padding-right: 16px;
  border-right: 1px solid #dfe8f4;
}
.business-area-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
  color: var(--navy);
}
.business-area-list-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.business-area-list-scroll {
  display: grid;
  gap: 8px;
}
.business-area-list-item {
  width: 100%;
  min-width: 0;
  padding: 12px;
  border: 1px solid #dfe8f4;
  border-radius: 10px;
  background: #fff;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.business-area-list-item strong {
  display: block;
  color: var(--navy);
  line-height: 1.35;
  word-break: keep-all;
}
.business-area-list-item span {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
}
.business-area-list-item.active {
  border-color: var(--blue);
  background: #eef5ff;
  box-shadow: inset 3px 0 0 var(--blue);
}
.business-area-detail {
  min-width: 0;
  padding: 0 12px;
}
.portfolio-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 18px;
  border-bottom: 1px solid #dfe8f4;
  margin-bottom: 18px;
}
.portfolio-detail-head h2 {
  margin: 4px 0 8px;
  color: var(--navy);
  font-size: 24px;
}
.portfolio-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.portfolio-detail-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #f4f7fb;
  color: var(--navy);
  font-size: 12px;
  font-weight: 800;
}
.portfolio-detail-sections {
  display: grid;
  gap: 18px;
}
.portfolio-detail-section {
  padding-bottom: 16px;
  border-bottom: 1px solid #edf2f8;
}
.portfolio-detail-section h3 {
  margin: 0 0 8px;
  color: var(--navy);
  font-size: 15px;
}
.portfolio-detail-text {
  white-space: pre-wrap;
  word-break: keep-all;
  overflow-wrap: anywhere;
  line-height: 1.7;
  overflow: visible;
  max-height: none;
  color: var(--text);
}
@media (max-width: 900px) {
  .business-portfolio-layout {
    grid-template-columns: 1fr;
  }
  .business-area-list {
    max-height: none;
    overflow: visible;
    padding-right: 0;
    padding-bottom: 14px;
    border-right: 0;
    border-bottom: 1px solid #dfe8f4;
  }
  .business-area-list-scroll {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .business-area-list-item {
    flex: 0 0 min(280px, 80vw);
  }
  .business-area-detail {
    padding: 0;
  }
  .portfolio-detail-head {
    flex-direction: column;
  }
}

