:root{--bg:#f3f5f8;--card:#fff;--ink:#17202e;--muted:#6f7a8a;--line:#e5e9ef;--blue:#2d6bff;--green:#12a878;--amber:#f0a328;--purple:#7c5ce7;--shadow:0 8px 28px rgba(25,35,55,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif;font-variant-numeric:tabular-nums}.topbar{height:74px;padding:0 max(24px,calc((100vw - 1440px)/2));display:flex;align-items:center;gap:28px;background:#111927;color:#fff;box-shadow:0 4px 18px rgba(0,0,0,.16)}.brand{display:flex;align-items:center;color:#fff;text-decoration:none;min-width:158px}.brand-logo{display:block;width:148px;height:56px;object-fit:cover;object-position:top}.topbar nav{height:100%;display:flex;align-items:center}.topbar nav button{height:100%;display:flex;align-items:center;padding:0 18px;color:#c3cad5;background:transparent;border:0;border-bottom:3px solid transparent;font:inherit;font-size:14px;cursor:pointer}.topbar nav .tab-link[hidden],.topbar nav .tab-link.access-denied{display:none}.topbar nav button:hover{color:#fff;background:rgba(255,255,255,.025)}.topbar nav button.active{color:#fff;border-color:#ff8500;background:rgba(255,255,255,.04)}.topbar nav button:focus-visible{outline:2px solid #ff9b32;outline-offset:-4px}.freshness{margin-left:auto;color:#aeb8c8;font-size:12px;text-align:right}main{max-width:1440px;margin:auto;padding:30px 24px 26px}.tab-content[hidden]{display:none}.empty-section{min-height:calc(100vh - 130px);display:grid;place-items:center}.empty-state{width:min(560px,100%);padding:56px 34px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.empty-state h1{margin:0 0 10px;font-size:34px;letter-spacing:-.035em}.empty-state p{margin:0;color:var(--muted);font-size:14px}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:22px}.eyebrow{display:block;color:#768297;font-size:11px;font-weight:750;letter-spacing:.11em;text-transform:uppercase;margin-bottom:7px}.hero h1{font-size:34px;line-height:1.1;margin:0 0 8px;letter-spacing:-.035em}.hero p{margin:0;color:var(--muted);font-size:14px}.period-form{display:flex;align-items:flex-end;gap:10px;background:#fff;padding:12px;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.period-form label{display:grid;gap:5px;color:#768297;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.period-form input{height:36px;border:1px solid #dce1e8;border-radius:9px;padding:0 10px;color:var(--ink);font:inherit;background:#fafbfc}.period-form button{height:36px;border:0;border-radius:9px;background:var(--blue);color:white;padding:0 17px;font-weight:700;cursor:pointer}.status{padding:12px 15px;border-radius:10px;margin:0 0 16px;background:#fff2da;color:#774d00;border:1px solid #f4d79b;font-size:13px}.hidden{display:none}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:14px}.metric{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:15px;padding:17px 18px;box-shadow:var(--shadow);min-height:116px}.metric:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent)}.metric span{display:block;color:var(--muted);font-size:12px}.metric strong{display:block;font-size:25px;letter-spacing:-.035em;margin:14px 0 4px;white-space:nowrap}.metric small{color:#9099a6;font-size:11px}.accent-blue{--accent:var(--blue)}.accent-ink{--accent:#25344b}.accent-green{--accent:var(--green)}.accent-amber{--accent:var(--amber)}.accent-purple{--accent:var(--purple)}.grid-two{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(340px,.8fr);gap:14px;margin-bottom:14px}.panel{background:var(--card);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px 10px}.panel-head h2{margin:0;font-size:17px;letter-spacing:-.015em}.legend{display:flex;gap:16px;color:var(--muted);font-size:11px;margin-top:5px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:9px;height:9px;display:inline-block}.bar-dot{background:#b8cbff;border-radius:2px}.line-dot{border:2px solid var(--green);border-radius:50%}.chart{height:292px;padding:0 12px 14px}.chart svg{width:100%;height:100%;display:block}.axis-label{fill:#8a94a3;font-size:10px}.grid-line{stroke:#edf0f4;stroke-width:1}.qty-bar{fill:#c8d7ff}.cost-line{fill:none;stroke:var(--green);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.cost-point{fill:#fff;stroke:var(--green);stroke-width:2}.chart-empty{height:100%;display:grid;place-items:center;color:var(--muted);font-size:13px}.supplier-list{padding:2px 20px 19px;display:grid;gap:15px;max-height:292px;overflow:auto}.supplier-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.supplier-row strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supplier-row .value{text-align:right;font-weight:750;font-size:13px}.supplier-meta{color:var(--muted);font-size:11px}.supplier-bar{grid-column:1/-1;height:5px;border-radius:5px;background:#edf1f6;overflow:hidden}.supplier-bar i{height:100%;display:block;border-radius:5px;background:linear-gradient(90deg,#4d80f5,#83a6ff)}.table-panel{overflow:hidden}.count-badge{border-radius:20px;padding:5px 9px;background:#eef2f7;color:#657186;font-size:11px}.table-wrap{overflow:auto;max-height:470px}table{width:100%;border-collapse:collapse;font-size:12px;min-width:1110px}th{position:sticky;top:0;z-index:1;background:#f8f9fb;color:#748095;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:11px 12px;border-bottom:1px solid #edf0f4;vertical-align:top}tbody tr:hover{background:#f8faff}.num{text-align:right;white-space:nowrap}.muted{color:var(--muted)}.empty-row td{text-align:center;color:var(--muted);padding:34px}footer{display:flex;justify-content:space-between;gap:20px;color:#7f8998;font-size:11px;padding:16px 4px 0}.quality-ok{color:#16845f}.quality-warn{color:#a36500}
.category-switch{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;max-width:900px}.category-switch.hidden{display:none}.category-option{min-height:34px;padding:7px 12px;border:1px solid #dce1e8;border-radius:9px;background:#fff;color:#566173;font:inherit;font-size:12px;font-weight:650;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.category-option:hover{border-color:#ffb15f;color:#17202e}.category-option.active{border-color:#ff8500;background:#ff8500;color:#fff}.category-option:focus-visible{outline:2px solid #ff9b32;outline-offset:2px}.wash-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.wash-chart-panel{margin-bottom:14px}.wash-bar-dot{background:var(--green);border-radius:2px}.wash-qty-bar{fill:#75cdb3}.wash-value-label{fill:#18785c;font-size:11px;font-weight:700}.wash-table{min-width:600px}.wash-table-wrap{max-height:360px}.sales-profit-dot{background:var(--green);border-radius:2px}.sales-profit-bar{fill:#75cdb3}.sales-profit-bar.negative{fill:#e78585}.sales-value-label{fill:#18785c;font-size:10px;font-weight:700}.sales-value-label.negative{fill:#ad3d3d}.sales-table{min-width:1240px}.brand{min-width:164px;padding:4px 8px;background:#fff;border-radius:8px}
.purchase-cost-panel{min-width:0}.purchase-cost-table-wrap{max-height:335px}.purchase-cost-table{min-width:790px}.purchase-cost-table th:first-child,.purchase-cost-table td:first-child{width:255px;min-width:255px}.purchase-cost-table td:first-child{white-space:normal;overflow-wrap:anywhere}.purchase-cost-table tfoot th{position:static;background:#eef3fb;color:#25344b;border-top:2px solid #cbd7e8;font-weight:800}@media(max-width:700px){.purchase-cost-table th:first-child,.purchase-cost-table td:first-child{width:205px;min-width:205px}}
@media(max-width:1050px){.metrics{grid-template-columns:repeat(3,1fr)}.wash-metrics{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}.supplier-list{max-height:none}.freshness{display:none}}
@media(max-width:700px){.topbar{height:auto;min-height:66px;padding:8px 12px;gap:8px;align-items:center}.brand{min-width:100px}.brand-logo{width:100px;height:38px}.topbar nav{margin-left:auto;overflow-x:auto}.topbar nav button{height:44px;padding:0 8px;border-bottom:0;border-radius:8px;font-size:12px}.topbar nav button.active{background:rgba(255,255,255,.08)}main{padding:20px 12px}.hero{display:block}.hero h1{font-size:28px}.hero p{line-height:1.45}.period-form{margin-top:17px;display:grid;grid-template-columns:1fr 1fr}.period-form button{grid-column:1/-1}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{min-height:105px;padding:15px}.metric strong{font-size:21px}.metric:nth-child(2){grid-column:span 1}.grid-two{gap:10px}.panel-head{padding:16px 15px 10px}.legend{display:none}.chart{height:260px;padding-left:2px;padding-right:2px}footer{display:block;line-height:1.6}.quality-note{display:block}.table-wrap{max-height:420px}.empty-section{min-height:calc(100vh - 105px)}}
@media(max-width:700px){.category-switch{gap:6px}.category-option{flex:1 1 180px}}
@media(max-width:430px){.metrics,.wash-metrics{grid-template-columns:1fr}.metric{min-height:92px}.metric strong{margin-top:10px}.hero h1{font-size:25px}.period-form{grid-template-columns:1fr}.period-form button{grid-column:auto}}

.planning-actions{display:flex;align-items:flex-end;gap:10px}.primary-action,.secondary-action{height:42px;border-radius:9px;padding:0 17px;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.primary-action{border:0;background:#ff8500;color:#fff}.primary-action:hover{background:#e97700}.secondary-action{border:1px solid #dce1e8;background:#fff;color:#566173}.planning-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.planning-chart-panel{margin-bottom:14px}.planning-chart{height:360px;padding:0 14px 16px}.planning-chart svg{width:100%;height:100%;display:block}.planning-wash-band{fill:#ccefe4}.planning-buffer-band{fill:#e4dcfb}.planning-takt-line{fill:none;stroke:#0a9169;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.planning-coefficient-line{fill:none;stroke:#6f4ed2;stroke-width:3;stroke-dasharray:6 5;stroke-linejoin:round}.planning-missing{fill:#f2f4f7}.planning-wash-band-dot{background:#a9dfcf;border-radius:2px}.planning-buffer-band-dot{background:#d3c5f7;border-radius:2px}.planning-takt-dot{border:2px solid #0a9169;border-radius:50%}.planning-table{min-width:980px}.planning-table-wrap{max-height:360px}
.planning-dialog{width:min(680px,calc(100vw - 28px));max-height:calc(100vh - 32px);padding:0;border:0;border-radius:18px;box-shadow:0 24px 80px rgba(10,18,31,.3);color:var(--ink)}.planning-dialog::backdrop{background:rgba(12,19,31,.58)}.planning-dialog form{padding:24px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dialog-head h2{margin:0;font-size:24px}.dialog-close{width:34px;height:34px;border:0;border-radius:50%;background:#f0f3f7;color:#576173;font-size:24px;line-height:1;cursor:pointer}.dialog-note{margin:10px 0 18px;color:var(--muted);font-size:12px;line-height:1.5}.editor-section{margin:0 0 14px;padding:14px 16px 16px;border:1px solid var(--line);border-radius:12px}.editor-section legend{padding:0 7px;font-size:12px;font-weight:750}.editor-section label{display:grid;gap:6px;color:#667286;font-size:11px;font-weight:700}.editor-section input[type="date"],.editor-section input[type="number"]{height:39px;border:1px solid #dce1e8;border-radius:9px;padding:0 10px;background:#fafbfc;color:var(--ink);font:inherit}.editor-main-field{margin-bottom:12px}.editor-grid{display:grid;gap:12px}.two-columns{grid-template-columns:1fr 1fr}.range-values{margin-bottom:9px}.dual-range{position:relative;height:28px;margin:0 4px}.dual-range:before{content:"";position:absolute;left:0;right:0;top:13px;height:5px;border-radius:5px;background:#e8edf3}.dual-range input[type="range"]{position:absolute;inset:0;width:100%;margin:0;background:transparent;pointer-events:none;-webkit-appearance:none;appearance:none}.dual-range input[type="range"]::-webkit-slider-thumb{width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:#ff8500;box-shadow:0 1px 5px rgba(0,0,0,.28);pointer-events:auto;-webkit-appearance:none;appearance:none;cursor:pointer}.dual-range input[type="range"]::-moz-range-thumb{width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:#ff8500;box-shadow:0 1px 5px rgba(0,0,0,.28);pointer-events:auto;cursor:pointer}.editor-section small{display:block;color:#8a94a3;font-size:10px;line-height:1.45}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.dialog-status{padding:10px 12px;border-radius:9px;background:#feecec;color:#9b2727;font-size:12px}
@media(max-width:1050px){.planning-hero{align-items:flex-start}.planning-actions{display:grid}.planning-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.planning-actions{margin-top:17px}.planning-actions .period-form{margin-top:0}.planning-actions .primary-action{width:100%}.planning-metrics{grid-template-columns:1fr 1fr;gap:10px}.planning-chart{height:310px}.planning-legend{display:none}.planning-dialog form{padding:18px}.topbar nav button{white-space:nowrap}}
@media(max-width:430px){.planning-metrics,.two-columns{grid-template-columns:1fr}}
.planning-coefficient-dot{height:2px!important;border-top:2px dashed #6f4ed2}

.admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.source-status{font-size:18px!important;white-space:normal!important;line-height:1.15}.admin-calendar-panel{margin-bottom:14px;overflow:hidden}.calendar-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px;color:var(--muted);font-size:11px;margin-top:5px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:10px;height:10px;border-radius:3px}.workday-dot{background:#d9f2e9;border:1px solid #9bd8c4}.nonworking-dot{background:#fff0ed;border:1px solid #f1b9af}.override-dot{background:#ff8500}.weekday-row,.admin-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekday-row{padding:4px 18px 8px}.weekday-row span{text-align:center;color:#8a94a3;font-size:10px;font-weight:750;text-transform:uppercase}.admin-calendar-grid{padding:0 18px 20px}.calendar-spacer{min-height:86px}.calendar-day{position:relative;min-height:86px;padding:10px;border:1px solid #e4e9ef;border-radius:11px;background:#fff;color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:transform .12s,border-color .12s,box-shadow .12s}.calendar-day:hover{transform:translateY(-1px);border-color:#98b4f7;box-shadow:0 5px 16px rgba(25,35,55,.09)}.calendar-day.workday{background:#f3fbf8;border-color:#cce9df}.calendar-day.nonworking{background:#fff7f5;border-color:#f1d5cf}.calendar-day.unknown{background:#f7f8fa;border-style:dashed}.calendar-day.manual{box-shadow:inset 0 0 0 2px #ff8500}.calendar-day-number{display:block;font-size:17px;font-weight:800}.calendar-day-status{display:block;margin-top:7px;color:#667286;font-size:10px;line-height:1.25}.calendar-day-title{display:block;margin-top:3px;color:#9b5045;font-size:9px;line-height:1.2}.manual-badge{position:absolute;right:7px;top:7px;padding:3px 5px;border-radius:7px;background:#ff8500;color:#fff;font-size:8px;font-weight:800;text-transform:uppercase}.admin-future-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 21px}.admin-future-panel h2{margin:0 0 6px;font-size:17px}.admin-future-panel p{margin:0;color:var(--muted);font-size:12px}.coming-soon{flex:none;padding:7px 10px;border-radius:18px;background:#eef2f7;color:#657186;font-size:10px;font-weight:750}.workday-dialog{width:min(560px,calc(100vw - 28px))}.workday-options{display:grid;gap:8px}.workday-options label{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #e2e7ed;border-radius:10px;cursor:pointer}.workday-options label:has(input:checked){border-color:#ff9d3b;background:#fff8f0}.workday-options input{accent-color:#ff8500}.workday-options span{display:grid;gap:2px}.workday-options strong{font-size:12px}.workday-options small{font-size:10px;color:var(--muted)}.workday-reason{display:grid;gap:6px;color:#667286;font-size:11px;font-weight:700}.workday-reason textarea{resize:vertical;border:1px solid #dce1e8;border-radius:9px;padding:10px;color:var(--ink);font:inherit}.admin-month-form input{min-width:145px}footer a{color:#4775d1;text-decoration:none}footer a:hover{text-decoration:underline}
@media(max-width:1050px){.admin-metrics{grid-template-columns:repeat(2,1fr)}.calendar-day,.calendar-spacer{min-height:78px}.calendar-legend{display:none}}
@media(max-width:700px){.admin-metrics{grid-template-columns:1fr 1fr;gap:10px}.weekday-row,.admin-calendar-grid{gap:4px;padding-left:10px;padding-right:10px}.calendar-day,.calendar-spacer{min-height:64px}.calendar-day{padding:7px}.calendar-day-number{font-size:14px}.calendar-day-status{font-size:8px;margin-top:5px}.calendar-day-title{display:none}.manual-badge{font-size:0;width:7px;height:7px;padding:0;right:5px;top:5px}.admin-future-panel{align-items:flex-start}}
@media(max-width:430px){.admin-metrics{grid-template-columns:1fr}.weekday-row,.admin-calendar-grid{gap:3px;padding-left:6px;padding-right:6px}.calendar-day,.calendar-spacer{min-height:54px}.calendar-day-status{display:none}.admin-future-panel{display:block}.coming-soon{display:inline-block;margin-top:12px}}
.plan-fact-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:12px}.plan-fact-legend{display:flex;justify-content:flex-end;gap:17px;margin:0 4px 12px;color:var(--muted);font-size:11px}.plan-fact-legend span{display:flex;align-items:center;gap:6px}.plan-fact-legend i{width:10px;height:10px;border-radius:3px}.status-in-plan{background:#37b788}.status-out-plan{background:#df6666}.status-forecast{background:#8298c5;border:1px dashed #3d588e}.status-neutral{background:#b7bec9}.plan-fact-grid{display:grid;gap:14px;margin-bottom:14px}.plan-fact-chart{height:235px;padding:0 12px 13px;overflow-x:auto}.plan-fact-chart svg{display:block;width:100%;min-width:820px;height:100%}.plan-band{fill:#dce7ff}.plan-fact-bar.in_plan{fill:#4fbd97}.plan-fact-bar.out_of_plan{fill:#e17474}.plan-fact-bar.forecast{fill:#8298c5;fill-opacity:.55;stroke:#3d588e;stroke-width:1;stroke-dasharray:3 2}.forecast-divider{stroke:#71809a;stroke-width:1;stroke-dasharray:4 4}.plan-fact-bar.no_plan,.plan-fact-bar.no_fact,.plan-fact-bar.nonworking{fill:#c8ced7}.plan-fact-value{font-size:9px;font-weight:750;fill:#5f6978}.plan-fact-table{min-width:900px}.plan-fact-table-wrap{max-height:520px}.plan-fact-table th.group-head{text-align:center;border-left:1px solid var(--line)}.plan-fact-cell{font-weight:750}.plan-fact-cell.in_plan{background:#ebf8f3;color:#167455}.plan-fact-cell.out_of_plan{background:#fff0ef;color:#a63e3e}.plan-fact-cell.no_plan,.plan-fact-cell.no_fact,.plan-fact-cell.nonworking{background:#f3f5f7;color:#7c8694}.plan-fact-date.nonworking{color:#b45b50}.plan-fact-panel .panel-head{padding-bottom:4px}
@media(max-width:1050px){.plan-fact-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.plan-fact-metrics{grid-template-columns:1fr 1fr;gap:10px}.plan-fact-legend{justify-content:flex-start;flex-wrap:wrap}.plan-fact-chart{height:220px;padding-left:4px;padding-right:4px}}
@media(max-width:430px){.plan-fact-metrics{grid-template-columns:1fr}}
.plan-fact-table{min-width:600px}
.plan-fact-kpi.kpi-good{--accent:#249b72;background:#eaf8f2;border-color:#a9ddcb}.plan-fact-kpi.kpi-good strong{color:#116f50}.plan-fact-kpi.kpi-bad{--accent:#d95353;background:#fff0ef;border-color:#efb8b4}.plan-fact-kpi.kpi-bad strong{color:#a33333}.plan-fact-kpi.kpi-neutral{--accent:#aab2bd;background:#f5f6f8}
.plan-fact-table{table-layout:fixed}.plan-fact-table col{width:25%}

.auth-pending .topbar,.auth-pending main{display:none}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(145deg,#f4f6f9,#e7edf7)}body:not(.auth-pending) .auth-screen{display:none}.login-card{width:min(410px,100%);padding:30px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 70px rgba(18,30,52,.16)}.login-card img{display:block;width:180px;height:auto;margin:0 0 24px;padding:6px;background:#fff;border-radius:8px}.login-card h1{margin:0 0 8px;font-size:29px}.login-card p{margin:0 0 20px;color:var(--muted);font-size:13px}.login-card label{display:grid;gap:6px;margin:0 0 13px;color:#667286;font-size:11px;font-weight:700}.login-card input,.user-dialog input[type="email"],.user-dialog input[type="password"],.user-dialog select{height:41px;border:1px solid #dce1e8;border-radius:9px;padding:0 11px;background:#fafbfc;color:var(--ink);font:inherit}.login-card .primary-action{width:100%;margin-top:4px}.topbar-account{margin-left:auto;display:flex;align-items:center;gap:10px}.topbar-account #current-user{max-width:220px;overflow:hidden;text-overflow:ellipsis;color:#dce4f2;font-size:11px;white-space:nowrap}.topbar-account button{border:1px solid #344257;border-radius:8px;background:#182437;color:#dce4f2;padding:7px 9px;font:inherit;font-size:10px;cursor:pointer}.topbar-account button:hover{background:#25344b}
.users-panel{margin-top:14px;overflow:hidden}.users-note{margin:0;padding:0 20px 14px;color:var(--muted);font-size:11px}.users-table{min-width:920px}.users-table-wrap{max-height:430px}.user-access{display:flex;flex-wrap:wrap;gap:4px}.access-chip,.status-chip{padding:4px 7px;border-radius:12px;background:#eef2f7;color:#5d687a;font-size:9px;font-weight:750}.status-chip.active{background:#e5f6ef;color:#167455}.status-chip.disabled{background:#feecec;color:#9b2727}.user-actions{display:flex;justify-content:flex-end;gap:6px}.user-actions button{border:1px solid #dce1e8;border-radius:7px;background:#fff;padding:6px 9px;color:#526074;font:inherit;font-size:10px;cursor:pointer}.user-dialog select{width:100%}.user-active,.user-generate{display:flex!important;align-items:center;gap:8px;margin-top:13px}.user-active input,.user-generate input{accent-color:#ff8500}.user-dialog #user-password-label{margin-top:12px}.danger-action{height:42px;border:1px solid #e5a6a6;border-radius:9px;padding:0 15px;background:#fff0ef;color:#a33333;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.dialog-spacer{flex:1}.credentials-dialog{width:min(520px,calc(100vw - 28px))}.credential-box{display:grid;gap:5px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.credential-box span{color:var(--muted);font-size:10px;text-transform:uppercase}.credential-box strong{margin-bottom:8px;font-size:17px;overflow-wrap:anywhere;user-select:all}.credential-box strong:last-child{margin-bottom:0}
.custom-role-access[hidden]{display:none}.custom-role-access p{margin:0 0 12px;color:var(--muted);font-size:10px;line-height:1.45}.custom-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.custom-role-grid label{display:flex;align-items:center;gap:8px;min-height:38px;padding:8px 10px;border:1px solid #e0e5ec;border-radius:9px;background:#fafbfc;color:#40506a;font-size:11px;cursor:pointer}.custom-role-grid input{accent-color:#ff8500}
@media(max-width:1050px){.topbar-account .freshness{display:none}.topbar-account #current-user{max-width:130px}}
@media(max-width:700px){.topbar-account #current-user{display:none}.topbar-account{margin-left:0}.users-panel .panel-head{align-items:center}.users-panel .primary-action{height:36px;padding:0 10px}.user-dialog .two-columns,.custom-role-grid{grid-template-columns:1fr}}

.sales-view-switch{margin-top:13px}.sales-view-switch+.category-switch{margin-top:8px}.general-sales-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.general-sales-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.general-hierarchy-panel,.new-customers-panel{margin-bottom:14px}.general-sales-table{min-width:1180px}.new-customers-table{min-width:980px}.general-sales-table-wrap,.new-customers-table-wrap{max-height:560px}.tree-label{display:flex;align-items:center;gap:7px;min-width:250px}.tree-toggle{flex:none;width:22px;height:22px;border:1px solid #d8dee7;border-radius:6px;background:#fff;color:#667286;font:inherit;font-size:13px;line-height:1;cursor:pointer}.tree-toggle:before{content:"›";display:block;transition:transform .12s}.tree-toggle[aria-expanded="true"]:before{transform:rotate(90deg)}.tree-spacer{display:inline-block;flex:none;width:22px}.hierarchy-category td{background:#f8fafc;font-weight:750}.hierarchy-group td:first-child{padding-left:30px}.hierarchy-item td:first-child{padding-left:58px}.hierarchy-item .tree-label{color:#667286}.hierarchy-row[hidden],.new-customer-row[hidden]{display:none}.new-source-row td{background:#f8fafc;font-weight:750}.new-customer-child td:first-child{padding-left:34px}.general-category-bar{fill:#6e91e9}.general-category-bar.negative{fill:#df7777}.general-chart-label{fill:#718096;font-size:9px}.general-chart-value{fill:#36506f;font-size:9px;font-weight:750}.general-chart-value.negative{fill:#a63e3e}
@media(max-width:1050px){.general-sales-charts{grid-template-columns:1fr}}
@media(max-width:700px){.general-sales-metrics{grid-template-columns:1fr}.sales-view-switch .category-option{flex:1 1 130px}}
.new-customer-child td:nth-child(2){padding-left:18px}
.purchase-new-suppliers-panel{margin-top:14px}.new-suppliers-table{min-width:1100px}.new-suppliers-table-wrap{max-height:560px}.new-supplier-row[hidden]{display:none}.new-supplier-source-row td{background:#f8fafc;font-weight:750}.new-supplier-party-row td:nth-child(2){padding-left:18px}.new-supplier-item-row td:nth-child(3){padding-left:30px;color:#667286}
.working-capital-switch{margin-top:16px}.working-capital-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.working-capital-panel{margin-bottom:14px}.working-capital-table{min-width:960px;table-layout:fixed}.working-capital-table th:first-child,.working-capital-table td:first-child{width:32%}.working-capital-table th:not(:first-child),.working-capital-table td:not(:first-child){width:17%}.working-capital-table tfoot th{position:static;background:#eef3fb;color:#25344b;font-size:11px;font-weight:800;border-top:2px solid #cbd7e8}.working-capital-table-wrap{max-height:none}.working-capital-empty{margin:18px auto;min-height:300px;display:grid;align-content:center}.working-capital-empty h1{font-size:27px}.working-capital-view[hidden]{display:none}
@media(max-width:700px){.working-capital-metrics{grid-template-columns:1fr}.working-capital-switch .category-option{flex:1 1 120px}}
.planning-table{min-width:1300px}
.working-capital-table.receivables-table th:first-child,.working-capital-table.receivables-table td:first-child{width:40%}
.working-capital-table.receivables-table th:nth-child(2),.working-capital-table.receivables-table td:nth-child(2){width:17%}
.working-capital-table.receivables-table th:nth-child(3),.working-capital-table.receivables-table td:nth-child(3){width:18%}
.working-capital-table.receivables-table th:nth-child(4),.working-capital-table.receivables-table td:nth-child(4){width:25%}
.deferral-check-status{display:inline-block;padding:6px 9px;border-radius:8px;font-size:12px;font-weight:700;line-height:1.35;white-space:normal}
.manual-deferral-actions{display:flex;justify-content:flex-end;margin-bottom:18px}.manual-deferral-dialog{overflow-y:auto}.manual-deferral-file{display:grid;gap:10px;font-size:14px;font-weight:650}.manual-deferral-file input{max-width:100%;font:inherit}.manual-deferral-result{margin-top:20px}.manual-deferral-result>p{font-size:13px;color:var(--muted)}.manual-deferral-criteria{display:grid;gap:10px}.manual-deferral-criterion{display:grid;grid-template-columns:1fr auto;gap:7px 12px;padding:12px;border-radius:10px;border:1px solid var(--line);font-size:13px}.manual-deferral-criterion.compliant{border-left:4px solid #24a178}.manual-deferral-criterion.noncompliant{border-left:4px solid #df5757}.manual-deferral-criterion small{grid-column:1/-1;color:var(--muted);overflow-wrap:anywhere}.manual-deferral-criterion span{font-size:12px}.manual-deferral-dialog .status{margin-top:14px}@media(max-width:500px){.manual-deferral-criterion{grid-template-columns:1fr}.manual-deferral-actions button{width:100%}}
.deferral-check-status.compliant{background:#e5f6ef;color:#167455}.deferral-check-status.noncompliant{background:#feecec;color:#a33333}.deferral-check-status.error{background:#eef1f5;color:#596575}
.deferral-check-status.insufficient{background:#fff3d9;color:#8a610c}.deferral-check-status.missing{background:#eef1f5;color:#596575}
.supplier-settlements-panel{margin-bottom:0}.supplier-settlements-table{min-width:680px}.supplier-settlements-table th:first-child,.supplier-settlements-table td:first-child{width:43%}.supplier-settlements-table tfoot th{position:static;background:#eef3fb;color:#25344b;font-size:11px;font-weight:800;border-top:2px solid #cbd7e8}.supplier-settlements-table-wrap{max-height:none}
.supplier-settlements-filters{display:flex;flex-wrap:wrap;gap:12px;padding:0 20px 10px}.supplier-settlements-filters label{display:grid;gap:5px;min-width:min(280px,100%);color:var(--muted);font-size:11px;font-weight:650}.supplier-settlements-filters select,.supplier-settlements-filters input{height:38px;width:100%;padding:0 11px;border:1px solid #dce1e8;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:12px}.supplier-settlements-note{margin:0;padding:0 20px 12px;color:var(--muted);font-size:11px;line-height:1.45}
.supplier-settlements-table{min-width:940px}.supplier-settlements-table th:first-child,.supplier-settlements-table td:first-child{width:28%}.supplier-settlements-table th:nth-child(2),.supplier-settlements-table td:nth-child(2),.supplier-settlements-table th:nth-child(3),.supplier-settlements-table td:nth-child(3){width:13%}.supplier-due-note{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.settlement-supplier-row td{background:#fff}.settlement-order-row[hidden]{display:none}.settlement-order-row td{background:#fff;border-bottom:1px solid #e7edf5}.settlement-supplier-row.settlement-overdue td,.settlement-order-row.settlement-overdue td{background:#fde8e8}.settlement-supplier-row.settlement-today td,.settlement-order-row.settlement-today td{background:#fff2ce}.settlement-supplier-row.settlement-upcoming td,.settlement-order-row.settlement-upcoming td{background:#e5f5eb}.settlement-order-row td:first-child{padding-left:38px}.settlement-order-label{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap}.settlement-order-label small{font-size:10px;color:var(--muted)}.settlement-document{margin:5px 0 0 0;color:var(--muted);font-size:11px;line-height:1.35}.settlement-term+.settlement-term{margin-top:6px}.settlement-term small{display:block;color:var(--muted);font-size:10px}.settlement-toggle{margin-right:2px}
.working-capital-section-view{margin-top:18px}.working-capital-section-view>footer{margin-top:8px}.purchase-view-switch{margin-bottom:8px}
.production-view-switch{margin-bottom:8px}.production-materials-panel{margin-top:18px}.production-materials-table{table-layout:fixed}.production-materials-table th:first-child,.production-materials-table td:first-child{width:28%}.production-materials-table th:nth-child(2),.production-materials-table td:nth-child(2){width:48%}.production-materials-table th:nth-child(3),.production-materials-table td:nth-child(3){width:10%}.production-materials-table th:last-child,.production-materials-table td:last-child{width:14%}.production-materials-group-row td{background:#eef3fb;font-weight:800;color:#172238;border-top:1px solid #d4dfed}.production-materials-item-row td:nth-child(2){padding-left:28px}.production-materials-table tfoot th{position:static;background:#e6edf8;color:#172238;border-top:2px solid #bdcbe0}
.wc-category-row td{background:#fff}.wc-nomenclature-row td{background:#f8fafc}.wc-nomenclature-row td:first-child{padding-left:30px;color:#566173;overflow-wrap:anywhere}.wc-nomenclature-row[hidden]{display:none}.wc-details-toggle{flex:none}
.working-capital-table.stock-working-capital-table{min-width:1250px}.stock-working-capital-table th:nth-child(1),.stock-working-capital-table td:nth-child(1){width:30%}.stock-working-capital-table th:nth-child(2),.stock-working-capital-table td:nth-child(2){width:8%}.stock-working-capital-table th:nth-child(3),.stock-working-capital-table td:nth-child(3){width:14%}.stock-working-capital-table th:nth-child(4),.stock-working-capital-table td:nth-child(4){width:13%}.stock-working-capital-table th:nth-child(5),.stock-working-capital-table td:nth-child(5),.stock-working-capital-table th:nth-child(6),.stock-working-capital-table td:nth-child(6){width:11%}.stock-working-capital-table th:nth-child(7),.stock-working-capital-table td:nth-child(7){width:13%}
.stock-working-capital-table thead th{white-space:normal;line-height:1.25}
.metrics.wash-time-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:700px){.metrics.wash-time-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.metrics.wash-time-metrics{grid-template-columns:1fr}}

.topbar nav{min-width:0;overflow-x:auto;scrollbar-width:none}.topbar nav::-webkit-scrollbar{display:none}.topbar-account{flex:none}.inventory-hero{align-items:center}.inventory-live{flex:none;min-width:220px;padding:13px 16px;border:1px solid #dbe3ef;border-radius:14px;background:#fff;box-shadow:var(--shadow);display:grid;gap:4px}.inventory-live strong{font-size:13px}.inventory-live small{color:var(--muted);font-size:10px}.live-indicator{display:flex;align-items:center;gap:7px;color:#16845f;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.live-indicator i{width:8px;height:8px;border-radius:50%;background:#18b77e;box-shadow:0 0 0 4px rgba(24,183,126,.13)}.inventory-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.inventory-summary-card{min-width:0;min-height:108px;padding:15px 16px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow);text-align:left;color:var(--ink);font:inherit;cursor:pointer;transition:transform .12s,border-color .12s}.inventory-summary-card:hover{transform:translateY(-1px);border-color:#b9c8df}.inventory-summary-card span{display:block;min-height:31px;color:#667286;font-size:11px;line-height:1.35}.inventory-summary-card strong{display:inline-block;margin-top:9px;font-size:25px;letter-spacing:-.035em}.inventory-summary-card small{margin-left:5px;color:#8c96a5}.inventory-panel{margin-bottom:0}.inventory-table{min-width:760px;table-layout:fixed}.inventory-table th:first-child,.inventory-table td:first-child{width:78%}.inventory-table th:last-child,.inventory-table td:last-child{width:22%}.inventory-table td{font-size:14px}.inventory-table-wrap{max-height:none}.inventory-category-row{scroll-margin-top:88px}.inventory-category-row td{padding-top:14px;padding-bottom:14px;background:#eef3fb;font-size:15px}.inventory-group-row td{background:#f8fafc}.inventory-group-row td:first-child{color:#31415a}.inventory-item-row td:first-child{color:#5d697a}.inventory-level-1{padding-left:30px}.inventory-level-2{padding-left:88px}.inventory-empty-category-row td{background:#fbfcfd}.inventory-empty-category-row .inventory-level-1{padding-left:59px}
@media(max-width:1100px){.inventory-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.topbar{gap:12px}.topbar nav button{padding-left:12px;padding-right:12px}.topbar-account #current-user{display:none}}
@media(max-width:700px){.inventory-live{width:100%;margin-top:16px}.inventory-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.inventory-summary-card{min-height:96px;padding:13px}.inventory-summary-card strong{font-size:22px}.inventory-table td{font-size:12px}.inventory-level-2{padding-left:62px}.inventory-table-wrap{max-height:none}}

.inventory-mode main{max-width:1920px;padding:16px 20px 6px}.inventory-mode .inventory-hero{margin-bottom:10px}.inventory-mode .inventory-hero h1{font-size:27px;margin-bottom:4px}.inventory-mode .inventory-hero p{font-size:12px}.inventory-mode .inventory-live{min-width:205px;padding:9px 13px}.inventory-board{height:calc(100vh - 214px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px}.inventory-board-loading{grid-column:1/-1;display:grid;place-items:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:15px}.inventory-board-card{min-width:0;min-height:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.inventory-board-card:nth-child(2){grid-row:span 2}.inventory-board-card>header{min-height:51px;padding:9px 11px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;background:#eef3fb;border-bottom:1px solid #d9e2ef}.inventory-board-card>header h2{margin:0;font-size:13px;line-height:1.18;letter-spacing:-.01em}.inventory-board-card>header>strong{font-size:20px;white-space:nowrap}.inventory-board-content{padding:5px 8px 7px}.inventory-board-group+.inventory-board-group{margin-top:3px}.inventory-board-group-head,.inventory-board-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px}.inventory-board-group-head{min-height:21px;padding:3px 4px;color:#40516a;background:#f5f7fa;border-radius:5px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.inventory-board-group-head strong{font-size:10px}.inventory-board-item{min-height:19px;padding:2px 4px 2px 10px;border-bottom:1px solid #f0f2f5;font-size:10px;line-height:1.15}.inventory-board-item span{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.inventory-board-item strong{font-size:11px;white-space:nowrap}.inventory-board-empty{height:calc(100% - 10px);display:grid;place-items:center;color:#939dac;font-size:11px}.inventory-mode footer{padding-top:5px}
@media(max-width:1200px){.inventory-board{height:auto;min-height:0;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:minmax(300px,auto)}.inventory-board-card:nth-child(2){grid-row:auto}.inventory-mode main{padding:16px 14px}.inventory-board-card{overflow:visible}}
@media(max-width:700px){.inventory-board{grid-template-columns:1fr;grid-auto-rows:auto}.inventory-mode .inventory-hero h1{font-size:25px}.inventory-board-card{min-height:180px}}

/* Television readability: +2px for each inventory hierarchy level. */
.inventory-board-card>header h2{font-size:15px}.inventory-board-card>header>strong{font-size:22px}.inventory-board-group-head{font-size:11px}.inventory-board-group-head strong{font-size:12px}.inventory-board-item{font-size:12px}.inventory-board-item strong{font-size:13px}
.production-materials-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start;margin-top:18px}.production-materials-board .inventory-board-card:nth-child(2){grid-row:auto}.production-materials-board .inventory-board-card>header{grid-template-columns:1fr}.production-materials-board .inventory-board-item{padding:8px 4px;font-size:14px;line-height:1.35}.production-materials-board .inventory-board-item span{display:block;overflow:visible}.production-materials-board .inventory-board-item strong{font-size:14px}.production-materials-board .inventory-board-item small{font-size:12px;font-weight:400;color:var(--muted)}.production-materials-board .inventory-board-loading{min-height:130px}@media(max-width:1200px){.production-materials-board{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.production-materials-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.production-materials-board{grid-template-columns:1fr}}
@media(min-width:1201px){.inventory-mode .inventory-hero{justify-content:flex-end}.inventory-board{height:calc(100vh - 170px)}}
@media(min-width:1201px){.inventory-mode .inventory-hero{display:none}.inventory-board{height:calc(100vh - 122px)}}
.inventory-footer-line{min-height:20px;padding:5px 2px 0;color:#7f8998;font-size:11px;line-height:15px;text-align:right;white-space:nowrap}
@media(max-width:700px){.inventory-footer-line{white-space:normal;text-align:left}}
.login-card[hidden]{display:none!important}.auth-link{display:block;margin:16px auto 0;border:0;background:transparent;color:#315fcc;font:inherit;font-size:14px;cursor:pointer;text-decoration:underline}.login-card button:disabled{opacity:.6;cursor:wait}

/* Separate confirmed and pending customer-delivery documents. */
.delivery-table-description{margin:0;padding:0 20px 14px;color:var(--muted);font-size:12px;line-height:1.45}
.delivery-table-divider{display:flex;align-items:center;gap:14px;margin:20px 0;color:#64748b;font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.delivery-table-divider::before,.delivery-table-divider::after{content:"";flex:1;height:1px;background:#cbd5e1}
@media(max-width:700px){.delivery-table-description{padding:0 15px 14px}.delivery-table-divider{margin:16px 0}}
