/* Editorial Analytics UI — selected concept 3 */
:root {
    --blue: #176fc0;
    --green: #08a863;
    --ink: #18251f;
    --muted: #64766e;
    --line: transparent;
    --paper: #fff;
    --wash: #f3f6f3;
    --surface: #fff;
    --surface-soft: #f7f9f7;
    --surface-sage: #f2f7f3;
    --surface-blue: #f3f7fb;
    --surface-amber: #fbf7ee;
    --surface-red: #fbf3f3;
    --warn: #b47a09;
    --bad: #cb3f4b;
    --radius-sm: 9px;
    --radius-md: 15px;
    --radius-lg: 20px;
    --shadow-sm: none;
    --shadow-md: none;
}

html,
body {
    background: #f3f6f3;
}

body {
    color: var(--ink);
    font-family: Pretendard, "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.page {
    width: min(1510px, calc(100% - 32px));
    padding: 14px 0 38px;
}

/* Keep every top-level card on the same left/right guide. */
.page-ai > .filter,
.page-ai > #analysis {
    width: 100%;
    margin-inline: 0;
}

h1,
h2,
h3,
h4,
strong,
b {
    letter-spacing: -.025em;
}

/* Shared surfaces: separation comes from spacing and tone, not outlines. */
.panel,
.filter,
.metric-card,
.sync-banner,
.profit-card,
.auth-card,
.dashboard-note,
.optimizer-method-disclosure,
.optimizer-loop-disclosure,
.optimizer-policy,
.optimizer-queue-disclosure,
.chain-list-disclosure,
.chain-detail-disclosure,
.unit-list-disclosure,
.naver-age-disclosure,
.budget-guard-list-disclosure,
.v2-queue,
.v2-policy {
    border: 0 !important;
    box-shadow: none !important;
}

.panel,
.filter,
.sync-banner,
.profit-card,
.auth-card {
    border-radius: var(--radius-md);
    background: var(--surface);
}

.topbar {
    margin: 0 0 10px;
    padding: 10px 14px;
    border: 0;
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, .94);
    box-shadow: none;
}

.brand-mark {
    border: 0;
    background: var(--surface-soft);
    box-shadow: none;
}

.dashboard-nav {
    gap: 4px;
    margin-bottom: 12px;
    padding: 5px;
    border: 0;
    border-radius: 13px;
    background: rgba(255, 255, 255, .92);
}

.dashboard-nav a {
    border-radius: 9px;
}

.dashboard-nav a:hover,
.dashboard-nav a:focus-visible {
    background: #f0f4f1;
}

.dashboard-nav a.active {
    background: #193027;
    color: #fff;
    border: 0;
    box-shadow: none;
}

.filter {
    gap: 10px;
    margin-bottom: 12px;
    padding: 16px;
}

input,
select,
textarea,
.filter input,
.filter select {
    border: 0 !important;
    background: #f1f5f2 !important;
    box-shadow: none !important;
}

.btn,
button {
    border: 0 !important;
    box-shadow: none !important;
}

.btn.secondary,
button.secondary {
    background: #edf2ef;
}

