:root{--bg:#f2f2f7;--surface:#fff;--grouped:#f2f2f7;--border:#c6c6c8;--border-light:#e5e5ea;--text:#000;--muted:#8e8e93;--brand:#007aff;--brand-weak:#e8f1ff;--pill:#efeff4;--solid:#000;--danger:#ff3b30;--danger-weak:#ffeceb;--ok:#34c759;--ok-weak:#e7f8ec;--warn:#ff9500;--warn-weak:#fff4e5;--radius:10px;--radius-pill:999px;--shadow:0 1px 2px #0000000d, 0 4px 12px #0000000f}@media (prefers-color-scheme:dark){:root{--bg:#000;--surface:#1c1c1e;--grouped:#1c1c1e;--border:#38383a;--border-light:#2c2c2e;--text:#fff;--muted:#98989f;--brand:#0a84ff;--brand-weak:#0a2540;--pill:#2c2c2e;--solid:#fff;--danger:#ff453a;--danger-weak:#3a1a18;--ok:#30d158;--ok-weak:#14301f;--warn:#ff9f0a;--warn-weak:#33230f}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Segoe UI,system-ui,-apple-system,Noto Sans Arabic,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5}[dir=rtl]{font-feature-settings:"ss01"}a{color:var(--brand)}.app{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-inline-end:1px solid var(--border);flex-direction:column;gap:4px;block-size:100vh;padding:20px 16px;display:flex;position:sticky;inset-block-start:0;overflow-y:auto}.brand{color:var(--brand);margin-block-end:20px;font-size:20px;font-weight:700}.nav-link{border-radius:var(--radius);color:var(--text);padding:9px 12px;text-decoration:none;display:block}.nav-link:hover{background:var(--bg)}.nav-link.active{background:var(--brand-weak);color:var(--brand);font-weight:600}.sidebar-footer{border-block-start:1px solid var(--border);flex-direction:column;gap:8px;margin-block-start:auto;padding-block-start:16px;display:flex}.content{min-width:0;padding:24px 28px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-block-end:20px;display:flex}h1{margin:0;font-size:22px}h2{margin:0 0 12px;font-size:17px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-block-end:16px;padding:18px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-block-end:1px solid var(--border);text-align:start;white-space:nowrap;padding:9px 12px}th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px;font-weight:600}.num{text-align:end;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}tbody tr:hover{background:var(--bg)}.row-total td{border-block-start:2px solid var(--border);border-block-end:none;font-weight:700}label{color:var(--muted);margin-block-end:4px;font-size:13px;display:block}input,select,textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px}input[aria-invalid=true]{border-color:var(--danger)}.field{margin-block-end:14px}.field-hint{color:var(--muted);margin-block-start:4px;font-size:12px}.field-error{color:var(--danger);margin-block-start:4px;font-size:13px}.form-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.form-row>*{flex:160px}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 14px}button:hover:not(:disabled){background:var(--bg)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.primary:hover:not(:disabled){filter:brightness(1.08)}button.danger{color:var(--danger);border-color:var(--danger);background:0 0}button.link{color:var(--brand);background:0 0;border:none;padding:4px}.actions{flex-wrap:wrap;gap:8px;display:flex}.alert{border-radius:var(--radius);border:1px solid #0000;margin-block-end:14px;padding:10px 14px}.alert.error{background:var(--danger-weak);color:var(--danger);border-color:var(--danger)}.alert.ok{background:var(--ok-weak);color:var(--ok);border-color:var(--ok)}.alert.warn{background:var(--warn-weak);border-color:var(--warn);color:var(--warn)}.alert-detail{opacity:.85;margin-block-start:4px;font-size:13px}.badge{border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.badge.draft{background:var(--warn-weak);color:var(--warn)}.badge.posted{background:var(--ok-weak);color:var(--ok)}.badge.void{background:var(--danger-weak);color:var(--danger)}.muted{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:36px}.auth-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{width:100%;max-width:420px}.balance-bar{border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-block:12px;padding:12px 14px;font-weight:600;display:flex}.balance-bar.ok{background:var(--ok-weak);color:var(--ok)}.balance-bar.off{background:var(--warn-weak);color:var(--warn)}.line-table input,.line-table select{min-width:110px}.line-table .amount input{text-align:end;font-variant-numeric:tabular-nums}@media (width<=820px){.app{grid-template-columns:1fr}.sidebar{border-inline-end:none;border-block-end:1px solid var(--border)}}.nav-section{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-block:16px 4px;padding-inline:12px;font-size:11px;font-weight:700}.switchers{flex-direction:column;gap:8px;display:flex}.switchers>label{text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:11px}.switchers>label select{margin-block-start:2px}.company-switcher{position:relative}.company-trigger,.company-current{width:100%;color:var(--text);text-align:start;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.company-trigger:hover:not(:disabled){background:var(--pill)}.company-trigger-name,.company-current-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.company-mark{background:var(--pill);block-size:24px;inline-size:24px;color:var(--brand);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.company-menu{z-index:20;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-block-size:60vh;min-inline-size:100%;box-shadow:var(--shadow);padding:4px;position:absolute;inset-block-end:calc(100% + 4px);inset-inline-start:0;overflow-y:auto}.company-option,.company-add{width:100%;color:var(--text);text-align:start;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px;display:flex}.company-option:hover:not(:disabled),.company-add:hover:not(:disabled){background:var(--pill)}.company-option.is-current{background:var(--brand-weak);color:var(--brand)}.company-option-text{flex-direction:column;flex:1;gap:2px;min-inline-size:0;display:flex}.company-option-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.company-option-role{background:var(--grouped);color:var(--muted);border-radius:6px;align-self:flex-start;padding:1px 6px;font-size:11px}.company-add{color:var(--brand)}.modal-backdrop{z-index:40;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);max-block-size:90vh;inline-size:min(420px,100%);box-shadow:var(--shadow);border-radius:14px;padding:20px;overflow-y:auto}.modal h2{margin-block:0 16px;font-size:17px}.modal-actions{justify-content:flex-end;gap:8px;margin-block-start:16px;display:flex}textarea{resize:vertical;min-height:72px}.chip-row{gap:8px;margin-block-end:4px;padding-block:4px;display:flex;overflow-x:auto}.chip{border:1px solid var(--border);background:var(--surface);white-space:nowrap;color:var(--muted);border-radius:999px;align-items:center;gap:6px;margin:0;padding:6px 12px;font-size:13px;display:inline-flex}.chip-active{border-color:var(--brand);color:var(--brand);background:var(--brand-weak)}.chip-label{font-size:13px}.chip select{width:auto;font:inherit;color:var(--text);background:0 0;border:none;padding:0}.chip-active select{color:var(--brand);font-weight:600}.status-tabs{border-block-end:1px solid var(--border);gap:4px;margin-block-end:8px;display:flex;overflow-x:auto}.status-tab{color:var(--muted);white-space:nowrap;background:0 0;border:none;border-block-end:2px solid #0000;border-radius:0;padding:10px 14px}.status-tab.active{color:var(--brand);border-block-end-color:var(--brand);font-weight:600}.status-tab.danger{color:var(--danger)}.list-row{border-block-end:1px solid var(--border-light);padding:10px 4px}.list-row.clickable{cursor:pointer}.list-row.clickable:hover{background:var(--bg)}.list-line{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.list-title{font-weight:700}.list-meta,.list-ref,.list-note{color:var(--muted);font-size:14px}.list-note{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.list-amount{font-variant-numeric:tabular-nums;font-weight:600}.list-trailing{flex-shrink:0;align-items:center;gap:8px;display:flex}.list-due{font-variant-numeric:tabular-nums;font-weight:600}.list-due.due{color:var(--danger)}.list-due.held{color:var(--muted)}.list-footer{background:var(--surface);border-block-start:1px solid var(--border);text-align:center;padding:10px;position:sticky;bottom:0}.list-footer-total{font-weight:700}.list-footer-count{color:var(--muted);font-size:13px}.list-footer-currencies{flex-wrap:wrap;justify-content:center;gap:16px;padding:0 10px 10px;font-weight:700;display:flex}.search-bar{align-items:center;gap:10px;margin-block-end:12px;display:flex}.search-bar input{border-radius:999px}.fab{background:var(--surface);width:44px;height:44px;color:var(--brand);border:1px solid var(--border-light);box-shadow:var(--shadow);border-radius:999px;flex-shrink:0;padding:0;font-size:24px;line-height:1}.fab-money{background:var(--ok-weak);border-color:var(--ok-weak)}.pill{color:#fff;border-radius:999px;padding:3px 12px;font-size:12px;font-weight:700;display:inline-block}.pill-paid{background:var(--ok)}.pill-due{background:var(--danger)}.pill-sent{background:var(--solid);color:var(--surface)}.pill-draft{background:var(--pill);color:var(--muted)}.pill-void{background:var(--muted)}.nav-group{margin-block-start:12px}.nav-group>summary{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 12px;font-size:11px;font-weight:700;list-style:none}.nav-group>summary::-webkit-details-marker{display:none}.nav-group .nav-link{padding-inline-start:22px;font-size:14px}.coming-soon{text-align:center;color:var(--muted);padding:48px 24px}.coming-soon h2{color:var(--text)}.stat{font-variant-numeric:tabular-nums;padding:8px 10px;font-size:16px;font-weight:700}.line-cell{flex-direction:column;gap:6px;min-inline-size:260px;display:flex}.line-cell select,.line-cell input{inline-size:100%}.line-num input{text-align:end;inline-size:90px}.line-remove{color:var(--danger);padding-inline:10px}.editor{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden}.editor-header{border-block-end:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;display:flex}.editor-title{flex:1;margin:0;font-size:19px;font-weight:700}.section-bar{background:var(--grouped);border-block:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-weight:700;display:flex}.section-action{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.section-body{padding:12px 16px}.field-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 24px;display:grid}.grid-field{flex-direction:column;padding-block:6px 10px;display:flex}.grid-field>label{color:var(--muted);margin-block-end:2px;font-size:13px}.grid-field input,.grid-field select{border:none;border-block-end:1px solid var(--border);background:0 0;border-radius:0;padding:4px 0;font-size:16px}.grid-field input:focus,.grid-field select:focus{border-block-end-color:var(--brand);outline:none}.grid-field.span-2{grid-column:1/-1}.toggle-badge{background:var(--brand-weak);color:var(--brand);cursor:pointer;border:none;border-radius:6px;padding:3px 9px;font-weight:600}.toggle-badge.on{background:var(--brand);color:#fff}.field-with-badge{align-items:center;gap:8px;display:flex}.field-with-badge input{flex:1}.add-row{width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:flex-end;align-items:center;gap:8px;padding:14px 16px;font-size:16px;display:flex}.add-row .plus{background:var(--brand);color:#fff;border-radius:999px;justify-content:center;align-items:center;block-size:24px;inline-size:24px;font-size:18px;line-height:1;display:inline-flex}.summary-block{flex-direction:column;gap:2px;padding:12px 16px;display:flex}.summary-row{color:var(--muted);justify-content:flex-end;gap:24px;display:flex}.summary-row .value{font-variant-numeric:tabular-nums;text-align:end;min-inline-size:120px;color:var(--text)}.summary-row.strong{color:var(--text);font-weight:700}.line-row{border:none;border-block-end:1px solid var(--border-light);text-align:start;cursor:pointer;background:0 0;flex-direction:column;gap:2px;width:100%;padding:10px 16px;display:flex}.line-row .top{justify-content:space-between;gap:12px;font-weight:600;display:flex}.notes-area{width:100%;font:inherit;resize:vertical;background:0 0;border:none;min-block-size:72px;padding:12px 16px}.notes-area:focus{outline:none}.radio-row{color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:12px 16px;font-size:16px;display:flex}.radio-row .dot{border:2px solid var(--brand);color:#fff;border-radius:999px;justify-content:center;align-items:center;block-size:22px;inline-size:22px;font-size:14px;display:inline-flex}.radio-row .dot.on{background:var(--brand)}.metric-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-block:12px 20px;display:grid}.metric-card{border:1px solid var(--border-light);background:var(--surface);box-shadow:var(--shadow);border-radius:14px;padding:16px}.metric-caption{color:var(--muted);font-size:13px}.metric-caption.due{color:var(--danger)}.metric-caption.ok{color:var(--ok)}.metric-figure{overflow-wrap:anywhere;margin-block-start:6px;font-size:22px;font-weight:700}.metric-figure~.metric-figure{font-size:17px}.chart{background:var(--surface);border-block-end:1px solid var(--border-light);padding:16px}.chart-legend{justify-content:center;gap:16px;margin-block-end:12px;display:flex}.legend{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.legend:before{content:"";background:var(--brand);border-radius:50%;block-size:8px;inline-size:8px}.legend.overdue:before{background:var(--danger)}.legend.paid:before{background:var(--ok)}.chart-plot{block-size:200px;position:relative}.chart-grid{flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0 0 24px}.chart-gridline{align-items:center;gap:6px;display:flex}.chart-gridline span{text-align:end;inline-size:46px;color:var(--muted);font-size:10px}.chart-gridline i{background:var(--border-light);flex:1;block-size:1px}.chart-bars{align-items:flex-end;gap:24px;padding-inline-start:58px;display:flex;position:absolute;inset:0}.chart-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;block-size:100%;max-inline-size:96px;display:flex}.chart-value,.chart-label{color:var(--muted);font-size:11px}.chart-bar{background:var(--brand);border-radius:3px 3px 0 0;flex-direction:column;justify-content:flex-end;min-block-size:2px;inline-size:100%;display:flex;overflow:hidden}.band.paid{background:var(--ok)}.band.overdue{background:var(--danger)}.check-list{max-block-size:50vh;margin-block:12px;overflow-y:auto}.check-row{color:var(--text);align-items:center;gap:10px;margin:0;padding-block:8px;font-size:15px;display:flex}.check-row input{inline-size:auto}.report-group{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--surface);margin-block-end:12px;overflow:hidden}.report-group>summary{background:var(--grouped);cursor:pointer;padding:12px 16px;font-weight:700}.report-link{border-block-start:1px solid var(--border-light);color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;text-decoration:none;display:flex}.report-link:hover{background:var(--pill)}.report-open{color:var(--brand);font-size:13px}.back-link{margin-block-end:4px;font-size:13px;display:inline-block}.header-actions{gap:8px;display:flex}.print-only{display:none}@media print{.sidebar,.no-print,.page-header{display:none!important}.app{display:block}.content{padding:0}.card{box-shadow:none;border:none;padding:0}.print-only{display:block}.print-head{margin-block-end:12px}table{font-size:12px}}.address-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.address-summary{color:var(--text);margin-block-start:4px;font-size:14px}.address-summary:empty{display:none}
