/* CASH STEP 010 responsive overflow hardening */
.bonus-filters{grid-template-columns:minmax(180px,1.2fr) minmax(150px,.5fr) auto}.bonus-grid .compact-form{grid-template-columns:repeat(2,minmax(160px,1fr));align-items:end}.bonus-grid .one-col{grid-template-columns:1fr}.checkbox-row{flex-direction:row;align-items:center;gap:8px;color:var(--text)}.checkbox-row input{width:auto}.danger-inline{margin-top:10px}.personnel-filters{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) repeat(2,minmax(135px,.5fr)) auto}.employee-compact table{min-width:980px}.badge.ok{background:#dcfce7;color:var(--green);border-color:#bbf7d0}@media (max-width:1024px){.personnel-filters,.bonus-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.bonus-grid .compact-form{grid-template-columns:1fr}}@media (max-width:640px){.personnel-filters,.bonus-filters{grid-template-columns:1fr}.page-head{flex-direction:column}.salary-equation{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.sidebar{position:static;width:auto}.main{margin-left:0;max-width:100vw;overflow-x:hidden}.filters{max-width:100%}.panel{min-width:0}.employee-row strong{white-space:normal;text-align:right}.table-wrap{max-width:100%;overflow-x:auto}body{overflow-x:hidden}}
/* CASH STEP 010 dashboard + seller cabinet */
.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.page-head h1{margin-bottom:3px}.page-head p{margin:0;color:var(--muted)}.dashboard-filters{align-items:end}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:14px 0}.kpi-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;min-width:0}.kpi-card span,.kpi-card small{display:block;color:var(--muted);font-size:12px}.kpi-card b{display:block;font-size:clamp(18px,2vw,26px);line-height:1.15;margin-top:6px;white-space:normal;overflow-wrap:anywhere}.kpi-card.result b{color:var(--green)}.kpi-card.penalty b,.negative{color:var(--red)}.formula-note{color:var(--muted);font-size:13px;margin:-4px 0 14px}.trend-chart,.seller-chart{height:240px;display:flex;align-items:end;gap:8px;overflow-x:auto;padding:12px 4px 24px;border-bottom:1px solid var(--line)}.trend-day,.seller-chart>div{height:100%;min-width:34px;display:flex;align-items:end;gap:3px;position:relative}.trend-day small,.seller-chart small{position:absolute;bottom:-22px;left:0;right:0;text-align:center;color:var(--muted);font-size:11px}.bar,.seller-chart span{display:block;width:8px;min-height:2px;border-radius:4px 4px 0 0;background:#93c5fd}.bar.profit{background:#86efac}.bar.salary{background:#fca5a5}.legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px;color:var(--muted)}.legend span{width:12px;height:12px;border-radius:3px;background:#93c5fd}.legend .profit{background:#86efac}.legend .salary{background:#fca5a5}.store-result-grid,.seller-store-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.store-result-card,.seller-store-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;min-width:0}.store-result-card h3,.seller-store-card h3{margin:0}.mini-bars{height:8px;background:#eef2ff;border-radius:99px;overflow:hidden;margin:8px 0 10px}.mini-bars span{display:block;height:100%;background:var(--blue);min-width:2px}.compact-dl,.composition-list{display:grid;gap:8px;margin:0}.compact-dl div,.composition-list div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #eef1f5;padding-bottom:6px}.compact-dl dt,.composition-list dt{color:var(--muted)}.compact-dl dd,.composition-list dd{margin:0;text-align:right;font-weight:700;overflow-wrap:anywhere}.composition-list .total{font-size:16px;border-bottom:0}.link-button{background:transparent;border:0;color:var(--blue);padding:0;text-align:left}.employee-compact table{min-width:760px}.salary-hero{display:grid;gap:8px;margin-bottom:14px}.salary-hero>span{color:var(--muted)}.salary-hero>b{font-size:clamp(34px,6vw,54px);line-height:1.05;overflow-wrap:anywhere}.salary-equation{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.salary-equation div{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fafbfc}.salary-equation span{display:block;color:var(--muted);font-size:12px}.salary-equation strong{font-size:18px;overflow-wrap:anywhere}.download-menu{position:relative}.download-menu summary{list-style:none;border:1px solid var(--blue);border-radius:8px;color:var(--blue);background:#fff;padding:9px 12px;cursor:pointer}.download-menu div{position:absolute;right:0;top:42px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #0002;display:grid;gap:4px;min-width:260px;padding:8px;z-index:5}.download-menu a{padding:8px;border-radius:8px}.download-menu a:hover{background:#f8fbff}.seller-store-metrics{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:13px}.identity-details,.zero-identities{margin-top:10px}.identity-list{display:grid;gap:8px;margin-top:8px}@media (max-width:1200px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.salary-equation{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.page-head{flex-direction:column}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trend-chart,.seller-chart{height:200px}.employee-compact{overflow-x:auto}.salary-cabinet-head{gap:10px}}@media (max-width:520px){.main{margin-left:0;padding:14px}.sidebar{position:static;width:auto}.kpi-grid{grid-template-columns:1fr}.dashboard-filters{display:grid;grid-template-columns:1fr}.salary-equation{grid-template-columns:1fr}.salary-hero>b{font-size:36px}.store-result-grid,.seller-store-list{grid-template-columns:1fr}.compact-dl div,.composition-list div{align-items:flex-start}.download-menu div{position:static;margin-top:6px}.trend-day,.seller-chart>div{min-width:30px}.kpi-card b{font-size:22px}}
/* CASH STEP 008-R3 canonical stores + employee settings UX */
.field-label{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.form-wide{grid-column:1/-1}.staff-checklist{border:1px solid var(--line);border-radius:10px;background:#fff;max-height:220px;overflow:auto;padding:8px;display:grid;gap:4px}.staff-checklist label{display:flex;flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:14px;padding:6px 8px;border-radius:8px}.staff-checklist label:hover{background:#f8fbff}.staff-checklist input{width:auto}.assigned-accounts{display:flex;gap:6px;flex-wrap:wrap;min-width:180px}.account-chip{display:inline-flex;align-items:center;border:1px solid #bfdbfe;background:#eef6ff;color:#1d4ed8;border-radius:999px;padding:4px 8px;font-size:12px;white-space:nowrap}.users-form{align-items:start}.user-row-form{display:grid;grid-template-columns:minmax(120px,160px) minmax(180px,1fr) minmax(260px,1.4fr) minmax(80px,100px) auto;gap:10px;align-items:start}.identity-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.identity-card h2{margin-bottom:2px}.identity-card p{margin:0 0 8px;color:var(--muted)}@media (max-width:900px){.user-row-form{grid-template-columns:1fr}.users-table th:nth-child(1),.users-table td:nth-child(1){display:none}}@media (max-width:520px){.account-chip{white-space:normal}.staff-checklist{max-height:260px}}
.metrics b,.store-metrics b,.component-card b,.employee-row strong{white-space:nowrap;overflow-wrap:normal}.employee-section{margin-top:16px}.store-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:14px}.store-settings-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px;display:grid;gap:14px}.store-settings-card h3{margin:0;font-size:20px}.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.settings-fields label{display:grid;grid-template-columns:1fr minmax(86px,120px) auto;align-items:center;gap:8px;color:var(--text);font-size:14px}.settings-fields label span{color:var(--muted)}.card-actions{display:flex;justify-content:flex-end}.employees-table td{vertical-align:middle}.muted-text{color:var(--muted)}.employee-settings-template{display:none}.employee-settings-modal{display:grid;gap:16px}.store-membership{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:8px}.store-membership legend{font-weight:700;padding:0 6px}.store-membership label{display:flex;flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:14px}.store-membership input{width:auto}.readonly-field{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fafbfc;display:grid;gap:4px}.readonly-field span,.readonly-field small{color:var(--muted)}.readonly-field b{font-weight:700}.actions.end{justify-content:flex-end}.notice.small{margin:0}.badge{border-radius:999px;padding:4px 8px;font-size:12px}.store-card h3{overflow-wrap:anywhere}@media (min-width:1200px){.store-cards{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.store-metrics{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media (max-width:900px){.store-settings-grid{grid-template-columns:1fr}.settings-fields{grid-template-columns:1fr}.settings-fields label{grid-template-columns:1fr minmax(86px,120px) auto}}@media (max-width:520px){.settings-fields label{grid-template-columns:1fr}.settings-fields label span{display:none}.employees-table table{min-width:760px}}
/* STEP 007-R1 payroll/dashboard polish */
/* STEP 008 parity UI */
.modal-overlay{position:fixed;inset:0;background:#0008;z-index:50;display:grid;place-items:center;padding:18px}.modal-card{background:#fff;border-radius:14px;border:1px solid var(--line);box-shadow:0 20px 60px #0004;width:min(1180px,96vw);max-height:92vh;overflow:auto;padding:18px}.modal-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.modal-head h2{margin-bottom:2px}.modal-head p{margin:0;color:var(--muted)}.modal-close{font-size:24px;line-height:1;background:#fff;color:var(--text);border-color:var(--line)}.metrics.compact{grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0}.component-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0}.component-card{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fafbfc}.component-card span,.component-card small{display:block;color:var(--muted)}.component-card b{font-size:18px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.tabs button{background:#fff;color:var(--blue)}.tabs button.active{background:var(--blue);color:#fff}.reconcile{border-radius:10px;padding:10px 12px;margin:10px 0;border:1px solid var(--line);background:#fafbfc}.reconcile.ok{border-color:#bbf7d0;background:#f0fdf4}.reconcile.bad{border-color:#fecaca;background:#fef2f2}.penalty-list{margin:10px 0}.penalty-item{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:6px 0}.settings-row{display:grid;grid-template-columns:2fr repeat(5,minmax(120px,1fr)) auto;gap:10px;align-items:end;border-top:1px solid var(--line);padding:12px 0}.warn-row{background:#fffbeb}.snapshot-chart{height:220px;display:flex;gap:8px;align-items:end;border:1px solid var(--line);border-radius:10px;padding:12px;overflow-x:auto;background:#fafbfc}.chart-day{height:180px;min-width:38px;display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:2px;position:relative;padding-bottom:18px}.chart-day small{position:absolute;bottom:0;left:0;right:0;text-align:center;color:var(--muted);font-size:11px}.bar{display:block;min-height:2px;border-radius:4px 4px 0 0}.bar.sales,.legend .sales{background:#2563eb}.bar.profit,.legend .profit{background:#16a34a}.bar.salary,.legend .salary{background:#9333ea}.legend{display:flex;gap:8px;align-items:center;color:var(--muted);margin-top:8px}.legend span{width:12px;height:12px;border-radius:3px;display:inline-block}.button-link{cursor:pointer}.modal-table{overflow-x:auto}
.modal-overlay[hidden]{display:none!important}
@media (max-width:768px){.modal-overlay{padding:0;place-items:stretch}.modal-card{width:100vw;max-height:100vh;border-radius:0}.metrics.compact,.component-grid{grid-template-columns:1fr 1fr}.settings-row{grid-template-columns:1fr}}
.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.dashboard-grid .span-2{grid-column:span 2}.dashboard-grid .span-3{grid-column:1/-1}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.section-head h3{margin:0;font-size:18px}.quick-range{display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 14px}.stacked-metrics{display:grid;gap:10px}.stacked-metrics div{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fafbfc}.stacked-metrics span,.mini-list span{display:block;color:var(--muted);font-size:12px}.stacked-metrics b{font-size:18px}.empty-state{border:1px dashed var(--line);border-radius:10px;padding:16px;background:#fafbfc;color:var(--muted)}.empty-state b{display:block;color:var(--text);margin-bottom:4px}.empty-state p{margin:0}.empty-state.small{padding:10px}.mini-list{display:grid;gap:8px}.mini-list a{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;color:var(--text)}.mini-list a:hover{border-color:#bfdbfe;background:#f8fbff}.sync-state{display:flex;align-items:center;gap:8px;font-weight:700}.sync-state span{width:10px;height:10px;border-radius:999px;background:var(--muted)}.sync-state.ok span{background:var(--green)}.sync-state.warn span{background:#d97706}.sync-state.bad span{background:var(--red)}.badge.muted{background:#f3f4f6;color:var(--muted)}.store-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.store-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}.store-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:10px 0}.employee-list{display:grid;gap:8px;margin-top:10px}.employee-row{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);background:#fafbfc;color:var(--text);border-radius:10px;padding:10px 12px;text-align:left}.employee-row:hover,.clickable-row:hover{border-color:#bfdbfe;background:#f8fbff;cursor:pointer}.employee-row small{display:block;color:var(--muted);font-weight:400}.employee-row strong{white-space:nowrap}.no-cost-warning{border:1px solid #fde68a;background:#fffbeb;border-radius:10px;padding:8px 10px;margin:10px 0}.total-row{background:#f8fafc;font-weight:700}.summary-table{margin:10px 0}.diagnostic-table{margin-top:10px}
@media (max-width:1100px){.store-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.dashboard-grid{grid-template-columns:1fr}.dashboard-grid .span-2,.dashboard-grid .span-3{grid-column:auto}.mini-list a{align-items:flex-start;flex-direction:column}.store-cards{grid-template-columns:1fr}}
:root{--bg:#f6f7f9;--panel:#fff;--text:#1d2430;--muted:#697386;--line:#dde3ea;--blue:#2563eb;--red:#b91c1c;--green:#15803d}*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--blue);text-decoration:none}.sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:#111827;color:white;padding:18px 14px;display:flex;flex-direction:column;gap:16px}.brand{font-size:22px;font-weight:700}.user{font-size:13px;color:#e5e7eb}.user span{color:#9ca3af}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar a,.logout button{color:#e5e7eb;background:transparent;border:0;text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer}.sidebar a:hover,.logout button:hover{background:#1f2937}.logout{margin-top:auto}.main{margin-left:220px;padding:24px;max-width:1680px}.main-login{margin:0;display:grid;place-items:center;min-height:100vh}.login-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 1px 2px #0000000a}.login-card{width:min(380px,92vw)}h1{font-size:24px;margin:0 0 16px}h2{font-size:18px;margin:0 0 12px}.notice{background:#eef6ff;border:1px solid #bfdbfe;border-radius:10px;padding:10px 12px;margin:10px 0 16px}.alert{background:#fef2f2;color:var(--red);border:1px solid #fecaca;border-radius:10px;padding:10px 12px;margin:10px 0 16px}label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}input,select{border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:white;color:var(--text);min-width:0}button,.primary{border:1px solid var(--blue);background:var(--blue);color:white;border-radius:8px;padding:9px 12px;cursor:pointer}button:hover{filter:brightness(.95)}.button-link{display:inline-block;border:1px solid var(--blue);background:white;color:var(--blue);border-radius:8px;padding:9px 12px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0 16px}.badge{display:inline-block;background:#dcfce7;color:var(--green);border:1px solid #bbf7d0;border-radius:999px;padding:2px 8px;font-size:12px}.approve-box{margin:12px 0 16px}.filters{display:grid;grid-template-columns:minmax(220px,1fr) repeat(2,150px) auto;gap:10px;align-items:end;background:white;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:16px}.grid{display:grid;gap:12px}.metrics{grid-template-columns:repeat(6,minmax(130px,1fr));margin-bottom:16px}.metrics div{background:white;border:1px solid var(--line);border-radius:10px;padding:12px}.metrics span{display:block;color:var(--muted);font-size:12px}.metrics b{font-size:18px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%;min-width:760px}th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:12px;color:var(--muted);background:#fafbfc}.return td{background:#fff7ed}.detail dl{display:grid;grid-template-columns:190px 1fr;gap:8px 16px}.detail dt{color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;gap:10px;align-items:end}.inline-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-form input,.inline-form select{padding:6px 8px}@media(max-width:900px){.sidebar{position:static;width:auto}.main{margin:0;padding:14px}.metrics{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.detail dl{grid-template-columns:1fr}table{min-width:680px}}@media(max-width:420px){.metrics{grid-template-columns:1fr}.sidebar nav{display:grid;grid-template-columns:1fr 1fr}.main{padding:10px}}