/* Dashboard summary */
.summary-strip,
.page-dashboard .summary-strip {
    display: grid;
    gap: 10px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.metric-card,
.metric-card:first-child,
.metric-card:last-child,
.metric-card.primary {
    min-height: 116px;
    padding: 16px 18px;
    border: 0 !important;
    border-radius: 14px !important;
    background: #fff;
    box-shadow: none !important;
}

.metric-card:first-child,
.metric-card.tone-naver {
    background: var(--surface-sage);
}

.metric-card.tone-blue {
    background: var(--surface-blue);
}

.metric-card.tone-amber {
    background: var(--surface-amber);
}

.metric-card.tone-purple {
    background: #f6f3fb;
}

.metric-icon {
    border-radius: 10px;
    box-shadow: none;
}

.metric-card h3 {
    color: #54675f;
    font-weight: 780;
}

.metric-card .metric-value {
    font-variant-numeric: tabular-nums;
    letter-spacing: -.045em;
}

.metric-card .metric-foot {
    border-top: 0 !important;
    color: #6a7b74;
}

.metric-card::before {
    display: none !important;
}

/* Dashboard KPI cards: clearer source-by-source color separation. */
.page-dashboard .summary-strip > .metric-card:nth-child(1),
.page-dashboard .summary-strip > .metric-card:nth-child(1):first-child {
    background: #e8f4ea !important;
}

.page-dashboard .summary-strip > .metric-card:nth-child(2),
.page-dashboard .summary-strip > .metric-card.tone-blue {
    background: #e9f1fb !important;
}

.page-dashboard .summary-strip > .metric-card:nth-child(3),
.page-dashboard .summary-strip > .metric-card.tone-naver {
    background: #f8efe9 !important;
}

.page-dashboard .summary-strip > .metric-card:nth-child(4),
.page-dashboard .summary-strip > .metric-card.tone-amber {
    background: #fbf3df !important;
}

.decision-signals {
    margin-top: 12px;
    padding: 16px;
    border: 0;
    border-radius: var(--radius-md);
    background: #eef3ef;
}

.decision-signal-grid {
    gap: 6px;
}

.decision-signal-grid article,
.decision-signal-grid article.primary,
.decision-signal-grid article.primary.bad {
    border: 0;
    background: rgba(255, 255, 255, .7);
}

.decision-signals .break-even-gauge {
    border-top: 0;
}

.page-dashboard .dashboard-ai-preview,
.page-dashboard .dashboard-ai-preview.safe,
.page-dashboard .dashboard-ai-preview.warn,
.page-dashboard .dashboard-ai-preview.bad {
    border: 0;
    background: #eef4f0;
}

.dashboard-ai-actions {
    gap: 2px;
    overflow: visible;
    border: 0;
    background: transparent;
}

.dashboard-ai-actions > span {
    border: 0;
    border-radius: 9px;
    background: rgba(255, 255, 255, .74);
}

.dashboard-ai-windows > span {
    background: rgba(255, 255, 255, .66);
}

/* Graphs and controls */
.flow-controls,
.flow-actions,
.flow-controls .rpm-grain-tabs,
.hourly-profit-controls,
.revenue-series-filter,
.table-tabs {
    border: 0 !important;
    background: #f0f4f1 !important;
    box-shadow: none !important;
}

.flow-metric-card,
.profit-bridge,
.profit-stage,
.break-even-metrics,
.break-even-advice,
.ai-analysis,
.ai-analysis-detail,
.hourly-profit-preference,
.hourly-history-disclosure,
.page-ai .profit-stage.revenue,
.page-ai .profit-stage.cost,
.page-ai .profit-stage.net,
.page-ai .profit-stage.room {
    border: 0 !important;
    box-shadow: none !important;
}

.flow-metric-head,
.rpm-signal-badge {
    border: 0 !important;
}

.flow-metric-card,
.profit-stage,
.break-even-advice,
.ai-analysis,
.hourly-profit-preference {
    background: var(--surface-soft);
}

.profit-bridge {
    background: #f3f6f3 !important;
}

.break-even-metrics {
    gap: 4px;
    overflow: visible;
    background: transparent;
}

.break-even-metrics article {
    border: 0 !important;
    border-radius: 10px;
    background: #f4f7f5;
}

.page-ai .break-even-head {
    border-bottom: 0;
}

.ai-priority-brief-card,
.ai-analysis-box,
.ai-priority,
.ai-hourly-action,
.v2-table-reason,
.v2-unit-reason {
    background: #f1f5f2;
}

.hourly-profit-strip {
    gap: 3px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.hourly-profit-cell {
    border: 0 !important;
    border-radius: 9px;
}

.hourly-history-disclosure > summary,
.hourly-history-table-wrap,
.hourly-history-note,
.hourly-history-empty {
    border: 0 !important;
}

.hourly-history-table {
    border-spacing: 3px;
}

.hourly-history-table th,
.hourly-history-table td {
    border: 0 !important;
    border-radius: 7px;
}

/* Generic tables */
.table-wrap,
.chain-table-wrap,
.unit-table-wrap,
.optimizer-table-wrap,
.budget-guard-table-wrap,
.v2-table-wrap {
    border: 0 !important;
    border-radius: 0;
    background: transparent;
    box-shadow: none !important;
}

table,
.chain-table,
.unit-table,
.optimizer-table,
.budget-guard-table,
.v2-table {
    border-collapse: separate;
    border-spacing: 0 4px;
    font-variant-numeric: tabular-nums;
}

th,
.chain-table th,
.unit-table th,
.optimizer-table th,
.budget-guard-table th,
.v2-table th {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #66776f;
    font-weight: 780;
}

td,
.chain-table td,
.unit-table td,
.optimizer-table td,
.budget-guard-table td,
.v2-table-row td {
    border: 0 !important;
    background: #fff;
    box-shadow: none !important;
}

tbody tr:nth-child(even) > td,
.chain-summary-row:nth-of-type(4n + 3) > td,
.v2-table-row:nth-of-type(4n + 3) > td {
    background: #f7f9f7;
}

tbody tr:hover > td,
.chain-summary-row:hover > td,
.v2-table-row:hover > td {
    background: #f0f5f1 !important;
}

tbody tr.selected-row > td {
    background: #edf4f8 !important;
}

tbody tr > td:first-child {
    border-radius: 10px 0 0 10px;
}

tbody tr > td:last-child {
    border-radius: 0 10px 10px 0;
}

.site-management th:first-child,
.site-management td:first-child,
.chain-summary-table th:first-child,
.chain-summary-row td:first-child,
.budget-guard-table th:last-child,
.budget-guard-table td:last-child {
    border: 0 !important;
    box-shadow: none !important;
}

.site-management td:first-child,
.site-management tbody tr:hover td:first-child,
.site-management tbody tr.selected-row td:first-child,
.chain-summary-row td:first-child,
.chain-summary-table th:first-child,
.budget-guard-table td:last-child,
.budget-guard-table th:last-child {
    background: inherit;
}

.table-toolbar,
.review-command-bar,
.budget-table-hint {
    border: 0;
    background: #f2f5f3;
}

.review-command-main,
.review-command-refresh button,
.revenue-series-filter button {
    border: 0;
}

.client-sort-button,
.sort-link {
    letter-spacing: -.01em;
}

.client-sort-button:hover,
.client-sort-button.active,
.sort-link:hover,
.sort-link.active {
    background: transparent !important;
    color: #087446 !important;
}

/* Revenue-chain table: selected concept 3 */
.chain-optimizer {
    padding: 22px;
}

.chain-flow-diagram {
    gap: 6px;
    padding: 8px;
    border: 0 !important;
    background: #f1f5f2;
}

.chain-flow-node {
    border: 0 !important;
    background: rgba(255, 255, 255, .78) !important;
    box-shadow: none !important;
}

.chain-list-disclosure,
.chain-detail-disclosure {
    overflow: visible;
    background: transparent;
}

.chain-list-disclosure > summary,
.chain-detail-disclosure > summary,
.unit-list-disclosure > summary,
.optimizer-queue-disclosure > summary,
.optimizer-method-disclosure > summary,
.budget-guard-list-disclosure > summary,
.naver-age-disclosure > summary {
    border: 0 !important;
    border-radius: 11px;
    background: #f2f5f3 !important;
}

.chain-summary-table-wrap {
    margin-top: 6px;
    background: transparent;
}

.chain-summary-table th,
.chain-summary-table td {
    padding-block: 11px;
}

.chain-summary-table th:first-child,
.chain-summary-row td:first-child {
    background: inherit;
}

.chain-summary-row td:first-child {
    border-left: 0;
}

.chain-summary-row td:first-child strong {
    color: #172720;
    font-size: 12px;
}

.chain-decision {
    padding: 4px 8px;
    background: transparent;
}

.chain-decision.increase {
    background: #e8f7ee;
}

.chain-decision.reduce {
    background: #fbf1d7;
}

.chain-decision.pause {
    background: #fbe8ea;
}

.chain-summary-detail-row > td {
    padding: 0;
    background: transparent !important;
}

.chain-summary-detail > summary {
    width: fit-content;
    padding: 2px 12px 8px 34px;
    border: 0 !important;
    background: transparent !important;
    color: #44705d;
}

.chain-summary-detail[open] > summary {
    border: 0;
}

.chain-summary-detail-body {
    margin: 0 10px 8px;
    border-radius: 12px;
    background: #f2f6f3;
}

.chain-card {
    border: 0;
    border-radius: 13px;
    background: #fff;
    box-shadow: none;
}

.chain-card.increase,
.chain-card.reduce,
.chain-card.pause {
    border: 0;
}

.chain-metrics {
    gap: 4px;
    overflow: visible;
    border: 0;
    background: transparent;
}

.chain-metrics > span {
    border: 0;
    border-radius: 8px;
    background: #f3f6f4;
}

.chain-guardrail {
    padding: 9px 11px;
    border-left: 0;
    border-radius: 8px;
    background: #f7f4ec;
}

/* AI operations */
.optimizer-control,
.optimizer-v2 {
    border: 0 !important;
    background: #fff;
    box-shadow: none !important;
}

.v2-command-head {
    border-bottom: 0;
}

.v2-mode-explainer {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 22px 14px;
    padding: 13px 15px;
    border-radius: 12px;
    background: #eaf3fb;
    color: #225e89;
}

.v2-mode-explainer > svg {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    flex: 0 0 auto;
}

.v2-mode-explainer > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.v2-mode-explainer strong {
    font-size: 13px;
}

.v2-mode-explainer small {
    color: #4a6e87;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.5;
}

.v2-mode.shadow,
.v2-mode.pilot,
.v2-mode.automatic {
    border: 0;
}

.v2-health-strip {
    gap: 4px;
    padding: 0 22px 14px;
    border-bottom: 0;
    background: transparent;
}

.v2-health-strip > span {
    border: 0;
    border-radius: 11px;
    background: #f1f5f2;
}

.v2-health-strip > span:nth-child(1) { background: #eaf6ef; }
.v2-health-strip > span:nth-child(2) { background: #edf3f9; }
.v2-health-strip > span:nth-child(3) { background: #f2eef9; }
.v2-health-strip > span:nth-child(4) { background: #faf3e2; }

.v2-health-strip .blocked {
    background: #fbf4e6;
}

.v2-state-grid {
    gap: 7px;
    padding-top: 4px;
}

.v2-state-grid article,
.v2-state-grid .growing,
.v2-state-grid .reduced,
.v2-state-grid .paused,
.v2-state-grid .retesting {
    border: 0;
    border-radius: 11px;
}

.v2-state-grid article {
    background: #f2f5f3;
}

.v2-state-grid .growing { background: #eaf6ef; }
.v2-state-grid .reduced { background: #faf3e2; }
.v2-state-grid .paused { background: #faebed; }
.v2-state-grid .retesting { background: #edf3f9; }

.v2-queue,
.v2-policy {
    background: transparent;
}

.v2-queue > summary,
.v2-policy > summary {
    border-radius: 12px;
    background: #f1f5f2;
}

.v2-table-row td:first-child {
    border-left: 0;
}

.v2-table-row.actual-pending > td { background: #f7f9f8; }
.v2-table-row.actual-normal > td { background: #f1f8f3; }
.v2-table-row.actual-reduced > td { background: #fff8e9; }
.v2-table-row.actual-stopped > td { background: #fdf0f1; }
.v2-table-row.actual-retesting > td { background: #eef5fb; }

.v2-table-row.actual-pending:hover > td { background: #eff3f1 !important; }
.v2-table-row.actual-normal:hover > td { background: #e7f3ea !important; }
.v2-table-row.actual-reduced:hover > td { background: #faefd3 !important; }
.v2-table-row.actual-stopped:hover > td { background: #f8e4e6 !important; }
.v2-table-row.actual-retesting:hover > td { background: #e2edf8 !important; }

.v2-actual-state {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
}

.v2-actual-state > small {
    color: #77877f;
    font-size: 9px;
    font-weight: 750;
    white-space: nowrap;
}

.v2-actual-pill {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 5px 9px;
    border-radius: 999px;
    background: #edf1ef;
    color: #53665c;
    font-size: 10px;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

.v2-actual-pill.normal { background: #e8f6ed; color: #087243; }
.v2-actual-pill.reduced { background: #fff2d4; color: #996600; }
.v2-actual-pill.stopped { background: #fde8eb; color: #bc3241; }
.v2-actual-pill.retesting { background: #e7f1fb; color: #246aa2; }
.v2-actual-pill.pending { background: #edf1ef; color: #607067; }

.v2-unit-actual {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f1f5f2;
}

.v2-unit-actual > small {
    color: #66786f;
    font-size: 10px;
    font-weight: 850;
}

.v2-unit-actual > b {
    margin-left: auto;
    color: #77877f;
    font-size: 10px;
}

.v2-table-detail-row > td {
    padding: 0;
    border: 0;
    background: transparent;
}

.v2-table-detail > summary,
.v2-table-detail[open] > summary {
    width: 100%;
    padding: 8px 16px;
    border: 0;
    background: transparent;
    text-align: left;
}

.v2-table-detail > summary:focus-visible,
.v2-unit-detail > summary:focus-visible {
    outline: 0;
    background: #eaf3ee;
    box-shadow: inset 4px 0 #2f7657;
}

.v2-table-detail[open] {
    margin: 0 8px 8px;
    border-radius: 12px;
    background: #f2f6f3;
}

.v2-table-reason {
    margin-top: 8px;
}

.v2-table-reason.reduced,
.v2-unit-reason.reduced { background: #fff4d9; }

.v2-table-reason.paused,
.v2-unit-reason.paused { background: #fdebed; }

.v2-table-reason.retesting,
.v2-unit-reason.retesting { background: #eaf3fb; }

.v2-table-reason.growing,
.v2-unit-reason.growing { background: #eaf6ef; }

.v2-action-note {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: -8px 18px 14px;
    color: #8a5d16;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.45;
}

.v2-action-note svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
}

.v2-actions .v2-action-restore,
.v2-actions .v2-action-reduce,
.v2-actions .v2-action-stop {
    border: 0;
    box-shadow: none;
    font-weight: 850;
}

.v2-actions .v2-action-restore {
    background: #dff3e7;
    color: #086a3c;
}

.v2-actions .v2-action-reduce {
    background: #ffedbf;
    color: #875900;
}

.v2-actions .v2-action-stop {
    background: #f9dfe3;
    color: #b12f3c;
}

.v2-actions .v2-action-restore:hover { background: #cdebd9; }
.v2-actions .v2-action-reduce:hover { background: #f9dda0; }
.v2-actions .v2-action-stop:hover { background: #f4cbd1; }

.v2-policy-grid {
    gap: 5px;
    background: transparent;
}

.v2-policy-grid span {
    border-radius: 9px;
    background: #f3f6f4;
}

.v2-unit-list {
    background: transparent;
}

.v2-unit-card,
.v2-unit-card.growing,
.v2-unit-card.reduced,
.v2-unit-card.paused,
.v2-unit-card.retesting {
    border: 0;
    border-radius: 13px;
    background: #f7f9f7;
    box-shadow: none;
}

.v2-unit-detail {
    border-top: 0;
}

.v2-unit-detail > summary,
.v2-detail-grid {
    border: 0;
    background: #f0f4f1;
}

/* Budget guard and operating units */
.budget-guard,
.unit-optimizer {
    overflow: hidden;
}

.budget-guard-summary {
    gap: 4px;
    padding: 0 14px 14px;
}

.budget-guard-summary > span {
    border: 0 !important;
    border-radius: 10px;
    background: #f2f5f3;
}

.budget-table-hint {
    margin: 0 14px 6px;
    border-radius: 9px;
}

.budget-guard-table-wrap {
    border-bottom: 0;
}

.budget-guard-table tbody tr:nth-child(even) td:last-child,
.budget-guard-table tbody tr:hover td:first-child,
.budget-guard-table tbody tr:hover td:last-child {
    background: inherit;
}

.unit-coverage {
    gap: 6px;
    border: 0 !important;
    background: transparent !important;
}

.unit-coverage article {
    border: 0 !important;
    border-radius: 9px;
    background: #f2f5f3;
}

.optimizer-kpis,
.optimizer-loop-status,
.naver-age-result {
    gap: 5px;
    border: 0 !important;
    background: transparent !important;
}

.optimizer-kpis article,
.optimizer-loop-status > span,
.naver-age-result > span {
    border: 0 !important;
    border-radius: 9px;
    background: #f2f5f3;
}

/* Disclosures */
details > summary {
    outline-offset: 2px;
}

.dashboard-note,
.optimizer-method-disclosure,
.optimizer-loop-disclosure,
.optimizer-policy,
.naver-age-disclosure {
    border-radius: 11px;
    background: #f2f5f3;
}

.dashboard-note > summary,
.optimizer-method-disclosure > summary,
.optimizer-loop-disclosure > summary,
.optimizer-policy > summary,
.naver-age-disclosure > summary {
    border: 0 !important;
    background: transparent !important;
}

.ai-analysis-note-disclosure > div,
.ai-evidence-links nav,
.ai-evidence-links a,
.naver-age-panel,
.naver-age-head,
.naver-age-form,
.naver-age-disclosure .naver-age-form,
.naver-age-grid label,
.naver-age-grid label.unknown {
    border: 0 !important;
    box-shadow: none !important;
}

.ai-evidence-links nav {
    gap: 5px;
    overflow: visible;
    background: transparent;
}

.ai-evidence-links a {
    border-radius: 9px;
    background: #f1f5f2;
}

.naver-age-panel {
    border-radius: var(--radius-md);
    background: #f2f5f3;
}

.naver-age-form {
    background: transparent;
}

.naver-age-grid label,
.naver-age-grid label.unknown {
    background: rgba(255, 255, 255, .76);
}

/* V13: align the AI operation table with the dashboard table rhythm. */
.v2-table-wrap {
    margin: 0 14px 14px;
    border-radius: 14px;
    background: #eef3ef;
}

.v2-table {
    min-width: 980px;
    border-spacing: 0;
}

.v2-table th {
    border: 0;
    background: #eaf0ec;
    color: #53685e;
}

.v2-table .client-sort-button {
    min-height: 46px;
    padding: 10px 12px;
}

.v2-table-row td {
    height: 62px;
    padding: 10px 12px;
}

.v2-table-row td:first-child {
    border-radius: 12px 0 0 0;
}

.v2-table-row td:last-child {
    border-radius: 0 12px 0 0;
}

.v2-table-name strong {
    font-size: 13px;
}

.v2-table-detail-row > td {
    padding: 0 0 6px;
    border: 0;
    border-radius: 0 0 12px 12px;
}

.v2-table-row.actual-pending + .v2-table-detail-row > td { background: #f7f9f8; }
.v2-table-row.actual-normal + .v2-table-detail-row > td { background: #f1f8f3; }
.v2-table-row.actual-reduced + .v2-table-detail-row > td { background: #fff8e9; }
.v2-table-row.actual-stopped + .v2-table-detail-row > td { background: #fdf0f1; }
.v2-table-row.actual-retesting + .v2-table-detail-row > td { background: #eef5fb; }

.v2-table-detail > summary,
.v2-table-detail[open] > summary {
    width: auto;
    min-height: 30px;
    margin: 0;
    padding: 6px 12px 8px calc(15% + 12px);
    border: 0;
    background: transparent;
    color: #2e6c51;
    text-align: left;
}

.v2-table-detail[open] {
    margin: 0 8px 8px;
}

/* V13: make the global age control read as one compact settings module. */
.naver-age-panel {
    margin-top: 18px;
    padding: 18px;
    overflow: visible;
    border-radius: 18px;
    background: #eef3ef;
}

.naver-age-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 0 2px 14px;
    background: transparent;
}

.naver-age-head h3 {
    margin-top: 3px;
    font-size: 19px;
    letter-spacing: -.02em;
}

.naver-age-head p {
    max-width: 760px;
    margin-top: 5px;
    font-size: 11px;
}

.naver-age-status {
    min-height: 34px;
    padding: 7px 11px;
    background: #fff;
    color: #087447;
}

.naver-age-disclosure {
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
}

.naver-age-disclosure > summary {
    min-height: 66px;
    padding: 12px 14px;
    background: #fff !important;
}

.naver-age-disclosure > summary:hover {
    background: #f8fbf9 !important;
}

.naver-age-disclosure > summary strong {
    font-size: 13px;
}

.naver-age-disclosure > summary small {
    margin-top: 2px;
    font-size: 10px;
}

.naver-age-disclosure > summary b {
    padding: 6px 9px;
    border-radius: 999px;
    background: #edf3ef;
    color: #4e675b;
}

.naver-age-disclosure > summary::after {
    background: #e6f2eb;
    color: #176642;
}

.naver-age-disclosure .naver-age-form {
    gap: 14px;
    padding: 14px;
    background: #f7faf8;
}

.naver-age-grid {
    gap: 8px;
}

.naver-age-grid label,
.naver-age-grid label.unknown {
    min-height: 56px;
    border-radius: 10px;
    background: #eef3ef;
    transition: background .16s ease, color .16s ease;
}

.naver-age-grid label:hover {
    background: #e7efea;
}

.naver-age-grid label:has(input:checked) {
    background: #dff1e6;
    color: #086a3d;
}

.naver-age-grid label.unknown:has(input:checked) {
    background: #e4eef8;
    color: #235f91;
}

.naver-age-actions {
    padding-top: 2px;
}

.naver-age-actions button {
    min-height: 38px;
    padding: 8px 14px;
    border: 0;
    border-radius: 9px;
    box-shadow: none;
}

.naver-age-result {
    gap: 6px;
    padding: 0 14px 14px;
    background: #f7faf8 !important;
}

.naver-age-result > span {
    min-height: 58px;
    border-radius: 10px;
    background: #fff;
}

@media (max-width: 760px) {
    .naver-age-panel {
        padding: 14px;
    }

    .naver-age-head {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .naver-age-status {
        justify-self: start;
    }

    .naver-age-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .naver-age-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .naver-age-result {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.page-nav-divider {
    visibility: hidden;
}

/* Responsive: preserve scanability without horizontal page scroll. */
@media (max-width: 1100px) {
    .page {
        width: min(100% - 22px, 980px);
    }

    .hourly-profit-strip {
        gap: 4px;
    }
}

@media (max-width: 820px) {
    .page {
        width: calc(100% - 14px);
        padding-top: 7px;
    }

    .topbar {
        padding: 9px 10px;
    }

    .filter {
        padding: 13px;
    }

    .page-dashboard .summary-strip,
    .summary-strip {
        gap: 7px;
    }

    .metric-card,
    .metric-card:first-child,
    .metric-card:last-child {
        min-height: 108px;
        padding: 13px;
        border-radius: 12px !important;
    }

    .budget-guard-summary > span {
        border: 0 !important;
    }

    .budget-guard-table-wrap {
        padding: 8px;
        background: #eef3ef;
    }

    .budget-guard-table tr {
        gap: 0;
        border: 0;
        border-radius: 12px;
        box-shadow: none;
    }

    .budget-guard-table td,
    .budget-guard-table td:first-child,
    .budget-guard-table td:last-child {
        border: 0;
        background: #fff;
    }

    .budget-guard-table td:first-child,
    .budget-guard-table tbody tr:nth-child(even) td:first-child {
        background: #f7f9f7;
    }

    .chain-optimizer {
        padding: 15px;
    }

    .chain-card,
    .v2-unit-card {
        background: #f6f8f6;
    }

    .v2-unit-card.actual-pending { background: #f6f8f7; }
    .v2-unit-card.actual-normal { background: #eff7f1; }
    .v2-unit-card.actual-reduced { background: #fff7e6; }
    .v2-unit-card.actual-stopped { background: #fcecee; }
    .v2-unit-card.actual-retesting { background: #ebf3fa; }
}

@media (max-width: 600px) {
    .topbar,
    .dashboard-nav,
    .panel,
    .filter,
    .sync-banner,
    .profit-card,
    .auth-card {
        border-radius: 12px;
    }

    .dashboard-nav {
        top: 4px;
    }

    .range-tabs {
        gap: 4px;
        padding: 3px;
        border-radius: 10px;
        background: #f0f4f1;
    }

    .range-tabs button {
        border-radius: 8px;
    }

    .flow-panel,
    .page-ai .break-even-panel,
    .page-ai .chain-optimizer,
    .page-ai .ai-rpm-evidence,
    .optimizer-control {
        padding: 13px;
    }

    .hourly-profit-strip {
        gap: 5px;
    }

    .v2-health-strip {
        gap: 5px;
        padding: 0 12px 12px;
    }

    .v2-mode-explainer {
        margin: 0 12px 12px;
        padding: 12px;
    }

    .v2-health-strip > span {
        padding: 12px;
    }

    .v2-state-grid {
        gap: 5px;
    }

    .v2-queue,
    .v2-policy {
        margin-inline: 10px;
    }

    .v2-policy-grid {
        gap: 4px;
    }

    .v2-unit-actual {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .v2-unit-actual > b {
        width: 100%;
        margin-left: 0;
    }
}

/* Site management: borderless editorial workbench */
.site-management {
    overflow: hidden;
    padding: 22px;
}

.site-management .panel-head {
    align-items: flex-end;
    flex-direction: row;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 4px;
}

.site-management .panel-head h2 {
    font-size: 23px;
    letter-spacing: -.035em;
}

.site-management .panel-head > span {
    padding: 6px 9px;
    border-radius: 999px;
    background: #f1f5f2;
    color: #5c7066;
    font-size: 11px;
    font-weight: 750;
}

.site-management .panel-subtitle {
    margin: 0 0 14px;
    color: #60736a;
    font-size: 12px;
}

.site-management .review-command-bar {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 7px;
    margin: 0 0 10px;
    padding: 8px;
    border: 0 !important;
    border-radius: 12px;
    background: #f1f5f2;
    box-shadow: none;
}

.site-management .review-command-main,
.site-management .review-command-stats,
.site-management .review-command-refresh {
    min-height: 38px;
    border: 0 !important;
    border-radius: 9px;
    background: rgba(255, 255, 255, .76);
    box-shadow: none !important;
}

.site-management .review-command-main {
    width: max-content;
    padding: 8px 12px;
}

.site-management .review-command-main strong {
    color: #0d5f8f;
}

.site-management .review-command-stats {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 7px 10px;
}

.site-management .review-command-stats span {
    white-space: nowrap;
}

.site-management .review-command-refresh {
    padding: 4px;
}

.site-management .review-command-refresh button {
    min-height: 30px;
    padding-inline: 10px;
    border-radius: 7px;
    background: transparent;
}

.site-management .table-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    margin: 0 0 8px;
    padding: 7px 9px;
    border: 0 !important;
    border-radius: 12px;
    background: #f6f8f6;
    box-shadow: none;
}

.site-management .table-tabs {
    display: flex;
    flex-wrap: nowrap;
    min-width: 0;
    gap: 3px;
    overflow-x: auto;
    scrollbar-width: none;
}

.site-management .table-tabs::-webkit-scrollbar {
    display: none;
}

.site-management .table-tabs button,
.site-management .site-filter-reset {
    flex: 0 0 auto;
    width: auto;
    min-height: 34px;
    padding: 7px 10px;
    border: 0 !important;
    border-radius: 8px;
    background: transparent;
    box-shadow: none !important;
    color: #334b40;
    font-size: 11px;
    font-weight: 760;
}

.site-management .table-tabs button.active,
.site-management .table-tabs button[aria-pressed="true"] {
    background: #147fc8;
    color: #fff;
}

.site-management .site-table-controls {
    display: grid;
    grid-template-columns: auto minmax(150px, 190px) minmax(150px, 190px) auto;
    align-items: end;
    gap: 6px;
}

.site-management .site-results-count {
    align-self: center;
    padding-inline: 4px;
    color: #5a7066;
    font-size: 10px;
    font-weight: 780;
    white-space: nowrap;
}

.site-management .site-table-controls label {
    gap: 3px;
    color: #60736a;
    font-size: 9px;
    font-weight: 760;
}

.site-management .site-table-controls select,
.site-management .site-table-controls input {
    min-height: 34px;
    padding: 7px 9px;
    border: 0 !important;
    border-radius: 8px;
    background: #fff;
    box-shadow: none !important;
    font-size: 11px;
}

.site-management .site-filter-reset {
    color: #64766e;
}

.site-management .table-wrap {
    max-height: min(70vh, 760px);
    margin: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent;
    box-shadow: none !important;
}

.site-management .site-data-table {
    min-width: 1430px;
    border-collapse: separate;
    border-spacing: 0 4px;
}

.site-management .site-data-table col.col-site { width: 200px; }
.site-management .site-data-table col.col-adsense { width: 108px; }
.site-management .site-data-table col.col-cost { width: 100px; }
.site-management .site-data-table col.col-net { width: 108px; }
.site-management .site-data-table col.col-ratio { width: 80px; }
.site-management .site-data-table col.col-cpc { width: 76px; }
.site-management .site-data-table col.col-rpm { width: 82px; }
.site-management .site-data-table col.col-clicks { width: 82px; }
.site-management .site-data-table col.col-pv { width: 64px; }
.site-management .site-data-table col.col-type { width: 70px; }
.site-management .site-data-table col.col-review { width: 180px; }
.site-management .site-data-table col.col-conversion { width: 180px; }
.site-management .site-data-table col.col-updated { width: 100px; }

.site-management .site-data-table th,
.site-management .site-data-table td {
    border: 0 !important;
    box-shadow: none !important;
}

.site-management .site-data-table th {
    height: 40px;
    padding: 8px 10px;
    background: #f7f9f7 !important;
    color: #62746b;
    font-size: 11px;
}

.site-management .site-data-table td {
    height: 70px;
    min-height: 0;
    padding: 8px 10px;
    background: #fff;
    font-size: 11.5px;
    vertical-align: middle;
}

.site-management .site-data-table tbody tr:nth-child(even) td {
    background: #f7f9f7;
}

.site-management .site-data-table tbody tr:hover td {
    background: #f0f5f1 !important;
}

.site-management .site-data-table tbody tr.selected-row td {
    background: #eaf2f6 !important;
}

.site-management .site-data-table tbody td:first-child {
    border-radius: 10px 0 0 10px;
}

.site-management .site-data-table tbody td:last-child {
    border-radius: 0 10px 10px 0;
}

.site-management .site-data-table th:first-child,
.site-management .site-data-table td:first-child {
    box-shadow: none !important;
}

.site-management .site-data-table tbody tr:nth-child(odd) td:first-child {
    background: #fff;
}

.site-management .site-data-table tbody tr:nth-child(even) td:first-child {
    background: #f7f9f7;
}

.site-management .site-data-table tbody tr:hover td:first-child {
    background: #f0f5f1 !important;
}

.site-management .site-data-table tbody tr.selected-row td:first-child {
    background: #eaf2f6 !important;
}

.site-management .site-data-table th:nth-child(1),
.site-management .site-data-table td:nth-child(1),
.site-management .site-data-table th:nth-child(5),
.site-management .site-data-table td:nth-child(5),
.site-management .site-data-table th:nth-child(7),
.site-management .site-data-table td:nth-child(7),
.site-management .site-data-table th:nth-child(9),
.site-management .site-data-table td:nth-child(9),
.site-management .site-data-table th:nth-child(12),
.site-management .site-data-table td:nth-child(12) {
    border-right: 0 !important;
}

.site-management .site-name strong {
    display: block;
    overflow: hidden;
    color: #172a21;
    font-size: 12.5px;
    letter-spacing: -.012em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-management .site-name > span {
    display: block;
    overflow: hidden;
    margin-top: 3px;
    color: #7a8c83;
    font-size: 10px;
    font-weight: 560;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-management .site-name small,
.site-management .review-cell small,
.site-management .conversion-cell small {
    color: #718078;
    line-height: 1.35;
}

.site-management .site-data-table .type-pill,
.site-management .site-data-table .status-pill {
    display: inline-flex;
    align-items: center;
    width: max-content;
    padding: 4px 7px;
    border: 0 !important;
    font-size: 9.5px;
    line-height: 1.1;
}

.site-management .review-cell {
    overflow: visible;
}

.site-management .review-cell .review-form {
    display: grid;
    grid-template-columns: max-content max-content;
    align-items: center;
    justify-content: start;
    gap: 4px 6px;
}

.site-management .review-cell .review-form > .status-pill,
.site-management .review-cell .review-form > .review-action-btn,
.site-management .review-cell .review-form > small,
.site-management .review-cell .review-form > span[data-review-site-counts] {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    margin: 0;
    line-height: 1.2;
}

.site-management .review-cell .review-form > small,
.site-management .review-cell .review-form > span[data-review-site-counts] {
    overflow: hidden;
    color: #718078;
    font-size: 9px;
    font-weight: 680;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-management .review-action-btn,
.site-management .conversion-modes button {
    min-height: 25px;
    padding: 4px 7px;
    border: 0 !important;
    border-radius: 7px;
    box-shadow: none !important;
    font-size: 9.5px;
}

.site-management .review-action-btn {
    background: #edf3f8;
    color: #17658d !important;
}

.site-management .conversion-modes {
    gap: 3px;
}

.site-management .conversion-form.table-mode {
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 4px 5px;
}

.site-management .conversion-form.table-mode .mode-summary {
    display: flex;
    align-items: center;
}

.site-management .conversion-form.table-mode .conversion-modes {
    justify-content: flex-start;
}

.site-management .rpm-signal-badge {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    font-size: 8.5px;
}

.site-management .rpm-table-cell strong,
.site-management .money {
    color: #172a21;
    font-weight: 820;
}

.site-management .client-sort-button:focus-visible,
.site-management .sort-link:focus-visible {
    outline: 0 !important;
    background: #e8f2f8 !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 6px;
    color: #087446 !important;
}

.site-management .sparkline {
    height: 12px;
    opacity: .7;
}

.site-detail .detail-tabs {
    gap: 3px;
    margin: 8px 0 14px;
    padding: 4px;
    border: 0 !important;
    border-radius: 10px;
    background: #f1f5f2;
}

.site-detail .detail-tab {
    border: 0 !important;
    border-radius: 7px;
}

.site-detail .detail-tab.active {
    background: #fff;
    box-shadow: none;
}

.site-detail .detail-stat,
.site-detail .detail-block,
.site-detail .page-performance-scroll {
    border: 0 !important;
    border-radius: 10px;
    background: #f6f8f6;
    box-shadow: none !important;
}

@media (max-width: 1080px) {
    .site-management .table-toolbar {
        grid-template-columns: 1fr;
    }

    .site-management .site-table-controls {
        grid-template-columns: auto minmax(150px, 1fr) minmax(150px, 1fr) auto;
    }
}

@media (max-width: 760px) {
    .site-management {
        padding: 15px;
    }

    .site-management .review-command-bar {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .site-management .review-command-main {
        grid-column: 1 / -1;
    }

    .site-management .site-table-controls {
        grid-template-columns: auto minmax(150px, 1fr) minmax(150px, 1fr);
    }

    .site-management .site-filter-reset {
        grid-column: 3;
    }
}

@media (max-width: 560px) {
    .site-management .panel-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .site-management .review-command-stats {
        overflow-x: auto;
    }

    .site-management .site-table-controls {
        grid-template-columns: 1fr 1fr;
    }

    .site-management .site-results-count {
        grid-column: 1 / -1;
    }

    .site-management .site-filter-reset {
        grid-column: auto;
    }
}

/* V29: perceptual grouping for charts and site-management controls */
.page-dashboard .flow-control-row {
    grid-template-columns: 68px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    padding: 8px 9px;
}

.page-dashboard .flow-control-label {
    padding-inline: 0;
    white-space: nowrap;
}

.page-dashboard .flow-panel .line-chart.full svg {
    display: block;
    width: 100%;
}

.page-dashboard .flow-panel .chart-x-labels text {
    fill: #687e74;
    font-size: 10px;
    font-weight: 820;
    letter-spacing: -.01em;
}

.site-management .review-command-bar {
    grid-template-columns: minmax(170px, .85fr) minmax(300px, 1.6fr) minmax(150px, .7fr);
    align-items: stretch;
    gap: 8px;
    padding: 8px;
    background: transparent;
}

.site-management .review-command-group {
    display: grid;
    align-content: center;
    gap: 5px;
    min-width: 0;
    min-height: 58px;
    padding: 8px 10px;
    border-radius: 11px;
}

.site-management .review-command-work {
    background: #eaf3fb;
}

.site-management .review-command-status {
    background: #f1f5f2;
}

.site-management .review-command-refresh {
    background: #e8f5ee;
}

.site-management .review-command-label {
    color: #5b7166;
    font-size: 9px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .02em;
}

.site-management .review-command-main,
.site-management .review-command-stats,
.site-management .review-command-refresh {
    min-height: 0;
    padding: 0;
    background: transparent;
}

.site-management .review-command-main {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    width: 100%;
    gap: 8px;
    text-align: left;
}

.site-management .review-command-stats {
    justify-content: flex-start;
    gap: 6px;
}

.site-management .review-command-stats span,
.site-management .review-command-stats small {
    padding: 5px 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .8);
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.site-management .review-command-stats span:nth-child(1) {
    background: #fff1cf;
    color: #92610a;
}

.site-management .review-command-stats span:nth-child(2) {
    background: #e3f4e9;
    color: #147044;
}

.site-management .review-command-stats span:nth-child(3) {
    background: #fde8e8;
    color: #ad3541;
}

.site-management .review-command-refresh button {
    width: 100%;
    min-height: 32px;
    padding: 7px 10px;
    border-radius: 8px;
    background: #19794f;
    color: #fff;
    font-weight: 850;
}

.site-management .table-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 8px;
    padding: 0;
    background: transparent;
}

.site-management .site-control-group {
    display: grid;
    gap: 7px;
    min-width: 0;
    padding: 9px 10px;
    border-radius: 12px;
}

.site-management .site-control-quick {
    background: #f1f5f2;
}

.site-management .site-control-query {
    background: #edf4f8;
}

.site-management .site-control-title {
    color: #4e665b;
    font-size: 10px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .01em;
}

.site-management .site-control-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.site-management .site-results-count {
    padding: 4px 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .8);
    color: #50685d;
}

.site-management .site-table-controls {
    grid-template-columns: minmax(240px, 1fr) minmax(240px, 1fr) auto;
    align-items: stretch;
    gap: 7px;
}

.site-management .site-table-controls label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 5px 6px 5px 10px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .82);
}

.site-management .site-table-controls label > span {
    color: #4f665c;
    font-size: 10px;
    font-weight: 850;
    white-space: nowrap;
}

.site-management .site-table-controls select,
.site-management .site-table-controls input {
    width: 100%;
    min-width: 0;
    min-height: 36px;
    background: #f5f8f6;
}

.site-management .site-filter-reset {
    align-self: stretch;
    min-height: 46px;
    padding-inline: 14px;
    background: #dfe9e4;
    color: #365044;
}

.site-management .site-data-table {
    min-width: 1340px;
}

.site-management .site-data-table col.col-site { width: 190px; }
.site-management .site-data-table col.col-adsense { width: 105px; }
.site-management .site-data-table col.col-cost { width: 95px; }
.site-management .site-data-table col.col-net { width: 105px; }
.site-management .site-data-table col.col-ratio { width: 75px; }
.site-management .site-data-table col.col-cpc { width: 70px; }
.site-management .site-data-table col.col-rpm { width: 80px; }
.site-management .site-data-table col.col-clicks { width: 72px; }
.site-management .site-data-table col.col-pv { width: 60px; }
.site-management .site-data-table col.col-type { width: 68px; }
.site-management .site-data-table col.col-review { width: 170px; }
.site-management .site-data-table col.col-conversion { width: 170px; }
.site-management .site-data-table col.col-updated { width: 80px; }

@media (max-width: 820px) {
    .page-dashboard .flow-control-row {
        grid-template-columns: 58px minmax(0, 1fr);
        padding: 8px;
    }

    .site-management .review-command-bar {
        grid-template-columns: minmax(150px, .8fr) minmax(270px, 1.55fr) minmax(138px, .7fr);
        overflow-x: auto;
    }

    .site-management .site-table-controls {
        grid-template-columns: minmax(210px, 1fr) minmax(210px, 1fr) auto;
    }
}

@media (max-width: 620px) {
    .site-management .review-command-bar,
    .site-management .site-table-controls {
        grid-template-columns: 1fr;
        overflow: visible;
    }

    .site-management .site-filter-reset {
        min-height: 40px;
    }
}

@media (max-width: 440px) {
    .page-dashboard .flow-control-row {
        grid-template-columns: 1fr;
    }
}

/* V31: eliminate dense-cell clipping and keep mobile actions comfortably tappable. */
.site-management .site-data-table {
    min-width: 1460px;
}

.site-management .site-data-table col.col-rpm {
    width: 105px;
}

.site-management .site-data-table .rpm-table-cell {
    white-space: normal;
}

.site-management .site-data-table .rpm-signal-badge {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    max-width: 100%;
    line-height: 1.15;
    text-align: center;
    white-space: normal;
}

@media (max-width: 620px) {
    .page-ai .v2-actions button {
        min-height: 42px;
        padding-block: 9px;
    }
}

/* V30: give dense site-management columns enough room and a single alignment rule. */
.site-management .site-data-table {
    min-width: 1435px;
}

.site-management .site-data-table col.col-review { width: 180px; }
.site-management .site-data-table col.col-conversion { width: 210px; }
.site-management .site-data-table col.col-updated { width: 105px; }

.site-management .site-data-table thead th {
    text-align: center !important;
    vertical-align: middle;
}

.site-management .site-data-table thead th:first-child {
    text-align: left !important;
}

.site-management .site-data-table thead th .client-sort-button,
.site-management .site-data-table thead th .sort-link {
    width: 100%;
    justify-content: center;
    text-align: center;
}

.site-management .site-data-table thead th:first-child .client-sort-button,
.site-management .site-data-table thead th:first-child .sort-link {
    justify-content: flex-start;
    text-align: left;
}

.site-management .site-data-table tbody td:not(:first-child) {
    text-align: center;
}

.site-management .review-cell .review-form {
    justify-content: center;
}

.site-management .conversion-cell {
    overflow: visible;
}

.site-management .conversion-form.table-mode {
    grid-template-columns: max-content minmax(124px, 1fr);
    align-items: center;
}

.site-management .conversion-form.table-mode .conversion-modes {
    flex-wrap: nowrap;
    justify-content: center;
}

.site-management .site-data-table td:last-child {
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}

/* V21: unify the expanded operation detail into one calm, readable action surface. */
.page-ai .v2-table-detail {
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 12px;
    background: #f7f9f7;
    color: #183128;
}

.page-ai .v2-table-detail.actual-normal { background: #f3f8f4; }
.page-ai .v2-table-detail.actual-reduced { background: #fffaf0; }
.page-ai .v2-table-detail.actual-stopped { background: #fff6f6; }
.page-ai .v2-table-detail.actual-retesting { background: #f4f8fc; }

.page-ai .v2-table-reason {
    display: grid;
    grid-template-columns: auto 18px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    margin: 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: #fff !important;
}

.page-ai .v2-table-reason.reduced { background: #fff5dc !important; }
.page-ai .v2-table-reason.paused { background: #fdeff0 !important; }
.page-ai .v2-table-reason.retesting { background: #edf5fc !important; }
.page-ai .v2-table-reason.growing { background: #ebf7ef !important; }

.page-ai .v2-table-reason > svg {
    width: 17px;
    height: 17px;
    margin-top: 3px;
    color: #2d7353;
}

.page-ai .v2-table-reason > span:last-child {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.page-ai .v2-table-reason small {
    color: #64776d;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.4;
}

.page-ai .v2-table-reason strong {
    color: #29483b;
    font-size: 12px;
    line-height: 1.5;
}

.page-ai .v2-detail-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 7px;
    padding: 0;
    border: 0;
}

.page-ai .v2-detail-grid > span {
    min-height: 60px;
    justify-content: center;
    padding: 8px 10px;
    border-radius: 0;
    background: transparent;
}

.page-ai .v2-detail-grid small {
    color: #718178;
    font-size: 9.5px;
}

.page-ai .v2-detail-grid strong {
    color: #29483b;
    font-size: 12px;
    line-height: 1.35;
}

.page-ai .v2-history-line {
    gap: 8px;
    padding: 9px 11px;
    border-radius: 9px;
    background: #eef3ef;
    color: #6e7f76;
}

.page-ai .v2-actions {
    gap: 7px;
    padding: 0;
}

.page-ai .v2-actions button {
    min-height: 42px;
    border: 0 !important;
    border-radius: 9px;
    box-shadow: none !important;
    font-weight: 850;
}

.page-ai .v2-actions .v2-action-restore { background: #dff3e6; color: #08743d; }
.page-ai .v2-actions .v2-action-reduce { background: #fff0c9; color: #8b5a00; }
.page-ai .v2-actions .v2-action-stop { background: #fde1e4; color: #a93440; }

.page-ai .v2-action-note {
    margin: -1px 1px 0;
    color: #7d6640;
    font-size: 9.5px;
    font-weight: 700;
}

@media (max-width: 820px) {
    .page-ai .v2-table-detail-row > td {
        position: relative;
    }

    .page-ai .v2-table-detail {
        position: sticky;
        left: 10px;
        width: calc(100vw - 103px);
        max-width: calc(100vw - 103px);
        box-sizing: border-box;
        padding: 12px;
    }

    .page-ai .v2-table-reason {
        grid-template-columns: auto 16px minmax(0, 1fr);
        gap: 8px;
        padding: 11px;
    }

    .page-ai .v2-detail-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .page-ai .v2-history-line {
        gap: 6px 14px;
    }
}

/* V20: the operation table is current-state first and the whole row controls evidence. */
.page-ai .v2-table-row[data-v2-detail-toggle] {
    cursor: pointer;
}

.page-ai .v2-table-row[data-v2-detail-toggle]:focus {
    outline: 0;
}

.page-ai .v2-table-row[data-v2-detail-toggle]:focus-visible > td,
.page-ai .v2-table-row[data-v2-detail-toggle].is-open > td {
    filter: brightness(.975);
}

.page-ai .v2-table-row[data-v2-detail-toggle]:focus-visible > td:first-child,
.page-ai .v2-table-row[data-v2-detail-toggle].is-open > td:first-child {
    box-shadow: inset 3px 0 0 #2e6c51 !important;
}

.page-ai .v2-table-row[data-v2-detail-toggle] .v2-table-name::after {
    content: '상세';
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    margin-top: 3px;
    padding: 2px 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .62);
    color: #527065;
    font-size: 9px;
    font-weight: 800;
}

.page-ai .v2-table-row[data-v2-detail-toggle].is-open .v2-table-name::after {
    content: '상세 닫기';
    background: rgba(46, 108, 81, .1);
    color: #255f47;
}

/* V16: use the dashboard table rhythm in the AI operation list. */
.page-ai .v2-table-wrap {
    max-height: min(70vh, 760px);
    margin: 0;
    padding: 0 14px 14px;
    border: 0 !important;
    border-radius: 0;
    background: transparent;
    box-shadow: none !important;
}

.page-ai .v2-table {
    min-width: 980px;
    border-collapse: separate;
    border-spacing: 0 4px;
}

.page-ai .v2-table th {
    height: 40px;
    padding: 0;
    border: 0 !important;
    background: #f7f9f7 !important;
    color: #62746b;
    font-size: 11px;
    box-shadow: none !important;
}

.page-ai .v2-table .client-sort-button {
    min-height: 40px;
    padding: 8px 10px;
    font-size: 11px;
}

.page-ai .v2-table-row > td {
    height: 70px;
    min-height: 0;
    padding: 8px 10px;
    border: 0 !important;
    font-size: 11.5px;
    vertical-align: middle;
    box-shadow: none !important;
}

.page-ai .v2-table-row > td:first-child {
    border-radius: 10px 0 0 10px;
}

.page-ai .v2-table-row > td:last-child {
    border-radius: 0 10px 10px 0;
}

.page-ai .v2-table-name {
    overflow: hidden;
}

.page-ai .v2-table-name > small,
.page-ai .v2-table-name > strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.page-ai .v2-table-name > strong {
    font-size: 12px;
    line-height: 1.35;
}

.page-ai .v2-row-detail-toggle {
    display: inline-flex;
    align-items: center;
    min-height: 0;
    margin-top: 4px;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    color: #2e6c51;
    font-size: 9px;
    font-weight: 850;
    line-height: 1.25;
    box-shadow: none !important;
}

.page-ai .v2-row-detail-toggle:hover,
.page-ai .v2-row-detail-toggle:focus-visible,
.page-ai .v2-row-detail-toggle[aria-expanded="true"] {
    color: #124d37;
    text-decoration: underline;
    outline: 0;
}

.page-ai .v2-table-detail-row[hidden] {
    display: none !important;
}

.page-ai .v2-table-detail-row > td {
    padding: 0 10px 8px;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
}

.page-ai .v2-table-detail {
    margin: 0;
    padding: 12px;
    border: 0;
    border-radius: 10px;
    background: #f2f6f3;
    box-shadow: none;
}

/* V17: separate global age targeting as a clear settings card. */
.page-ai .naver-age-panel {
    margin: 22px 0;
    padding: 20px;
    border: 0 !important;
    border-radius: 18px;
    background: #fff;
    box-shadow: none !important;
}

.page-ai .naver-age-head {
    padding: 0 2px 16px;
}

.page-ai .naver-age-status {
    background: #edf6f0;
}

.page-ai .naver-age-disclosure {
    border: 0 !important;
    border-radius: 12px;
    background: #f1f5f2;
    box-shadow: none !important;
}

.page-ai .naver-age-disclosure > summary {
    background: #f1f5f2 !important;
}

.page-ai .naver-age-disclosure > summary:hover {
    background: #eaf1ed !important;
}

.page-ai .naver-age-disclosure .naver-age-form,
.page-ai .naver-age-result {
    background: #f5f8f6 !important;
}

@media (max-width: 760px) {
    .page-ai .naver-age-panel {
        margin: 16px 0;
        padding: 15px;
        border-radius: 14px;
    }
}

/* V19: one interaction language across dashboard, AI control and site management. */
.topbar,
.dashboard-nav,
.filter,
.panel {
    isolation: isolate;
}

.dashboard-nav {
    align-items: center;
    gap: 6px;
    padding: 6px;
    background: rgba(255, 255, 255, .97);
    backdrop-filter: blur(12px);
}

.page-nav-primary,
.page-nav-sections {
    gap: 3px;
    padding: 3px;
    border-radius: 10px;
}

.page-nav-primary {
    background: #eef3ef;
}

.page-nav-sections {
    background: #f7f9f7;
}

.dashboard-nav .page-nav-primary a,
.dashboard-nav .page-nav-sections a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 8px;
}

.dashboard-nav .page-nav-primary a.active {
    background: #193027;
    color: #fff;
}

.dashboard-nav .page-nav-sections a.active {
    background: #e5f0fb;
    color: #145f9d;
    box-shadow: none !important;
}

.filter {
    background: #fff;
}

.filter label,
.site-management .site-table-controls label {
    color: #53675d;
    font-weight: 800;
}

.filter input,
.filter select,
.filter button,
.range-tabs button {
    min-height: 40px;
}

.page-dashboard > section,
.page-ai #analysis > section,
.page-ai #analysis > .panel {
    scroll-margin-top: calc(var(--sticky-nav-height) + 20px);
}

.panel-head h2,
.break-even-title-row h2,
.chain-head h2,
.optimizer-section-title h3 {
    text-wrap: balance;
}

/* The AI operation list follows the page scroll. Nested vertical scrolling made rows look detached. */
.page-ai .v2-queue {
    overflow: visible;
}

.page-ai .v2-queue > summary {
    position: static !important;
    z-index: auto !important;
    min-height: 72px;
    padding: 14px 16px;
    background: #eef3ef !important;
}

.page-ai .v2-queue > summary strong {
    font-size: 16px;
}

.page-ai .v2-queue > summary small {
    max-width: 900px;
    margin-top: 3px;
    font-size: 11px;
    line-height: 1.5;
}

.page-ai .v2-queue > summary b {
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .78);
    white-space: nowrap;
}

.page-ai .v2-table-wrap {
    max-height: none;
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-gutter: auto;
}

.page-ai .v2-table th {
    position: static !important;
}

.page-ai .v2-row-detail-toggle {
    min-height: 26px;
    margin-top: 2px;
    font-size: 10px;
    text-decoration: none;
}

.page-ai .v2-table-detail {
    background: #edf3ef;
}

/* Age targeting is a separate system setting, so it receives its own soft card. */
.page-ai .naver-age-panel {
    background: #edf3ef;
}

.page-ai .naver-age-disclosure,
.page-ai .naver-age-disclosure > summary {
    background: #fff !important;
}

/* Site management: make filters readable without competing with the data table. */
.site-management .review-command-bar {
    background: #eef3ef;
}

.site-management .table-toolbar {
    background: #f4f7f5;
}

.site-management .site-results-count,
.site-management .site-table-controls label {
    font-size: 11px;
}

.site-management .site-table-controls select,
.site-management .site-table-controls input,
.site-management .table-tabs button,
.site-management .site-filter-reset {
    min-height: 36px;
    font-size: 11.5px;
}

.site-management .review-command-main,
.site-management .review-command-refresh button {
    min-height: 38px;
}

.site-management .site-data-table th {
    position: sticky;
    top: 0;
    z-index: 7;
    background: #f1f5f2 !important;
}

@media (max-width: 820px) {
    .dashboard-nav {
        gap: 5px;
        padding: 5px;
    }

    .page-nav-primary,
    .page-nav-sections {
        width: 100%;
    }

    .page-nav-primary a {
        flex: 1 1 50%;
    }

    .page-nav-sections {
        overflow-x: auto;
    }

    .page-nav-sections a {
        flex: 1 0 auto;
    }

    .page-ai .v2-queue > summary {
        align-items: flex-start;
        flex-wrap: wrap;
        min-height: 0;
        padding: 13px;
    }

    .page-ai .v2-queue > summary b {
        order: 3;
        margin-left: 0;
    }
}

@media (max-width: 560px) {
    .dashboard-nav .page-nav-primary a,
    .dashboard-nav .page-nav-sections a {
        min-height: 40px;
        padding-inline: 10px;
    }

    .site-management .review-command-stats {
        gap: 5px;
    }

    .site-management .site-table-controls select,
    .site-management .site-table-controls input,
    .site-management .site-filter-reset {
        min-height: 40px;
    }
}

/* V21 final cascade: preserve the refined detail surface after all legacy modules. */
.page-ai .v2-table-detail {
    padding: 14px;
    border-radius: 12px;
    background: #f7f9f7;
}

.page-ai .v2-table-detail.actual-normal { background: #f3f8f4; }
.page-ai .v2-table-detail.actual-reduced { background: #fffaf0; }
.page-ai .v2-table-detail.actual-stopped { background: #fff6f6; }
.page-ai .v2-table-detail.actual-retesting { background: #f4f8fc; }

@media (max-width: 820px) {
    .page-ai .v2-table-detail {
        padding: 12px;
    }
}

/* V23: readability and tone pass across dashboard and AI control surfaces. */
.page-dashboard .flow-panel {
    padding: 18px;
    background: #fff;
}

.page-dashboard .flow-panel .panel-head {
    gap: 14px;
    margin-bottom: 12px;
}

.page-dashboard .flow-controls {
    gap: 6px;
    padding: 7px;
    border-radius: 12px;
    background: #f1f5f2 !important;
}

.page-dashboard .flow-control-row {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 6px;
}

.page-dashboard .flow-actions,
.page-dashboard .flow-controls .rpm-grain-tabs {
    gap: 2px;
    padding: 0;
    background: transparent !important;
}

.page-dashboard .flow-actions button,
.page-dashboard .flow-controls .rpm-grain-tabs button {
    min-height: 36px;
    border-radius: 8px;
}

.page-dashboard .flow-actions button.active,
.page-dashboard .flow-controls .rpm-grain-tabs button.active {
    background: #e3eef9;
    color: #125f9f;
    box-shadow: none;
}

.page-dashboard .flow-metric-card {
    padding: 15px 13px 12px;
    border-radius: 14px;
    background: #f8faf8;
}

.page-dashboard .flow-metric-head {
    margin-bottom: 8px;
    padding-bottom: 8px;
    border: 0;
}

.page-dashboard .flow-series-toolbar {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 2px;
}

.page-dashboard .revenue-series-filter {
    gap: 6px;
    padding: 0;
    background: transparent !important;
}

.page-dashboard .revenue-series-filter button {
    min-height: 32px;
    padding: 5px 9px;
    border: 0 !important;
    border-radius: 8px;
    background: transparent !important;
}

.page-dashboard .revenue-series-filter button[aria-pressed="true"] {
    color: #203b31;
    opacity: 1;
}

.page-dashboard .flow-panel .line-chart.full svg,
.page-dashboard .flow-panel .rpm-chart {
    height: 174px;
}

.page-dashboard .flow-panel .line-chart.full.single-point svg {
    height: 138px;
}

.page-dashboard .flow-panel .chart-days {
    margin-top: 2px;
}

.page-dashboard .dashboard-ai-preview,
.page-dashboard .dashboard-ai-preview.safe,
.page-dashboard .dashboard-ai-preview.warn,
.page-dashboard .dashboard-ai-preview.bad {
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: #eef5f0;
}

.page-dashboard .dashboard-ai-actions,
.page-dashboard .dashboard-ai-windows {
    gap: 10px;
}

.page-dashboard .dashboard-ai-actions > span,
.page-dashboard .dashboard-ai-windows > span {
    padding: 8px 10px;
    background: rgba(255, 255, 255, .48);
}

.page-dashboard .dashboard-ai-preview > a {
    min-height: 40px;
    border-radius: 10px;
}

.page-ai .v2-health-strip > span {
    background: #f3f6f4 !important;
}

.page-ai .v2-health-strip > span:nth-child(2) {
    background: #eef4f8 !important;
}

.page-ai .naver-age-panel,
.page-ai .chain-optimizer {
    border-radius: 16px;
}

.page-ai .chain-flow-diagram {
    gap: 4px;
    padding: 7px;
    border-radius: 12px;
}

.page-ai .chain-flow-node {
    padding: 11px 13px;
    border-radius: 10px;
}

.site-management .review-command-bar,
.site-management .table-toolbar {
    border-radius: 12px;
}

.site-management .review-command-bar {
    padding: 9px 11px;
}

.site-management .table-toolbar {
    padding: 9px;
}

@media (max-width: 820px) {
    .page-dashboard .flow-panel {
        padding: 14px;
    }

    .page-dashboard .flow-panel .panel-head {
        gap: 10px;
    }

    .page-dashboard .flow-controls {
        gap: 5px;
        padding: 6px;
    }

    .page-dashboard .flow-control-row {
        grid-template-columns: 54px minmax(0, 1fr);
    }

    .page-dashboard .flow-metric-card {
        padding: 13px 11px 10px;
    }

    .page-dashboard .flow-panel .line-chart.full svg,
    .page-dashboard .flow-panel .rpm-chart {
        height: 160px;
    }

    .page-dashboard .flow-panel .line-chart.full.single-point svg {
        height: 126px;
    }

    .page-dashboard .dashboard-ai-preview {
        padding: 15px;
    }

    .page-ai .chain-flow-node {
        min-height: 52px !important;
        padding: 9px 11px;
    }

    .page-ai .chain-flow-diagram > i {
        height: 10px !important;
        line-height: 10px;
    }
}

@media (max-width: 560px) {
    .page-dashboard .flow-control-row {
        grid-template-columns: 1fr;
    }

    .page-dashboard .flow-series-toolbar {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .page-dashboard .dashboard-ai-actions {
        gap: 4px;
    }

    .page-dashboard .dashboard-ai-actions > span {
        min-width: 0;
        padding-inline: 6px;
    }
}

/* V27: clearer chart-control groups and metric cards */
.page-dashboard .flow-controls {
    gap: 10px;
    padding: 0;
    background: transparent;
}

.page-dashboard .flow-control-row {
    grid-template-columns: 1fr;
    gap: 7px;
    align-content: start;
    padding: 10px 11px;
    border-radius: 12px;
    background: #f2f6f3;
}

.page-dashboard .flow-control-label {
    padding-inline: 2px;
    color: #40574d;
    font-size: 10px;
    letter-spacing: .01em;
}

.page-dashboard .flow-actions,
.page-dashboard .flow-controls .rpm-grain-tabs {
    padding: 3px;
    border: 0;
    border-radius: 9px;
    background: rgba(255, 255, 255, .76);
}

.page-dashboard .flow-actions button,
.page-dashboard .flow-controls .rpm-grain-tabs button {
    min-height: 34px;
    border-radius: 7px;
}

.page-dashboard .flow-actions button.active,
.page-dashboard .flow-controls .rpm-grain-tabs button.active {
    background: #e2effc;
    color: #125c9b;
}

.page-ai .v2-detail-grid {
    gap: 8px;
    background: transparent !important;
}

.page-ai .v2-detail-grid > span {
    min-height: 64px;
    padding: 10px 11px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .78);
}

@media (max-width: 820px) {
    .page-dashboard .flow-controls {
        gap: 8px;
        padding: 0;
    }

    .page-dashboard .flow-control-row {
        padding: 9px;
    }
}

@media (max-width: 560px) {
    .page-dashboard .flow-controls {
        grid-template-columns: 1fr;
    }

    .page-ai .v2-detail-grid > span {
        min-height: 60px;
    }
}

/* V29 precedence layer: keep the final responsive hierarchy intentional. */
.page-dashboard .flow-control-row {
    grid-template-columns: 68px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    padding: 8px 9px;
}

.site-management .review-command-bar {
    grid-template-columns: minmax(170px, .85fr) minmax(300px, 1.6fr) minmax(150px, .7fr);
    align-items: stretch;
    gap: 8px;
    padding: 8px;
    background: transparent;
}

.site-management .review-command-main,
.site-management .review-command-stats,
.site-management .review-command-refresh {
    min-height: 0;
    padding: 0;
    background: transparent;
}

.site-management .review-command-refresh {
    background: #e8f5ee;
}

.site-management .review-command-refresh button {
    min-height: 32px;
    background: #19794f;
    color: #fff;
}

.site-management .table-toolbar {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 8px;
    padding: 0;
    background: transparent;
}

@media (max-width: 820px) {
    .page-dashboard .flow-control-row {
        grid-template-columns: 58px minmax(0, 1fr);
        padding: 8px;
    }

    .site-management .review-command-bar {
        grid-template-columns: minmax(150px, .8fr) minmax(270px, 1.55fr) minmax(138px, .7fr);
        overflow-x: auto;
    }

    .site-management .site-table-controls {
        grid-template-columns: minmax(210px, 1fr) minmax(210px, 1fr) auto;
    }
}

@media (max-width: 620px) {
    .site-management .review-command-bar,
    .site-management .site-table-controls {
        grid-template-columns: 1fr;
        overflow: visible;
    }
}

@media (max-width: 440px) {
    .page-dashboard .flow-control-row {
        grid-template-columns: 1fr;
    }
}
