@font-face{font-family:Sen;src:url(/fonts/sen/sen-var.woff2) format("woff2");font-weight:400 800;font-display:swap;font-style:normal}:root{--lv-black: #000000;--lv-ink: #0A0A0B;--lv-green: #41B286;--lv-green-600: #34996f;--lv-green-050: #eaf6f0;--lv-green-100: #d3ecdf;--lv-bg: #F4F5F6;--lv-panel: #FFFFFF;--lv-line: #E7E9EB;--lv-line-2: #EEF0F1;--lv-ink-soft: #5B6470;--lv-ink-mute: #97A0AB;--lf-ink: #0A0A0B;--lf-ice: #FFFFFF;--bg: var(--lv-bg);--panel: var(--lv-panel);--ink: var(--lv-ink);--ink-soft: var(--lv-ink-soft);--line: var(--lv-line);--brand: var(--lv-black);--brand-2: var(--lv-green);--accent: var(--lv-green);--pos: #1f9d63;--neg: #d92d20;--warn: #C77700;--shadow: 0 1px 2px rgba(10,10,11,.05), 0 4px 16px rgba(10,10,11,.04);--shadow-lg: 0 12px 40px rgba(10,10,11,.14);--radius: 12px;--focus: 0 0 0 3px rgba(65,178,134,.32)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Sen,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--lv-bg);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{letter-spacing:-.01em}.lf-ink{color:var(--lf-ink)}.lf-ice{color:var(--lf-ice)}.auth{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff;color:var(--lv-ink);font-family:Sen,system-ui,-apple-system,sans-serif}.auth-brand{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 88% 6%,#41b28638,#41b28600 42%),linear-gradient(160deg,#131417,#000 60%);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(40px,5vw,64px)}.auth-brand__mark{position:absolute;right:-8%;bottom:-14%;width:60%;max-width:520px;color:#fff;opacity:.06;pointer-events:none}.auth-brand__logo,.auth-brand__pitch,.auth-brand__foot{position:relative;z-index:1}.auth-brand__pitch{max-width:30ch}.auth-brand__pitch h1{font-size:clamp(27px,2.5vw,37px);line-height:1.1;font-weight:800;letter-spacing:-.03em;margin:0 0 18px;color:#fff}.auth-brand__pitch h1 em{font-style:normal;color:var(--lv-green)}.auth-brand__pitch p{font-size:16.5px;line-height:1.6;color:#ffffffbd;margin:0;max-width:34ch}.auth-brand__foot{display:flex;align-items:center;gap:9px;font-size:12.5px;color:#fff9}.auth-brand__foot .dot{width:7px;height:7px;border-radius:50%;background:var(--lv-green);box-shadow:0 0 0 4px #41b28638}.auth-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px 24px;background:var(--lv-bg)}.auth-card{width:100%;max-width:400px}.auth-mobilebar{display:none;justify-content:center;margin-bottom:30px}.auth-head{margin-bottom:26px}.auth-head h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px;color:var(--lv-ink)}.auth-head p{font-size:14px;line-height:1.55;color:var(--lv-ink-soft);margin:0}.auth-field{margin-bottom:16px}.auth-field label{display:block;font-size:12.5px;font-weight:600;color:#3a4048;margin-bottom:7px}.auth-field input{width:100%;height:46px;padding:0 14px;font-size:15px;color:var(--lv-ink);background:#fff;border:1px solid var(--lv-line);border-radius:10px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.auth-field input::placeholder{color:var(--lv-ink-mute)}.auth-field input:hover{border-color:#cfd4d8}.auth-field input:focus{outline:none;border-color:var(--lv-green);box-shadow:var(--focus)}.auth-field input:disabled{background:#eef0f1;color:var(--lv-ink-mute);cursor:not-allowed}.auth-btn{width:100%;min-height:48px;margin-top:8px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:15px;font-weight:700;color:#fff;font-family:inherit;background:var(--lv-black);border:1px solid var(--lv-black);border-radius:10px;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .05s ease}.auth-btn:hover:not(:disabled){background:#1a1a1c;box-shadow:0 8px 24px #00000038}.auth-btn:active:not(:disabled){transform:translateY(1px)}.auth-btn:focus-visible{outline:none;box-shadow:var(--focus)}.auth-btn:disabled{opacity:.6;cursor:default}.auth-links{text-align:center;margin-top:18px}.auth-link{background:none;border:0;padding:6px 8px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--lv-green-600);border-radius:7px;font-family:inherit}.auth-link:hover{text-decoration:underline}.auth-link:focus-visible{outline:none;box-shadow:var(--focus)}.auth-msg{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;font-size:13.5px;line-height:1.45;margin-bottom:18px}.auth-msg svg{flex:0 0 auto;margin-top:1px}.auth-msg--error{background:#fdf2f2;color:#9b2c2c;border:1px solid #f5d2d2}.auth-msg--info{background:var(--lv-green-050);color:#1f6b48;border:1px solid var(--lv-green-100)}.auth-msg--success{background:var(--lv-green-050);color:#1f6b43;border:1px solid var(--lv-green-100)}.auth-msg--notice{background:#fdf6e7;color:#7c6316;border:1px solid #efe1b4}.auth-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:auth-spin .6s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}@media(max-width:980px){.auth{grid-template-columns:1fr}.auth-brand{display:none}.auth-mobilebar{display:flex}.auth-form-wrap{align-items:flex-start;padding:clamp(40px,9vw,72px) 24px}}@media(prefers-reduced-motion:reduce){.auth-field input,.auth-btn{transition:none}.auth-spinner{animation:none}}.app{display:grid;grid-template-columns:252px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#0b0b0c,#131417);color:#b9bfc7;display:flex;flex-direction:column;padding:0;position:sticky;top:0;height:100vh}.brand{padding:24px 22px 18px;border-bottom:1px solid rgba(255,255,255,.07)}.brand h1{font-size:15px;margin:0;color:#fff;letter-spacing:.3px}.brand small{color:var(--lv-ink-mute);font-size:11px;text-transform:uppercase;letter-spacing:1px}.nav{padding:14px 12px;display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto}.nav{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}.nav::-webkit-scrollbar{width:8px}.nav::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:8px}.nav::-webkit-scrollbar-thumb:hover{background:#ffffff47}.nav a{position:relative;color:#b9bfc7;text-decoration:none;padding:10px 14px;border-radius:9px;font-weight:500;display:flex;align-items:center;gap:11px;font-size:13.5px;transition:background .12s ease,color .12s ease}.nav a:hover{background:#ffffff0f;color:#fff}.nav a.active{background:#41b28629;color:#fff;font-weight:600}.nav a.active:before{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:3px;background:var(--lv-green)}.nav a.active .ico{color:var(--lv-green);opacity:1}.nav .ico{width:18px;text-align:center;opacity:.85;font-size:14px}.sidebar .foot{padding:14px 22px;border-top:1px solid rgba(255,255,255,.07);font-size:11px;color:var(--lv-ink-mute)}.navgroup__head{width:100%;display:flex;align-items:center;gap:11px;padding:10px 14px;border:0;border-radius:9px;background:none;color:#b9bfc7;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;text-align:left;transition:background .12s ease,color .12s ease}.navgroup__head:hover{background:#ffffff0f;color:#fff}.navgroup__head.has-active{color:#fff}.navgroup__head.has-active .ico{color:var(--lv-green);opacity:1}.navgroup__label{flex:1;min-width:0}.navgroup__caret{font-size:10px;opacity:.5;transition:transform .15s ease}.navgroup__caret.open{transform:rotate(90deg)}.navgroup__items{display:flex;flex-direction:column;gap:2px;margin:1px 0 4px}.nav a.navsub,.navconfig a.navsub{display:flex;align-items:center;text-decoration:none;position:relative;padding:8px 14px 8px 41px;font-size:13px;font-weight:500;color:#a2a9b2;border-radius:8px}.nav a.navsub:hover,.navconfig a.navsub:hover{background:#ffffff0f;color:#fff}.nav a.navsub.active,.navconfig a.navsub.active{background:#41b28624;color:#fff;font-weight:600}.nav a.navsub.active:before,.navconfig a.navsub.active:before{content:"";position:absolute;left:25px;top:50%;transform:translateY(-50%);width:3px;height:15px;border-radius:3px;background:var(--lv-green)}.navconfig{border-top:1px solid rgba(255,255,255,.07);padding:8px 12px}.mtopbar,.mbottom{display:none}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar,.topbar{display:none}.content{padding:16px 16px calc(86px + env(safe-area-inset-bottom))}.mtopbar,.mbottom{display:flex}}.mtopbar{align-items:center;gap:12px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--lv-line);position:sticky;top:0;z-index:20}.mbottom{position:fixed;left:0;right:0;bottom:0;z-index:40;align-items:stretch;justify-content:space-around;height:calc(62px + env(safe-area-inset-bottom));padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--lv-line);box-shadow:0 -2px 16px #0a0a0b0f}.mbottom .mtab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;color:var(--lv-ink-soft);font:inherit;font-size:10.5px;font-weight:600;text-decoration:none;cursor:pointer;border-radius:10px;min-width:0;padding:4px 2px;transition:color .15s ease}.mbottom .mtab span{line-height:1}.mbottom .mtab:active{background:#0a0a0b0d}.mbottom .mtab.active{color:var(--lv-green-600)}.mbottom .mtab.active svg{color:var(--lv-green)}.mbottom .mfab{flex:0 0 auto;align-self:center;width:56px;height:56px;margin:0 4px;transform:translateY(-16px);display:inline-flex;align-items:center;justify-content:center;background:var(--lv-green);color:#06231a;border:0;border-radius:50%;box-shadow:0 6px 16px #41b28673;cursor:pointer;transition:transform .08s ease,box-shadow .15s ease,background .15s ease}.mbottom .mfab:hover{background:var(--lv-green-600);color:#fff}.mbottom .mfab:active{transform:translateY(-16px) scale(.93)}.msheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:flex-end;background:#0a0a0b73;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.msheet-overlay.open{opacity:1;visibility:visible}.msheet{width:100%;max-height:84vh;display:flex;flex-direction:column;background:#fff;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom);transform:translateY(100%);transition:transform .26s cubic-bezier(.22,1,.36,1);box-shadow:0 -12px 40px #0a0a0b38}.msheet-overlay.open .msheet{transform:translateY(0)}.msheet-grab{width:40px;height:4px;border-radius:4px;background:#d7dbdf;margin:10px auto 4px}.msheet-head{display:flex;align-items:center;justify-content:space-between;padding:6px 18px 10px;border-bottom:1px solid var(--lv-line)}.msheet-head b{font-size:16px}.msheet-x{border:0;background:none;font-size:18px;color:var(--lv-ink-soft);cursor:pointer;padding:4px 8px}.msheet-body{overflow-y:auto;padding:8px 12px 16px;-webkit-overflow-scrolling:touch}.msheet-group{margin-top:10px}.msheet-group h4{margin:6px 8px 4px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--lv-ink-mute)}.msheet-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 12px;border:0;background:none;font:inherit;font-size:15px;color:var(--lv-ink);text-decoration:none;border-radius:10px;cursor:pointer;text-align:left}.msheet-row svg{color:var(--lv-ink-mute);flex:0 0 auto}.msheet-row:active{background:#0a0a0b0d}.msheet-row.active{color:var(--lv-green-600);font-weight:700;background:var(--lv-green-050)}.msheet-row.danger{color:var(--neg);font-weight:600}.msheet-row.big{justify-content:flex-start;gap:13px;padding:14px 12px}.msheet-row.big .ic{flex:0 0 auto;width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--lv-green-050);color:var(--lv-green-600)}.msheet-row.big .tx{display:flex;flex-direction:column;gap:2px;min-width:0}.msheet-row.big .tx b{font-size:15px}.msheet-row.big .tx small{font-size:12.5px;color:var(--lv-ink-soft);font-weight:500}@media(prefers-reduced-motion:reduce){.msheet,.msheet-overlay,.mbottom .mfab,.mbottom .mtab{transition:none}}.main{display:flex;flex-direction:column;min-width:0}.topbar{background:#fff;border-bottom:1px solid var(--line);padding:12px 28px;display:flex;align-items:center;gap:16px;justify-content:space-between;position:sticky;top:0;z-index:5}.topbar .title{font-size:18px;font-weight:700;letter-spacing:-.01em}.topbar select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13.5px;color:var(--ink);min-width:200px;font-family:inherit}.topbar .who{font-size:12px;color:var(--ink-soft)}.content{padding:24px 28px;max-width:1500px;width:100%}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:22px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.card .lbl{color:var(--ink-soft);font-size:12px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.card .val{font-size:25px;font-weight:800;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.card .sub{font-size:12px;color:var(--ink-soft);margin-top:6px}.card.accent,.card.teal{border-left:4px solid var(--lv-green)}.card.warn{border-left:4px solid var(--warn)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:22px}.panel h2{font-size:15px;margin:0 0 14px;color:var(--ink);font-weight:700}.panel .desc{font-size:12.5px;color:var(--ink-soft);margin:-8px 0 14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}@media(max-width:1100px){.grid-2,.app{grid-template-columns:1fr}.sidebar{position:static;height:auto}}.tbl-wrap{overflow-x:auto;border-radius:8px}table.data{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}table.data th,table.data td{padding:9px 12px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}table.data th{background:#f7f8f9;color:var(--ink-soft);font-weight:700;position:sticky;top:0;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px}table.data td.l,table.data th.l{text-align:left}table.data tr:hover td{background:#f7f8f9}table.data tr.total td{font-weight:800;background:var(--lv-green-050);border-top:2px solid var(--lv-green)}table.data td.sticky,table.data th.sticky{position:sticky;left:0;background:#fff;z-index:1;text-align:left;font-weight:600}table.data th.sticky{background:#f7f8f9;z-index:2}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.badge.pre{background:var(--lv-green-050);color:#1f6b48}.badge.pos{background:#d1fae5;color:#065f46}.badge.hib{background:#fef3c7;color:#92400e}.badge.fianca{background:#fce7f3;color:#9d174d}.delta-ok{color:var(--pos)}.delta-warn{color:var(--warn);font-weight:600}.delta-bad{color:var(--neg);font-weight:600}a.link{color:var(--lv-green-600);text-decoration:none;font-weight:600}a.link:hover{text-decoration:underline}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar select,.toolbar input{padding:7px 11px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-family:inherit}.btn{padding:8px 15px;border:1px solid var(--lv-black);background:var(--lv-black);color:#fff;border-radius:9px;font-weight:700;cursor:pointer;font-size:13px;font-family:inherit;transition:background .12s ease,box-shadow .12s ease,transform .05s ease}.btn:hover:not(:disabled){background:#1a1a1c;box-shadow:0 4px 14px #00000029}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:var(--focus)}.btn.ghost{background:#fff;color:var(--lv-ink);border-color:var(--lv-line);font-weight:600}.btn.ghost:hover:not(:disabled){border-color:var(--lv-ink);background:#fff;box-shadow:none}.btn.accent{background:var(--lv-green);border-color:var(--lv-green);color:#06231a}.btn.accent:hover:not(:disabled){background:var(--lv-green-600);border-color:var(--lv-green-600);color:#fff}.btn.danger{background:#fff;color:var(--neg);border-color:var(--neg)}.btn:disabled{opacity:.5;cursor:default}.muted{color:var(--ink-soft)}.loading{padding:40px;text-align:center;color:var(--ink-soft)}.chart-box{position:relative;height:320px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px 20px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;font-weight:600;color:var(--ink-soft)}.field input,.field select{padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:13.5px;background:#fff;color:var(--ink);font-family:inherit}.field input:focus,.field select:focus{outline:none;border-color:var(--lv-green);box-shadow:var(--focus)}.field .hint{font-size:11px;color:var(--lv-ink-mute)}.field.full{grid-column:1 / -1}.form-section{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--lv-ink);margin:22px 0 4px;grid-column:1 / -1;border-top:1px solid var(--line);padding-top:16px}.form-actions{display:flex;gap:12px;margin-top:22px;align-items:center}.err{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:14px}.inline-add{display:flex;gap:6px;align-items:stretch}.inline-add select{flex:1;min-width:0}.inline-add>.btn{flex:0 0 auto;white-space:nowrap}.row-actions{display:flex;gap:10px}.preview-box{background:#f7f8f9;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-top:18px}.preview-box .pv-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0}.preview-box .pv-row b{color:var(--ink)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0b80;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal{background:#fff;border-radius:var(--radius);padding:22px 24px;width:100%;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}.modal h3{margin-bottom:14px}.bank-combo{position:relative;flex:1 1 auto;min-width:0}.bank-combo>input{width:100%;box-sizing:border-box}.combo-list{position:absolute;top:100%;left:0;right:0;z-index:50;background:#fff;border:1px solid var(--line);border-radius:8px;margin-top:2px;max-height:320px;overflow-y:auto;box-shadow:var(--shadow-lg)}.combo-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;cursor:pointer;font-size:14px}.combo-item:hover{background:var(--lv-green-050)}.combo-code{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-weight:600}.combo-empty{padding:8px 12px;color:var(--lv-ink-mute);font-size:13px}.segbar{display:inline-flex;gap:4px;padding:4px;background:var(--lv-green-050);border-radius:12px;flex-wrap:wrap}.segbtn{border:0;background:transparent;color:var(--lv-ink-soft);font:inherit;font-size:13px;font-weight:600;padding:8px 14px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.segbtn:hover{color:var(--lv-ink)}.segbtn.active{background:#fff;color:var(--lv-ink);box-shadow:0 1px 3px #0a0a0b1f}.segtag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:var(--lv-line);color:var(--lv-ink-mute);padding:1px 6px;border-radius:6px}.btn.ghost.active{background:var(--lv-green-050);color:var(--lv-green-600);border-color:var(--lv-green)}
