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

/* The top module tabs repeated the sidebar's eight modules and were clipped at ≤1440px ("전자…"). The sidebar stays the one module menu. */
.topbar nav[data-canonical-nav]{display:none!important}
.topbar .search{flex:1 1 auto;max-width:560px;margin-right:auto}

/* Detail panel tabs (상세정보·품목정보·진행이력·연관문서) wrap instead of being cut. */
.erp-detail .tabs{flex-wrap:wrap;row-gap:4px;overflow:visible}
.erp-detail .tabs button{font-size:14px;white-space:nowrap}

/* Chart month labels: one line ("10월"). */
.bar-group>b{white-space:nowrap;font-size:13px}

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

/* Empty tables explain what is missing. */
.lf-empty-row td{padding:30px 18px!important;text-align:center!important}
.lf-empty-row td strong{display:block;font-size:15px;font-weight:650}
.lf-empty-row td span{display:block;margin-top:5px;font-size:14px;color:var(--muted,#667085)}

/* 목록 | 달력 toggle */
.erp-view-toggle{display:inline-flex;border:1px solid var(--line,#dfe3ea);border-radius:8px;overflow:hidden;margin-right:6px}
.erp-view-toggle button{border:0;background:#fff;padding:8px 14px;font:inherit;font-size:14px;font-weight:600;color:var(--muted,#667085);cursor:pointer;min-height:38px}
.erp-view-toggle button+button{border-left:1px solid var(--line,#dfe3ea)}
.erp-view-toggle button[aria-pressed=true]{background:var(--soft,#eef4ff);color:var(--accent,#1a6ff2)}

/* Month calendar */
.erp-cal{padding:18px 20px 22px}
.erp-cal-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:14px}
.erp-cal-nav{display:flex;align-items:center;gap:8px}
.erp-cal-title{margin:0;min-width:7.5em;text-align:center;font-size:20px;font-weight:700}
.erp-cal-nav .btn{min-width:36px;font-size:18px;line-height:1}
.erp-cal-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-left:auto;font-size:13px;color:var(--muted,#667085)}
.erp-cal-legend .is-sat{color:#1f5fd1;font-weight:600}.erp-cal-legend .is-sun{color:#d93030;font-weight:600}
.erp-cal-legend .dot,.erp-cal-agenda .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:1px}
.dot.green{background:#1f9254}.dot.amber{background:#d98a07}
.erp-cal-status{margin:0 0 10px;color:var(--muted,#667085);font-size:14px}
.erp-cal-grid{border:1px solid var(--line,#dfe3ea);border-radius:10px;overflow:hidden}
.erp-cal-head,.erp-cal-body{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.erp-cal-head span{padding:9px 10px;font-size:14px;font-weight:650;text-align:center;background:#f7f9fc;border-bottom:1px solid var(--line,#dfe3ea)}
.erp-cal-head .is-sun{color:#d93030}.erp-cal-head .is-sat{color:#1f5fd1}
.erp-cal-day{min-height:112px;padding:8px;border-right:1px solid #edf0f5;border-bottom:1px solid #edf0f5;display:flex;flex-direction:column;gap:4px;min-width:0;background:#fff}
.erp-cal-day:nth-child(7n){border-right:0}
.erp-cal-day.is-outside{background:#fafbfc}.erp-cal-day.is-outside .erp-cal-num{opacity:.45}
.erp-cal-date{display:flex;align-items:baseline;gap:6px;min-width:0}
.erp-cal-num{font-size:15px;font-weight:650;font-variant-numeric:tabular-nums}
.erp-cal-day.is-sat .erp-cal-num{color:#1f5fd1}
.erp-cal-day.is-sun .erp-cal-num{color:#d93030}
.erp-cal-holiday{font-size:13px;color:#d93030;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erp-cal-day.is-today .erp-cal-num{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:50%;background:var(--accent,#1a6ff2);color:#fff}
.erp-cal-event{display:flex;gap:6px;align-items:baseline;padding:3px 7px;border-radius:6px;background:#eef3fb;border-left:3px solid #7b93b8;font-size:13px;line-height:1.35;min-width:0}
.erp-cal-event b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erp-cal-event small{font-size:13px;color:var(--muted,#667085);white-space:nowrap}
.erp-cal-event.green{background:#e9f6ee;border-left-color:#1f9254}
.erp-cal-event.amber{background:#fdf3e1;border-left-color:#d98a07}
.erp-cal-more{font-size:13px;color:var(--muted,#667085)}
.erp-cal-agenda{margin-top:18px}
.erp-cal-agenda h3{margin:0 0 8px;font-size:16px}
.erp-cal-agenda ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.erp-cal-agenda li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:9px 12px;border:1px solid #edf0f5;border-radius:8px;font-size:15px}
.erp-cal-agenda li small{font-size:13px;color:var(--muted,#667085)}
.erp-cal-agenda li .badge{margin-left:auto}
.erp-cal-range{min-width:7.5em;font-variant-numeric:tabular-nums;color:var(--muted,#667085);font-size:14px}
.erp-cal-holidays{margin:12px 0 0;font-size:14px;color:#a12a2a}
.erp-cal-holidays b{margin-right:6px}

@media(max-width:760px){
 .erp-cal{padding:14px 12px 16px}
 .erp-cal-legend{margin-left:0}
 .erp-cal-day{min-height:58px;padding:5px 4px}
 .erp-cal-holiday,.erp-cal-event b,.erp-cal-event small{display:none}
 .erp-cal-event{height:6px;padding:0;border-left:0;border-radius:3px;background:#7b93b8}
 .erp-cal-event.green{background:#1f9254}.erp-cal-event.amber{background:#d98a07}
 .erp-cal-head span{padding:7px 2px}
}

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

/* Contrast and keyboard focus */
.sidebar .brand small{color:rgba(255,255,255,.86)}
.public-header .brand small,.auth-page .brand small{color:#4a5565}
.erp-mini-bar a:focus-visible,.erp-mini-bar button:focus-visible{outline:2px solid #80b6f3;outline-offset:2px;border-radius:6px}
.trend-chart .live-trend-point:focus-visible,.live-trend-point:focus-visible{stroke:#0b1725;stroke-width:3px;outline:none}

/* First run (A-10) */
.erp-first-run{padding:20px 22px;margin-bottom:18px;border-color:#bcd3f7}
.erp-first-run h2{margin:0 0 12px;font-size:19px}
.erp-steps{margin:0;padding:0;list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.erp-steps a{counter-increment:s;display:grid;grid-template-columns:28px 1fr;column-gap:10px;padding:12px;border:1px solid var(--line,#dfe3ea);border-radius:10px;color:inherit;text-decoration:none;height:100%;box-sizing:border-box}
.erp-steps a:hover{border-color:var(--accent,#1a6ff2)}
.erp-steps a:focus-visible{outline:2px solid #80b6f3;outline-offset:2px}
.erp-steps a::before{content:counter(s);grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--soft,#eef4ff);color:#1452b8;font-weight:700;font-size:14px}
.erp-steps b{font-size:15px}.erp-steps span{font-size:14px;color:#5a6175;line-height:1.5}
.erp-first-note{margin:12px 0 0;font-size:14px;color:#5a6175}

/* Marketing preview: the mini dashboard is sample art, labelled as such (no real data). */
.erp-mini-wrap{position:relative}
.erp-mini-sample{position:absolute;top:-12px;right:12px;z-index:1;padding:3px 10px;border-radius:999px;background:#fff7e6;border:1px solid #f0c36a;color:#7a4b00;font-size:13px;font-weight:650;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.erp-mini-sample-tag{padding:3px 10px;border-radius:999px;background:#fff7e6;border:1px solid #f0c36a;color:#7a4b00!important;font-size:13px!important;font-weight:650;white-space:nowrap}

/* Contrast pass 2 (auto-audit 2026-10-19): muted text meets 4.5:1 on white and on the light page background. */
:root{--muted:#4d5b6c}
.erp-mini-kpis small,.erp-mini-chart-title span,.erp-mini-legend span,.erp-mini-heading small:not(.erp-mini-sample-tag){color:#4d5b6c!important}
.help-layout nav .nav-link{color:#3d4a5c}
.guide-step>span{color:#3d4a5c}

/* Contrast pass 3 */
.feature-card p,.erp-feature-card p{color:#475a78}
.compare th,table th{color:#3f526e}
.help-hero p,.auth-visual p{color:#475a78}
/* The product tokens live on body.erp (not :root). */
body.erp{--muted:#4a5d78;--accent:#0060db}
.data-table th{color:#46597a}
.erp-mini-bar small,.monitor-chip small{color:#4a5d78}
.badge.green{color:#0f6b45}
.erp-mini aside span.active{background:#0057c8}
.badge.gray{color:#4a5568}
span.required,.required{color:#a11c1c!important}
.erp-mini-bar:focus-visible{outline:2px solid #0b1725;outline-offset:2px;border-radius:4px}

/* R18: public headings keep one sentence and balance line breaks at 390/1440/2560. */
.hero h1,.feature-hero h1,.auth-visual h1,.public-copy h2,.cta-banner h2,.monitor-strip h3,.section-heading h2,.help-hero h1{text-wrap:balance;word-break:keep-all}
.hero h1,.erp .hero h1,.feature-hero h1,.erp .feature-hero h1{font-size:clamp(34px,3.4vw,48px)}
