
:root{--navy:#17365d;--blue:#4f81bd;--blue2:#2d5f91;--light:#edf4fb;--bg:#f4f7fb;--panel:#fff;--text:#172033;--muted:#687386;--border:#dbe3ed;--green:#239b56;--green-bg:#e8f7ee;--orange:#d97706;--orange-bg:#fff2df;--red:#c0392b;--red-bg:#fdebea;--yellow:#fff5cc;--shadow:0 8px 28px rgba(23,54,93,.08);--radius:18px}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:linear-gradient(180deg,#17365d,#102b4d);color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:50}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}.brand-mark{width:44px;height:44px;border-radius:14px;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:900;box-shadow:0 8px 18px rgba(0,0,0,.18)}.brand strong{display:block;font-size:16px}.brand small{display:block;color:#c9d8ea;margin-top:2px}.nav-list{display:grid;gap:6px}.nav-item{border:0;background:transparent;color:#dfeaf6;border-radius:12px;padding:13px 14px;text-align:left;font-weight:650;display:flex;align-items:center;gap:12px}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.14);color:#fff}.sidebar-footer{margin-top:auto;padding:16px 10px 4px;color:#d3dfec;font-size:13px;display:flex;align-items:center;gap:8px}.status-dot{width:9px;height:9px;border-radius:50%;background:#aaa}.status-dot.online{background:#38d27a}.status-dot.offline{background:#ffbd52}.main{margin-left:250px;width:calc(100% - 250px);min-width:0}.topbar{height:88px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:15px 28px;position:sticky;top:0;z-index:30}.topbar h1{font-size:24px;margin:0}.topbar p{margin:2px 0 0;color:var(--muted);font-size:14px}.topbar-actions{margin-left:auto;display:flex;gap:8px}.icon-button{width:42px;height:42px;border:1px solid var(--border);background:#fff;border-radius:12px;color:var(--navy);display:grid;place-items:center;font-size:20px}.menu-button{display:none}.content{padding:26px;max-width:1500px;margin:0 auto}.page{display:none;animation:fade .18s ease}.page.active{display:block}@keyframes fade{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}.cards{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:14px;margin-bottom:18px}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.card .label{color:var(--muted);font-size:13px;font-weight:700}.card .value{font-size:28px;font-weight:850;margin-top:8px}.card .hint{font-size:12px;color:var(--muted);margin-top:4px}.card.good{border-top:4px solid var(--green)}.card.warn{border-top:4px solid var(--orange)}.card.danger{border-top:4px solid var(--red)}.card.info{border-top:4px solid var(--blue)}.grid{display:grid;gap:18px;margin-bottom:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:18px;min-width:0}.panel h2{margin:0;font-size:18px}.panel p{margin:5px 0 0}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.panel-head.wrap{flex-wrap:wrap}.muted,.note{color:var(--muted)}.note{font-size:13px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filters input,.filters select{min-width:170px}.form-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:20px}.form-grid label{display:grid;gap:7px;font-weight:700;font-size:13px;color:#3a4658}.span-2{grid-column:span 2}input,select,textarea{width:100%;border:1px solid #cfd9e6;border-radius:11px;padding:12px 13px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(79,129,189,.15)}textarea{resize:vertical}.button{border:0;border-radius:11px;padding:12px 16px;font-weight:800;text-align:center}.button.primary{background:var(--navy);color:#fff}.button.primary:hover{background:#214d7d}.button.secondary{background:var(--light);color:var(--navy);border:1px solid #cadced}.button.danger{background:var(--red-bg);color:var(--red);border:1px solid #f2c9c5}.button.compact{padding:9px 13px}.button.large{padding:15px 18px;font-size:16px}.balance-preview{background:var(--light);border:1px solid #cadaea;border-radius:13px;padding:15px;display:flex;justify-content:space-between;align-items:center;color:var(--navy)}.balance-preview strong{font-size:23px}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:13px}table{width:100%;border-collapse:collapse;min-width:860px}th,td{padding:12px 13px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}th{background:#f0f5fa;color:#40536a;font-size:12px;text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0;z-index:2}td{font-size:14px}tr:last-child td{border-bottom:0}.product-name{font-weight:800}.subtext{font-size:12px;color:var(--muted);margin-top:3px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.badge.good{background:var(--green-bg);color:#187a43}.badge.warn{background:var(--orange-bg);color:#a85c04}.badge.danger{background:var(--red-bg);color:#a62c22}.badge.info{background:var(--light);color:var(--navy)}.qty{font-weight:850}.row-actions button{border:0;background:transparent;color:var(--red);font-weight:700}.empty{padding:26px;text-align:center;color:var(--muted)}.compact-list{display:grid;gap:10px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:12px}.list-row .main-text{font-weight:800}.list-row .side{text-align:right}.donut-wrap{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:24px}.donut{width:170px;height:170px;border-radius:50%;position:relative;margin:auto}.donut:after{content:"";position:absolute;inset:31px;background:#fff;border-radius:50%}.donut-center{position:absolute;inset:0;display:grid;place-items:center;z-index:1;text-align:center}.donut-center strong{font-size:28px}.donut-center span{display:block;color:var(--muted);font-size:12px}.legend-list{display:grid;gap:10px}.legend-item{display:grid;grid-template-columns:12px 1fr auto;gap:9px;align-items:center}.legend-item i{width:11px;height:11px;border-radius:4px}.legend{display:flex;gap:15px;color:var(--muted);font-size:12px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.legend-entry{background:var(--green)}.legend-withdrawal{background:var(--orange)}.movement-chart{display:grid;grid-template-columns:repeat(14,minmax(35px,1fr));gap:7px;align-items:end;height:245px;padding-top:20px;overflow-x:auto}.day-column{height:215px;display:grid;grid-template-rows:1fr auto;min-width:38px}.bars{height:180px;display:flex;align-items:end;justify-content:center;gap:4px;border-bottom:1px solid var(--border)}.bar{width:12px;border-radius:5px 5px 0 0;min-height:2px}.bar.entry{background:var(--green)}.bar.withdrawal{background:var(--orange)}.day-label{font-size:10px;color:var(--muted);text-align:center;padding-top:8px}.attention{display:grid;gap:10px}.attention-item{padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid var(--border)}.attention-item strong{display:block}.attention-item span{font-size:13px;color:var(--muted)}.action-list{display:grid;gap:10px;margin-top:18px}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.install-help{color:#445268;line-height:1.55}.inline-min{width:105px;padding:8px}.toggle{display:inline-flex;align-items:center;gap:8px}.toggle input{width:18px;height:18px}.toast{position:fixed;right:24px;top:24px;z-index:200;background:#132c4d;color:#fff;padding:13px 16px;border-radius:12px;box-shadow:0 10px 35px rgba(0,0,0,.25);opacity:0;transform:translateY(-12px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{background:#a52c24}.bottom-nav{display:none}.overlay{display:none}.small-action{border:1px solid var(--border);background:#fff;color:var(--navy);border-radius:9px;padding:7px 9px;font-weight:750}.small-action.danger{color:var(--red)}
@media(max-width:1180px){.cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.sidebar{transform:translateX(-102%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0;width:100%}.menu-button{display:grid}.overlay.show{display:block;position:fixed;inset:0;background:rgba(10,20,35,.4);z-index:40}.form-layout,.grid.two{grid-template-columns:1fr}.content{padding:18px}.topbar{padding:13px 18px}.cards{grid-template-columns:repeat(2,1fr)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:72px;background:#fff;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(5,1fr);z-index:35;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{border:0;background:#fff;color:#718096;font-size:20px;display:grid;place-items:center;padding:7px 2px}.bottom-nav button span{font-size:10px;font-weight:700}.bottom-nav button.active{color:var(--navy)}.content{padding-bottom:96px}.donut-wrap{grid-template-columns:1fr}.topbar h1{font-size:21px}}
@media(max-width:560px){.cards{grid-template-columns:1fr 1fr;gap:10px}.card{padding:14px}.card .value{font-size:23px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.filters{width:100%}.filters input,.filters select{min-width:0;flex:1 1 100%}.panel{padding:15px;border-radius:15px}.topbar p{display:none}.topbar-actions .secondary{display:none}.movement-chart{grid-template-columns:repeat(14,40px)}.toast{left:14px;right:14px;top:14px}.brand{padding-bottom:14px}}
