:root{--green:#107c41;--green-2:#0b6334;--mint:#e8f4ed;--cyan:#2a9eb7;--ink:#17211b;--muted:#68736c;--line:#dce3de;--bg:#f4f7f5;--white:#fff;--red:#be3a32;--amber:#b76e00;--shadow:0 10px 30px rgba(28,52,38,.1)}
*{box-sizing:border-box}html{font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{height:62px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 20px;position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;min-width:205px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:var(--green);color:#fff;font-size:20px;font-weight:800;border-radius:4px}.brand strong,.brand small{display:block}.brand small{font-size:11px;color:var(--muted);margin-top:1px}.global-search{height:38px;flex:1;max-width:560px;display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid transparent;border-radius:6px;padding:0 10px}.global-search:focus-within{border-color:var(--green);background:#fff}.global-search input{border:0;outline:0;background:transparent;min-width:0;flex:1}.global-search kbd{color:#89928d;font-size:11px;border:1px solid var(--line);background:#fff;padding:2px 5px;border-radius:3px}.period-control{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.period-control input{border:1px solid var(--line);border-radius:5px;padding:8px;background:#fff}.primary-button,.secondary-button{border-radius:5px;padding:9px 14px;font-weight:650;border:1px solid transparent}.primary-button{background:var(--green);color:#fff}.primary-button:hover{background:var(--green-2)}.secondary-button{background:#fff;border-color:var(--line);color:var(--ink)}.avatar-button{width:36px;height:36px;border-radius:50%;border:0;background:#dbe9df;color:var(--green-2);font-weight:700}.icon-button{border:0;background:transparent;font-size:22px;color:var(--muted);padding:5px}.mobile-only{display:none}
.ribbon{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:62px;z-index:20;box-shadow:0 3px 12px rgba(22,50,31,.04)}.ribbon-tabs{height:37px;padding:0 18px;display:flex;gap:6px;border-bottom:1px solid var(--line)}.ribbon-tab{border:0;background:transparent;padding:0 14px;font-size:12px;font-weight:700;color:#4a554e;position:relative}.ribbon-tab.active{color:var(--green)}.ribbon-tab.active:after{content:"";position:absolute;bottom:-1px;left:12px;right:12px;height:3px;background:var(--green)}.ribbon-panel{display:none;height:112px;align-items:stretch;padding:7px 16px;overflow-x:auto}.ribbon-panel.active{display:flex}.ribbon-group{display:flex;align-items:flex-start;gap:2px;padding:0 10px 19px;border-right:1px solid var(--line);position:relative;flex:none}.group-title{position:absolute;bottom:2px;left:8px;right:8px;text-align:center;font-size:9px;color:#78827c}.ribbon-command{border:1px solid transparent;background:transparent;border-radius:4px;min-width:70px;height:79px;padding:5px 7px;color:#263129;font-size:10px;line-height:1.2}.ribbon-command:hover{background:var(--mint);border-color:#c9ded1}.ribbon-command img{display:block;width:34px;height:34px;object-fit:contain;margin:0 auto 4px}
.workspace{min-height:calc(100vh - 211px)}
main{width:min(1480px,100%);margin:0 auto;min-width:0;padding:24px 28px 50px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.eyebrow{font-size:10px;font-weight:750;color:var(--green);letter-spacing:.08em}.page-head h1,.dialog-head h2{margin:4px 0 0;font-size:25px;letter-spacing:0}.page-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.kpi{background:#fff;border:1px solid var(--line);border-radius:6px;padding:15px 16px;min-height:119px;position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent,var(--green))}.kpi-label{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.kpi-value{font-size:25px;font-weight:720;margin:16px 0 5px;white-space:nowrap}.kpi-delta{font-size:11px;color:var(--green)}.kpi-delta.down{color:var(--red)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:6px;padding:17px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.panel h2{font-size:15px;margin:0}.panel-sub{font-size:11px;color:var(--muted);margin-top:4px}.chart{width:100%;height:230px}.activity-list{display:grid;gap:2px}.activity{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1ee}.activity:last-child{border-bottom:0}.activity-icon{width:32px;height:32px;border-radius:5px;display:grid;place-items:center;background:var(--mint);color:var(--green);font-weight:700}.activity strong,.activity small{display:block}.activity strong{font-size:12px}.activity small{font-size:10px;color:var(--muted);margin-top:3px}.amount{font-size:12px;font-weight:650}.amount.negative{color:var(--red)}
.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.table-search{min-width:240px;flex:1;max-width:420px;border:1px solid var(--line);border-radius:5px;padding:9px 11px;background:#fff}.filter-select{border:1px solid var(--line);border-radius:5px;padding:9px;background:#fff}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:780px}.data-table th{position:sticky;top:0;background:#f6f8f6;color:#657069;text-align:left;font-size:10px;font-weight:750;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:11px 12px;border-bottom:1px solid #edf1ee;font-size:12px;white-space:nowrap}.data-table tbody tr:hover{background:#f8fbf9}.data-table td.num,.data-table th.num{text-align:right}.row-title{font-weight:650;color:#243129}.cell-sub{display:block;font-size:10px;color:var(--muted);margin-top:3px}.badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:12px;font-size:10px;background:var(--mint);color:var(--green-2);font-weight:650}.badge.red{background:#fae9e7;color:var(--red)}.badge.amber{background:#fff3dd;color:var(--amber)}.row-actions{display:flex;gap:3px}.mini-button{border:1px solid var(--line);background:#fff;border-radius:4px;padding:4px 7px;color:#5c675f}.mini-button:hover{border-color:var(--green);color:var(--green)}.empty{padding:50px;text-align:center;color:var(--muted)}.report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.summary-cell{background:#fff;border:1px solid var(--line);padding:13px;border-radius:5px}.summary-cell span,.summary-cell strong{display:block}.summary-cell span{font-size:10px;color:var(--muted)}.summary-cell strong{font-size:19px;margin-top:7px}
dialog{width:min(760px,calc(100vw - 28px));border:0;border-radius:7px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.28)}dialog::backdrop{background:rgba(15,31,22,.55)}.dialog-head{display:flex;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}.dialog-body{padding:20px 22px;max-height:66vh;overflow:auto}.dialog-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line);background:#f8faf8}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:11px;color:#59655d;font-weight:650}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:5px;padding:10px;background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(16,124,65,.1)}.line-box{grid-column:1/-1;background:#f5f8f6;border:1px solid var(--line);border-radius:5px;padding:13px}.line-grid{display:grid;grid-template-columns:2fr .7fr 1fr 1fr;gap:9px}.calculated{display:flex;justify-content:flex-end;gap:18px;margin-top:12px;font-size:12px}.calculated strong{font-size:16px}#toast{position:fixed;right:22px;bottom:22px;background:#183326;color:#fff;padding:11px 16px;border-radius:5px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:90}#toast.show{opacity:1;transform:none}.settings-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:14px}.settings-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:18px}.settings-card h2{font-size:15px;margin:0 0 16px}.stack{display:grid;gap:12px}.danger-zone{border-color:#edc9c6}.danger-zone h2{color:var(--red)}
@media(max-width:1100px){.period-control{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.ribbon-command{min-width:66px}}
@media(max-width:760px){.topbar{padding:0 10px;gap:8px}.brand{min-width:0}.brand span:last-child,.avatar-button,.topbar>.primary-button,.global-search kbd{display:none}.ribbon{top:62px}.ribbon-tabs{padding:0 6px;overflow-x:auto}.ribbon-panel{height:100px;padding-left:5px}.ribbon-command{height:68px;min-width:62px}.ribbon-command img{width:28px;height:28px}.global-search{max-width:none}main{padding:18px 12px}.page-head{align-items:flex-start;flex-direction:column}.kpi-grid,.report-summary{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.form-grid,.line-grid{grid-template-columns:1fr}.page-actions{width:100%}.page-actions button{flex:1}}
@media(max-width:450px){.kpi-grid,.report-summary{grid-template-columns:1fr}.kpi{min-height:105px}.kpi-value{font-size:22px}.global-search{padding:0 7px}.brand-mark{width:32px;height:32px}}
@media print{.topbar,.ribbon,.page-actions,.toolbar{display:none!important}.workspace{display:block}.workspace main{padding:0}.panel,.table-wrap{border:0}.data-table{min-width:0}body{background:#fff}}
.line-grid{grid-template-columns:1.2fr 1.4fr 1fr 1fr}.line-grid.secondary{margin-top:9px;grid-template-columns:1.2fr 1.4fr .65fr 1fr}.field input[readonly]{background:#edf2ef;color:#536059}
@media(max-width:760px){.line-grid,.line-grid.secondary{grid-template-columns:1fr}}
.lookup-hint{font-size:10px;color:var(--muted)}.debt-panel{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#eef6f1;border:1px solid #cfe2d5;border-left:3px solid var(--green);padding:12px 14px;border-radius:5px}.debt-panel[hidden]{display:none}.debt-panel span,.debt-panel strong{display:block}.debt-panel span{font-size:10px;color:var(--muted)}.debt-panel strong{font-size:17px;margin-top:3px}.debt-panel .after-payment{text-align:right}.entry-lines{grid-column:1/-1;border:1px solid var(--line);border-radius:6px;overflow:hidden}.entry-lines-head{display:grid;grid-template-columns:1.15fr 1.8fr .55fr .9fr .8fr .95fr 32px;gap:8px;padding:8px 10px;background:#edf3ef;color:#667169;font-size:9px;font-weight:750}.entry-line{display:grid;grid-template-columns:1.15fr 1.8fr .55fr .9fr .8fr .95fr 32px;gap:8px;align-items:center;padding:9px 10px;border-top:1px solid var(--line)}.entry-line input{width:100%;min-width:0;border:1px solid var(--line);border-radius:4px;padding:8px;background:#fff}.entry-line input[readonly]{background:#f2f5f3;color:#536059}.entry-line-total{text-align:right;font-size:11px;font-weight:700}.remove-line{border:0;background:transparent;color:var(--red);font-size:18px}.lines-foot{display:flex;align-items:center;justify-content:space-between;padding:10px;background:#f8faf8;border-top:1px solid var(--line)}.lines-total{text-align:right}.lines-total span,.lines-total strong{display:block}.lines-total span{font-size:10px;color:var(--muted)}.lines-total strong{font-size:18px;margin-top:3px}.form-error{grid-column:1/-1;background:#fceceb;color:#9f2f29;padding:10px 12px;border-radius:4px;font-size:11px;display:none}.form-error.show{display:block}.invoice-dialog{width:min(900px,calc(100vw - 24px));max-height:95vh}.invoice-shell{background:#fff}.invoice-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line);background:#f6f8f6}.invoice{padding:35px 42px;color:#17211b}.invoice-top{display:flex;justify-content:space-between;gap:30px;border-bottom:2px solid var(--green);padding-bottom:18px}.invoice-brand{display:flex;gap:12px;align-items:flex-start}.invoice-logo{display:grid;place-items:center;width:46px;height:46px;background:var(--green);color:#fff;font-size:26px;font-weight:800;border-radius:4px}.invoice-company strong{display:block;font-size:15px}.invoice-company span{display:block;font-size:10px;color:#5f6b63;margin-top:4px}.invoice-title{text-align:right}.invoice-title h2{margin:0;color:var(--green);font-size:24px}.invoice-title strong,.invoice-title span{display:block;margin-top:5px}.invoice-title span{font-size:11px;color:var(--muted)}.invoice-customer{display:grid;grid-template-columns:1fr 1fr;gap:9px 25px;padding:18px 0}.invoice-customer div{font-size:11px}.invoice-customer span{color:var(--muted);display:inline-block;min-width:82px}.invoice-table{width:100%;border-collapse:collapse}.invoice-table th{background:#eaf3ed;color:#355342;font-size:9px;text-align:left;padding:9px 8px;border-bottom:1px solid #bcd1c3}.invoice-table td{font-size:10px;padding:10px 8px;border-bottom:1px solid #dfe6e1}.invoice-table .num{text-align:right}.invoice-summary{margin:18px 0 0 auto;width:min(360px,100%)}.invoice-summary div{display:flex;justify-content:space-between;padding:5px 0;font-size:11px}.invoice-summary .grand{border-top:2px solid var(--green);margin-top:4px;padding-top:9px;font-size:15px;font-weight:750}.invoice-words{margin-top:16px;padding:11px 13px;background:#f4f7f5;font-size:10px}.invoice-note{font-size:9px;color:var(--muted);margin-top:12px}.invoice-signatures{display:grid;grid-template-columns:1fr 1fr 1fr;text-align:center;margin-top:28px;min-height:90px;font-size:10px}.invoice-signatures strong{display:block;margin-bottom:4px}.invoice-signatures span{color:var(--muted)}
@media(max-width:760px){.entry-lines-head{display:none}.entry-line{grid-template-columns:1fr 1fr}.entry-line .wide{grid-column:1/-1}.entry-line-total{text-align:left}.invoice{padding:22px 18px}.invoice-top{flex-direction:column}.invoice-title{text-align:left}.invoice-customer{grid-template-columns:1fr}}
@media print{body.printing-invoice>*:not(#invoiceDialog){display:none!important}body.printing-invoice #invoiceDialog{display:block!important;position:static;width:100%;max-height:none;box-shadow:none}body.printing-invoice #invoiceDialog::backdrop,body.printing-invoice .invoice-actions{display:none!important}body.printing-invoice .invoice{padding:0}}
