:root{--ink:#3d312a;--ink-soft:#4f4037;--ink-line:#69564b;--paper:#fcf9f5;--card:#fff;--line:#ebe3d5;--line-strong:#d6c6b3;--text-primary:#3d312a;--text-secondary:#7a695c;--text-muted:#b3a495;--clay:#e07a5f;--clay-dark:#c66247;--clay-bg:#fbece8;--green:#81b29a;--green-bg:#eaf3ef;--green-dark:#5c8d75;--amber:#f2cc8f;--amber-bg:#fcf6ea;--amber-dark:#d4a352;--red:#e56b6f;--red-bg:#faebec;--red-dark:#b54a4d;--slate:#9b9b7a;--slate-bg:#f0f0ea;--slate-dark:#707052;--shadow-card:0 4px 12px #3d312a0a;--font-display:"Inter", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"IBM Plex Mono", monospace;--radius:12px}*{box-sizing:border-box}html{font-size:clamp(1rem,.9rem + .32vw,1.1875rem)}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--paper);color:var(--text-primary);-webkit-font-smoothing:antialiased}a{color:inherit}button{font-family:inherit}:focus-visible{outline:2px solid var(--clay);outline-offset:2px}.app{min-height:100dvh;display:flex}.sidebar{background:var(--card);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:232px;height:100dvh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:22px 20px 18px;display:flex}.brand-mark{background:var(--clay);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.brand-mark svg{width:16px;height:16px}.brand-name{font-family:var(--font-display);letter-spacing:.01em;color:var(--text-primary);font-size:1.1875rem;font-weight:600}.brand-sub{color:var(--text-muted);font-size:.6562rem;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;margin-top:1px}nav.nav{flex:1;padding:14px 12px}.nav-group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.6562rem;font-family:var(--font-mono);padding:10px 10px 6px}.nav-item{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:11px;width:100%;margin-bottom:2px;padding:9px 12px;font-size:.875rem;transition:background .15s,color .15s;display:flex}.nav-item svg{opacity:.85;flex-shrink:0;width:17px;height:17px}.nav-item:hover{background:var(--paper);color:var(--text-primary)}.nav-item.active{background:var(--clay-bg);color:var(--clay-dark);font-weight:500}.nav-item.active svg{opacity:1}.nav-badge{font-family:var(--font-mono);background:var(--clay);color:#fff;border-radius:20px;margin-left:auto;padding:1px 7px;font-size:.6562rem}.sidebar-foot{border-top:1px solid var(--line);align-items:center;gap:10px;padding:14px 20px 18px;display:flex}.avatar{background:var(--slate-bg);width:32px;height:32px;color:var(--slate-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:500;display:flex}.sidebar-foot .who{color:var(--text-primary);font-size:.8125rem;line-height:1.3}.sidebar-foot .who span{color:var(--text-muted);font-size:.7188rem;display:block}.main{flex:1;min-width:0}.topbar{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#f6f4eceb;align-items:center;gap:16px;height:66px;padding:0 28px;display:flex;position:sticky;top:0}.page-title{font-family:var(--font-display);white-space:nowrap;margin-right:auto;font-size:1.25rem;font-weight:600}.currency-toggle{background:var(--card);border:1px solid var(--line);font-family:var(--font-mono);border-radius:8px;align-items:center;padding:3px;font-size:.75rem;display:flex}.currency-toggle button{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;padding:5px 11px;transition:background .15s,color .15s}.currency-toggle button.on{background:var(--ink);color:#f7f5ee}.btn-primary{background:var(--clay);color:#fbf2ed;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 15px;font-size:.8438rem;font-weight:500;transition:background .15s,transform .1s;display:flex}.btn-primary:hover{background:var(--clay-dark)}.btn-primary:active{transform:scale(.98)}.btn-primary svg{width:14px;height:14px}.icon-btn{border:1px solid var(--line);background:var(--card);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex;position:relative}.icon-btn:hover{background:var(--paper);border-color:var(--line-strong)}.icon-btn svg{width:16px;height:16px}.dot-alert{background:var(--clay);border:1.5px solid var(--paper);border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:7px}.content{padding:26px 28px 60px}.panel{display:none}.panel.active{display:block}.kpi-row{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:22px;display:grid}.kpi{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:12px;padding:16px 16px 14px;transition:box-shadow .15s,transform .15s}.kpi:hover{transform:translateY(-1px);box-shadow:0 3px 10px #33190e17}.kpi-label{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:10px;font-size:.75rem;display:flex}.kpi-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.kpi-value{font-family:var(--font-mono);letter-spacing:-.01em;font-size:1.5625rem;font-weight:500}.kpi-sub{color:var(--text-muted);margin-top:4px;font-size:.7188rem}.grid-2{grid-template-columns:1.15fr 1fr;align-items:start;gap:16px;display:grid}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:12px;overflow:hidden}.card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:15px 18px;display:flex}.card-head h3{font-family:var(--font-display);margin:0;font-size:.9688rem;font-weight:600}.card-head .tag{font-family:var(--font-mono);color:var(--text-muted);font-size:.6875rem}.attention-list{padding:6px 8px}.attention-item{border-radius:8px;align-items:center;gap:12px;padding:11px 10px;transition:background .15s;display:flex}.attention-item:hover{background:var(--paper)}.attn-avatar{background:var(--slate-bg);width:34px;height:34px;color:var(--slate-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7188rem;font-weight:500;display:flex}.attn-body{flex:1;min-width:0}.attn-name{font-size:.8438rem;font-weight:500}.attn-meta{color:var(--text-secondary);font-size:.75rem;font-family:var(--font-mono);margin-top:1px}.attn-right{text-align:right;flex-shrink:0}.attn-amount{font-family:var(--font-mono);font-size:.8125rem;font-weight:500}.attn-amount-label{color:var(--text-muted);font-size:.6562rem}.ledger{padding:4px 4px 8px}.ledger-row{border-bottom:1px dashed var(--line-strong);align-items:center;gap:12px;padding:10px 16px;font-size:.8125rem;display:flex}.ledger-row:last-child{border-bottom:none}.ledger-date{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;width:44px;font-size:.7188rem}.ledger-who{flex:1;min-width:0}.ledger-who .name{font-weight:500}.ledger-who .lot{color:var(--text-muted);font-size:.7188rem;font-family:var(--font-mono)}.ledger-amt{font-family:var(--font-mono);text-align:right;flex-shrink:0;font-weight:500}.method{background:var(--paper);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.method svg{width:12px;height:12px;color:var(--text-secondary)}.inventory-bar{border-radius:20px;height:10px;margin:14px 18px 6px;display:flex;overflow:hidden}.inventory-legend{color:var(--text-secondary);gap:18px;padding:0 18px 16px;font-size:.75rem;display:flex}.inventory-legend span{align-items:center;gap:6px;display:flex}.leg-dot{border-radius:2px;width:8px;height:8px}.stamp{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border:1.4px solid;border-radius:20px;align-items:center;gap:5px;padding:3px 10px 3px 8px;font-size:.675rem;display:inline-flex;transform:rotate(-1.5deg)}.stamp:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.stamp.success{color:var(--green-dark);background:var(--green-bg);border-color:var(--green)}.stamp.warning{color:var(--amber-dark);background:var(--amber-bg);border-color:var(--amber)}.stamp.danger{color:var(--red-dark);background:var(--red-bg);border-color:var(--red)}.stamp.neutral{color:var(--slate-dark);background:var(--slate-bg);border-color:var(--slate)}.stamp.clay{color:var(--clay-dark);background:var(--clay-bg);border-color:var(--clay)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.8438rem}thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 18px;font-size:.6875rem;font-weight:500}tbody td{border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;padding:13px 18px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--paper)}.mono{font-family:var(--font-mono)}.cell-primary{font-weight:500}.cell-muted{color:var(--text-secondary);font-size:.7812rem}.toolbar{align-items:center;gap:10px;margin-bottom:16px;display:flex}.chip{border:1px solid var(--line);background:var(--card);color:var(--text-secondary);cursor:pointer;border-radius:20px;padding:6px 13px;font-size:.7812rem;transition:background .15s,color .15s,border-color .15s}.chip.active{background:var(--ink);color:#f7f5ee;border-color:var(--ink)}.cust-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.cust-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:12px;padding:16px;transition:box-shadow .15s,transform .15s}.cust-card:hover{transform:translateY(-1px);box-shadow:0 3px 10px #33190e17}.cust-top{align-items:center;gap:11px;margin-bottom:12px;display:flex}.cust-avatar{background:var(--clay-bg);width:38px;height:38px;color:var(--clay-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;font-weight:500;display:flex}.cust-name{font-size:.8438rem;font-weight:500}.cust-role{color:var(--text-muted);font-size:.7188rem}.cust-row{border-top:1px dashed var(--line-strong);justify-content:space-between;padding:6px 0;font-size:.7812rem;display:flex}.cust-row span:first-child{color:var(--text-secondary)}.cust-row span:last-child{font-family:var(--font-mono)}.receipts-layout{grid-template-columns:1fr 320px;align-items:start;gap:18px;display:grid}.receipt-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 16px;font-size:.8125rem;display:flex}.receipt-row:last-child{border-bottom:none}.receipt-id{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;flex:none;min-width:108px;font-size:.7188rem}.receipt-who{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.receipt-who .name{font-weight:500}.receipt-who .lot{color:var(--text-muted);font-size:.7188rem;font-family:var(--font-mono)}.receipt-amt{font-family:var(--font-mono);font-weight:500}.receipt-print{border:1px solid var(--line);background:var(--paper);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);border-radius:7px;justify-content:center;align-items:center;display:flex}.receipt-print svg{width:14px;height:14px}.receipt-preview-wrap{background:var(--paper);border-radius:12px;padding:18px 0 0;overflow-x:clip}.receipt-preview-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.6875rem;font-family:var(--font-mono);padding:0 20px 12px}.receipt-paper{--r-primary:#1a253a;--r-text:#111;--r-muted:#4a5568;--r-border:#cbd5e1;--r-red:#d32f2f;--r-highlight:#f8fafc;border:1px solid var(--line);color:var(--r-text);background:#fff;border-bottom:none;border-radius:10px 10px 0 0;flex-direction:column;margin:0 16px;padding:2em 1.75em 1.5em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:10px;line-height:1.4;display:flex;container-type:inline-size}.receipt-tear{background-image:linear-gradient(135deg, var(--paper) 50%, transparent 50%), linear-gradient(45deg, var(--paper) 50%, transparent 50%);background-position:0 0,0 0;background-repeat:repeat-x;background-size:13px 13px;height:13px;margin:0 16px}.receipt-header{justify-content:space-between;align-items:flex-start;gap:1.5em;margin-bottom:2em;display:flex}.receipt-logo img{width:17.5em;max-width:100%;height:auto;display:block}.receipt-logo h2{color:var(--r-primary);margin:.75em 0 0;font-size:1.5em;font-weight:800}.receipt-meta{text-align:right;flex-shrink:0}.receipt-meta h1{color:var(--r-primary);text-transform:uppercase;margin:0 0 .385em;font-size:1.625em}.receipt-meta p{margin:.3125em 0}.receipt-label{color:var(--r-muted);letter-spacing:.5px;text-transform:uppercase;margin-right:.385em;font-size:.8125em;font-weight:700}.receipt-client{border:1px solid var(--r-border);border-radius:8px;margin-bottom:1.75em;padding:1.125em 1.25em}.receipt-client .receipt-label{margin-bottom:.5em;font-size:.9375em;display:block}.receipt-client-name{font-size:1.5em;font-weight:600;line-height:1.3}.receipt-client-detail{color:var(--r-muted);margin-top:.3em;font-size:1.0625em}.receipt-items{border-collapse:collapse;width:100%;margin-bottom:1.875em}.receipt-items,.receipt-items thead th,.receipt-items tbody td{font-size:inherit;white-space:normal}.receipt-items tbody tr:hover{background:0 0}.receipt-items thead th{border-bottom:2px solid var(--r-border);color:var(--r-muted);letter-spacing:.5px;text-align:left;text-transform:uppercase;padding:0 0 .75em;font-size:.8125em;font-weight:700}.receipt-items tbody td{border-bottom:1px solid var(--r-border);vertical-align:top;padding:.6875em 0;font-size:1.1875em;font-weight:600}.receipt-items th.receipt-right,.receipt-items td.receipt-right{text-align:right;white-space:nowrap}.receipt-item-lot{display:block}.receipt-item-detail{color:var(--r-muted);margin-top:.2em;font-size:.7895em;font-weight:400;display:block}.receipt-summary{justify-content:space-between;gap:1.25em;margin-bottom:1.875em;display:flex}.receipt-summary-col{width:48%}.receipt-summary-row{justify-content:space-between;gap:1em;margin-bottom:.6875em;font-size:1.1875em;display:flex}.receipt-summary-value{font-weight:600}.receipt-summary-row>span:last-child{white-space:nowrap}.receipt-summary-row.is-bold{border-bottom:1px solid var(--r-border);color:var(--r-primary);padding-bottom:.3125em;font-size:1.3125em;font-weight:700}.receipt-highlight{border:1px solid var(--r-border);background:var(--r-highlight);border-radius:8px;justify-content:space-between;align-items:center;margin-top:.9375em;padding:.9375em;font-size:1.3125em;font-weight:700;display:flex}.receipt-highlight-label{padding-right:.8em;line-height:1.2}.receipt-highlight-value{color:var(--r-red);text-align:right;white-space:nowrap;flex-shrink:0}@container (width<=600px){.receipt-items{table-layout:fixed}.receipt-items th.receipt-right{white-space:normal;width:8.5em}.receipt-item-lot,.receipt-item-detail{overflow-wrap:anywhere}.receipt-summary{flex-direction:column;gap:0}.receipt-summary-col{width:100%}.receipt-header{flex-direction:column;gap:1em}.receipt-meta{text-align:left}}.receipt-footer{text-align:center;margin-top:auto;padding-top:1.25em}.receipt-signature{width:25em;max-width:100%;margin:0 auto 1.25em}.receipt-signature-name{color:var(--r-primary);margin:0;font-family:Dancing Script,Segoe Script,cursive;font-size:3em;font-weight:700;line-height:1.1}.receipt-signature hr{border:none;border-top:1px solid var(--r-muted);margin:.3125em 0}.receipt-signature-label{color:var(--r-muted);margin:.3125em 0 0;font-size:1em;font-weight:600}.receipt-thanks{margin:0 0 .625em;font-size:1em;font-weight:600}.receipt-contact{color:var(--r-muted);overflow-wrap:anywhere;margin:0 0 1.25em;font-size:.875em}.receipt-barcode{width:18.75em;max-width:100%;height:3.75em;margin:0 auto;display:block}.view-switch{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:2px;display:inline-flex}.view-switch-option{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:18px;padding:5px 13px;font-family:inherit;font-size:.75rem}.view-switch-option.is-active{background:var(--card);color:var(--text-primary);font-weight:500;box-shadow:0 1px 2px #3d312a14}.txn-row{border-bottom:1px solid var(--line);align-items:stretch;display:flex}.txn-row:last-child{border-bottom:none}.txn-row:hover{background:var(--paper)}.txn-row.is-selected{background:var(--clay-bg)}.txn-main{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:14px;padding:11px 4px 11px 16px;display:flex}.txn-date{min-width:92px;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;flex:none;font-size:.7188rem}.txn-who{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.txn-name{text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;overflow:hidden}.txn-detail{color:var(--text-muted);font-size:.7188rem;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.txn-tags{flex:0 auto;align-items:center;gap:6px;min-width:0;display:flex}.txn-receipt,.txn-method{background:var(--paper);border:1px solid var(--line);font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.6562rem}.txn-receipt.is-missing{color:var(--text-muted);border-style:dashed}.txn-method.is-void{background:var(--red-bg);border-color:var(--red);color:var(--red-dark)}.txn-amount{font-family:var(--font-mono);white-space:nowrap;text-align:right;flex:none;font-size:.8125rem;font-weight:500}.txn-row.is-void .txn-amount,.txn-row.is-void .txn-name{color:var(--text-muted);text-decoration:line-through}.txn-edit{flex:none;align-self:center;margin-right:12px}.txn-group{border-bottom:1px solid var(--line)}.txn-group:last-child{border-bottom:none}.txn-group-head{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.txn-group-head .txn-detail{white-space:normal;text-overflow:clip;overflow:visible}.txn-group-head:hover,.txn-group-head.is-open{background:var(--paper)}.txn-caret{color:var(--text-muted);flex:none;transition:transform .15s;display:flex}.txn-caret svg{width:14px;height:14px}.txn-caret.is-open{transform:rotate(180deg)}.txn-group-body{border-top:1px solid var(--line);background:var(--card)}.txn-group-body .txn-main{padding-left:42px}.proof-field{flex-direction:column;gap:10px;display:flex}.proof-dropzone{border:1.5px dashed var(--line-strong);background:var(--paper);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;transition:border-color .15s,background .15s;display:flex}.proof-dropzone.is-over{border-color:var(--clay);background:var(--clay-bg)}.proof-dropzone.is-disabled{opacity:.6}.proof-dropzone-title{margin:0;font-size:.8125rem;font-weight:500}.proof-dropzone-hint{max-width:42ch;color:var(--text-muted);margin:0;font-size:.7188rem}.proof-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.proof-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.proof-item{border:1px solid var(--line);background:var(--card);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.doc-thumb{object-fit:cover;border:1px solid var(--line);background:var(--paper);border-radius:6px;flex:none;width:40px;height:40px}.doc-thumb-badge{font-family:var(--font-mono);color:var(--text-muted);justify-content:center;align-items:center;font-size:.625rem;display:flex}.proof-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.proof-name{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.proof-size{font-family:var(--font-mono);color:var(--text-muted);font-size:.6875rem}.proof-open,.proof-tile{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.proof-open .doc-thumb,.proof-tile .doc-thumb{transition:border-color .12s,transform .12s}.proof-open:hover .doc-thumb,.proof-tile:hover .doc-thumb{border-color:var(--clay);transform:scale(1.03)}.proof-name.link-btn{text-align:left;color:inherit;padding:0}.proof-lot{border:1px solid var(--line);background:var(--card);max-width:140px;font:inherit;color:var(--text-secondary);border-radius:6px;flex:none;padding:4px 6px;font-size:.6875rem}.receipt-proofs{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.receipt-proofs-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.receipt-proofs .receipt-preview-label{margin:0}.receipt-proofs .state-message{padding:8px 0;font-size:.7188rem}.proof-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin-top:10px;display:grid}.proof-tile{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.proof-tile .doc-thumb{width:100%;height:72px}.proof-tile-name,.proof-tile-lot{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text-muted);font-size:.6563rem;overflow:hidden}.proof-tile-lot{font-family:var(--font-mono);color:var(--clay)}.txn-proof{cursor:pointer;background:0 0;border:0;flex:none;align-items:center;padding:0 0 0 12px;display:flex;position:relative}.txn-proof .doc-thumb{width:32px;height:32px}.txn-proof:hover .doc-thumb{border-color:var(--clay)}.txn-proof-count{background:var(--clay);color:#fff;min-width:15px;font-family:var(--font-mono);text-align:center;border-radius:8px;padding:0 3px;font-size:.5625rem;line-height:15px;position:absolute;bottom:-3px;right:-5px}.viewer{color:#f4efe9;flex-direction:column;height:100%;min-height:0;display:flex}.viewer-head{border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.viewer-title{min-width:0}.viewer-name{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.875rem;font-weight:500;overflow:hidden}.viewer-sub{font-family:var(--font-mono);color:#f4efe99e;flex-wrap:wrap;gap:10px;margin:3px 0 0;font-size:.6875rem;display:flex}.viewer-lot{color:var(--clay)}.viewer-foot{border-top:1px solid #ffffff1f;padding:10px 16px;display:flex}.viewer-foot .link-btn.is-danger{color:#f0a08c}.viewer-close{width:30px;height:30px;color:inherit;cursor:pointer;background:#ffffff1a;border:0;border-radius:8px;flex:none;font-size:1.25rem;line-height:1}.viewer-close:hover{background:#fff3}.viewer-stage{flex:1;justify-content:center;align-items:center;min-height:0;padding:16px;display:flex;position:relative}.viewer-image{object-fit:contain;background:#fff;border-radius:6px;max-width:100%;max-height:100%}.viewer-frame{background:#fff;border:0;border-radius:6px;width:100%;height:100%}.viewer-unavailable{text-align:center;color:#f4efe9bf;flex-direction:column;align-items:center;gap:12px;max-width:42ch;font-size:.8125rem;display:flex}.viewer-unavailable .doc-thumb{color:#f4efe9bf;background:#ffffff14;border-color:#fff3;width:56px;height:56px}.viewer-step{color:#f4efe9;cursor:pointer;background:#ffffff24;border:0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.viewer-step:hover{background:#ffffff42}.viewer-step.is-prev{left:12px}.viewer-step.is-prev svg{transform:rotate(90deg)}.viewer-step.is-next{right:12px}.viewer-step.is-next svg{transform:rotate(-90deg)}.viewer-strip{border-top:1px solid #ffffff1f;gap:8px;padding:10px 16px;display:flex;overflow-x:auto}.viewer-strip-item{cursor:pointer;opacity:.55;background:0 0;border:0;flex:none;padding:0}.viewer-strip-item.is-current,.viewer-strip-item:hover{opacity:1}.viewer-strip-item.is-current .doc-thumb{border-color:var(--clay)}.edit-with-history{grid-template-columns:minmax(0,1fr) minmax(15rem,20rem);align-items:start;gap:18px;display:grid}.edit-form{min-width:0}.edit-history{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:12px}.edit-history-list{max-height:clamp(380px,46vh,520px);margin:10px 0 0;padding:0;list-style:none;overflow-y:auto}.edit-history-row{border-radius:6px;align-items:baseline;gap:8px;padding:5px 6px;font-size:.7188rem;display:flex}.edit-history-row.is-target{background:var(--clay-bg);font-weight:500}.edit-history-row.is-void .edit-history-amount{color:var(--text-muted);text-decoration:line-through}.edit-history-date{min-width:5.5rem;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;flex:none;font-size:.6875rem}.edit-history-lot{font-family:var(--font-mono);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.6875rem;overflow:hidden}.edit-history-amount{font-family:var(--font-mono);white-space:nowrap;flex:none}.split-total-row{align-items:flex-end;gap:10px;margin-bottom:10px;display:flex}.split-total-row .form-field{flex:1;min-width:0}@media (width<=900px){.edit-with-history{grid-template-columns:1fr}.edit-history-list{max-height:200px}}@media (width<=640px){.txn-main{flex-wrap:wrap;gap:6px 12px}.txn-main .txn-who{flex-basis:100%;order:3}.txn-main .txn-tags{order:4}.txn-main .txn-amount{margin-left:auto}.txn-group-body .txn-main{padding-left:28px}.split-total-row{flex-direction:column;align-items:stretch}}.receipt-row{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border-top:none;border-left:none;border-right:none}.receipt-row:hover{background:var(--paper)}.receipt-row.is-selected{background:var(--clay-bg)}.receipt-row.is-void .receipt-amt,.receipt-row.is-void .receipt-who .name{color:var(--text-muted);text-decoration:line-through}.receipt-paper.is-void{border-color:var(--red)}.receipt-void-banner{border:2px solid var(--r-red);color:var(--r-red);letter-spacing:.05em;text-align:center;text-transform:uppercase;border-radius:6px;margin:0 0 1.5em;padding:.75em 1em;font-size:1em;font-weight:700}.receipt-note{color:var(--r-muted);margin:0 0 1.5em;font-size:.875em;font-style:italic}.receipt-stamp{color:var(--r-muted);margin:1.25em 0 0;font-size:.8125em}.receipt-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 18px;display:flex}.receipt-actions-main{align-items:center;gap:8px;display:flex}.receipt-send{align-items:center;gap:6px;display:inline-flex}.receipt-send svg{width:15px;height:15px;margin-top:-1px}.receipt-send:disabled{opacity:.55;cursor:default}.receipt-share-note{color:var(--text-secondary);margin:0;padding:0 16px 14px;font-size:.7188rem;line-height:1.5}.receipt-share-note.is-error{color:var(--red-dark)}.receipt-share-note a{color:var(--clay-dark);font-weight:500}.receipt-share-stage{pointer-events:none;width:794px;position:fixed;top:0;left:-10000px}.receipt-share-stage .receipt-paper{width:794px;min-height:1123px;font-size:var(--receipt-print-size,10pt);border:none;border-radius:0;margin:0;padding:3.2em 3em}.receipt-running-total{text-align:right;color:var(--text-secondary);margin:10px 0 0;font-size:.8125rem}.receipt-running-total strong{font-family:var(--font-mono);color:var(--text-primary)}.link-btn.is-danger{color:var(--red-dark)}@media print{.sidebar,.topbar,.lots-toolbar,.card-head,.receipt-actions,.receipt-preview-label,.receipt-sheet-head,.receipt-tear,.receipt-proofs,.receipt-share-note,.receipt-share-stage,.txn-edit,.active-filters,.sidebar-overlay{display:none!important}html,body,.app,.main,.content,.receipts-layout{background:#fff;margin:0;padding:0;display:block}.receipts-layout>.card{display:none}.receipt-preview-wrap{background:#fff;border:none;margin:0;padding:0;position:static;overflow:visible}.receipt-paper{min-height:264mm;font-size:var(--receipt-print-size,10pt);-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;border:none;margin:0;padding:3.2em 3em}.receipt-void-banner,.receipt-header,.receipt-client,.receipt-summary,.receipt-footer,.receipt-items tr{break-inside:avoid}}@page{size:A4;margin:0}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:15;opacity:0;visibility:hidden;background:#3d312a66;width:100vw;height:100dvh;transition:opacity .2s,visibility .2s;position:fixed;top:0;left:0}.sidebar-overlay.show{opacity:1;visibility:visible}body.modal-open{overflow:hidden}.modal-backdrop{z-index:50;overscroll-behavior:contain;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;background:#3d312a7a;padding:24px;transition:opacity .2s,visibility .2s;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-backdrop.show{opacity:1;visibility:visible}.entity-modal{background:var(--card);border:1px solid var(--line);border-radius:16px;flex:none;width:min(620px,100%);max-height:calc(100dvh - 48px);margin:auto;transition:transform .2s;overflow-y:auto;transform:translateY(12px)scale(.98);box-shadow:0 24px 70px #3d312a38}.entity-modal.is-wide{width:min(1000px,100%)}.entity-modal.is-viewer{background:var(--ink,#2a211c);border-color:#ffffff24;width:min(1180px,100%);height:calc(100dvh - 48px);max-height:none;overflow:hidden}.modal-backdrop.show .entity-modal{transform:translateY(0)scale(1)}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:24px;padding:24px 26px 20px;display:flex}.modal-eyebrow{color:var(--clay-dark);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 5px;font-size:.6562rem;font-weight:500}.modal-header h2{font-family:var(--font-display);margin:0;font-size:1.375rem}.modal-description{color:var(--text-secondary);margin:7px 0 0;font-size:.8125rem;line-height:1.5}.modal-close{width:34px;height:34px;color:var(--text-secondary);background:var(--paper);border:1px solid var(--line);cursor:pointer;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.modal-close:hover{color:var(--text-primary);border-color:var(--line-strong)}.modal-close svg{width:16px;height:16px}.modal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 18px;padding:24px 26px 26px;display:grid}.form-field{flex-direction:column;gap:7px;display:flex}.modal-form-grid>.full-width{grid-column:1/-1}.form-field label{color:var(--text-primary);font-size:.7812rem;font-weight:500}.settlement-choice{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.settlement-choice legend{color:var(--text-primary);margin-bottom:2px;padding:0;font-size:.7812rem;font-weight:500}.settlement-option{border:1px solid var(--border,#0000001f);cursor:pointer;border-radius:9px;align-items:flex-start;gap:10px;padding:9px 11px;font-size:.8125rem;display:flex}.settlement-option:has(input:checked){border-color:var(--ink);background:var(--surface-sunken,#00000008)}.settlement-option.is-disabled{cursor:not-allowed;opacity:.55}.settlement-option input[type=radio]{width:16px;height:16px;min-height:0;accent-color:var(--ink,var(--clay));background:0 0;border:0;border-radius:50%;flex:none;margin:2px 0 0;padding:0}.settlement-title{color:var(--text-primary);font-weight:500;display:block}.settlement-detail{color:var(--text-secondary);margin-top:1px;font-size:.75rem;display:block}.required-mark{color:var(--red-dark)}.form-field input,.form-field select{width:100%;min-height:42px;color:var(--text-primary);background:var(--paper);border:1px solid var(--line-strong);font-family:var(--font-body);border-radius:8px;outline:none;padding:10px 12px;font-size:.8438rem;transition:border-color .15s,box-shadow .15s,background .15s}.form-field input:focus,.form-field select:focus{background:var(--card);border-color:var(--clay);box-shadow:0 0 0 3px var(--clay-bg)}.was-validated .form-field input:invalid,.was-validated .form-field select:invalid{background:var(--red-bg);border-color:var(--red);box-shadow:0 0 0 3px #e56b6f24}.was-validated .form-field input:invalid:focus,.was-validated .form-field select:invalid:focus{border-color:var(--red-dark);box-shadow:0 0 0 4px #e56b6f33}.entity-modal.validation-shake{animation:.32s ease-in-out validation-shake}@keyframes validation-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}.form-field input::placeholder{color:var(--text-muted)}.input-with-prefix{position:relative}.input-with-prefix input{padding-left:42px}.currency-prefix{z-index:1;color:var(--text-secondary);font-family:var(--font-mono);pointer-events:none;font-size:.7812rem;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.field-hint{color:var(--text-muted);font-size:.6875rem}.form-field input[readonly],.form-field textarea[readonly]{background:var(--paper);color:var(--text-secondary);cursor:not-allowed;border-style:dashed}.form-field input[readonly]:focus,.form-field textarea[readonly]:focus{border-color:var(--line-strong);box-shadow:none}.field-error{color:var(--red-dark);font-size:.6875rem;font-weight:500}.form-field input[aria-invalid=true],.form-field select[aria-invalid=true],.form-field textarea[aria-invalid=true],.split-table input[aria-invalid=true]{border-color:var(--red)}.lots-toolbar{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.lots-toolbar .toolbar{flex-wrap:wrap;margin-bottom:0}.toolbar-spacer{flex:1;min-width:12px}.menu-anchor{position:relative}.menu-trigger{align-items:center;gap:7px;display:inline-flex}.menu-trigger svg{flex-shrink:0;width:15px;height:15px}.menu-trigger-detail{color:var(--text-muted);margin-left:6px;font-size:.6875rem}.menu-trigger.active .menu-trigger-detail{color:var(--line)}.filter-count{background:var(--clay);color:#fff;min-width:17px;height:17px;font-family:var(--font-mono);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:.6562rem;display:inline-flex}.menu-trigger.active .filter-count{background:var(--card);color:var(--ink)}.menu-popover{z-index:55;border:1px solid var(--line);background:var(--card);border-radius:12px;min-width:238px;padding:9px;position:absolute;top:calc(100% + 7px);right:0;box-shadow:0 18px 40px #3d312a29}.menu-title{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;padding:4px 8px 0;font-size:.6875rem}.menu-item{width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 9px;font-size:.8125rem;display:flex}.menu-item:hover{background:var(--paper)}.menu-item.selected{background:var(--paper);color:var(--ink);font-weight:500}.menu-item-detail{color:var(--text-muted);white-space:nowrap;font-size:.6875rem}.menu-foot{border-top:1px solid var(--line);color:var(--text-muted);margin:6px 0 2px;padding:8px 9px 0;font-size:.6875rem;line-height:1.45}.filter-popover{flex-direction:column;gap:14px;width:296px;padding:15px;display:flex}.filter-section{flex-direction:column;gap:5px;display:flex}.filter-section .menu-title{padding:0}.filter-check{cursor:pointer;align-items:center;gap:9px;padding:4px 2px;font-size:.8125rem;display:flex}.filter-check input{width:15px;height:15px;accent-color:var(--ink);cursor:pointer}.filter-range{grid-template-columns:1fr 1fr;gap:8px;display:grid}.filter-range>*{min-width:0}.filter-range input{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);font-family:var(--font-mono);border-radius:8px;padding:8px 10px;font-size:.8125rem}.filter-range-dates{grid-template-columns:1fr;gap:10px}.filter-range-dates label{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;flex-direction:column;gap:4px;font-size:.6875rem;display:flex}.filter-range .input-with-prefix input{padding-left:34px}.filter-range .currency-prefix{left:10px}.filter-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding-top:12px;display:flex}.filter-foot .btn-primary{padding:7px 16px;font-size:.8125rem}.active-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.result-count{color:var(--text-muted);font-size:.75rem}.filter-chip{border:1px solid var(--line-strong);background:var(--card);color:var(--text-secondary);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:4px 9px 4px 11px;font-size:.75rem;transition:border-color .15s,color .15s;display:inline-flex}.filter-chip:hover{border-color:var(--clay);color:var(--ink)}.filter-chip svg{width:12px;height:12px;color:var(--text-muted)}.filter-chip:hover svg{color:var(--clay)}.table-empty{color:var(--text-muted);text-align:center;padding:30px 0}.table-empty p{margin:0 0 6px}.desktop-only{display:block}.sheet-body{flex-direction:column;gap:18px;padding:20px 26px 24px;display:flex}.sheet-body .menu-item{padding:12px 10px;font-size:.875rem}.sheet-body .filter-check{padding:9px 2px;font-size:.875rem}.sheet-body .filter-check input{width:19px;height:19px}.sheet-body .menu-foot{border:0;margin:0;padding:0}.sheet-actions{z-index:2;justify-content:space-between;position:sticky;bottom:0}@media (width<=760px){.desktop-only{display:none}.lots-toolbar .toolbar{gap:8px}.toolbar-spacer{min-width:0}.menu-trigger-detail{display:none}}.currency-anchor{position:relative}.currency-toggle button{align-items:center;gap:3px;display:inline-flex}.currency-caret{opacity:.75;display:none}.currency-caret svg{width:11px;height:11px}.currency-caret.stale:after{content:"";background:var(--amber);border-radius:50%;width:5px;height:5px;margin-left:2px}.currency-toggle .currency-rate{border:0;border-left:1px solid var(--line);color:var(--text-secondary);font-family:var(--font-mono);white-space:nowrap;cursor:pointer;background:0 0;border-radius:0 6px 6px 0;align-items:center;gap:4px;margin-left:3px;padding:5px 9px 5px 10px;font-size:.75rem;transition:color .15s;display:inline-flex}.currency-toggle .currency-rate:hover{color:var(--ink)}.currency-toggle .currency-rate svg{opacity:.7;width:11px;height:11px}.currency-toggle .currency-rate-value{color:var(--ink)}.currency-toggle .currency-rate.stale .currency-rate-value{color:var(--amber-dark)}@media (width<=760px){.currency-toggle .currency-rate{display:none}.currency-caret{display:inline-flex}}.rate-popover{width:288px;padding:16px}.rate-panel{flex-direction:column;gap:9px;display:flex}.rate-headline{align-items:baseline;gap:6px;margin:0;display:flex}.rate-headline-value{color:var(--ink);font-family:var(--font-mono);font-size:1.125rem}.rate-headline-unit{color:var(--text-muted);font-size:.75rem}.rate-panel-head{color:var(--text-secondary);margin:0;font-size:.8125rem}.rate-panel .field-hint{line-height:1.45}.rate-edit{flex-direction:column;gap:5px;display:flex}.rate-edit label{color:var(--text-secondary);font-size:.75rem}.rate-edit input{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);font-family:var(--font-mono);border-radius:8px;padding:9px 11px;font-size:.875rem}.rate-actions{gap:8px;display:flex}.rate-actions button{flex:1;justify-content:center;font-size:.75rem}.rate-caveat{border-top:1px solid var(--line);color:var(--text-muted);margin:0;padding-top:9px;font-size:.6875rem;line-height:1.45}.permissions-intro h3,.users-intro h3,.permission-group-head h3,.permission-locked h3{margin:0 0 6px;font-size:1rem}.permissions-intro,.users-intro,.permission-group,.permission-locked{margin-bottom:14px;padding:20px 22px}.permissions-intro p,.users-intro p{color:var(--text-secondary);margin:0;font-size:.8125rem;line-height:1.55}.users-intro p+p{margin-top:8px}.permission-group-head{margin-bottom:12px}.permission-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.permission-row{cursor:pointer;border-radius:9px;align-items:center;gap:13px;padding:11px 12px;transition:background .15s;display:flex}.permission-row:hover{background:var(--paper)}.permission-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.permission-label{color:var(--ink);font-size:.8438rem}.permission-switch{background:var(--line);cursor:pointer;appearance:none;border-radius:11px;flex-shrink:0;width:38px;height:21px;margin:0;transition:background .18s}.permission-switch:after{content:"";background:var(--card);border-radius:50%;width:15px;height:15px;margin:3px;transition:transform .18s;display:block}.permission-switch:checked{background:var(--ink)}.permission-switch:checked:after{transform:translate(17px)}.permission-switch:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.permission-row .stamp{flex-shrink:0}.permission-actions{justify-content:flex-end;align-items:center;gap:12px;padding-bottom:8px;display:flex}.input-with-suffix{position:relative}.input-with-suffix input{padding-right:48px}.unit-suffix{z-index:1;color:var(--text-secondary);font-family:var(--font-mono);pointer-events:none;font-size:.7812rem;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.project-card{flex-direction:column;gap:15px;padding:20px 22px;display:flex}.project-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.project-card-head h3{margin:0;font-size:1.0625rem}.project-card-actions{flex-shrink:0;gap:4px;display:flex}.project-card .stamp{align-self:flex-start}.project-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:12px 14px;padding:14px 0;display:grid}.project-stat{flex-direction:column;gap:3px;min-width:0;display:flex}.project-stat-value{color:var(--ink);font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;font-size:.9062rem;overflow:hidden}.project-stat-value .unit,.project-stat-value .currency-symbol{color:var(--text-muted);margin:0 0 0 3px;font-size:.75rem}.project-stat-value .currency-symbol{margin:0 3px 0 0}.project-stat-label{color:var(--text-muted);font-size:.6875rem}.project-status-row{flex-wrap:wrap;gap:7px;display:flex}.project-card-foot{margin-top:auto}.code-composer{align-items:center;gap:8px;display:flex}.code-prefix-input{width:84px;font-family:var(--font-mono);text-align:center;text-transform:uppercase;flex:0 0 84px}.code-number-input{width:108px;font-family:var(--font-mono);text-align:center;flex:0 0 108px}.code-separator{color:var(--text-muted);font-family:var(--font-mono)}.code-preview{white-space:nowrap;border:1px dashed var(--line);background:var(--paper);color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.04em;border-radius:6px;margin-left:6px;padding:5px 11px;font-size:.8125rem}.code-prefix-chips{flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px;display:flex}.code-prefix-chips .chip{font-family:var(--font-mono);padding:3px 11px;font-size:.7188rem}.link-btn{color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.link-btn:hover{color:var(--ink)}.modal-actions{background:var(--paper);border-top:1px solid var(--line);border-radius:0 0 16px 16px;justify-content:flex-end;gap:10px;padding:17px 26px;display:flex}.btn-secondary{color:var(--text-secondary);background:var(--card);border:1px solid var(--line-strong);font-family:var(--font-body);cursor:pointer;border-radius:8px;padding:9px 16px;font-size:.8438rem;font-weight:500}.btn-secondary:hover{color:var(--text-primary);background:var(--paper)}.modal-submit{justify-content:center;min-width:116px}@media (width<=1180px){.kpi-row{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr}.cust-grid{grid-template-columns:repeat(2,1fr)}.receipts-layout{grid-template-columns:1fr}}@media (width<=760px){.receipt-preview-wrap.is-sheet{z-index:12;background:var(--paper);overscroll-behavior:contain;border-radius:0;padding:0 0 4px;position:fixed;inset:0;overflow-y:auto}.receipt-sheet-head{z-index:1;background:var(--paper);border-bottom:1px solid var(--line);align-items:center;display:flex;position:sticky;top:0}.receipt-sheet-back{font:inherit;color:var(--text-primary);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:14px 16px;font-size:.875rem;font-weight:500;display:flex}.receipt-sheet-back-icon{display:flex}.receipt-sheet-back-icon svg{width:18px;height:18px;transform:rotate(90deg)}.receipt-preview-wrap.is-sheet .receipt-actions{background:var(--paper);border-top:1px solid var(--line);position:sticky;bottom:0}.sidebar{z-index:20;height:100dvh;transition:transform .25s cubic-bezier(.4,0,.2,1);position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:4px 0 15px #0000000d}.sidebar.open{transform:translate(0)}.content{padding:16px 14px 40px}.topbar{gap:10px;padding:0 12px}.btn-primary{padding:9px}.btn-primary span{display:none}.btn-primary svg{width:18px;height:18px;margin:0}.kpi-row{-ms-overflow-style:none;scrollbar-width:none;flex-wrap:nowrap;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex;overflow-x:auto}.kpi-row::-webkit-scrollbar{display:none}.kpi{flex:0 0 240px}.cust-grid{grid-template-columns:1fr}.inventory-legend{flex-direction:column;gap:8px}.modal-backdrop{padding:12px}.entity-modal{border-radius:14px;max-height:calc(100dvh - 24px);margin:auto auto 0}.entity-modal.is-viewer{height:calc(100dvh - 24px);margin:auto}.viewer-head{padding:12px}.viewer-stage{padding:10px}.modal-header{z-index:3;background:var(--card);position:sticky;top:0}.modal-header,.modal-form-grid{padding-left:18px;padding-right:18px}.modal-form-grid{grid-template-columns:1fr}.modal-form-grid>.full-width{grid-column:auto}.modal-actions{padding:14px 18px calc(14px + env(safe-area-inset-bottom,0px))}}.chip{font-family:inherit;font-weight:500}.proj-accent-0{--proj-dot:#b07d62}.proj-accent-1{--proj-dot:#6e8ca0}.proj-accent-2{--proj-dot:#9c7fa8}.proj-accent-3{--proj-dot:#5f8a8b}.proj-accent-4{--proj-dot:#a88c4a}.code-badge{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink);border:1px solid var(--line);background:#f6f0e6;border-radius:6px;align-items:center;padding:3px 9px;font-size:.7812rem;font-weight:500;display:inline-flex}.cell-project{color:var(--text-primary);align-items:center;gap:8px;display:flex}.project-dot{background:var(--proj-dot,var(--text-muted));border-radius:50%;flex-shrink:0;width:8px;height:8px}.cell-area{font-family:var(--font-mono);color:var(--slate-dark);font-size:.7812rem}.cell-area .unit{color:var(--text-muted);margin-left:3px}.col-money{text-align:right}.cell-money{font-family:var(--font-mono);color:var(--ink);white-space:nowrap;font-weight:600}.cell-money .currency-symbol{color:var(--clay);margin-right:4px;font-weight:500}.brand{position:relative}.sidebar-close{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.sidebar-close:hover{background:var(--paper);border-color:var(--line);color:var(--text-secondary)}.sidebar-close svg{width:16px;height:16px}.menu-btn{display:none}@media (width<=760px){.menu-btn{display:flex}.topbar{gap:10px;padding:0 16px}.topbar .icon-btn:not(.menu-btn){display:none}.topbar .btn-primary{padding:9px 12px}.topbar .btn-primary span{display:none}.page-title{font-size:1.0625rem}}@media (width>=761px){.sidebar{transition:margin-left .25s cubic-bezier(.4,0,.2,1)}.app.sidebar-collapsed .sidebar{margin-left:-232px}.app.sidebar-collapsed .menu-btn{display:flex}.sidebar-overlay{display:none}}.holder-btn{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:9px;width:100%;margin:-4px -6px;padding:4px 6px;font-family:inherit;transition:background .15s,border-color .15s;display:flex}.holder-btn:hover{background:var(--paper);border-color:var(--line)}.holder-avatar{background:var(--clay-bg);width:28px;height:28px;color:var(--clay-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.6562rem;font-weight:600;display:flex}.holder-text{min-width:0}.holder-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;display:block;overflow:hidden}.holder-contract{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);font-size:.6562rem;display:block}.holder-empty{color:var(--text-muted);font-size:.7812rem}.cp-identity{align-items:center;gap:14px;min-width:0;display:flex}.cp-avatar{width:44px;height:44px;font-size:.875rem;font-weight:600}.cp-body{padding:4px 26px 20px}.cp-section{padding-top:18px}.cp-section+.cp-section{border-top:1px solid var(--line);margin-top:6px}.cp-section-title{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px;font-size:.6562rem;font-weight:500}.cp-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:20px;padding:7px 0;font-size:.8438rem;display:flex}.cp-row:last-of-type{border-bottom:none}.cp-row>span:first-child{color:var(--text-secondary);flex-shrink:0}.cp-row>span:last-child{color:var(--text-primary);text-align:right;overflow-wrap:anywhere}.cp-row-total{border-top:1px solid var(--line-strong);margin-top:4px;padding-top:11px;font-size:.9375rem}.cp-row-total>span:last-child{font-size:1rem}.cp-note{color:var(--text-muted);margin:12px 0 0;font-size:.7188rem;line-height:1.5}.modal-actions .btn-primary span{display:inline}@media (width<=760px){.modal-actions .btn-primary{padding:9px 16px}}.row-actions{justify-content:flex-end;align-items:center;gap:4px;display:flex}.row-action{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:flex}.row-action svg{width:15px;height:15px}.row-action:hover{background:var(--paper);border-color:var(--line);color:var(--text-primary)}.row-action.danger:hover{background:var(--red-bg);border-color:var(--red);color:var(--red-dark)}.row-actions-locked{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);text-align:right;font-size:.6562rem}.form-error{background:var(--red-bg);border:1px solid var(--red);color:var(--red-dark);border-radius:8px;margin:0;padding:10px 12px;font-size:.8125rem}.form-blocked{background:var(--amber-bg);border:1px solid var(--amber);color:var(--text-primary);border-radius:8px;margin:0;padding:12px 14px;font-size:.8125rem;line-height:1.55}.form-warning{background:var(--red-bg);border:1px solid var(--red);color:var(--text-primary);border-radius:8px;margin:0;padding:12px 14px;font-size:.8125rem;line-height:1.55}.danger-eyebrow{color:var(--red-dark)}.btn-danger{color:#fff;background:var(--red-dark);border:1px solid var(--red-dark);min-width:116px;font-family:var(--font-body);cursor:pointer;border-radius:8px;padding:9px 16px;font-size:.8438rem;font-weight:500}.btn-danger:hover:not(:disabled){background:#9e4043}.btn-danger:disabled{opacity:.5;cursor:not-allowed}textarea{border:1px solid var(--line-strong);background:var(--card);color:var(--text-primary);resize:vertical;border-radius:8px;padding:9px 11px;font-family:inherit;font-size:.8438rem}input:disabled{background:var(--paper);color:var(--text-muted);cursor:not-allowed}.role-switcher{border:1px dashed var(--line-strong);background:var(--paper);border-radius:8px;align-items:center;gap:6px;padding:4px 6px 4px 10px;display:flex}.role-switcher-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.5938rem}.role-switcher select{border:1px solid var(--line);background:var(--card);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:3px 6px;font-family:inherit;font-size:.7812rem}@media (width<=1180px){.role-switcher{display:none}}.col-actions{text-align:right;white-space:nowrap;width:1%}.app-booting{background:var(--paper);min-height:100dvh;color:var(--text-secondary);place-items:center;font-size:.875rem;display:grid}.error-boundary{padding:24px}.error-boundary-page{background:var(--paper);place-items:center;min-height:100dvh;display:grid}.error-boundary-card{flex-direction:column;gap:12px;max-width:520px;display:flex}.error-boundary-card h2{margin:0}.error-boundary-detail{background:var(--surface-sunken,#0000000a);color:var(--text-secondary);font-family:var(--font-mono,ui-monospace, monospace);word-break:break-word;border-radius:8px;margin:0;padding:8px 12px;font-size:.8125rem}.error-boundary-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.login-screen{background:var(--paper);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:var(--card);border:1px solid var(--line);width:min(400px,100%);box-shadow:var(--shadow-card);border-radius:16px;flex-direction:column;gap:16px;padding:30px 28px 28px;display:flex}.login-brand{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding-bottom:18px;display:flex}.login-title{font-family:var(--font-display);color:var(--text-primary);margin:0;font-size:1.3125rem;font-weight:600}.login-submit{justify-content:center;margin-top:4px}.login-submit span{display:inline}.login-submit:disabled{opacity:.6;cursor:not-allowed}.state-message{text-align:center;color:var(--text-secondary);margin:0;padding:30px 0;font-size:.8438rem}.sidebar-foot{position:relative}.sign-out{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;margin-left:auto;padding:0;transition:background .15s,color .15s,border-color .15s;display:flex}.sign-out svg{width:15px;height:15px}.sign-out:hover{background:var(--paper);border-color:var(--line);color:var(--red-dark)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.audit-list{flex-direction:column;display:flex}.audit-item{border-bottom:1px solid var(--line);padding:16px 0}.audit-item:last-child{border-bottom:none}.audit-head{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.audit-actor{color:var(--text-primary);align-items:baseline;gap:7px;font-size:.8125rem;display:flex}.audit-role{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.625rem}.audit-time{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:.6875rem}.audit-diff{background:var(--paper);border:1px solid var(--line);border-radius:8px;margin-top:11px;padding:10px 12px}.audit-diff-row{grid-template-columns:minmax(90px,140px) 1fr auto 1fr;align-items:baseline;gap:10px;padding:4px 0;font-size:.8125rem;display:grid}.audit-field{color:var(--text-secondary);font-size:.75rem}.audit-before{font-family:var(--font-mono);color:var(--text-muted);overflow-wrap:anywhere;text-decoration:line-through}.audit-arrow{color:var(--text-muted)}.audit-after{font-family:var(--font-mono);color:var(--ink);overflow-wrap:anywhere;font-weight:500}.audit-reason{border-left:2px solid var(--clay);color:var(--text-secondary);margin:11px 0 0;padding-left:11px;font-size:.8125rem;font-style:italic;line-height:1.55}.audit-pager{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding-top:16px;display:flex}.audit-range{font-family:var(--font-mono);color:var(--text-muted);font-size:.7188rem}@media (width<=760px){.audit-diff-row{grid-template-columns:1fr;gap:2px;padding:6px 0}.audit-arrow{display:none}.audit-time{width:100%;margin-left:0}}.holder-btn.is-static{cursor:default;margin:0;padding:0}.holder-btn.is-static:hover{background:0 0;border-color:#0000}.table-search{border:1px solid var(--line);background:var(--card);min-width:0;color:var(--text-muted);border-radius:20px;flex:0 250px;align-items:center;gap:7px;padding:6px 13px;display:flex}.table-search:focus-within{border-color:var(--clay)}.table-search svg{flex-shrink:0;width:15px;height:15px}.table-search input{width:100%;min-width:0;color:var(--text-primary);background:0 0;border:0;padding:0;font-family:inherit;font-size:.7812rem}.table-search input:focus{outline:none}.phone-input{gap:8px;display:flex}.phone-input .phone-dial{width:auto;max-width:44%;font-family:var(--font-mono);flex:none;font-size:.8125rem}.phone-input input{flex:auto;min-width:0}@media (width<=760px){.phone-input .phone-dial{max-width:108px}}.contract-list{flex-direction:column;gap:6px;display:flex}.contract-line{white-space:nowrap;align-items:center;gap:8px;display:flex}.contract-line .cell-project{color:var(--text-secondary);font-size:.7812rem}.cell-notes{white-space:normal;overflow-wrap:break-word;max-width:72ch;color:var(--text-secondary);font-size:.7812rem;line-height:1.45;display:block}.col-notes{width:100%}.customers-table tbody td{vertical-align:top}@media (width<=760px){.table-search{flex-basis:100%}}.contracts-table tbody.contract-group:not(:last-child) tr:last-child td{border-bottom:1px solid var(--line)}.contracts-table tbody.contract-group:last-child tr:last-child td{border-bottom:none}.group-row td{background:var(--paper);border-bottom:1px solid var(--line-strong);padding-top:11px;padding-bottom:11px}.group-row:hover{background:var(--paper)}.group-toggle{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:0;display:flex}.group-toggle svg{width:15px;height:15px;color:var(--text-muted);flex-shrink:0;transition:transform .15s;transform:rotate(-90deg)}.group-toggle.open svg{transform:rotate(0)}.group-toggle:hover .holder-name{color:var(--clay-dark)}.cell-money.is-total{font-weight:700}.cell-money.is-balance{color:var(--clay-dark)}.group-split{font-size:.75rem}.contracts-table tr.is-grouped .holder-empty{color:var(--text-muted)}.contract-open{cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:3px;padding:0;font-family:inherit;display:flex}.contract-kind{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem}.contract-open:hover .code-badge{border-color:var(--clay);color:var(--clay-dark)}.cell-sub{color:var(--text-muted);font-size:.6875rem;font-family:var(--font-body);margin-top:3px;font-weight:400;display:block}.cell-sub.warn,.cell-money.warn{color:var(--clay-dark)}.contract-progress-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.contract-progress-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 4px;font-size:.6875rem}.contract-progress-balance{font-family:var(--font-mono);color:var(--ink);margin:0;font-size:1.375rem;font-weight:600}.contract-progress{background:var(--line);border-radius:4px;height:8px;overflow:hidden}.contract-progress-fill{background:var(--green);border-radius:4px;height:100%;transition:width .2s;display:block}.contract-progress-foot{color:var(--text-secondary);margin:8px 0 0;font-size:.75rem}.cp-note-body{color:var(--text-secondary);white-space:pre-wrap;margin:0;font-size:.8125rem;line-height:1.5}.cp-docs-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.cp-docs-head .cp-section-title{margin-bottom:10px}.cp-docs{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.cp-doc{border:1px solid var(--line);background:var(--paper);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.cp-doc-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cp-doc-name{text-align:left;color:inherit;text-overflow:ellipsis;white-space:nowrap;padding:0;font-size:.8125rem;overflow:hidden}.cp-doc-sub{font-family:var(--font-mono);color:var(--text-muted);font-size:.6875rem}.contract-doc-mark{color:var(--text-muted);flex:none;align-items:center;gap:2px;display:inline-flex}.contract-doc-mark svg{width:13px;height:13px}.contract-doc-mark span{font-family:var(--font-mono);font-size:.625rem}.split-preview{padding:0 26px 18px}.split-table th{padding:8px 10px}.split-table td{white-space:nowrap;padding:10px}.split-table td:first-child{padding-left:0}.split-table td:last-child,.split-table th:last-child{padding-right:0}.split-table{width:100%}.split-table .input-with-prefix,.split-table .input-with-prefix input{width:100%;min-width:0}@media (width<=640px){.split-preview{padding:0 16px 18px}.split-table thead{display:none}.split-table,.split-table tbody{display:block}.split-table tr{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:10px 0;display:grid}.split-table tr:last-child{border-bottom:none}.split-table td,.split-table td:first-child,.split-table td:last-child{border-bottom:none;padding:0;display:block}.split-table td:first-child{grid-column:1/-1}.split-table td:nth-child(2){text-align:left}.split-table td:last-child{width:8.5rem}}.modal-foot-note{text-align:left;align-self:center;max-width:60%;margin-right:auto}.contracts-cards{display:none}@media (width<=760px){.contracts-desktop{display:none}.contracts-cards{flex-direction:column;gap:16px;padding:14px;display:flex}.contract-card-group{flex-direction:column;gap:8px;display:flex}.contract-card-head{align-items:center;gap:10px;padding-bottom:4px;display:flex}.contract-card{text-align:left;border:1px solid var(--line);background:var(--card);width:100%;box-shadow:var(--shadow-card);cursor:pointer;border-radius:12px;padding:14px;font-family:inherit;display:block}.contract-card-group .contract-card-head~.contract-card-shell{margin-left:14px}.contract-card-shell{flex-direction:column;display:flex}.contract-card-contact{border:1px solid var(--line);background:var(--card);border-top:0;border-radius:0 0 12px 12px;justify-content:flex-end;gap:4px;margin-top:-1px;padding:4px 8px;display:flex}.contract-card-contact .contact-actions{gap:2px}.contract-card-shell .contract-card{border-radius:12px 12px 0 0}.contract-card-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.contract-card-name{color:var(--text-primary);margin:0;font-size:.875rem;font-weight:500}.contract-card-lot{color:var(--text-secondary);margin:2px 0 0;font-size:.75rem}.contract-card-balance{border-top:1px dashed var(--line-strong);justify-content:space-between;align-items:baseline;margin-top:11px;padding-top:10px;display:flex}.contract-card-balance span{color:var(--text-secondary);font-size:.75rem}.contract-card-balance strong{font-family:var(--font-mono);color:var(--clay-dark);font-size:1rem}.contract-card-foot{color:var(--text-muted);margin:8px 0 0;font-size:.7188rem}.split-preview{padding:0 18px 14px}.modal-foot-note{display:none}}.contract-note{white-space:normal;overflow-wrap:break-word;max-width:clamp(20ch,22vw,60ch);color:var(--text-muted);margin-top:3px;font-size:.6875rem;line-height:1.4;display:block}.contracts-table .contract-row td{vertical-align:top}.contract-row .holder-btn.is-static:has(.contract-note){align-items:flex-start}.contract-row.is-grouped .holder-btn.is-static{gap:7px}.contract-card-note{color:var(--text-muted);text-align:left;margin:6px 0 0;font-size:.6875rem;line-height:1.45}.contract-lot{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.contracts-table thead th,.contracts-table tbody td{padding-left:12px;padding-right:12px}.contracts-table thead th:first-child,.contracts-table tbody td:first-child{padding-left:18px}.contracts-table thead th:last-child,.contracts-table tbody td:last-child{padding-right:18px}.contracts-table tr.is-grouped td:first-child{padding-left:34px}.contract-row{cursor:pointer}.picker-label{color:var(--text-primary);margin:0;font-size:.7812rem;font-weight:500}.picker{flex-direction:column;gap:8px;display:flex}.picker-search{background:var(--paper);border:1px solid var(--line-strong);border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 12px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.picker-search:focus-within{background:var(--card);border-color:var(--clay);box-shadow:0 0 0 3px var(--clay-bg)}.picker-search svg{width:15px;height:15px;color:var(--text-muted);flex:none}.picker-search input{width:100%;color:var(--text-primary);font-family:var(--font-body);background:0 0;border:none;outline:none;padding:0;font-size:.8438rem}.picker-list{background:var(--card);border:1px solid var(--line);border-radius:8px;max-height:268px;overflow-y:auto}.picker-option{text-align:left;border:none;border-bottom:1px solid var(--line);cursor:pointer;width:100%;font-family:var(--font-body);background:0 0;align-items:center;gap:10px;padding:9px 12px;display:flex}.picker-option:last-child{border-bottom:none}.picker-option:hover,.picker-option:focus-visible{background:var(--clay-bg);outline:none}.picker-option .holder-text{flex:auto;min-width:0}.picker-option .holder-name,.picker-option .holder-contract{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-group-label{z-index:1;background:var(--paper);border-bottom:1px solid var(--line);color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:10px;margin:0;padding:7px 12px;font-size:.6562rem;font-weight:500;display:flex;position:sticky;top:0}.picker-group-label span{color:var(--text-muted);letter-spacing:0;text-transform:none;flex:none}.picker-price{color:var(--text-primary);font-family:var(--font-mono);flex:none;font-size:.75rem}.picker-tag{background:var(--slate-bg);color:var(--slate-dark);font-family:var(--font-mono);border-radius:999px;flex:none;padding:2px 7px;font-size:.625rem}.picker-empty,.picker-more{color:var(--text-secondary);text-align:center;margin:0;padding:14px;font-size:.8125rem;line-height:1.5}.picker-more{border-top:1px solid var(--line);color:var(--text-muted);font-size:.75rem}.form-field>.picker-empty{background:var(--paper);border:1px solid var(--line);text-align:left;border-radius:8px}.picker-chosen{background:var(--green-bg);border:1px solid var(--green);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.picker-chosen .holder-text{flex:auto;min-width:0}.picker-chosen .holder-name,.picker-chosen .holder-contract{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-chosen .link-btn{flex:none}.form-note{background:var(--paper);border:1px solid var(--line-strong);color:var(--text-secondary);border-radius:8px;margin:0;padding:12px 14px;font-size:.8125rem;line-height:1.55}.form-note strong{color:var(--text-primary)}@media (width<=760px){.picker-list{max-height:208px}}.dash-toolbar{flex-wrap:wrap}.dash-month{align-items:center;gap:6px;display:flex}.dash-step{justify-content:center;align-items:center;padding:6px;line-height:0;display:inline-flex}.dash-step svg{width:15px;height:15px;transform:rotate(90deg)}.dash-step.is-next svg{transform:rotate(-90deg)}.dash-step:disabled{opacity:.4;cursor:not-allowed}.dash-month-name{text-align:center;text-transform:none;min-width:9.5ch;font-size:.9062rem;font-weight:600}.dash-headline{grid-template-columns:minmax(300px,1.15fr) minmax(0,2fr);gap:16px;margin-bottom:16px;display:grid}.dash-hero{flex-direction:column;gap:6px;padding:20px 22px;display:flex}.dash-hero-label{color:var(--text-secondary);margin:0;font-size:.8125rem}.dash-hero-value{color:var(--ink);font-family:var(--font-mono);letter-spacing:-.02em;margin:0;font-size:2rem;font-weight:600;line-height:1.1}.dash-hero-meta{color:var(--text-muted);align-items:baseline;gap:7px;margin:0;font-size:.75rem;display:flex}.dash-delta{font-family:var(--font-mono);font-weight:600}.dash-delta.is-up{color:var(--green-dark)}.dash-delta.is-down{color:var(--clay-dark)}.dash-delta.is-flat{color:var(--text-muted)}.dash-hero-rate{margin-top:auto;padding-top:14px}.dash-hero-rate p{color:var(--text-secondary);margin:8px 0 0;font-size:.75rem;line-height:1.5}.dash-hero-rate strong{color:var(--text-primary);font-family:var(--font-mono)}.dash-hero-rate.is-quiet{color:var(--text-muted);margin:auto 0 0;font-size:.75rem}.dash-meter{background:var(--line);border-radius:4px;height:7px;overflow:hidden}.dash-meter-fill{border-radius:4px;height:100%;transition:width .3s;display:block}.dash-meter-fill.is-good{background:var(--green)}.dash-meter-fill.is-warn{background:var(--amber)}.dash-meter-fill.is-bad{background:var(--clay)}.dash-tiles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;display:grid}.dash-tile{flex-direction:column;gap:4px;padding:16px 18px;display:flex}.dash-tile-label{color:var(--text-secondary);margin:0;font-size:.75rem}.dash-tile-value{color:var(--ink);font-family:var(--font-mono);margin:0;font-size:1.1875rem;font-weight:600}.dash-tile-value.is-warn{color:var(--clay-dark)}.dash-tile-value.is-good{color:var(--green-dark)}.dash-tile-detail{color:var(--text-muted);margin:auto 0 0;padding-top:6px;font-size:.6875rem;line-height:1.4}.dash-card{margin-bottom:16px}.dash-card-body{padding:16px 18px 18px}.dash-note{color:var(--text-muted);margin:12px 0 0;font-size:.6875rem;line-height:1.55}.dash-figure{color:var(--clay-dark);font-family:var(--font-mono);margin:0;font-size:1.375rem;font-weight:600}.dash-figure-label{color:var(--text-secondary);margin:4px 0 0;font-size:.75rem;line-height:1.5}.chart-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.chart-legend{flex-wrap:wrap;gap:14px;display:flex}.chart-key{color:var(--text-secondary);align-items:center;gap:6px;font-size:.6875rem;display:inline-flex}.chart-key-bar{background:var(--clay-dark);border-radius:2px;width:10px;height:10px}.chart-key-tick{background:var(--text-secondary);width:14px;height:2px}.chart-readout{text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:8px;min-height:1.4rem;margin:0;display:flex}.chart-readout-month{color:var(--text-muted);font-size:.6875rem}.chart-readout-value{color:var(--ink);font-family:var(--font-mono);font-size:.875rem;font-weight:600}.chart-readout-target{color:var(--text-secondary);font-family:var(--font-mono);font-size:.75rem}.chart-body{position:relative}.chart-grid{pointer-events:none;position:absolute;inset:0 0 22px}.chart-gridline{border-top:1px solid var(--line);height:0;position:absolute;left:0;right:0}.chart-gridline i{color:var(--text-muted);font-family:var(--font-mono);font-size:.625rem;font-style:normal;position:absolute;bottom:3px;right:0}.chart-columns{align-items:flex-end;gap:2px;height:190px;margin:0;padding:0;list-style:none;display:flex}.chart-column{flex:1 1 0;min-width:0;height:100%}.chart-slot{cursor:pointer;background:0 0;border:none;flex-direction:column;width:100%;height:100%;padding:0;font-family:inherit;display:flex}.chart-track{flex:1;justify-content:center;align-items:flex-end;min-height:0;display:flex;position:relative}.chart-bar{background:var(--clay-dark);border-radius:4px 4px 0 0;width:min(24px,100%);min-height:2px;transition:background .15s}.chart-slot:hover .chart-bar,.chart-slot:focus-visible .chart-bar{background:var(--clay)}.chart-slot.is-selected .chart-bar{background:var(--ink)}.chart-target{background:var(--text-secondary);border-radius:1px;height:2px;position:absolute;left:8%;right:8%}.chart-axis{height:22px;color:var(--text-muted);font-family:var(--font-mono);text-align:center;white-space:nowrap;padding-top:6px;font-size:.625rem;overflow:hidden}.chart-slot.is-selected .chart-axis{color:var(--text-primary);font-weight:600}.chart-table{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.chart-table summary{color:var(--text-secondary);cursor:pointer;font-size:.75rem}.chart-table table{margin-top:10px}.chart-table tbody td{padding:7px 10px;font-size:.7812rem}.chart-table thead th{padding:7px 10px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dash-splits{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;display:grid}.dash-split-title{color:var(--text-secondary);margin:0 0 10px;font-size:.75rem;font-weight:500}.dash-split-list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.dash-split-list li{grid-template-columns:5.5rem 1fr auto;align-items:center;gap:10px;display:grid}.dash-split-label{color:var(--text-primary);font-size:.75rem}.dash-split-track{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.dash-split-fill{background:var(--clay-dark);border-radius:3px;height:100%;display:block}.dash-split-value{color:var(--text-secondary);white-space:nowrap;font-size:.7188rem}.dash-buckets{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.dash-bucket{border:1px solid var(--line);background:var(--paper);border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;display:flex}.dash-bucket-count{color:var(--ink);font-family:var(--font-mono);margin:6px 0 0;font-size:1.5rem;font-weight:600;line-height:1}.dash-bucket-detail{color:var(--text-secondary);margin:0;font-size:.6875rem}.dash-bucket-money{color:var(--text-muted);font-family:var(--font-mono);margin:4px 0 0;font-size:.6875rem}.dash-changes{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:20px;padding-top:18px;display:grid}.dash-change-title{color:var(--text-secondary);align-items:center;gap:8px;margin:0 0 10px;font-size:.75rem;display:flex}.dash-change-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.dash-change-empty{color:var(--text-muted);margin:0;font-size:.75rem}.dash-table tbody td{vertical-align:top}.dash-table .cell-sub{color:var(--text-muted);font-size:.6875rem;font-family:var(--font-body);margin-top:3px;font-weight:400;display:block}.dash-table .cell-sub.warn{color:var(--clay-dark)}.dash-table .cell-project.cell-sub{display:flex}.dash-attention{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px;display:grid}.dash-attention .dash-card{margin-bottom:0}.dash-list{margin:0;padding:6px 8px;list-style:none}.dash-list li{border-radius:8px;align-items:center;gap:10px;padding:10px;display:flex}.dash-list li+li{border-top:1px solid var(--line)}.dash-list-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.dash-list-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.dash-list .cell-sub{color:var(--text-muted);font-size:.6875rem}.dash-list-note{color:var(--text-secondary);font-family:var(--font-mono);text-align:right;white-space:nowrap;font-size:.6875rem}.dash-list-note.is-urgent{color:var(--red-dark);font-weight:600}.dash-flags{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:18px;padding-top:18px;display:grid}.dash-flag-label{color:var(--text-secondary);margin:0;font-size:.75rem}.dash-flag-value{color:var(--ink);font-family:var(--font-mono);margin:4px 0 0;font-size:1.0625rem;font-weight:600}.dash-flag-note{color:var(--text-muted);margin:6px 0 0;font-size:.6875rem;line-height:1.5}.dash-flag-list{flex-direction:column;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.dash-flag-list li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dash-flag-list-name{font-size:.7812rem}@media (width<=900px){.dash-headline{grid-template-columns:1fr}}@media (width<=620px){.chart-body{overflow-x:auto}.chart-columns{min-width:460px}.chart-grid{display:none}.dash-hero-value{font-size:1.625rem}}.dash-layout-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.dash-layout-bar.is-editing{z-index:5;border:1px solid var(--line-strong);background:var(--card);box-shadow:var(--shadow-card);border-radius:10px;margin:0 -4px 14px;padding:10px 14px;position:sticky;top:0}.dash-layout-hint{color:var(--text-secondary);margin:0;font-size:.75rem;line-height:1.45}.dash-layout-error{color:var(--red-dark);font-size:.75rem}.dash-section{border:1px dashed var(--line-strong);background:var(--paper);border-radius:14px;margin-bottom:16px}.dash-section-bar{border-bottom:1px dashed var(--line-strong);cursor:grab;align-items:center;gap:8px;padding:8px 10px 8px 8px;display:flex}.dash-section-bar:active{cursor:grabbing}.dash-section-grip{color:var(--text-muted);display:flex}.dash-section-grip svg{width:16px;height:16px}.dash-section-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);flex:1;font-size:.7812rem;font-weight:500;overflow:hidden}.dash-section-bar .row-action svg{width:15px;height:15px}.dash-section-up svg{transform:rotate(180deg)}.dash-section-bar .row-action:disabled{opacity:.3;cursor:not-allowed}.dash-section-body{padding:14px 12px 0}.dash-section-body>*{margin-bottom:14px}.dash-section.is-hidden{border-style:solid;border-color:var(--line);background:0 0}.dash-section.is-hidden .dash-section-body{opacity:.4;pointer-events:none}.dash-section.is-hidden .dash-section-name{color:var(--text-muted);text-decoration:line-through}.dash-section.is-dragging{opacity:.5;border-color:var(--clay)}@media (width<=620px){.dash-layout-hint{display:none}.dash-section-body{padding:12px 6px 0}}button.dash-tile{border:1px solid var(--line);width:100%;font:inherit;text-align:left;cursor:pointer;margin:0;transition:border-color .12s,box-shadow .12s,transform .12s}button.dash-tile:hover,button.dash-tile:focus-visible{border-color:var(--line-strong);box-shadow:var(--shadow-card)}button.dash-tile:active{transform:translateY(1px)}button.dash-tile.is-open{border-color:var(--ink-line)}.dash-tile-label{justify-content:space-between;align-items:center;gap:8px;display:flex}.dash-tile-caret,.dash-row-caret{color:var(--text-muted);flex:none;transition:transform .14s;display:inline-flex}.dash-tile-caret svg{width:14px;height:14px}.dash-row-caret svg{width:13px;height:13px}.dash-tile.is-open .dash-tile-caret,.dash-row-caret.is-open{transform:rotate(180deg)}.dash-row-caret{margin-right:2px}.dash-drilldown{border-color:var(--line-strong);margin-top:12px;animation:.16s ease-out dash-open}.dash-headline>.dash-drilldown{grid-column:1/-1;margin-top:0}@keyframes dash-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.dash-payment-rows{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.dash-payment-row{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:baseline;gap:8px;margin-left:-6px;padding:2px 6px;display:flex}.dash-payment-row:hover,.dash-payment-row:focus-visible{background:var(--slate-bg)}.dash-payment-amount{font-family:var(--font-mono);color:var(--text-secondary);font-size:.75rem}.dash-drill-link{color:var(--clay-dark);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin:10px 0 2px;padding:0;font-size:.8125rem;font-weight:500;text-decoration:underline;display:inline-block}.dash-drill-link:hover{color:var(--ink)}.dash-table tr.is-clickable{cursor:pointer}.dash-table tr.is-clickable:hover,.dash-table tr.is-open{background:var(--slate-bg)}.dash-subrow>td{background:var(--paper);padding:0 0 10px}.dash-table.is-nested{width:100%;margin:0;font-size:.8125rem}.dash-table.is-nested th{font-size:.6875rem}.dash-payer-total{display:none}@media (width<=760px){.dash-table.is-payers tbody .col-money,.dash-table.is-payers thead th.col-money{display:none}.dash-payer-total{font-family:var(--font-mono);display:block}.dash-payment-row{flex-wrap:wrap;gap:4px 8px}.dash-table.is-payers tfoot .col-money{display:revert}}.is-revealed>.dash-card,.is-revealed>.card{animation:1.6s ease-out dash-reveal}@keyframes dash-reveal{0%,70%{box-shadow:0 0 0 2px var(--clay)}to{box-shadow:var(--shadow-card)}}@media (prefers-reduced-motion:reduce){.dash-drilldown{animation:none}.is-revealed>.dash-card,.is-revealed>.card{box-shadow:0 0 0 2px var(--clay);animation:none}.dash-tile-caret,.dash-row-caret{transition:none}}.col-contact{white-space:nowrap;text-align:right;width:1%;padding-left:4px!important;padding-right:6px!important}.contact-actions{gap:0;display:inline-flex}.contact-btn{width:25px;height:25px;color:var(--text-muted);border-radius:8px;justify-content:center;align-items:center;text-decoration:none;transition:background-color .12s,color .12s;display:inline-flex}.contact-btn svg{width:16px;height:16px}.contact-btn:hover,.contact-btn:focus-visible{background:var(--slate-bg);color:var(--ink)}.contact-btn.is-whatsapp:hover,.contact-btn.is-whatsapp:focus-visible{background:var(--green-bg);color:var(--green-dark)}.contact-btn.is-email:hover,.contact-btn.is-email:focus-visible{background:var(--amber-bg);color:var(--amber-dark)}.contact-btn.is-disabled{color:var(--line-strong);cursor:not-allowed}@media (width<=900px){.contact-btn{width:34px;height:34px}}.duplicate-matches{font-variant-numeric:tabular-nums;gap:4px;margin:8px 0;padding:0;list-style:none;display:grid}.duplicate-matches li{font-size:.8125rem}
