/* Pivoteka ERP 2.16.0 Production Final — component layer built from visual reference. */
:root{
  --f-bg:#07101f;--f-bg2:#0a1425;--f-panel:#0d192b;--f-panel2:#111f34;
  --f-line:#223451;--f-line2:#2c4266;--f-text:#f4f8ff;--f-muted:#91a4c0;
  --f-blue:#3d7cff;--f-blue2:#66a0ff;--f-green:#35d39a;--f-red:#ff657c;
  --f-amber:#f5b74b;--f-purple:#9c7bff;--f-radius:16px;--f-shadow:0 20px 50px rgba(0,0,0,.28)
}
body{background:radial-gradient(circle at 80% -20%,rgba(61,124,255,.13),transparent 34%),var(--f-bg)!important;color:var(--f-text)}
.desktop-sidebar{background:linear-gradient(180deg,#091322 0%,#07101d 100%)!important;border-right:1px solid var(--f-line)!important}
.desktop-brand{padding:20px 18px 17px!important;border-bottom:1px solid rgba(255,255,255,.06)}
.desktop-brand__mark{background:linear-gradient(145deg,#6de6a2,#2ba978)!important;box-shadow:0 10px 24px rgba(53,211,154,.22)}
.desktop-nav-group summary{color:#9db0ca!important;font-weight:700;letter-spacing:.02em}
.tabbar__btn{border-radius:10px!important;color:#bac8dc!important;min-height:42px!important}
.tabbar__btn:hover{background:#13223a!important;color:#fff!important}
.tabbar__btn.active{background:linear-gradient(90deg,rgba(61,124,255,.27),rgba(61,124,255,.08))!important;color:#fff!important;box-shadow:inset 3px 0 var(--f-blue)}
.desktop-workspace{background:transparent!important}
.topbar{background:rgba(7,16,31,.91)!important;backdrop-filter:blur(18px);border-bottom:1px solid var(--f-line)!important}
.desktop-toolbar{background:rgba(13,25,43,.8)!important;border:1px solid var(--f-line)!important;box-shadow:none!important}
.card,.f-card{background:linear-gradient(180deg,rgba(17,31,52,.97),rgba(12,24,42,.97))!important;border:1px solid var(--f-line)!important;border-radius:var(--f-radius)!important;box-shadow:0 8px 24px rgba(0,0,0,.12)!important;color:var(--f-text)!important}
.input,.select,.textarea,.global-search{background:#0a1628!important;border-color:var(--f-line)!important;color:var(--f-text)!important}
.input::placeholder,.textarea::placeholder,.global-search input::placeholder{color:#667b98!important}
.primary-btn{background:linear-gradient(135deg,var(--f-blue),#315fdb)!important;border:0!important;color:#fff!important;box-shadow:0 8px 22px rgba(61,124,255,.24)}
.soft-btn,.ghost-btn,.icon-btn{background:#101e33!important;border-color:var(--f-line)!important;color:#dbe7f7!important}
.badge{font-weight:750!important}
.screen{max-width:none!important;padding:20px 24px 40px!important}
.f-page{display:grid;gap:18px;min-width:0}
.f-top-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.f-tabs{display:flex;gap:4px;padding:5px;background:#0a1527;border:1px solid var(--f-line);border-radius:13px;overflow-x:auto}
.f-tabs button{border:0;background:transparent;color:var(--f-muted);padding:10px 14px;border-radius:9px;white-space:nowrap;font-weight:800;cursor:pointer}
.f-tabs button.is-active{background:#1a3158;color:#fff;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.f-tabs b{margin-left:8px;color:#86adff}
.f-kpis{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:12px}
.f-kpi{padding:15px 16px;min-height:92px;display:flex;flex-direction:column;justify-content:space-between}
.f-kpi span{color:var(--f-muted);font-size:12px;font-weight:750}
.f-kpi strong{font-size:24px;letter-spacing:-.025em;line-height:1.1}
.f-kpi small{color:#7187a4}
.f-kpi--green strong{color:var(--f-green)}.f-kpi--red strong{color:var(--f-red)}.f-kpi--blue strong{color:#82aaff}.f-kpi--amber strong{color:var(--f-amber)}
.f-filterbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px}
.f-filterbar .input,.f-filterbar .select{min-height:40px}
.f-filterbar .f-grow{flex:1;min-width:220px}
.f-table-shell{overflow:auto;border:1px solid var(--f-line);border-radius:14px;background:#0a1526;max-height:660px}
.f-table{width:100%;border-collapse:separate;border-spacing:0;min-width:900px}
.f-table th{position:sticky;top:0;z-index:3;background:#101e32;color:#8fa4c0;padding:12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.045em;border-bottom:1px solid var(--f-line)}
.f-table td{padding:12px;border-bottom:1px solid rgba(34,52,81,.65);vertical-align:middle;color:#dce7f5}
.f-table tr:hover td{background:rgba(61,124,255,.055)}
.f-table tr.is-selected td{background:rgba(61,124,255,.115)}
.f-person{display:flex;align-items:center;gap:11px;min-width:210px}.f-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#385985,#263d63);color:#fff;font-weight:900;flex:0 0 auto}.f-avatar--lg{width:62px;height:62px;font-size:24px}
.f-person b{display:block;color:#fff}.f-person small{display:block;color:var(--f-muted);margin-top:3px}
.f-status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:850;background:#17263d;color:#b8c8dd}
.f-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.f-status--ok{background:rgba(53,211,154,.12);color:var(--f-green)}.f-status--warn{background:rgba(245,183,75,.12);color:var(--f-amber)}.f-status--bad{background:rgba(255,101,124,.12);color:var(--f-red)}.f-status--info{background:rgba(61,124,255,.14);color:#75a2ff}
.f-master-detail{display:grid;grid-template-columns:minmax(650px,1fr) minmax(330px,420px);gap:16px;align-items:start}
.f-detail{position:sticky;top:92px;max-height:calc(100vh - 125px);overflow:auto;padding:18px}
.f-detail-head{display:flex;align-items:center;gap:13px;padding-bottom:16px;border-bottom:1px solid var(--f-line)}
.f-detail-head h3{margin:0 0 5px}.f-detail-head p{margin:0;color:var(--f-muted)}
.f-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.f-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.f-detail-tile{background:#0a1628;border:1px solid var(--f-line);border-radius:12px;padding:11px}.f-detail-tile span{display:block;color:var(--f-muted);font-size:11px}.f-detail-tile b{display:block;margin-top:5px;color:#fff}.f-detail-tile small{display:block;color:#6f84a1;margin-top:4px}
.f-section{padding-top:16px;margin-top:16px;border-top:1px solid var(--f-line)}.f-section h4{margin:0 0 10px}.f-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;color:#bdcce0}.f-line+ .f-line{border-top:1px solid rgba(34,52,81,.45)}
.f-dupes{display:grid;gap:10px}.f-dupe{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:10px;padding:12px;background:#0a1628;border:1px solid var(--f-line);border-radius:12px}.f-dupe__score{color:var(--f-amber);font-weight:900}
.f-empty{padding:30px;text-align:center;color:var(--f-muted);border:1px dashed var(--f-line2);border-radius:13px;background:rgba(10,22,40,.55)}
/* Schedule */
.f-schedule-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}.f-version-box{display:flex;gap:18px;align-items:center;padding:12px 15px}.f-version-box span{color:var(--f-muted);font-size:11px;display:block}.f-version-box b{display:block;margin-top:4px}
.f-schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;align-items:start}
.f-schedule-scroll{overflow:auto;border:1px solid var(--f-line);border-radius:14px;background:#091426;max-height:690px}
.f-schedule{border-collapse:separate;border-spacing:0;min-width:max-content}
.f-schedule th{position:sticky;top:0;z-index:5;background:#101f34;color:#9db0ca;height:54px;border-right:1px solid var(--f-line);border-bottom:1px solid var(--f-line);min-width:45px;text-align:center;font-size:11px}.f-schedule th:first-child{left:0;z-index:7;min-width:210px;text-align:left;padding-left:14px}
.f-schedule td{height:54px;min-width:45px;border-right:1px solid rgba(34,52,81,.6);border-bottom:1px solid rgba(34,52,81,.6);text-align:center;position:relative}.f-schedule td:first-child{position:sticky;left:0;z-index:4;background:#0d1a2c;text-align:left;padding:8px 12px;min-width:210px}.f-schedule .weekend{background:rgba(255,101,124,.035)}
.f-shift-cell{width:100%;height:100%;border:0;background:transparent;color:#657993;cursor:pointer;font-weight:900}.f-shift-cell.has-shift{background:linear-gradient(145deg,rgba(61,124,255,.28),rgba(61,124,255,.14));color:#dce8ff;box-shadow:inset 0 0 0 1px rgba(101,157,255,.35)}.f-shift-cell.requested{background:linear-gradient(145deg,rgba(156,123,255,.3),rgba(156,123,255,.14));color:#eadfff}.f-shift-cell.conflict{background:rgba(255,101,124,.18);color:#ff9aaa}.f-shift-cell small{display:block;font-size:8px;font-weight:750;margin-top:2px}
.f-side-panel{padding:15px;position:sticky;top:92px;display:grid;gap:12px}.f-side-panel h3{margin:0}.f-action-stack{display:grid;gap:8px}.f-action-stack button,.f-action-stack select{width:100%}.f-request{padding:10px;border:1px solid var(--f-line);border-radius:11px;background:#0a1628}.f-request b,.f-request small{display:block}.f-request small{color:var(--f-muted);margin:4px 0 8px}.f-request-actions{display:flex;gap:6px}
/* Unified stock */
.f-stock-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}.f-revision-list{display:grid;gap:9px}.f-revision-card{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:12px;border:1px solid var(--f-line);border-radius:12px;background:#0a1628;cursor:pointer}.f-revision-card:hover,.f-revision-card.is-selected{border-color:#496fa7;background:#10213a}.f-progress{height:6px;background:#172842;border-radius:99px;overflow:hidden;margin-top:8px}.f-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--f-blue),#73a6ff)}
.f-reason-row{display:grid;grid-template-columns:1fr 110px 80px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--f-line)}
/* NS matching */
.f-match-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(540px,1.3fr);gap:14px}.f-match-column{min-width:0}.f-match-list{display:grid;gap:9px;max-height:650px;overflow:auto;padding-right:4px}.f-product-card,.f-price-card{padding:13px;border:1px solid var(--f-line);border-radius:13px;background:#0a1628;cursor:pointer}.f-product-card:hover,.f-price-card:hover,.f-product-card.is-selected,.f-price-card.is-selected{border-color:#4e7fc9;background:#10233e;box-shadow:0 8px 20px rgba(0,0,0,.12)}.f-product-card h4,.f-price-card h4{margin:7px 0;font-size:14px}.f-product-card p,.f-price-card p{margin:0;color:var(--f-muted);font-size:12px}.f-price-group{margin-bottom:12px}.f-price-group>header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;padding:10px;background:#142640;border:1px solid var(--f-line);border-radius:10px;margin-bottom:8px}.f-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.f-selected-banner{padding:11px 14px;border:1px solid rgba(61,124,255,.42);background:rgba(61,124,255,.12);border-radius:12px;color:#dce9ff}.f-upload-drop{display:flex;align-items:center;gap:10px;padding:12px;border:1px dashed #42638f;border-radius:12px;background:#0a1628}.f-upload-drop input{max-width:220px}
/* final toolbar/readiness */
.f-readiness{display:flex;align-items:center;gap:8px;color:#a9bbd2;font-size:12px}.f-readiness i{width:8px;height:8px;border-radius:50%;background:var(--f-green);box-shadow:0 0 12px var(--f-green)}
.f-positive{color:var(--f-green)!important}.f-negative{color:var(--f-red)!important}.f-warning{color:var(--f-amber)!important}
@media(max-width:1350px){.f-kpis{grid-template-columns:repeat(3,1fr)}.f-master-detail,.f-stock-grid{grid-template-columns:1fr}.f-detail,.f-side-panel{position:static;max-height:none}.f-schedule-layout{grid-template-columns:1fr}.f-match-layout{grid-template-columns:1fr}}
@media(max-width:800px){.screen{padding:12px!important}.f-kpis{grid-template-columns:repeat(2,1fr)}.f-detail-grid{grid-template-columns:1fr}.f-price-grid{grid-template-columns:1fr}.f-dupe{grid-template-columns:1fr}.topbar__right .global-search{display:none}}
/* Production-final dialogs, schedule controls and payment source allocation */
.f-inline-fields{display:grid;grid-template-columns:minmax(90px,.65fr) minmax(120px,1fr);gap:8px;align-items:end}.f-inline-fields label{display:grid;gap:5px}.f-inline-fields label span{font-size:11px;color:var(--f-muted)}
.f-toggle{display:flex;gap:8px;align-items:center;color:#b9c9dd;font-size:12px;line-height:1.35}.f-toggle input{accent-color:var(--f-blue)}
.f-modal-backdrop{position:fixed;inset:0;z-index:10000;background:rgba(2,7,16,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:28px}.f-modal{width:min(1080px,96vw);max-height:90vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;padding:0!important;box-shadow:0 36px 90px rgba(0,0,0,.56)!important}.f-modal>header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--f-line)}.f-modal>header h3{margin:3px 0 0;font-size:21px}.f-modal-body{overflow:auto;padding:18px 20px;display:grid;gap:15px}.f-modal>footer{padding:14px 20px;border-top:1px solid var(--f-line);display:flex;justify-content:flex-end;gap:8px}.f-modal .f-table-shell{max-height:280px}.f-modal .f-table{min-width:700px}
.f-payroll-batches-layout{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:14px;align-items:start}.f-batch-list{display:grid;gap:8px;max-height:720px;overflow:auto}.f-batch-card{display:grid;gap:4px;text-align:left;padding:12px;border:1px solid var(--f-line);border-radius:12px;background:#0a1628;color:var(--f-text);cursor:pointer}.f-batch-card:hover,.f-batch-card.is-selected{border-color:#4e7fc9;background:#10233e}.f-batch-card span,.f-batch-card small{color:var(--f-muted)}.f-batch-card strong{color:var(--f-green);font-size:17px}.f-payroll-batch-detail{min-width:0;display:grid;gap:11px}.f-payroll-item{border:1px solid var(--f-line);border-radius:13px;background:#0a1628;padding:13px;display:grid;gap:10px}.f-payroll-item>header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.f-payroll-item>header b,.f-payroll-item>header small{display:block}.f-payroll-item>header small{color:var(--f-muted);margin-top:3px}.f-payroll-item>header strong{color:var(--f-green);font-size:18px;white-space:nowrap}.f-payroll-item>footer{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:var(--f-muted);font-size:12px;border-top:1px solid rgba(34,52,81,.6);padding-top:9px}.f-allocation-list{display:grid;gap:7px}.f-allocation-row{display:grid;grid-template-columns:minmax(220px,1fr) 140px minmax(135px,auto);gap:8px;align-items:center}.f-allocation-row .input,.f-allocation-row .select{min-height:38px}
@media(max-width:1100px){.f-payroll-batches-layout{grid-template-columns:1fr}.f-batch-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.f-allocation-row{grid-template-columns:1fr 130px}.f-allocation-row .f-toggle{grid-column:1/-1}}
@media(max-width:700px){.f-modal-backdrop{padding:8px}.f-payroll-batches-layout,.f-batch-list{grid-template-columns:1fr}.f-allocation-row{grid-template-columns:1fr}.f-inline-fields{grid-template-columns:1fr}}
