:root{--p-paper:#f5f7fb;--p-surface:#fff;--p-ink:#101828;--p-text:#1f2937;--p-muted:#667085;--p-faint:#9aa1ac;--p-line:#e6e9f0;--p-line-soft:#f1f2f4;--p-accent:#4f46e5;--p-accent-strong:#4338ca;--p-accent-soft:#eef1ff;--p-good:#15803d;--p-good-soft:#e7f6ed;--p-warn:#b45309;--p-warn-soft:#fdf3e3;--p-bad:#c0392f;--p-bad-soft:#fdecea;--p-info:#1d4ed8;--p-info-soft:#e8effd;--p-sidebar:#1e293b;--p-sidebar-deep:#0f172a;--p-sidebar-text:#94a3b8;--p-radius:14px;--p-radius-sm:8px;--p-shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--p-shadow-lg:0 6px 20px #10182824;--p-fs-micro:11.5px;--p-fs-small:12.5px;--p-fs-data:13px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--p-paper);color:var(--p-text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}.shell{min-height:100%;display:flex}.sidebar{background:var(--p-sidebar);width:250px;color:var(--p-sidebar-text);z-index:1000;flex-direction:column;flex-shrink:0;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{background:var(--p-sidebar-deep);border-bottom:1px solid #ffffff0d;align-items:center;height:60px;padding:0 16px;display:flex}.sidebar-brand{color:#fff;align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex}.brand-icon{color:#6366f1;font-size:20px}.sidebar-nav{flex-direction:column;flex:1;gap:18px;padding:16px 12px;display:flex;overflow-y:auto}.nav-section-title{letter-spacing:.8px;color:#64748b;margin-bottom:8px;padding-left:8px;font-size:11px;font-weight:700}.nav-link{color:var(--p-sidebar-text);border-radius:8px;align-items:center;gap:12px;padding:9px 12px;font-size:13.5px;font-weight:500;transition:all .15s;display:flex}.nav-link:hover{color:#f8fafc;background:#ffffff0f}.nav-link.active{color:#fff;background:var(--p-accent);font-weight:600;box-shadow:0 2px 6px #4f46e54d}.nav-icon{text-align:center;width:18px;font-size:15px}.sidebar-footer{background:var(--p-sidebar-deep);border-top:1px solid #ffffff0d;align-items:center;gap:10px;padding:14px 16px;display:flex}.user-avatar{background:var(--p-accent);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:grid}.user-name{color:#e2e8f0;font-size:13px;font-weight:600}.user-role{color:#64748b;font-size:11.5px}.main{flex-direction:column;flex:1;min-width:0;margin-left:250px;display:flex}.topbar{background:var(--p-surface);border-bottom:1px solid var(--p-line);z-index:900;align-items:center;gap:12px;height:60px;padding:0 20px;display:flex;position:sticky;top:0}.topbar-title{color:var(--p-ink);margin-right:auto;font-size:20px;font-weight:700}.topbar-btn{border:1px solid var(--p-line);background:var(--p-surface);border-radius:var(--p-radius-sm);height:36px;color:var(--p-text);font-size:var(--p-fs-data);cursor:pointer;align-items:center;gap:8px;padding:0 12px;font-weight:600;display:inline-flex}.topbar-btn:hover{background:var(--p-paper)}.content{flex-direction:column;gap:16px;padding:20px;display:flex}.card{background:var(--p-surface);border:1px solid var(--p-line);border-radius:var(--p-radius);box-shadow:var(--p-shadow)}.card-head{border-bottom:1px solid var(--p-line-soft);align-items:center;gap:10px;padding:14px 16px;display:flex}.card-title{color:var(--p-ink);font-size:14px;font-weight:700}.card-link{font-size:var(--p-fs-small);color:var(--p-accent);margin-left:auto;font-weight:600}.card-body{padding:16px}.tiles{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.tile{padding:16px 18px}.tile-label{font-size:var(--p-fs-small);color:var(--p-muted);font-weight:700}.tile-value{color:var(--p-ink);margin-top:6px;font-size:26px;font-weight:800}.tile-note{font-size:var(--p-fs-micro);margin-top:4px;font-weight:600}.tile-note.up{color:var(--p-good)}.tile-note.down{color:var(--p-bad)}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.toolbar{border-bottom:1px solid var(--p-line-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.btn{border-radius:var(--p-radius-sm);border:1px solid var(--p-line);background:var(--p-surface);height:34px;color:var(--p-text);font-size:var(--p-fs-data);cursor:pointer;align-items:center;gap:7px;padding:0 12px;font-weight:600;display:inline-flex}.btn:hover{background:var(--p-paper)}.btn-primary{background:var(--p-accent);border-color:var(--p-accent);color:#fff}.btn-primary:hover{background:var(--p-accent-strong)}.search{border:1px solid var(--p-line);border-radius:var(--p-radius-sm);min-width:240px;height:34px;font-size:var(--p-fs-data);outline:none;padding:0 12px}.search:focus{border-color:var(--p-accent);box-shadow:0 0 0 3px var(--p-accent-soft)}.spacer{margin-left:auto}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--p-fs-data)}table.data th{text-align:left;font-size:var(--p-fs-micro);letter-spacing:.4px;text-transform:uppercase;color:var(--p-muted);background:var(--p-paper);border-bottom:1px solid var(--p-line);white-space:nowrap;padding:10px 12px;font-weight:700}table.data td{border-bottom:1px solid var(--p-line-soft);white-space:nowrap;padding:10px 12px}table.data tbody tr:hover{background:#fafbfe}table.data tfoot td{color:var(--p-ink);background:var(--p-paper);border-top:1px solid var(--p-line);font-weight:700}.num{text-align:right;font-variant-numeric:tabular-nums}.muted{color:var(--p-muted)}.chip{font-size:var(--p-fs-micro);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-weight:700;display:inline-flex}.chip-neutral{background:var(--p-line-soft);color:var(--p-muted)}.chip-good{background:var(--p-good-soft);color:var(--p-good)}.chip-warn{background:var(--p-warn-soft);color:var(--p-warn)}.chip-bad{background:var(--p-bad-soft);color:var(--p-bad)}.chip-info{background:var(--p-info-soft);color:var(--p-info)}.chart{align-items:flex-end;gap:10px;height:160px;padding-top:8px;display:flex}.chart-col{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.chart-bar{background:var(--p-accent);border-radius:6px 6px 0 0;width:100%;min-height:4px}.chart-bar.soft{background:var(--p-accent-soft)}.chart-day{font-size:var(--p-fs-micro);color:var(--p-faint);font-weight:600}.row-line{border-bottom:1px solid var(--p-line-soft);font-size:var(--p-fs-data);align-items:center;gap:10px;padding:9px 0;display:flex}.row-line:last-child{border-bottom:none}.row-line .right{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.stub{text-align:center;color:var(--p-muted);padding:56px 16px;font-size:15px}.stub i{background:linear-gradient(135deg, var(--p-accent-soft), #e0e7ff);width:88px;height:88px;color:var(--p-accent);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:32px;display:flex}@media (width<=1100px){.tiles,.grid-2{grid-template-columns:1fr}}.tabs{border-bottom:1px solid var(--p-line);gap:4px;padding:0 16px;display:flex}.tab{font-size:var(--p-fs-data);color:var(--p-muted);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 14px;font-weight:600}.tab:hover{color:var(--p-text)}.tab.active{color:var(--p-accent);border-bottom-color:var(--p-accent)}.fieldset{border-bottom:1px solid var(--p-line-soft);padding:16px}.fieldset:last-child{border-bottom:none}.fieldset-title{font-size:var(--p-fs-micro);letter-spacing:.5px;text-transform:uppercase;color:var(--p-faint);margin-bottom:12px;font-weight:700}.form-grid{grid-template-columns:repeat(3,1fr);gap:14px 16px;display:grid}.form-grid.two{grid-template-columns:repeat(2,1fr)}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>label{font-size:var(--p-fs-small);color:var(--p-muted);font-weight:600}.field .req{color:var(--p-bad)}.field input,.field select{border:1px solid var(--p-line);border-radius:var(--p-radius-sm);height:36px;font-size:var(--p-fs-data);color:var(--p-text);background:var(--p-surface);outline:none;width:100%;padding:0 10px}.field input:focus,.field select:focus{border-color:var(--p-accent);box-shadow:0 0 0 3px var(--p-accent-soft)}.field .hint{font-size:var(--p-fs-micro);color:var(--p-faint)}.input-with-btn{gap:6px;display:flex}.input-with-btn .btn{flex-shrink:0;height:36px}.actions{border-top:1px solid var(--p-line);background:var(--p-paper);border-radius:0 0 var(--p-radius) var(--p-radius);align-items:center;gap:8px;padding:12px 16px;display:flex}.actions .danger{color:var(--p-bad);border-color:var(--p-line)}.actions .danger:hover{background:var(--p-bad-soft)}.totals{justify-content:flex-end;padding:12px 16px;display:flex}.totals-box{flex-direction:column;gap:6px;min-width:260px;display:flex}.totals-row{font-size:var(--p-fs-data);color:var(--p-muted);justify-content:space-between;display:flex}.totals-row.big{color:var(--p-ink);font-size:15px;font-weight:800}.totals-row span:last-child{font-variant-numeric:tabular-nums}tr.day-total td{background:var(--p-paper);color:var(--p-muted);font-weight:700;font-size:var(--p-fs-small)}.link{color:var(--p-accent);cursor:pointer;font-weight:600}.link:hover{text-decoration:underline}@media (width<=1100px){.form-grid,.form-grid.two{grid-template-columns:1fr}}.switch-row{border-bottom:1px solid var(--p-line-soft);align-items:center;gap:12px;padding:11px 0;display:flex}.switch-row:last-child{border-bottom:none}.switch-row .switch-text{flex-direction:column;gap:2px;min-width:0;display:flex}.switch-row .switch-label{font-size:var(--p-fs-data);font-weight:600}.switch-row .switch-hint{font-size:var(--p-fs-micro);color:var(--p-faint)}.switch-row .switch-control{flex-shrink:0;margin-left:auto}.switch{appearance:none;cursor:pointer;background:#d6dae3;border:none;border-radius:999px;flex-shrink:0;width:40px;height:22px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #10182833}.switch:checked{background:var(--p-accent)}.switch:checked:after{transform:translate(18px)}.panel-note{font-size:var(--p-fs-small)}.login-screen{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{flex-direction:column;gap:14px;width:100%;max-width:380px;padding:28px 24px;display:flex}.login-brand{color:var(--p-ink);align-items:center;gap:10px;font-size:22px;font-weight:800;display:flex}.login-hint{color:var(--p-muted);font-size:var(--p-fs-data);margin-top:-8px}.login-error{background:var(--p-bad-soft);color:var(--p-bad);border-radius:var(--p-radius-sm);font-size:var(--p-fs-data);padding:9px 12px;font-weight:600}.login-submit{justify-content:center;height:42px;margin-top:4px}.state-note{text-align:center;color:var(--p-muted);font-size:var(--p-fs-data);padding:40px 16px}.state-note i{color:var(--p-faint);margin-bottom:10px;font-size:24px;display:block}.state-note.bad i{color:var(--p-bad)}.sidebar-exit{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;margin-left:auto;padding:6px}.sidebar-exit:hover{color:#f8fafc;background:#ffffff0f}.user-name,.user-role{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.add-line{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.add-line-search{flex:1;min-width:260px;position:relative}.add-line-search .search{width:100%;min-width:0}.add-line-small{width:120px;min-width:120px}.suggest{background:var(--p-surface);border:1px solid var(--p-line);border-radius:var(--p-radius-sm);box-shadow:var(--p-shadow-lg);z-index:50;position:absolute;top:38px;left:0;right:0;overflow:hidden}.suggest-row{font-size:var(--p-fs-data);cursor:pointer;border-bottom:1px solid var(--p-line-soft);grid-template-columns:1fr auto auto;gap:12px;padding:9px 12px;display:grid}.suggest-row:last-child{border-bottom:none}.suggest-row:hover{background:var(--p-accent-soft)}.thumb{vertical-align:middle;flex:none;display:inline-block;position:relative;overflow:hidden}.thumb-initials{color:#fff;letter-spacing:-.5px;justify-content:center;align-items:center;font-weight:800;line-height:1;display:flex;position:absolute;inset:0}.thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cell-product{align-items:center;gap:10px;display:flex}.photo-row{align-items:flex-start;gap:18px;display:flex}.photo-actions{flex-direction:column;gap:10px;max-width:420px;display:flex}.photo-actions p{font-size:var(--p-fs-data);margin:0;line-height:1.5}.row-buttons{flex-wrap:wrap;gap:8px;display:flex}.btn-quiet{cursor:pointer;align-items:center;display:inline-flex}.btn.disabled,.btn:disabled{opacity:.55;cursor:default}
