:root{color-scheme:light;--bg: #f5f6f8;--surface: #ffffff;--surface-2: #fafbfc;--surface-hover: #f2f4f7;--sidebar: #10151f;--sidebar-text: #9aa5b8;--sidebar-text-active: #ffffff;--sidebar-active: #1d2637;--text: #171b22;--text-2: #5b6472;--text-3: #8b95a5;--border: #e3e7ed;--border-strong: #ccd3dd;--accent: #3b5bdb;--accent-soft: #e8edfb;--accent-text: #2f49b0;--recv: #0f9b6c;--recv-soft: #e2f5ee;--pay: #d97706;--pay-soft: #fdf0dc;--danger: #d1384e;--danger-soft: #fce8eb;--warn: #c98a00;--warn-soft: #fdf4dc;--ok: #0f9b6c;--ok-soft: #e2f5ee;--muted: #7a8494;--muted-soft: #eef0f4;--c1: #3b5bdb;--c2: #0f9b6c;--c3: #d97706;--c4: #8b5cf6;--c5: #0891b2;--c6: #d1384e;--c7: #65a30d;--c8: #db2777;--r-sm: 6px;--r: 10px;--r-lg: 14px;--shadow: 0 1px 2px rgb(16 21 31 / 6%), 0 1px 3px rgb(16 21 31 / 4%);--shadow-lg: 0 8px 30px rgb(16 21 31 / 12%);--sidebar-w: 232px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0d1017;--surface: #151a24;--surface-2: #1a2029;--surface-hover: #1e2531;--sidebar: #0a0d13;--sidebar-text: #7e8899;--sidebar-text-active: #ffffff;--sidebar-active: #1b2432;--text: #e8ecf3;--text-2: #a3adbd;--text-3: #737e8f;--border: #232b38;--border-strong: #313b4b;--accent: #6d8bff;--accent-soft: #1c2542;--accent-text: #9db0ff;--recv: #2dd4a0;--recv-soft: #12301f;--pay: #f0a740;--pay-soft: #33240f;--danger: #ff6b81;--danger-soft: #38151d;--warn: #e8b23c;--warn-soft: #33280f;--ok: #2dd4a0;--ok-soft: #12301f;--muted: #8b95a5;--muted-soft: #1e2531;--c1: #6d8bff;--c2: #2dd4a0;--c3: #f0a740;--c4: #a78bfa;--c5: #22d3ee;--c6: #ff6b81;--c7: #a3e635;--c8: #f472b6;--shadow: 0 1px 2px rgb(0 0 0 / 40%);--shadow-lg: 0 10px 34px rgb(0 0 0 / 50%)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0d1017;--surface: #151a24;--surface-2: #1a2029;--surface-hover: #1e2531;--sidebar: #0a0d13;--sidebar-text: #7e8899;--sidebar-text-active: #ffffff;--sidebar-active: #1b2432;--text: #e8ecf3;--text-2: #a3adbd;--text-3: #737e8f;--border: #232b38;--border-strong: #313b4b;--accent: #6d8bff;--accent-soft: #1c2542;--accent-text: #9db0ff;--recv: #2dd4a0;--recv-soft: #12301f;--pay: #f0a740;--pay-soft: #33240f;--danger: #ff6b81;--danger-soft: #38151d;--warn: #e8b23c;--warn-soft: #33280f;--ok: #2dd4a0;--ok-soft: #12301f;--muted: #8b95a5;--muted-soft: #1e2531;--c1: #6d8bff;--c2: #2dd4a0;--c3: #f0a740;--c4: #a78bfa;--c5: #22d3ee;--c6: #ff6b81;--c7: #a3e635;--c8: #f472b6;--shadow: 0 1px 2px rgb(0 0 0 / 40%);--shadow-lg: 0 10px 34px rgb(0 0 0 / 50%)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:400 14px/1.5 Inter,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}p{margin:0 0 8px}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}.num,td.num,th.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid var(--bg);border-radius:8px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:16px 12px;overflow-y:auto;background:var(--sidebar);color:var(--sidebar-text)}.brand{display:flex;gap:10px;align-items:center;padding:6px 10px 18px;color:#fff}.brand-mark{display:grid;place-items:center;width:32px;height:32px;font-size:17px;background:linear-gradient(140deg,var(--accent),#7c5cff);border-radius:9px}.brand-name{font-size:14px;font-weight:650;letter-spacing:-.01em}.brand-sub{font-size:11px;color:var(--sidebar-text)}.nav{display:flex;flex-direction:column;gap:2px}.nav-link{display:flex;gap:10px;align-items:center;padding:9px 10px;color:var(--sidebar-text);font-size:13.5px;border-radius:var(--r-sm);text-decoration:none;transition:background .12s,color .12s}.nav-link:hover{background:var(--sidebar-active);color:#fff;text-decoration:none}.nav-link.active{background:var(--sidebar-active);color:var(--sidebar-text-active);font-weight:550}.nav-link .ico{width:18px;font-size:15px;text-align:center}.nav-link .count{margin-left:auto;padding:1px 6px;font-size:11px;font-variant-numeric:tabular-nums;background:#ffffff1a;border-radius:20px}.nav-link .count.alert{background:var(--danger);color:#fff}.nav-group{padding:18px 10px 6px;color:#5d6675;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgb(255 255 255 / 7%)}.theme-toggle{width:100%}.main{min-width:0;padding:22px 26px 60px}.page-head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.page-head .sub{margin-top:3px;color:var(--text-2);font-size:13px}.page-actions{display:flex;flex-wrap:wrap;gap:8px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}.card-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--border)}.card-head h2,.card-head h3{font-size:14px}.card-body{padding:16px}.card-body.tight{padding:8px 0}.grid{display:grid;gap:14px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.auto{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}@media(max-width:1100px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:minmax(0,1fr)}}.kpi{position:relative;padding:14px 16px;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}.kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--accent)}.kpi.recv:before{background:var(--recv)}.kpi.pay:before{background:var(--pay)}.kpi.danger:before{background:var(--danger)}.kpi.warn:before{background:var(--warn)}.kpi.muted:before{background:var(--muted)}.kpi-label{display:flex;gap:6px;align-items:center;color:var(--text-2);font-size:12px;font-weight:500}.kpi-value{margin-top:6px;font-size:23px;font-weight:620;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.15}.kpi-value.sm{font-size:19px}.kpi-value.neg{color:var(--danger)}.kpi-value.pos{color:var(--recv)}.kpi-foot{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:7px;color:var(--text-3);font-size:11.5px}.kpi-foot b{color:var(--text-2);font-weight:600}.table-wrap{overflow-x:auto}table.tbl.data{min-width:940px}table.tbl.data-wide{min-width:1080px}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{padding:9px 12px;color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap;background:var(--surface-2);border-bottom:1px solid var(--border)}table.tbl th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.tbl th.sortable:hover{color:var(--text)}table.tbl th .arrow{margin-left:3px;opacity:.55}table.tbl td{padding:10px 12px;vertical-align:middle;border-bottom:1px solid var(--border)}table.tbl tbody tr:last-child td{border-bottom:0}table.tbl tbody tr.clickable{cursor:pointer}table.tbl tbody tr.clickable:hover{background:var(--surface-hover)}table.tbl td.right,table.tbl th.right{text-align:right}table.tbl td.nowrap{white-space:nowrap}table.tbl tfoot td{font-weight:600;background:var(--surface-2);border-top:2px solid var(--border-strong)}.t-main{font-weight:550}.t-sub{color:var(--text-3);font-size:11.5px}.badge{display:inline-flex;gap:5px;align-items:center;padding:2px 8px;font-size:11.5px;font-weight:550;white-space:nowrap;border-radius:20px}.badge.active{background:var(--accent-soft);color:var(--accent-text)}.badge.due_soon{background:var(--warn-soft);color:var(--warn)}.badge.overdue{background:var(--danger-soft);color:var(--danger)}.badge.closed{background:var(--muted-soft);color:var(--muted)}.badge.written_off{background:var(--muted-soft);color:var(--muted);text-decoration:line-through}.badge.archived{background:var(--muted-soft);color:var(--muted)}.badge.paid{background:var(--ok-soft);color:var(--ok)}.badge.partial{background:var(--accent-soft);color:var(--accent-text)}.badge.pending{background:var(--muted-soft);color:var(--muted)}.badge.recv{background:var(--recv-soft);color:var(--recv)}.badge.pay{background:var(--pay-soft);color:var(--pay)}.badge.plain{background:var(--muted-soft);color:var(--text-2)}.tag{display:inline-block;padding:1px 7px;color:var(--text-2);font-size:11px;background:var(--muted-soft);border-radius:var(--r-sm)}.dir-dot{display:inline-block;width:7px;height:7px;border-radius:50%}.dir-dot.recv{background:var(--recv)}.dir-dot.pay{background:var(--pay)}.bar{position:relative;height:6px;overflow:hidden;background:var(--muted-soft);border-radius:20px}.bar>i{display:block;height:100%;background:var(--recv);border-radius:20px;transition:width .25s}.bar.pay>i{background:var(--pay)}.bar.overdue>i{background:var(--danger)}.progress-cell{min-width:96px}.progress-cell .pct{margin-bottom:3px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-2)}.btn{display:inline-flex;gap:6px;align-items:center;justify-content:center;padding:7px 13px;color:var(--text);font-size:13px;font-weight:550;white-space:nowrap;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;transition:background .12s,border-color .12s,opacity .12s}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.danger{color:var(--danger);border-color:var(--danger);background:transparent}.btn.danger:hover:not(:disabled){background:var(--danger-soft)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn.sm{padding:4px 9px;font-size:12px}.btn.icon{padding:6px 8px}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.seg{display:inline-flex;padding:2px;background:var(--muted-soft);border-radius:var(--r-sm)}.seg button{padding:5px 11px;color:var(--text-2);font-size:12.5px;font-weight:550;background:transparent;border:0;border-radius:5px;cursor:pointer;white-space:nowrap}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.field{display:flex;flex-direction:column;gap:5px}.field>label{color:var(--text-2);font-size:12px;font-weight:550}.field .hint{color:var(--text-3);font-size:11.5px}.field .err{color:var(--danger);font-size:11.5px}input[type=text],input[type=number],input[type=date],input[type=search],input[type=email],select,textarea{width:100%;padding:7px 10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);transition:border-color .12s}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}input.amount{font-variant-numeric:tabular-nums;text-align:right}input:disabled,select:disabled{background:var(--surface-2);color:var(--text-3)}textarea{min-height:68px;resize:vertical}.check{display:flex;gap:8px;align-items:flex-start;cursor:pointer}.check input{width:16px;height:16px;margin-top:2px;flex:none}.check span{font-size:13px}.form-grid{display:grid;gap:13px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .span-2{grid-column:1 / -1}@media(max-width:620px){.form-grid{grid-template-columns:minmax(0,1fr)}}.input-group{display:flex;gap:6px}.input-group>*:first-child{flex:1}.input-group select{width:auto;flex:none}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:11px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}.filters .search{position:relative;flex:1 1 220px;min-width:180px}.filters .search input{padding-left:30px}.filters .search .ico{position:absolute;top:50%;left:9px;transform:translateY(-50%);color:var(--text-3);pointer-events:none}.filters select,.filters input[type=date]{width:auto;min-width:120px}.filters .spacer{flex:1}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;gap:5px;align-items:center;padding:3px 9px;color:var(--text-2);font-size:12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:20px;cursor:pointer}.chip:hover{background:var(--surface-hover)}.chip.on{background:var(--accent-soft);color:var(--accent-text);border-color:transparent;font-weight:550}.chip .x{color:var(--text-3);font-size:13px;line-height:1}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:start center;padding:4vh 16px;overflow-y:auto;background:#080b118c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:100%;max-width:620px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.modal.wide{max-width:900px}.modal-head{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--border)}.modal-body{padding:18px}.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:13px 18px;background:var(--surface-2);border-top:1px solid var(--border);border-radius:0 0 var(--r-lg) var(--r-lg)}.empty{padding:40px 20px;color:var(--text-3);text-align:center}.empty .big{font-size:30px;opacity:.5}.empty h3{margin:10px 0 5px;color:var(--text-2)}.banner{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;font-size:13px;border:1px solid;border-radius:var(--r)}.banner.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent);color:var(--text)}.banner.danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--text)}.banner.info{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent);color:var(--text)}.stat-list{display:flex;flex-direction:column}.stat-row{display:flex;gap:12px;align-items:baseline;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--border)}.stat-row:last-child{border-bottom:0}.stat-row .k{color:var(--text-2);font-size:12.5px}.stat-row .v{font-variant-numeric:tabular-nums;font-weight:550}.stat-row .v.big{font-size:16px}.tabs{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--border)}.tabs button{padding:9px 14px;color:var(--text-2);font-size:13.5px;font-weight:550;white-space:nowrap;background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--accent-text);border-bottom-color:var(--accent)}.tabs .count{margin-left:5px;padding:0 5px;font-size:11px;background:var(--muted-soft);border-radius:20px}.spinner{display:inline-block;width:15px;height:15px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:grid;place-items:center;gap:10px;padding:60px;color:var(--text-3)}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;flex-direction:column;gap:8px;max-width:380px}.toast{display:flex;gap:9px;align-items:flex-start;padding:11px 14px;font-size:13px;background:var(--surface);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);animation:slide-in .18s ease-out}.toast.error{border-left-color:var(--danger)}.toast.ok{border-left-color:var(--ok)}@keyframes slide-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.chart-box{width:100%;height:250px}.chart-box.tall{height:300px}.chart-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:12px}.chart-legend .item{display:flex;gap:6px;align-items:center;color:var(--text-2)}.chart-legend .swatch{width:9px;height:9px;border-radius:2px}.muted{color:var(--text-3)}.small{font-size:12px}.nowrap{white-space:nowrap}.right{text-align:right}.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:8px}.mt{margin-top:14px}.mb{margin-bottom:14px}.grow{flex:1}.strike{text-decoration:line-through;opacity:.65}.quick-form{display:grid;grid-template-columns:minmax(180px,2fr) 70px minmax(150px,1.6fr) 100px minmax(120px,1.2fr) minmax(120px,1.2fr) auto;gap:8px;align-items:end}.quick-form .field>label{font-size:11px}.quick-form .total{padding:7px 10px;font-variant-numeric:tabular-nums;font-weight:600;text-align:right;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);white-space:nowrap}.combo{position:relative}.combo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;max-height:260px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-lg)}.combo-item{display:flex;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;text-align:left;background:transparent;border:0;cursor:pointer}.combo-item:hover,.combo-item.on{background:var(--surface-hover)}.combo-item .t-sub{white-space:nowrap}.combo-item.create{color:var(--accent-text);font-weight:550;border-top:1px solid var(--border)}.period{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.period .title{min-width:200px;font-size:15px;font-weight:600;text-transform:capitalize}.period input[type=date]{width:auto}.months td.dim{color:var(--text-3)}tr.today td{background:var(--accent-soft)}td.mine{color:var(--recv);font-weight:600}.login-wrap{display:grid;place-items:center;min-height:100vh;padding:20px;background:var(--bg)}.login-card{width:100%;max-width:360px;padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.login-card h1{margin-bottom:4px;font-size:20px}.login-card .sub{margin-bottom:18px;color:var(--text-2);font-size:13px}.sidebar .user{padding:8px 10px;color:var(--sidebar-text);font-size:12px}.sidebar .user b{display:block;color:#fff;font-size:13px}.kbd{padding:1px 5px;font-family:ui-monospace,Consolas,monospace;font-size:11px;background:var(--muted-soft);border:1px solid var(--border-strong);border-radius:4px}.sidebar button.nav-link{width:100%;background:transparent;border:0;cursor:pointer;text-align:left}.quick-extra{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:10px;padding:10px 12px;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--r-sm)}.quick-extra .field{flex:1 1 130px}.quick-extra .field:first-child{flex:2 1 220px}.calc{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.calc-item{flex:1 1 160px;padding:7px 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm)}.calc-label{color:var(--text-2);font-size:11px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calc-formula{color:var(--text-3);font-size:11.5px;font-variant-numeric:tabular-nums}.calc-value{font-size:15px;font-weight:620;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.calc-item.recv .calc-value{color:var(--recv)}.calc-item.danger .calc-value{color:var(--danger)}.calc-item.warn{border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.calc-item.warn .calc-value{color:var(--warn)}.calc-note{flex:1 1 100%;color:var(--text-3);font-size:11.5px}.calc-note.warn{color:var(--warn)}.danger-dialog p{margin:12px 0;font-size:13.5px;line-height:1.55}.danger-dialog .check{margin-top:14px}.danger-dialog .banner b{font-size:14px}.entry-cards{display:none}.entry-card{padding:11px 12px;border-bottom:1px solid var(--border)}.entry-card:last-child{border-bottom:0}.entry-card.today{background:var(--accent-soft)}.entry-card.total{background:var(--surface-2);border-top:2px solid var(--border-strong);border-bottom:0}.ec-head{display:flex;gap:10px;align-items:baseline;justify-content:space-between}.ec-title{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;min-width:0;font-size:14px;font-weight:600}.ec-date{color:var(--text-2);font-weight:500;white-space:nowrap}.ec-amount{flex:none;font-size:14.5px;font-weight:650;white-space:nowrap}.ec-work{display:flex;gap:10px;align-items:baseline;justify-content:space-between;margin-top:3px;color:var(--text-2);font-size:13px}.ec-work .badge{margin-left:4px}.ec-qty{flex:none;color:var(--text);font-weight:550;white-space:nowrap}.ec-workers{display:flex;flex-wrap:wrap;gap:3px 12px;margin-top:5px;color:var(--text-3);font-size:12px}.ec-workers b{color:var(--text-2);font-weight:600}.ec-workers .mine,.ec-workers .mine b{color:var(--recv)}.ec-note{margin-top:5px}.ec-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:6px}.icon{flex:none;width:1em;height:1em;vertical-align:-.14em}.nav-link .ico .icon{font-size:1.15em}.btn .icon{font-size:1.12em}.btn.icon .icon,.btn.ghost.sm .icon{font-size:1.25em}.banner>.icon{flex:none;margin-top:1px;font-size:17px}.banner.danger>.icon{color:var(--danger)}.banner.warn>.icon{color:var(--warn)}.banner.info>.icon{color:var(--accent)}.empty .big{font-size:34px;opacity:.45;line-height:1}.toast>.icon{flex:none;margin-top:1px;font-size:16px}.toast.ok>.icon{color:var(--ok)}.toast.error>.icon{color:var(--danger)}.toast.info>.icon{color:var(--accent)}.brand-mark .icon{font-size:18px;color:#fff}.tbl .w-name{min-width:200px}.tbl .w-price{width:130px}.dup-date{visibility:hidden}.date-jump{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.date-jump:hover{color:var(--accent);text-decoration:underline}.sent-mark{margin-left:6px;color:var(--recv);vertical-align:-2px}.sent-toggle{color:var(--text-3)}.sent-toggle.on{color:var(--recv)}.toast .btn{flex:none}.date-field{position:relative;display:flex;gap:4px;align-items:center;min-width:0}.date-field>input[type=text]{width:100%;min-width:110px;font-variant-numeric:tabular-nums}.date-pick,.peek{display:grid;flex:none;place-items:center;width:34px;height:34px;padding:0;color:var(--text-2);font-size:16px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer}.date-pick:hover,.peek:hover{background:var(--surface-hover);color:var(--text)}.pass-field{display:flex;gap:4px;align-items:center;min-width:0}.pass-field>input{width:100%}.form-warn{display:flex;gap:8px;align-items:center;margin-top:10px;padding:8px 11px;color:var(--warn);font-size:12.5px;background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-radius:var(--r-sm)}.form-warn .icon{flex:none}.date-native{position:absolute;right:0;bottom:0;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}@media(max-width:1100px){:root{--sidebar-w: 196px}.main{padding:18px 16px 40px}.quick-form{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-form .submit{grid-column:1 / -1}}@media(max-width:860px){.app{display:block}.sidebar{display:contents}.sidebar .brand{position:fixed;top:0;right:0;left:0;z-index:40;height:52px;gap:8px;padding:0 12px;background:var(--sidebar);box-shadow:0 1px #ffffff12}.sidebar .brand-mark{width:26px;height:26px;font-size:14px;border-radius:7px}.sidebar .brand-name{font-size:13px}.sidebar .brand-sub{display:block;max-width:44vw;overflow:hidden;font-size:10.5px;white-space:nowrap;text-overflow:ellipsis}.sidebar-foot{position:fixed;top:0;right:6px;z-index:41;display:flex;gap:2px;align-items:center;height:52px;margin:0;padding:0;border:0}.sidebar-foot .user{display:none}.sidebar-foot .nav-link{width:auto;padding:9px 10px}.sidebar-foot .nav-link .label{display:none}.sidebar-foot .nav-link .ico{width:auto;font-size:17px}.sidebar .nav{position:fixed;right:0;bottom:0;left:0;z-index:40;flex-direction:row;gap:0;padding:4px 4px max(4px,env(safe-area-inset-bottom));background:var(--sidebar);box-shadow:0 -1px #ffffff12}.nav-group{display:none}.sidebar .nav-link{flex:1 1 0;flex-direction:column;gap:2px;min-width:0;padding:7px 2px;font-size:10px;line-height:1.2;text-align:center}.sidebar .nav .ico{width:auto;font-size:18px}.sidebar .nav .label{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.main{padding:64px 12px calc(76px + env(safe-area-inset-bottom))}.sidebar .nav .nav-link.active{background:transparent;color:#fff}.sidebar .nav .nav-link.active .ico{color:var(--accent)}.sidebar .nav .nav-link.active .label{color:#fff;font-weight:650}table.tbl tbody tr.clickable td{padding-top:11px;padding-bottom:11px}h1{font-size:19px}.page-head{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:14px}.page-actions{gap:6px}.page-actions>.btn,.page-actions>a.btn{flex:1 1 auto;justify-content:center}.page-actions>.btn.primary{flex:1 1 100%}.page-actions>.seg{display:flex;flex:1 1 100%}.page-actions>.seg button{flex:1 1 0}input[type=text],input[type=number],input[type=date],input[type=search],input[type=email],input[type=password],select,textarea{padding:9px 11px;font-size:16px}.btn{min-height:40px}.btn.sm{min-height:34px;padding:6px 10px}.btn.icon{min-width:40px}.check input{width:20px;height:20px}.seg button{padding:8px 12px}.grid{gap:10px}.grid.cols-2{grid-template-columns:minmax(0,1fr)}.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.split{grid-template-columns:minmax(0,1fr)}.kpi{padding:11px 12px}.kpi-value{font-size:19px}.kpi-foot{font-size:11px}.period{gap:6px}.period .title{flex:1 1 100%;order:-1;min-width:0;font-size:14.5px}.period input[type=date]{flex:1 1 150px;width:auto;min-width:0}.card-head{padding:11px 12px}.card-body{padding:12px}.card-head h2,.card-head h3{font-size:13.5px}.chart-box,.chart-box.tall{height:220px}table.tbl{font-size:12.5px}table.tbl th,table.tbl td{padding:8px 10px}.toast-stack{right:10px;bottom:calc(72px + env(safe-area-inset-bottom));left:10px;max-width:none}.calc-item{flex:1 1 calc(50% - 4px)}}@media(max-width:620px){.quick-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-form>.field:first-child{grid-column:1 / -1}.quick-form .total-field{display:none}.quick-form .submit{grid-column:1 / -1}.quick-form .submit>label{display:none}.quick-form .submit .btn{width:100%}.quick-extra{padding:10px}.quick-extra .field{flex:1 1 calc(50% - 4px)}.quick-extra .field:first-child{flex:1 1 100%}.overlay{place-items:stretch;padding:0}.modal,.modal.wide{display:flex;flex-direction:column;max-width:none;min-height:100%;border:0;border-radius:0}.modal-head{position:sticky;top:0;z-index:2;background:var(--surface)}.modal-body{flex:1 1 auto;padding:14px}.modal-foot{position:sticky;bottom:0;flex-wrap:wrap;padding-bottom:max(13px,env(safe-area-inset-bottom));border-radius:0}.modal-foot .btn{flex:1 1 auto;justify-content:center}.form-grid{gap:11px}}@media(max-width:360px){.sidebar .nav-link{padding:6px 1px;font-size:9px}.sidebar .nav .ico{font-size:17px}.main{padding-right:10px;padding-left:10px}.kpi-value{font-size:17px}}@media(max-width:700px){.entries-table{display:none}.entry-cards{display:block}table.tbl.stack,table.tbl.stack tbody,table.tbl.stack tfoot,table.tbl.stack tr,table.tbl.stack td{display:block;width:auto;min-width:0}table.tbl.stack thead{display:none}table.tbl.stack tr{padding:10px 12px;border-bottom:1px solid var(--border)}table.tbl.stack tbody tr:nth-child(2n){background:var(--surface-2)}table.tbl.stack td{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:3px 0;text-align:right;border:0}table.tbl.stack td:before{content:attr(data-label);flex:0 0 auto;color:var(--text-3);font-size:11.5px;font-weight:500;text-align:left}table.tbl.stack td:empty{display:none}table.tbl.stack td.actions{justify-content:flex-end;padding-top:8px}table.tbl.stack td.actions:before{content:none}table.tbl.stack td input[type=text]{flex:1 1 auto;min-width:0}table.tbl.stack tfoot tr{background:var(--surface-2);border-top:2px solid var(--border-strong);border-bottom:0;font-weight:600}table.tbl.stack .dup-date{visibility:visible}.filters>*{flex:1 1 100%;min-width:0}.filters select{width:100%}}.print-only{display:none}@media print{@page{size:A4;margin:14mm 12mm}:root{--bg: #fff;--surface: #fff;--surface-2: #fff;--text: #000;--text-2: #333;--text-3: #555;--border: #bbb;--border-strong: #888}html,body{background:#fff!important;color:#000!important;font-size:10.5pt}.sidebar,.page-head,.page-actions,.filters,.tabs,.btn,.seg,.toast-stack,.overlay,.no-print,.period{display:none!important}.app{display:block}.main{padding:0!important}.card,.kpi{box-shadow:none!important;border:1px solid #bbb!important;break-inside:avoid}.print-only{display:block}.screen-only,.entry-cards{display:none!important}.entries-table{display:block!important}table.tbl{font-size:9.5pt}table.tbl th{background:#f0f0f0!important;color:#000!important}table.tbl thead{display:table-header-group}table.tbl tr{break-inside:avoid}a{color:#000!important;text-decoration:none!important}.doc-head{margin-bottom:12pt;padding-bottom:8pt;border-bottom:1.5pt solid #000}.doc-head h1{font-size:15pt}.doc-head .meta{margin-top:4pt;font-size:9.5pt;color:#333}.doc-total{display:flex;gap:12pt;align-items:baseline;justify-content:flex-end;margin-top:10pt;padding-top:6pt;border-top:1pt solid #000;font-size:11.5pt;break-inside:avoid}.doc-total b{font-size:13.5pt}.doc-signatures{display:grid;grid-template-columns:1fr 1fr;gap:30pt;margin-top:26pt;font-size:10pt;break-inside:avoid}.doc-signatures .line{margin-top:24pt;padding-top:3pt;border-top:.8pt solid #000;font-size:8.5pt;color:#333}}
