/* lf-diff-request-erp 2026-10-18: DiffBeacon logged-in QA fixes (loaded last). */

/* Page title + context line */
.diff-title p{display:block;line-height:1.6;font-size:14px}
.lf-site-line{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--text,#1f2328)}
.lf-site-line b{font-weight:650;color:var(--muted)}
.lf-site-line .title-inline-actions{display:inline-flex;gap:2px}
.lf-site-line .title-icon{min-height:30px;min-width:30px;padding:4px}
.lf-site-meta{display:block;width:100%;color:var(--muted)}
.lf-screen-desc{display:block;color:var(--muted)}

/* KPI sparklines had no data behind them (flat decorative lines). */
.kpi .spark{display:none}

/* Empty tables / lists say what is missing. */
.lf-empty-row td{padding:34px 20px!important;text-align:center}
.lf-empty-row td strong,.lf-empty strong{display:block;font-size:16px;font-weight:650;color:var(--text,#1f2328)}
.lf-empty-row td span,.lf-empty span{display:block;margin-top:6px;font-size:14px;color:var(--muted)}
.lf-empty-row td .btn{margin-top:12px}
.lf-empty{padding:34px 20px;text-align:center}

/* 휴지통 table */
.lf-trash{margin-top:4px}
.lf-trash-table td small{display:block;margin-top:3px;font-size:13px;color:var(--muted)}
.lf-actions-col{text-align:right}
.lf-row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.lf-loading{padding:28px 20px;color:var(--muted)}

/* Inspector "브라우저 요청" disclosure: no browser triangle. */
.side-insights summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;font-size:14px;font-weight:600}
.side-insights summary::-webkit-details-marker{display:none}
.side-insights summary::before{content:'';width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);opacity:.6;transition:transform .15s;flex:0 0 7px}
.side-insights details[open]>summary::before{transform:rotate(45deg)}

/* Form controls ≥16px. */
#app input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),#app select,#app textarea{font-size:16px}
.compare-toolbar select{font-size:15px!important}

/* Tablet / Hub frame: the inspector card takes the full width instead of a third. */
@media(max-width:1180px){.side-insights{grid-template-columns:1fr}}

/* Inside the Hub frame: Hub's header already has 마이페이지 · 작업공간 열기 · 로그아웃. */
.in-hub .topbar .quick-logout,.in-hub .sidebar-bottom a[href*="login"]{display:none!important}
.in-hub dialog,.in-hub .modal{max-height:calc(100dvh - 32px)}

/* The top links (사이트 모니터링·변경 이력·알림·설정) repeated the sidebar; 설정 opened a modal over the change list. The sidebar is the one menu (알림 added there). */
.topbar>nav[aria-label="주요 메뉴"]{display:none}
.topbar .search{margin-left:auto}

/* Contrast (WCAG AA 4.5:1 for small text) */
.eyebrow{color:color-mix(in srgb,var(--accent) 72%,#000)}
.pagination button.active{background:color-mix(in srgb,var(--accent) 78%,#000);border-color:color-mix(in srgb,var(--accent) 78%,#000)}
.pagination button{color:#344054}
.public-header nav a{color:#3d4a5c}
.public-header nav a.active{color:color-mix(in srgb,var(--accent) 75%,#000)}
.trend-chart .live-trend-point:focus-visible,.live-trend-point:focus-visible{stroke:#0b1725;stroke-width:3px;outline:none}

/* First run (A-10) */
.lf-first-run{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:22px 24px;margin-bottom:16px;border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.lf-first-run h2{margin:0 0 12px;font-size:19px}
.lf-steps{margin:0;padding:0;list-style:none;counter-reset:s;display:grid;gap:10px}
.lf-steps li{counter-increment:s;display:grid;grid-template-columns:28px 1fr;column-gap:10px;font-size:15px;line-height:1.5}
.lf-steps li::before{content:counter(s);grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--soft,#fff1ea);color:color-mix(in srgb,var(--accent) 72%,#000);font-weight:700;font-size:14px}
.lf-steps li span{color:var(--muted);font-size:14px}
.lf-field-error{display:block;margin-top:6px;font-size:13px;color:#b42318}
@media(max-width:760px){.lf-first-run{flex-direction:column;align-items:stretch}}
.workspace-cols:has(>.side-insights[hidden]){grid-template-columns:minmax(0,1fr)}
/* Sample-site art: its CTA is part of the picture, not a second primary button. */
.site-demo .btn.mock-cta{margin-top:10px;background:#e9edf2;border-color:#d0d5dd;color:#344054;font-size:13px;font-weight:600}
.site-demo .btn.mock-cta.is-after{background:#ffe7dc;border-color:#f6c7b2;color:#9a3412}

/* Contrast pass 2 (auto-audit 2026-10-19): muted text and accent-coloured text meet 4.5:1 on white. */
:root{--muted:#4d5b6c}
.text-link{color:color-mix(in srgb,var(--accent) 68%,#000)}
.site-demo em{color:#a8320c}
.browser-bar span[style*="ff8366"]{color:#c2410c!important}
.browser-bar span{color:#4d5b6c}
.badge.red{color:#b42318}

/* Contrast pass 3: hard-coded colours the token change did not reach. */
a.text-link,.public-copy a.text-link{color:#b23a12!important}
.public-copy p{color:#4d5b6c}
.chart-axis span{color:#5b6a7d}
.badge{color:#344054}.badge.green{color:#0f6b45}.badge.red{color:#a11c1c}.badge.amber{color:#8a4b00}
.required{color:#b42318}
/* The product tokens live on body.diffbeacon (not :root). Text-safe accent: white on it and it on white both ≥ 4.5:1. */
body.diffbeacon{--muted:#535c66;--accent:#c2410c}
.data-table th{color:#46597a}
h1 em{color:#b23a12!important}
.feature-demo .code-line.added{color:#1d6b3a}
.nav-link .count{color:#5b6a7d}
td small{color:#556479}
.change-meta span,.change-card p{color:#555f6b}
span.required,.required{color:#a11c1c!important}
