:root,:root[data-theme=dark]{--bg: #09090b;--bg-elev: #18181b;--bg-hover: #27272a;--bg-active: #1e293b;--bg-surface: #18181b;--bg-secondary: #18181b;--bg-input: #09090b;--fg: #fafafa;--fg-secondary: #a1a1aa;--fg-muted: #71717a;--fg-dim: #71717a;--fg-on-accent: #ffffff;--border: #27272a;--border-subtle: #1f1f23;--border-focus: #3b82f6;--accent: #3b82f6;--accent-hover: #60a5fa;--accent-dim: rgba(59,130,246,.1);--ok: #22c55e;--ok-dim: rgba(34,197,94,.1);--ok-bg: rgba(34,197,94,.1);--warn: #eab308;--warn-dim: rgba(234,179,8,.1);--warn-bg: rgba(234,179,8,.1);--err: #ef4444;--err-dim: rgba(239,68,68,.1);--err-bg: rgba(239,68,68,.1);--info: #06b6d4;--info-dim: rgba(6,182,212,.1);--logic: #a855f7;--logic-dim: rgba(168,85,247,.1);--radius: 8px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--space-xs: 4px;--space-1: 4px;--space-sm: 8px;--space-2: 8px;--space-md: 12px;--space-3: 12px;--space-lg: 16px;--space-4: 16px;--space-xl: 24px;--space-5: 20px;--space-2xl: 32px;--space-6: 24px;--space-8: 32px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", system-ui, sans-serif;--font-mono: "SF Mono", "Cascadia Code", "Fira Code", Consolas, monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--line-height: 1.5;--line-height-tight: 1.25;--shadow-sm: 0 1px 3px rgba(22,163,74,.04), 0 1px 2px rgba(0,0,0,.2);--shadow-md: 0 4px 12px rgba(22,163,74,.06), 0 2px 4px rgba(0,0,0,.2);--shadow-lg: 0 12px 32px rgba(22,163,74,.08), 0 4px 8px rgba(0,0,0,.3);--shadow-focus: 0 0 0 3px rgba(59,130,246,.3);--transition-fast: .1s ease;--transition-base: .15s ease;--transition-slow: .3s ease;--z-base: 1;--z-dropdown: 100;--z-modal: 200;--z-toast: 300;--z-fab: 400}:root[data-theme=light]{--bg: #ffffff;--bg-elev: #f4f4f5;--bg-hover: #e4e4e7;--bg-active: #dbeafe;--bg-surface: #f4f4f5;--bg-secondary: #f4f4f5;--bg-input: #f4f4f5;--fg: #09090b;--fg-secondary: #52525b;--fg-muted: #71717a;--fg-dim: #71717a;--fg-on-accent: #ffffff;--border: #d4d4d8;--border-subtle: #e4e4e7;--border-focus: #2563eb;--accent: #2563eb;--accent-hover: #3b82f6;--accent-dim: rgba(37,99,235,.1);--ok: #16a34a;--ok-dim: rgba(22,163,74,.1);--ok-bg: rgba(22,163,74,.1);--warn: #ca8a04;--warn-dim: rgba(202,138,4,.1);--warn-bg: rgba(202,138,4,.1);--err: #dc2626;--err-dim: rgba(220,38,38,.1);--err-bg: rgba(220,38,38,.1);--info: #0891b2;--info-dim: rgba(8,145,178,.1);--logic: #9333ea;--logic-dim: rgba(147,51,234,.1);--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 12px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.15);--shadow-focus: 0 0 0 3px rgba(37,99,235,.2)}:root,:root[data-theme=dark]{--bg2: #18181b;--bg3: #27272a;--border2: #3f3f46;--text: #fafafa;--text2: #a1a1aa;--text3: #71717a;--green: #22c55e;--green-bg: rgba(34,197,94,.1);--red: #ef4444;--red-bg: rgba(239,68,68,.1);--blue: #3b82f6;--yellow: #eab308;--yellow-bg: rgba(234,179,8,.1);--font-xs: 11px;--font-sm: 13px;--font-body: 14px;--font-lg: 18px}:root[data-theme=light]{--bg2: #f4f4f5;--bg3: #e4e4e7;--border2: #a1a1aa;--text: #09090b;--text2: #52525b;--text3: #71717a;--green: #16a34a;--green-bg: rgba(22,163,74,.1);--red: #dc2626;--red-bg: rgba(220,38,38,.1);--blue: #2563eb;--yellow: #ca8a04;--yellow-bg: rgba(202,138,4,.1)}select option{background:var(--bg-elev);color:var(--fg)}:root[data-theme=light] select option{background:#f4f4f5;color:#09090b}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{margin:0;padding:0;height:100%}html{font-size:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;height:100vh;display:flex;flex-direction:column}header,.app-header{flex-shrink:0;position:sticky;top:0;z-index:10}nav,.tab-nav{flex-shrink:0;position:sticky;top:0;z-index:9}main{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}.tab-panels{flex:1;overflow-y:auto;min-height:0}.tab-panel{display:none;height:100%;overflow-y:auto;padding:16px 24px}footer,.hub-footer{flex-shrink:0}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.hidden{display:none!important}.app-header{display:flex;align-items:center;justify-content:space-between;background:var(--bg-elev);border-bottom:1px solid var(--border);padding:var(--space-2) var(--space-4)}.app-title{font-size:15px;font-weight:700;letter-spacing:-.02em}.standalone-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);background:var(--warn-bg);color:var(--warn);font-size:var(--text-sm);text-align:center;position:relative;border-bottom:1px solid var(--border)}.banner-x{background:none;border:none;color:var(--warn);cursor:pointer;padding:var(--space-xs);margin-left:auto}.hub-footer{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:4px 16px;font-size:11px;color:var(--fg-muted);border-top:1px solid var(--border-subtle, var(--border));background:var(--bg)}.hub-footer-hub{font-weight:600;color:var(--fg-secondary, var(--fg-muted))}.hub-footer a{color:var(--fg-muted);text-decoration:none}.hub-footer a:hover{color:var(--fg)}.hub-footer a.active{color:var(--accent)}.hub-footer a.dead{opacity:.3;pointer-events:none}.hub-footer-spacer{flex:1}.hub-footer-copy{font-size:10px}.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg3);color:var(--text);font-family:var(--font, inherit);font-size:var(--font-sm);font-weight:500;cursor:pointer;min-height:var(--btn-h-md);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.btn:hover{background:var(--border);border-color:var(--border2)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;min-height:var(--btn-h-lg)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:var(--red-bg);border-color:var(--red);color:var(--red);min-height:var(--btn-h-md)}.btn-danger:hover{background:var(--red);color:#fff}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs);min-height:var(--btn-h-sm)}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-md)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);cursor:pointer}.card-title{font-size:var(--font-body);font-weight:600;color:var(--text)}.card-body{overflow:hidden;transition:max-height .25s ease}.card-body.collapsed{max-height:0;padding:0}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.data-table th{text-align:left;padding:var(--space-sm) var(--space-md);color:var(--text2);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);color:var(--text)}.data-table tr:hover td{background:var(--bg3)}.input,.select,.textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--font-body);font-family:inherit;outline:none;transition:border-color .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.textarea{min-height:80px;resize:vertical}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;margin-bottom:var(--space-xs);color:var(--text2);font-size:var(--font-sm)}.checkbox-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.toggle{position:relative;width:40px;height:22px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border2);border-radius:11px;cursor:pointer;transition:background .2s}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:var(--text);border-radius:50%;transition:transform .2s}.toggle input:checked+.toggle-slider{background:var(--accent)}.toggle input:checked+.toggle-slider:before{transform:translate(18px)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);width:90%;max-width:520px;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border)}.modal-title{font-size:var(--font-body);font-weight:600}.modal-close{background:none;border:none;color:var(--text3);font-size:var(--font-lg);cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--text)}.modal-body{padding:var(--space-lg)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border)}.toast-container{position:fixed;bottom:var(--space-lg);right:var(--space-lg);z-index:2000;display:flex;flex-direction:column;gap:var(--space-sm)}.toast{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);color:var(--text);font-size:var(--font-sm);animation:toast-in .25s ease;max-width:360px}.toast.toast-success{border-color:var(--green)}.toast.toast-error{border-color:var(--red)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.badge{display:inline-block;padding:2px var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:500}.badge-green{background:var(--green-bg);color:var(--green)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-blue{background:#69b3f71f;color:var(--blue)}.empty-state{text-align:center;padding:var(--space-xl) var(--space-lg);color:var(--text3);font-size:var(--font-sm);display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.empty-state-icon{width:48px;height:48px;color:var(--text3);opacity:.5}.empty-state-text{max-width:280px;line-height:1.5}.empty-state .btn{margin-top:var(--space-sm)}.skeleton-line{height:14px;background:linear-gradient(90deg,var(--bg3) 25%,var(--border) 50%,var(--bg3) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm);margin-bottom:var(--space-sm)}.skeleton-line:last-child{width:60%}.skeleton-circle{width:40px;height:40px;border-radius:50%;background:linear-gradient(90deg,var(--bg3) 25%,var(--border) 50%,var(--bg3) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}.skeleton-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md)}.skeleton-card .skeleton-line:first-child{width:40%;height:18px;margin-bottom:var(--space-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-loader{padding:var(--space-lg)}.skeleton-loader .skeleton-line{height:14px;background:var(--bg-hover);border-radius:var(--radius-sm);margin-bottom:var(--space-md);animation:skeleton-pulse 1.5s ease infinite}@keyframes skeleton-pulse{0%,to{opacity:.6}50%{opacity:.3}}.toolbar{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.amount-positive{color:var(--green)}.amount-negative{color:var(--red)}.error-chip{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--red-bg);color:var(--red);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500}.error-chip .retry-btn{padding:var(--space-xs) var(--space-sm);background:var(--red);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600;cursor:pointer;min-height:var(--btn-h-sm)}.tab-nav{display:flex;gap:2px;background:var(--bg2);border-bottom:1px solid var(--border);padding:0 var(--space-md);overflow-x:auto}.tab{padding:var(--space-sm) var(--space-md);background:none;border:none;border-bottom:2px solid transparent;color:var(--text3);font-size:var(--font-sm);cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.tab:hover{color:var(--text2)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab-panels{padding:var(--space-lg);max-width:1200px;margin:0 auto;flex:1}.tab-panel{display:none}.tab-panel.active{display:block}.period-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-md)}.period-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:opacity .2s,border-color .2s}.period-card.period-current{border-color:var(--accent);border-width:2px}.period-card.period-past{opacity:.7}.period-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);cursor:pointer;-webkit-user-select:none;user-select:none}.period-header:hover{background:var(--bg3)}.period-dates{font-size:var(--font-sm);color:var(--text2)}.period-summary{display:flex;gap:var(--space-lg);font-size:var(--font-sm)}.period-body{padding:0 var(--space-md) var(--space-md)}.period-section{margin-bottom:var(--space-md)}.period-section-title{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:var(--space-sm)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.page-title{font-size:var(--font-lg);font-weight:600}.filter-bar{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.search-input{flex:1;min-width:200px}.shopping-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md)}.shopping-group{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md)}.shopping-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.shopping-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;padding-left:var(--space-md);border-bottom:1px solid var(--border);transition:opacity .2s}.shopping-item:last-child{border-bottom:none}.shopping-item-name{flex:1;font-size:var(--font-sm)}.shopping-item-price{font-size:var(--font-sm);color:var(--text2)}.invoice-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:var(--space-md);overflow:hidden}.invoice-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md)}.invoice-number{font-weight:600}.invoice-total{font-size:var(--font-lg);font-weight:600}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-md)}.image-thumb{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;aspect-ratio:1;cursor:pointer;transition:border-color .15s}.image-thumb:hover{border-color:var(--accent)}.image-thumb img{width:100%;height:100%;object-fit:cover}.export-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-md)}.export-option{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.export-option:hover{border-color:var(--accent);background:var(--bg3)}.export-icon{font-size:28px;margin-bottom:var(--space-sm)}.export-label{font-size:var(--font-sm);color:var(--text2)}.settings-section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-md)}.settings-section-title{font-size:var(--font-body);font-weight:600;margin-bottom:var(--space-md)}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-label{color:var(--text2);font-size:var(--font-sm)}.log-entry{display:flex;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border);font-size:var(--font-sm)}.log-time{color:var(--text3);white-space:nowrap;min-width:140px}.log-level{min-width:60px;font-weight:500}.log-level-info{color:var(--blue)}.log-level-warn{color:var(--yellow)}.log-level-error{color:var(--red)}.log-message{color:var(--text);word-break:break-word}.badge-warn{background:var(--yellow-bg);color:var(--yellow)}.badge-accent{background:#534ab726;color:var(--accent)}.badge-dim{background:var(--bg3);color:var(--text3)}.cat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.bill-row-paid td{text-decoration:line-through;opacity:.5}.source-type-badge{display:inline-block;padding:2px var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:500}.shopping-item-checked .shopping-item-name{text-decoration:line-through;opacity:.5}.shopping-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;transition:transform .15s ease}.shopping-item input[type=checkbox]:checked{animation:check-pop .2s ease}@keyframes check-pop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.shopping-group{box-shadow:var(--shadow-sm)}.shopping-group-header{border-left:3px solid var(--accent);padding-left:var(--space-sm)}.settings-section{box-shadow:var(--shadow-sm)}.settings-section-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding-bottom:var(--space-sm)}.settings-section-header:hover{color:var(--accent)}.settings-chevron{width:16px;height:16px;color:var(--text3);transition:transform .2s ease}.settings-chevron.collapsed{transform:rotate(-90deg)}.settings-section-body{overflow:hidden;transition:max-height .25s ease}.settings-section-body.collapsed{max-height:0}.export-option,.image-thumb{box-shadow:var(--shadow-sm)}.export-option:hover{box-shadow:var(--shadow-md)}.xpill{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.xpill-draft{background:var(--bg3);color:var(--text3)}.xpill-submitted{background:var(--yellow-bg);color:var(--yellow)}.xpill-authorised{background:#3b82f61f;color:var(--blue)}.xpill-awaiting{background:#f973161f;color:#f97316}.xpill-paid{background:var(--green-bg);color:var(--green)}.xpill-overdue{background:var(--red-bg);color:var(--red)}.xpill-voided{background:var(--bg3);color:var(--text3);text-decoration:line-through}.xdash-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.xdash-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.xdash-tile{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.xdash-tile-accent{border-left:4px solid var(--accent)}.xdash-tile-label{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:var(--space-sm)}.xdash-tile-value{font-size:28px;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:var(--space-xs);font-variant-numeric:tabular-nums}.xdash-tile-green{color:var(--green)}.xdash-tile-sub{font-size:var(--font-sm);color:var(--text3)}.xdash-tile-alert{font-size:var(--font-sm);color:var(--red);margin-top:var(--space-xs);font-weight:500}.xdash-section{margin-bottom:var(--space-xl)}.xdash-section-title{font-size:var(--font-body);font-weight:600;margin-bottom:var(--space-md);color:var(--text)}.xdash-activity{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.xdash-activity-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border);transition:background var(--transition-fast)}.xdash-activity-row:last-child{border-bottom:none}.xdash-activity-row:hover{background:var(--bg3)}.xdash-activity-info{display:flex;align-items:center;gap:var(--space-md)}.xdash-activity-num{font-weight:600;font-size:var(--font-sm);color:var(--accent)}.xdash-activity-to{font-size:var(--font-sm);color:var(--text2)}.xdash-activity-right{display:flex;align-items:center;gap:var(--space-md)}.xdash-activity-amount{font-weight:600;font-size:var(--font-sm);font-variant-numeric:tabular-nums;min-width:80px;text-align:right}.xdash-activity-time{font-size:var(--font-xs);color:var(--text3);min-width:60px;text-align:right}.xinv-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.xinv-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--space-lg)}.xinv-tab{padding:var(--space-sm) var(--space-lg);background:none;border:none;border-bottom:2px solid transparent;color:var(--text3);font-size:var(--font-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:color var(--transition-fast),border-color var(--transition-fast)}.xinv-tab:hover{color:var(--text2)}.xinv-tab.active{color:var(--text);border-bottom-color:var(--accent)}.xinv-table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.xinv-table thead th{text-align:left;padding:var(--space-sm) var(--space-md);color:var(--text3);font-weight:600;font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid var(--border);white-space:nowrap}.xinv-table thead th.xinv-amount{text-align:right}.xinv-table tbody td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);color:var(--text)}.xinv-table tbody td.num{text-align:right;font-variant-numeric:tabular-nums}.xinv-row{cursor:pointer;transition:background var(--transition-fast)}.xinv-row:hover td{background:var(--bg3)}.xinv-num{font-weight:600;color:var(--accent)}.xinv-amount{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.xinv-actions{text-align:right}.xinv-empty{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--text3)}.xinv-empty svg{opacity:.4;margin-bottom:var(--space-md)}.xinv-editor{max-height:70vh;overflow-y:auto}.xinv-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-bottom:var(--space-lg)}.xinv-editor-parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-lg)}.xinv-editor-parties h4{font-size:var(--font-sm);font-weight:600;margin-bottom:var(--space-sm);color:var(--text3);text-transform:uppercase;letter-spacing:.03em}.xinv-editor-party .textarea{min-height:60px}.xinv-lines-table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.xinv-lines-table th{text-align:left;padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs);color:var(--text3);border-bottom:1px solid var(--border)}.xinv-lines-table td{padding:var(--space-xs) var(--space-sm);vertical-align:middle}.xinv-lines-table .input{padding:var(--space-xs) var(--space-sm);font-size:var(--font-sm)}.xinv-line-amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap;min-width:80px}.xinv-totals-bar{margin-top:var(--space-md);border-top:1px solid var(--border);padding-top:var(--space-md)}.xinv-totals-row{display:flex;justify-content:space-between;padding:var(--space-xs) 0;font-size:var(--font-sm);color:var(--text2)}.xinv-totals-grand{font-size:var(--font-lg);font-weight:700;color:var(--text);border-top:2px solid var(--border);margin-top:var(--space-sm);padding-top:var(--space-sm)}.xinv-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.xinv-detail-parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-md)}.xinv-detail-meta{display:flex;gap:var(--space-lg);margin-bottom:var(--space-md);font-size:var(--font-sm)}.modal-dialog:has(.xinv-editor),.modal-dialog:has(.xinv-detail){max-width:780px}
