:root{--navy:#102636;--navy2:#183e53;--cyan:#10c6e5;--cyan2:#079db9;--bg:#f3f7f9;--text:#172b38;--muted:#6e7f89;--line:#dbe5e9;--green:#1a9860;--orange:#d77719;--red:#cf4239;--shadow:0 12px 34px #14334314}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{grid-template-columns:255px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:linear-gradient(#0e2534,#0b1d29);flex-direction:column;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{border-bottom:1px solid #ffffff1a;align-items:center;gap:11px;padding:0 6px 22px;display:flex}.brand img{object-fit:contain;background:#fff;border-radius:7px;width:92px;height:46px}.brand strong{font-size:13px;display:block}.brand small{color:#96acb8;font-size:10px}.nav{gap:4px;margin-top:22px;display:grid}.nav a,.nav .nav-parent{color:#a8bbc5;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:4px;width:100%;padding:12px 13px;text-decoration:none;display:flex}.nav a:hover,.nav .nav-parent:hover,.nav a.active,.nav .nav-parent.active{color:#fff;box-shadow:inset 3px 0 var(--cyan);background:#10c6e51f}.nav .num{opacity:.75;font-variant-numeric:tabular-nums;width:27px;font-size:11px;display:inline-block}.nav .caret{margin-left:auto;font-size:11px;transition:transform .18s}.nav .nav-group.open .caret{transform:rotate(90deg)}.nav .nav-children{gap:2px;margin:2px 0 4px 27px;display:none}.nav .nav-group.open .nav-children{display:grid}.nav .nav-children a{padding:9px 12px;font-size:13px}.nav .tag-dev{text-transform:uppercase;letter-spacing:.04em;color:#ffd8a8;white-space:nowrap;border:1px solid #d7771966;border-radius:10px;margin-left:auto;padding:2px 7px;font-size:9px;font-weight:800}.side-status{background:#ffffff0d;border:1px solid #ffffff14;border-radius:12px;margin-top:auto;padding:13px;font-size:11px}.side-status .who{word-break:break-word;font-size:12px;font-weight:700;display:block}.side-status small{color:#86a0ad;margin:4px 0 10px;display:block}.side-status button{color:#dbe8ee;background:0 0;border:1px solid #ffffff2b;border-radius:8px;width:100%;padding:8px;font-size:11px;font-weight:700}.side-status button:hover{background:#ffffff14}.main{min-width:0;padding:0 32px 45px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:94px;margin-bottom:27px;display:flex}.eyebrow{letter-spacing:.14em;color:var(--cyan2);text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.topbar h1{margin:4px 0 0;font-size:24px}.topbar p{color:var(--muted);margin:6px 0 0;font-size:12px}.view{max-width:1600px;margin:auto}.panel{border:1px solid var(--line);background:#fff;border-radius:13px;padding:22px;box-shadow:0 5px 17px #1837470d}.panel h3{margin:0 0 6px;font-size:14px}.panel p{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.badge{border-radius:18px;padding:5px 10px;font-size:10px;font-weight:800;display:inline-block}.badge.dev{color:#a5590f;background:#fdf0e2}.btn{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:9px;padding:10px 14px;font-size:12px;font-weight:700}.btn.primary{background:linear-gradient(135deg, var(--cyan2), var(--cyan));color:#06212d;border-color:#0000}.btn:disabled{opacity:.6;cursor:not-allowed}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.tabs a{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:20px;padding:8px 14px;font-size:12px;font-weight:700;text-decoration:none}.tabs a.active{background:var(--navy);color:#fff;border-color:var(--navy)}.empty{text-align:center;color:#8798a1;padding:32px;font-size:12px}.login-wrap{background:linear-gradient(160deg, var(--navy), var(--navy2));place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:min(400px,100%);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:30px 28px}.login-card img{height:54px;margin:0 auto 18px;display:block}.login-card h1{text-align:center;margin:0 0 4px;font-size:18px}.login-card .sub{text-align:center;color:var(--muted);margin:0 0 22px;font-size:12px}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:#526873;font-size:10px;font-weight:800}.field input{color:var(--text);background:#fff;border:1px solid #cfdee4;border-radius:8px;outline:none;padding:11px 12px}.field input:focus{border-color:var(--cyan2);box-shadow:0 0 0 3px #10c6e51a}.form-error{color:#a3312b;background:#fff1ef;border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:12px}.login-card .btn{width:100%;padding:12px}.center-screen{text-align:center;min-height:100vh;color:var(--muted);place-items:center;padding:24px;display:grid}.center-screen .panel{max-width:440px}.center-screen h2{color:var(--text);margin:0 0 8px;font-size:18px}.center-screen .btn{margin-top:16px}@media (width<=1100px){.app{grid-template-columns:210px 1fr}}@media (width<=780px){.app{display:block}.sidebar{height:auto;padding:12px;position:static}.brand{border:0;padding-bottom:6px}.nav{grid-auto-columns:max-content;grid-auto-flow:column;margin-top:6px;overflow-x:auto}.nav .nav-children{display:none!important}.nav .caret,.side-status small{display:none}.side-status{margin-top:10px}.main{padding:0 14px 30px}.topbar{min-height:78px}.topbar h1{font-size:19px}}.topbar-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.period-box{align-items:center;gap:8px;display:flex}.period-box label{color:#526873;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800}.period-box select,.toolbar select,.toolbar input,.field select,.field textarea{color:var(--text);font:inherit;background:#fff;border:1px solid #cfdee4;border-radius:8px;outline:none;padding:9px 11px}.field select,.field textarea{width:100%}.field select:focus,.field textarea:focus,.toolbar input:focus,.toolbar select:focus,.period-box select:focus{border-color:var(--cyan2);box-shadow:0 0 0 3px #10c6e51a}.field .hint{color:var(--muted);font-size:11px}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:20px;display:grid}.kpi{border:1px solid var(--line);background:#fff;border-radius:13px;padding:16px 18px;box-shadow:0 5px 17px #1837470d}.kpi small{color:#526873;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800;display:block}.kpi strong{margin-top:6px;font-size:22px;display:block}.kpi.green strong{color:var(--green)}.kpi.orange strong{color:var(--orange)}.kpi.red strong{color:var(--red)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar .grow{flex:1;min-width:200px}.toolbar .spacer{flex:1}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;color:#526873;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line);padding:10px 12px;font-size:10px;font-weight:800}.data-table td{vertical-align:middle;border-bottom:1px solid #edf2f4;padding:11px 12px}.data-table .num-col{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data-table .actions{text-align:right;white-space:nowrap}.data-table tr.cancelled td{color:var(--muted);text-decoration:line-through}.data-table tr.group-row td{background:#f3f7f9;font-size:12px;font-weight:800}.data-table tfoot td{border-top:2px solid var(--line);border-bottom:0;font-weight:800}.table-wrap{overflow-x:auto}.badge.issued{color:var(--cyan2);background:#e6f6fb}.badge.received{color:var(--green);background:#e4f6ec}.badge.cancelled{color:var(--red);background:#fdeceb}.badge.fixed{color:var(--orange);background:#fdf1e2}.badge.variable{color:var(--cyan2);background:#e6f6fb}.link-btn{color:var(--cyan2);font:inherit;cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:12px;font-weight:700}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--red)}.link-btn.armed{background:var(--red);color:#fff;border-radius:6px}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:16px}.btn.ghost{color:var(--text);border:1px solid var(--line);background:#fff}.modal{z-index:50;background:#10263673;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:14px;width:100%;max-width:520px;max-height:92vh;padding:22px;overflow-y:auto;box-shadow:0 20px 50px #1026364d}.modal-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-head h3{margin:0;font-size:16px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.flash{color:#17704a;background:#e4f6ec;border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:12px}.loading{color:var(--muted);text-align:center;padding:24px;font-size:13px}.srcbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;padding:14px 18px;display:flex}.srcbar .info{color:var(--muted);font-size:12px}.seg{border:1px solid var(--line);border-radius:9px;display:inline-flex;overflow:hidden}.seg button{font:inherit;color:var(--muted);cursor:pointer;background:#fff;border:0;padding:8px 14px;font-size:12px;font-weight:700}.seg button.on{background:var(--navy);color:#fff}.seg button:disabled{opacity:.45;cursor:not-allowed}.kpi span{color:var(--muted);margin-top:4px;font-size:11px;display:block}.margin-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.inputs-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 16px;margin-top:12px;display:grid}.panel p.left{text-align:left;margin-top:10px}.calc dl{margin:12px 0 0}.calc dl>div{border-bottom:1px solid #edf2f4;justify-content:space-between;gap:12px;padding:9px 0;font-size:13px;display:flex}.calc dt{color:var(--muted)}.calc dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.calc dl>div.eq dt{color:var(--text);font-weight:800}.calc dl>div.eq.neg dd{color:var(--red)}@media (width<=980px){.margin-grid{grid-template-columns:1fr}}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:18px;display:grid}.rules{margin:14px 0 0;padding:0;list-style:none}.rules li{border-bottom:1px solid #edf2f4;gap:12px;padding:11px 0;font-size:13px;display:flex}.rules b{color:var(--cyan2);font-size:12px}.rules strong{margin-bottom:2px;display:block}.rules span{color:var(--muted);line-height:1.5}.data-table td.neg{color:var(--red);font-weight:700}.data-table td.pos{color:var(--green);font-weight:700}.chg-pos{color:var(--green);font-weight:800}.chg-neg{color:var(--red);font-weight:800}.calc-list{margin:12px 0 0}.calc-list>div{border-bottom:1px solid #edf2f4;justify-content:space-between;gap:12px;padding:9px 0;font-size:13px;display:flex}.calc-list dt{color:var(--muted)}.calc-list dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.calc-list>div.eq dt{color:var(--text);font-weight:800}.calc-list>div.eq.neg dd{color:var(--red)}:root{--fg:#13293a;--faint:#8a9ca6;--surface2:#f6f9fa;--c-rev:#173f5a;--c-cv:#d9822b;--c-cf:#b9963f;--c-mc:#1f8f5f;--c-ebit:#079db9;--c-neg:#c8433a;--c-grid:#e3eaee}.chart{width:100%;overflow-x:auto}.chart svg{width:100%;min-width:360px;height:auto;display:block}.chart svg text{fill:var(--faint);font-size:11px}.chart svg text.v{font-size:12px;font-weight:700}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin:8px 0 6px;font-size:11.5px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:2px;width:12px;height:3px;display:inline-block}.legend i.sq{border-radius:2px;width:10px;height:10px}.sub{color:var(--muted);text-align:left;margin:2px 0 6px;font-size:12px}.secthead{margin:26px 0 14px}.secthead h2{margin:0;font-size:17px}.secthead p{color:var(--muted);margin:4px 0 0;font-size:12px}.row2{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;display:grid}.stack{flex-direction:column;gap:18px;display:flex}@media (width<=980px){.row2{grid-template-columns:1fr}}.ratio-bar{background:var(--surface2);border-radius:7px;height:34px;margin:6px 0 14px;display:flex;overflow:hidden}.ratio-bar div{color:#fff;white-space:nowrap;justify-content:center;align-items:center;min-width:0;font-size:11px;font-weight:700;display:flex;overflow:hidden}.stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat{background:var(--surface2);border:1px solid var(--line);border-radius:9px;min-width:0;padding:11px 12px}.stat span{color:var(--muted);font-size:11px;display:block}.stat strong{font-variant-numeric:tabular-nums;margin-top:4px;font-size:13.5px;display:block}.stat small{color:var(--faint);margin-top:2px;font-size:10.5px;display:block}.stat .neg{color:var(--c-neg)}.stat .pos{color:var(--c-mc)}.hb-row{grid-template-columns:90px minmax(0,1fr) 230px;align-items:center;gap:12px;margin:8px 0;display:grid}.hb-row.hb-wide{grid-template-columns:170px minmax(0,1fr) 230px}.hb-lbl{color:var(--fg);font-size:11px;font-weight:700}.hb-track{background:var(--surface2);border-radius:7px;min-width:0;height:26px;display:flex;position:relative;overflow:hidden}.hb-seg{color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;height:100%;padding:0 6px;font-size:9px;font-weight:800;display:flex;overflow:hidden}.hb-seg:first-child{justify-content:flex-start;padding-left:8px}.hb-info{color:var(--muted);font-size:10px;line-height:1.5}.hb-info strong{color:var(--fg)}.hb-pe .hb-track{margin-top:14px;overflow:visible}.hb-pe .hb-seg{border-radius:7px}.hb-mark{background:var(--fg);border-radius:2px;width:3px;margin-left:-1.5px;position:absolute;top:-5px;bottom:-5px}.hb-mark span{color:var(--fg);white-space:nowrap;font-size:9px;font-weight:800;position:absolute;top:-15px;left:50%;transform:translate(-50%)}.hb-group{border-bottom:1px solid var(--line);grid-template-columns:60px minmax(0,1fr);align-items:center;gap:10px;padding:8px 0;display:grid}.hb-group:last-child{border-bottom:0}.hb-glbl{font-size:12px;font-weight:800}.hb-gbars .hb-row{grid-template-columns:70px minmax(0,1fr) 150px;margin:4px 0}.hb-gbars .hb-track{height:22px}.hb-gbars .hb-lbl{color:var(--muted);font-weight:600}.hb-info .neg-t{color:var(--c-neg)}.hb-info .pos-t{color:var(--c-mc)}@media (width<=780px){.hb-row,.hb-row.hb-wide{grid-template-columns:70px minmax(0,1fr)}.hb-info{grid-column:2}.stats{grid-template-columns:1fr}}.data-table tr.cur td{background:#10c6e514}.data-table tr.dim td{color:var(--faint)}.panel p.sub{text-align:left}.num-field{align-items:center;gap:4px;display:inline-flex}.num-field input,.data-table input.cell,.data-table select.cell{font:inherit;text-align:right;color:var(--text);background:#fff;border:1px solid #cfdee4;border-radius:7px;outline:none;padding:6px 8px;font-size:12px}.data-table input.cell.left,.data-table select.cell{text-align:left}.num-field input:focus,.data-table input.cell:focus,.data-table select.cell:focus{border-color:var(--cyan2);box-shadow:0 0 0 3px #10c6e51a}.num-field .suffix{color:var(--muted);font-size:12px}.data-table tr.total td{border-top:2px solid var(--line);background:#f3f7f9;font-weight:800}.data-table .center{text-align:center}.note{border-left:4px solid var(--cyan2);color:var(--text);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:12px}.note.ok{border-left-color:var(--green)}.note.warn{border-left-color:var(--orange)}.bar{vertical-align:middle;background:#e3eaee;border-radius:4px;width:70px;height:7px;margin-right:6px;display:inline-block;overflow:hidden}.bar i{background:var(--cyan2);height:100%;display:block}.comp-tag{color:var(--orange);background:#fdf1e2;border-radius:10px;margin-left:6px;padding:2px 6px;font-size:9px;font-weight:800}.pill-note{color:var(--muted);font-size:11px}.checklist{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:6px 18px;margin:8px 0 0;padding:0;list-style:none;display:grid}.checklist label{cursor:pointer;align-items:center;gap:8px;display:flex}.data-table tfoot td{border-top:2px solid var(--line)}
