:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #dbeafe;--color-secondary: #64748b;--color-secondary-hover: #475569;--color-success: #16a34a;--color-success-light: #dcfce7;--color-warning: #d97706;--color-warning-light: #fef3c7;--color-danger: #dc2626;--color-danger-light: #fee2e2;--color-info: #0891b2;--color-info-light: #cffafe;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-hover: #f1f5f9;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-text-inverse: #ffffff;--topbar-height: 52px;--sidebar-width: 56px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--transition-fast: .15s ease;--transition-normal: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg);line-height:1.5;overflow:hidden;height:100vh}#root{height:100vh;display:flex;flex-direction:column}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.app-layout{display:flex;flex-direction:column;height:100vh}.app-error-banner{margin-top:var(--topbar-height);padding:12px 20px;background:#fff3cd;color:#664d03;border-bottom:1px solid #ffecb5;text-align:center;font-size:.9rem}.app-error-banner+.app-body{margin-top:0}.backend-down-banner{margin-top:var(--topbar-height);padding:12px 20px;background:#f8d7da;color:#842029;border-bottom:1px solid #f5c2c7;text-align:center;font-size:.9rem;font-weight:500}.backend-down-banner+.app-error-banner,.backend-down-banner+.app-body{margin-top:0}.app-body{display:flex;flex:1;overflow:hidden;margin-top:var(--topbar-height)}.pending-approval-screen{align-items:center;justify-content:center;padding:var(--space-6)}.pending-approval-card{max-width:520px;text-align:center;display:flex;flex-direction:column;gap:var(--space-4)}.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);z-index:100}.topbar-left{display:flex;align-items:center;gap:var(--space-3)}.topbar-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);letter-spacing:-.01em}.topbar-org{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);padding:2px var(--space-2);margin-left:var(--space-2);border-left:1px solid var(--color-border);padding-left:var(--space-3)}.topbar-expiry{font-size:var(--font-size-sm);font-weight:500;color:#dc2626;margin-left:var(--space-3);padding-left:var(--space-3);border-left:1px solid var(--color-border)}.topbar-expiry strong{font-weight:700}.topbar-right{display:flex;align-items:center;gap:var(--space-2)}.topbar-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.topbar-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.topbar-btn-login{width:auto;padding:0 var(--space-4);gap:var(--space-2);font-size:var(--font-size-sm);font-weight:500;font-family:inherit}.topbar-user{position:relative;display:flex;align-items:center}.topbar-user-btn{border:none;background:transparent;color:var(--color-text-secondary);font-size:.85rem;font-family:inherit;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.topbar-user-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.topbar-user-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:240px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001f;padding:var(--space-2);z-index:200}.topbar-user-menu-row{display:flex;flex-direction:column;padding:var(--space-2);gap:2px}.topbar-user-menu-row+.topbar-user-menu-row{border-top:1px solid var(--color-border)}.topbar-user-menu-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.topbar-user-menu-value{font-size:.875rem;color:var(--color-text);word-break:break-word}.topbar-user-menu-action{display:block;width:100%;text-align:left;margin-top:var(--space-2);padding:var(--space-2);background:transparent;border:none;border-top:1px solid var(--color-border);color:var(--color-primary, #2563eb);font-size:.875rem;cursor:pointer;border-radius:0}.topbar-user-menu-action:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;align-items:center;padding:var(--space-2) 0;gap:var(--space-1);overflow:hidden}.sidebar-item{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);position:relative}.sidebar-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar-item.active{background:var(--color-primary-light);color:var(--color-primary)}.sidebar-item svg{width:22px;height:22px}.sidebar-tooltip{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--color-text);color:var(--color-text-inverse);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:200}.sidebar-item:hover .sidebar-tooltip{opacity:1}.sidebar-item--dragging{opacity:.5;cursor:grabbing;outline:1px dashed currentColor;outline-offset:2px;z-index:300}.sidebar-item--dragging .sidebar-tooltip{display:none}.module-content{flex:1;overflow:auto;padding:var(--space-6);background:var(--color-bg)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.card-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.card-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:inherit;font-size:var(--font-size-sm);font-weight:500;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);line-height:1.4;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-strong)}.btn-danger{background:var(--color-danger);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}thead{background:var(--color-bg)}th{text-align:left;padding:var(--space-3) var(--space-4);font-weight:600;color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text)}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--color-surface-hover)}.form-group{display:flex;flex-direction:column;gap:var(--space-1)}.form-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text)}.form-input,.form-select,.form-textarea{padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-error{font-size:var(--font-size-xs);color:var(--color-danger)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:var(--font-size-xs);font-weight:500;border-radius:9999px;line-height:1.4}.badge-primary{background:var(--color-primary-light);color:var(--color-primary)}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.badge-muted{background:var(--color-surface-muted, #eef0f3);color:var(--color-text-secondary, #6b7280)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stat-value{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text);margin-top:var(--space-1)}.stat-change{font-size:var(--font-size-xs);margin-top:var(--space-1)}.stat-change.positive{color:var(--color-success)}.stat-change.negative{color:var(--color-danger)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center;color:var(--color-text-muted)}.empty-state svg{width:48px;height:48px;margin-bottom:var(--space-4);opacity:.4}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.empty-state-hint{margin-top:var(--space-2);font-size:var(--font-size-base);color:var(--color-text-muted);max-width:32ch}.page-header{margin-bottom:var(--space-6)}.page-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text);letter-spacing:-.02em}.page-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-4{margin-bottom:var(--space-4)}.text-sm{font-size:var(--font-size-sm)}.text-muted{color:var(--color-text-muted)}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:400px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border)}.modal-title{font-size:var(--font-size-lg);font-weight:600}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-surface-hover);color:var(--color-text)}.modal-body{padding:var(--space-6);overflow-y:auto}.login-buttons{display:flex;flex-direction:column;gap:var(--space-3)}.login-provider-btn{width:100%;justify-content:center}.about-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.about-row:last-of-type{border-bottom:none;margin-bottom:var(--space-4)}.about-row-label{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.about-row-value{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text);text-align:right;word-break:break-all}.dirty-badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-md);background:var(--color-warning, #fbbf24);color:var(--color-text);font-size:var(--font-size-xs);font-weight:600;font-family:var(--font-family);text-transform:uppercase;letter-spacing:.02em}.license-filter{width:100%;padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.license-section{margin-bottom:var(--space-5)}.license-section-title{font-size:var(--font-size-md, 1rem);font-weight:600;margin:0 0 var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-border)}.license-count{color:var(--color-text-secondary);font-weight:400}.license-row{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.license-row:last-child{border-bottom:none}.license-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.license-name{font-weight:600}.license-version{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.license-type{padding:1px var(--space-2);border-radius:var(--radius-md);background:var(--color-primary-light, #eef2ff);color:var(--color-text);font-size:var(--font-size-xs);font-weight:600}.license-link{color:var(--color-primary);font-size:var(--font-size-xs);word-break:break-all}.license-toggle{margin-left:auto}.license-text{margin:var(--space-2) 0 0;padding:var(--space-3);max-height:320px;overflow:auto;background:var(--color-surface, #f8fafc);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-xs);white-space:pre-wrap;word-break:break-word}.license-empty,.license-error,.license-generated{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.license-generated{margin-top:var(--space-4);text-align:right}.invoice-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);border:2px dashed var(--color-border-strong);border-radius:var(--radius-xl);background:var(--color-surface);text-align:center;cursor:pointer;transition:all var(--transition-normal)}.invoice-dropzone:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.invoice-dropzone.dragging{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:0 0 0 4px #2563eb1a}.invoice-dropzone-icon{width:56px;height:56px;color:var(--color-text-muted);margin-bottom:var(--space-4);transition:color var(--transition-normal)}.invoice-dropzone:hover .invoice-dropzone-icon,.invoice-dropzone.dragging .invoice-dropzone-icon{color:var(--color-primary)}.invoice-dropzone-title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text);margin-bottom:var(--space-2)}.invoice-dropzone-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:360px}.upload-results-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:var(--font-size-sm)}.upload-results-table .cell-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-results-table th,.upload-results-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.upload-results-table th{font-weight:600;color:var(--color-text-secondary)}.status-badge{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:var(--font-size-sm)}.status-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{width:100%;height:8px;background:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-sm);transition:width var(--transition-normal)}.lang-switcher{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.lang-btn{padding:var(--space-1) var(--space-2);font-family:inherit;font-size:var(--font-size-xs);font-weight:600;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);line-height:1.4}.lang-btn:not(:last-child){border-right:1px solid var(--color-border)}.lang-btn:hover{background:var(--color-surface-hover)}.lang-btn.active{background:var(--color-primary);color:var(--color-text-inverse)}.fte-ss{position:relative;display:inline-flex;align-items:center;min-width:130px}.fte-ss-input{flex:1;border:none;background:transparent;padding:1px 14px 1px 3px;font-family:inherit;font-size:var(--font-size-sm);color:var(--color-text);outline:none;min-width:110px}.fte-ss-input:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-radius:2px}.fte-ss-chevron{position:absolute;right:2px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-size:9px;pointer-events:none;line-height:1}.fte-ss--form{display:flex;width:100%;min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.fte-ss--form:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.fte-ss--form .fte-ss-input{min-width:0;padding:var(--space-2) 24px var(--space-2) var(--space-3)}.fte-ss--form .fte-ss-input:focus{outline:none}.fte-ss--form .fte-ss-chevron{right:10px;font-size:11px;color:var(--color-text-secondary)}.fte-ss-list{position:absolute;top:calc(100% + 3px);left:-4px;min-width:calc(100% + 8px);margin:0;padding:3px 0;list-style:none;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);max-height:240px;overflow-y:auto;z-index:50}.fte-ss-list.is-portaled{position:fixed;top:auto;left:auto;z-index:1000}.fte-ss-option{padding:3px 10px;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap}.fte-ss-option.is-highlighted{background:var(--color-surface-hover)}.fte-ss-option.is-selected{font-weight:600;color:var(--color-primary)}.fte-ss-option.is-selected.is-highlighted{background:var(--color-primary-light)}.fte-ss-empty{padding:3px 10px;color:var(--color-text-muted);font-style:italic;font-size:var(--font-size-xs)}@keyframes pem-fade-in{0%{opacity:0}to{opacity:1}}@keyframes pem-pop-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pem-row-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.pem-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:pem-fade-in .16s ease-out}.pem-modal{position:relative;width:100%;max-width:580px;background:var(--color-bg, #fff);border-radius:14px;box-shadow:0 20px 50px -10px #00000059,0 8px 20px -6px #0003;overflow:hidden;animation:pem-pop-in .2s cubic-bezier(.16,1,.3,1)}.pem-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary, #2563eb) 8%,transparent),color-mix(in srgb,var(--color-primary, #2563eb) 2%,transparent));border-bottom:1px solid var(--color-border, #e2e8f0)}.pem-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--color-primary, #2563eb);color:#fff;flex-shrink:0}.pem-title{margin:0;font-size:1.05rem;font-weight:600;flex:1;min-width:0}.pem-close{background:transparent;border:none;width:32px;height:32px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted, #64748b);transition:background .12s ease,color .12s ease}.pem-close:hover:not(:disabled){background:var(--color-bg-muted, #f1f5f9);color:var(--color-text, #0f172a)}.pem-body{padding:.75rem 1.25rem 1rem}.pem-hint{margin:0 0 .75rem;font-size:.85rem;color:var(--color-text-muted, #64748b)}.pem-row{display:flex;align-items:center;gap:.5rem;padding:.5rem .625rem;background:var(--color-bg-muted, #f8fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:10px;margin-bottom:.5rem;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease;animation:pem-row-in .18s ease-out}.pem-row:hover{border-color:color-mix(in srgb,var(--color-primary, #2563eb) 35%,var(--color-border, #e2e8f0));background:var(--color-bg, #fff);box-shadow:0 1px 3px #0000000a}.pem-row:focus-within{border-color:var(--color-primary, #2563eb);background:var(--color-bg, #fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary, #2563eb) 18%,transparent)}.pem-row-picker{flex:1 1 auto;min-width:0}.pem-row-weight{display:inline-flex;align-items:center;gap:2px;background:var(--color-bg, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:8px;padding:2px 6px;transition:border-color .12s ease}.pem-row-weight:focus-within{border-color:var(--color-primary, #2563eb)}.pem-row-weight input{width:56px;border:none;outline:none;background:transparent;font-size:.95rem;font-weight:600;text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text, #0f172a);-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.pem-row-weight input::-webkit-outer-spin-button,.pem-row-weight input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pem-row-weight-pct{font-size:.85rem;color:var(--color-text-muted, #64748b)}.pem-row-remove{background:transparent;border:none;width:28px;height:28px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted, #94a3b8);transition:background .12s ease,color .12s ease}.pem-row-remove:hover{background:color-mix(in srgb,var(--color-danger, #dc2626) 12%,transparent);color:var(--color-danger, #dc2626)}.pem-add{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px dashed var(--color-border, #cbd5e1);border-radius:8px;padding:6px 12px;color:var(--color-primary, #2563eb);font-size:.9rem;font-weight:500;cursor:pointer;margin-top:.25rem;transition:background .12s ease,border-color .12s ease}.pem-add:hover{background:color-mix(in srgb,var(--color-primary, #2563eb) 6%,transparent);border-color:color-mix(in srgb,var(--color-primary, #2563eb) 50%,var(--color-border, #cbd5e1));border-style:solid}.pem-empty{padding:1.5rem;text-align:center;color:var(--color-text-muted, #94a3b8);font-style:italic;background:var(--color-bg-muted, #f8fafc);border:1px dashed var(--color-border, #e2e8f0);border-radius:10px;margin-bottom:.5rem}.pem-sum{margin-top:.875rem;padding:.625rem .75rem;border-radius:10px;background:var(--color-bg-muted, #f8fafc)}.pem-sum-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.85rem;margin-bottom:6px}.pem-sum-label{color:var(--color-text-muted, #64748b);font-weight:500}.pem-sum-value{font-weight:700;font-variant-numeric:tabular-nums;transition:color .2s ease}.pem-sum-value.is-ok{color:var(--color-success-dark, #15803d)}.pem-sum-value.is-low{color:var(--color-warning-dark, #b45309)}.pem-sum-value.is-over{color:var(--color-danger, #dc2626)}.pem-sum-track{position:relative;height:6px;background:var(--color-border, #e2e8f0);border-radius:999px;overflow:hidden}.pem-sum-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--color-warning, #f59e0b);transition:width .24s cubic-bezier(.4,0,.2,1),background .2s ease}.pem-sum-fill.is-ok{background:var(--color-success, #16a34a)}.pem-sum-fill.is-over{background:var(--color-danger, #dc2626)}.pem-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:.75rem 1.25rem 1rem;background:var(--color-bg-muted, #f8fafc);border-top:1px solid var(--color-border, #e2e8f0)}.fte-root{--fte-rail-1: var(--color-primary);--fte-rail-2: var(--color-info);--fte-rail-3: var(--color-warning);--fte-rail-4: var(--color-success);--fte-and: var(--color-primary);--fte-and-light: var(--color-primary-light);--fte-or: var(--color-warning);--fte-or-light: var(--color-warning-light);--fte-not: var(--color-danger);--fte-not-light: var(--color-danger-light);display:flex;flex-direction:column;gap:var(--space-2);font-family:var(--font-family);font-size:var(--font-size-sm)}.fte-group{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--fte-rail-1);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-2) var(--space-3);animation:fte-fade-in .14s ease-out}.fte-group.is-negated:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--fte-not);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.fte-group-header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-2)}.fte-group-spacer{flex:1}.fte-match-switch{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-hover);padding:2px;gap:2px}.fte-match-btn{display:inline-flex;align-items:center;justify-content:center;padding:1px 8px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast);min-width:36px;line-height:1.4}.fte-match-btn:hover:not(.is-active){background:var(--color-surface);color:var(--color-text)}.fte-match-btn.is-active.is-and{background:var(--fte-and);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.fte-match-btn.is-active.is-or{background:var(--fte-or);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.fte-match-label{font-size:var(--font-size-xs);font-weight:600;line-height:1}.fte-match-abbr{font-size:9px;font-weight:500;letter-spacing:.06em;opacity:.75;line-height:1}.fte-not-pill{display:inline-flex;align-items:center;gap:3px;padding:0 7px;border:1px solid var(--fte-not);border-radius:999px;background:transparent;color:var(--fte-not);font-family:inherit;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.05em;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap;line-height:1.4}.fte-not-pill:hover{background:var(--fte-not-light)}.fte-not-pill.is-on{background:var(--fte-not);color:var(--color-text-inverse)}.fte-not-pill .fte-not-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.5}.fte-not-pill.is-on .fte-not-dot{opacity:1}.fte-remove-ghost{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid transparent;background:transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-sm);line-height:1;transition:all var(--transition-fast)}.fte-remove-ghost:hover{background:var(--color-danger-light);color:var(--color-danger);border-color:var(--color-danger-light)}.fte-children{display:flex;flex-direction:column;gap:0}.fte-child{animation:fte-fade-in .14s ease-out}.fte-group-row{display:flex;align-items:flex-start;gap:var(--space-2)}.fte-group-row>.fte-group{flex:1;min-width:0}.fte-group-op-label{flex:0 0 auto;padding-top:6px;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none}.fte-group-op-label.is-and{color:var(--fte-and)}.fte-group-op-label.is-or{color:var(--fte-or)}.fte-group-op-bang{display:inline-block;margin-right:2px;color:var(--fte-not);font-weight:800}.fte-leaf{display:flex;align-items:center;gap:var(--space-1);padding:3px var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:background var(--transition-fast),border-color var(--transition-fast)}.fte-leaf:hover{background:var(--color-surface-hover)}.fte-leaf.is-negated{background:var(--fte-not-light);border-color:var(--fte-not)}.fte-leaf-pill{display:inline-flex;align-items:stretch;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);flex-wrap:wrap}.fte-leaf-segment{display:inline-flex;align-items:center;padding:1px 6px;border-left:1px solid var(--color-border);background:transparent}.fte-leaf-segment:first-child{border-left:none}.fte-leaf-segment>select,.fte-leaf-segment>input,.fte-leaf-segment>.fte-value-host>select,.fte-leaf-segment>.fte-value-host>input{border:none;background:transparent;padding:1px 3px;font-family:inherit;font-size:var(--font-size-sm);color:var(--color-text);outline:none}.fte-leaf-segment>select:focus,.fte-leaf-segment>input:focus,.fte-leaf-segment>.fte-value-host>select:focus,.fte-leaf-segment>.fte-value-host>input:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-radius:2px}.fte-value-host{display:inline-flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.fte-date-value{display:inline-flex;align-items:center;gap:var(--space-1)}.fte-date-value>select,.fte-date-value>input{border:none;background:transparent;padding:1px 3px;font-family:inherit;font-size:var(--font-size-sm);color:var(--color-text);outline:none}.fte-date-value>select:focus,.fte-date-value>input:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-radius:2px}.fte-date-mode{color:var(--color-text-muted)}.fte-leaf-spacer{flex:1}.fte-add-row{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-2)}.fte-add-btn{display:inline-flex;align-items:center;gap:3px;padding:2px var(--space-2);border:1px dashed var(--color-border-strong);background:transparent;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-family:inherit;font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.fte-add-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light);border-style:solid}.fte-add-btn:disabled{opacity:.45;cursor:not-allowed}.fte-add-btn .fte-add-plus{font-size:var(--font-size-base);line-height:1;font-weight:400}.fte-empty-hint{padding:var(--space-1) var(--space-2);color:var(--color-text-muted);font-style:italic;font-size:var(--font-size-xs);text-align:center}.fte-preview{background:linear-gradient(180deg,var(--color-surface) 0%,var(--color-bg) 100%);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);box-shadow:var(--shadow-sm)}.fte-preview-title{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-3)}.fte-preview-title:before{content:"";display:inline-block;width:16px;height:1px;background:var(--color-border-strong)}.fte-eq{font-size:var(--font-size-base);line-height:1.5;color:var(--color-text);word-spacing:1px;font-variant-ligatures:none}.fte-eq-token{display:inline;white-space:nowrap}.fte-eq-column{font-weight:700;color:var(--color-text)}.fte-eq-op{color:var(--color-text-secondary);font-style:italic;margin:0 4px}.fte-eq-op.is-math{font-style:normal;font-weight:600;font-family:var(--font-mono);color:var(--color-text)}.fte-eq-value{font-family:var(--font-mono);font-size:.88em;background:var(--color-surface-hover);padding:1px 6px;border-radius:3px;color:var(--color-text);border:1px solid var(--color-border)}.fte-eq-keyword{font-weight:800;letter-spacing:.06em;font-size:.8em;padding:0 6px;margin:0 3px;border-radius:999px;display:inline-block;vertical-align:1px}.fte-eq-keyword.is-and{color:var(--fte-and);background:color-mix(in srgb,var(--fte-and) 12%,transparent)}.fte-eq-keyword.is-or{color:var(--fte-or);background:color-mix(in srgb,var(--fte-or) 14%,transparent)}.fte-eq-keyword.is-not{color:var(--fte-not);background:color-mix(in srgb,var(--fte-not) 12%,transparent)}.fte-eq-paren{font-weight:700;font-size:1.15em;vertical-align:-1px;margin:0 1px}.fte-eq-paren[data-depth="0"]{color:var(--fte-rail-1)}.fte-eq-paren[data-depth="1"]{color:var(--fte-rail-2)}.fte-eq-paren[data-depth="2"]{color:var(--fte-rail-3)}.fte-eq-paren[data-depth="3"]{color:var(--fte-rail-4)}.fte-eq-empty{color:var(--color-text-muted);font-style:italic;font-size:var(--font-size-base)}.fte-eq-incomplete{color:var(--color-text-muted);font-style:italic;padding:0 4px}@keyframes fte-fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.fte-group,.fte-child{animation:none}.fte-match-btn,.fte-not-pill,.fte-leaf,.fte-remove-ghost,.fte-add-btn{transition:none}}.ufe-collapsible{display:grid;grid-template-rows:0fr;transition:grid-template-rows .2s ease}.ufe-collapsible.is-expanded{grid-template-rows:1fr}.ufe-collapsible-inner{overflow:hidden;min-height:0}.ufe-chevron{display:inline-block;transform-origin:50% 50%;transition:transform .2s ease}.ufe-chevron.is-expanded{transform:rotate(90deg)}.ufe-collapsible-scroll{padding-top:8px;padding-right:4px;max-height:50vh;overflow-y:auto}@media (prefers-reduced-motion: reduce){.ufe-collapsible,.ufe-chevron{transition:none}}.invoice-grid td{padding:.125rem .5rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invoice-grid td.ib-num{text-align:right}.invoice-grid td.ib-editable{cursor:cell}.invoice-grid td.ib-readonly{cursor:default;color:var(--color-text-secondary, #475569);background:#64748b1a}.invoice-grid th{padding:.25rem .5rem}.module-content:has(>.invoice-browser-page){padding-bottom:0}.invoice-grid__xml-badge{display:inline-block;margin-top:2px;padding:0 4px;font-size:.6em;font-weight:600;line-height:1.3;letter-spacing:.04em;color:var(--color-primary, #2563eb);background:#2563eb1a;border-radius:3px;-webkit-user-select:none;user-select:none}.invoice-comment-editor:empty:before{content:attr(data-placeholder);color:var(--color-text-muted, #94a3b8);pointer-events:none}.invoice-comment-editor ul,.invoice-comment-editor ol,.invoice-comment-body ul,.invoice-comment-body ol{margin:0;padding-left:1.5rem}.invoice-comment-body p{margin:0 0 .25rem}.invoice-comment-editor .comment-mention,.invoice-comment-body .comment-mention{color:var(--color-primary, #2563eb);font-weight:600}.invoice-history-resizer{flex:0 0 auto;height:7px;margin-top:-4px;cursor:ns-resize;position:relative;touch-action:none}.invoice-history-resizer:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40px;height:3px;border-radius:3px;background:var(--color-border, #e2e8f0)}.invoice-history-resizer:hover:after,.invoice-history-resizer:focus-visible:after{background:var(--color-primary, #2563eb)}.invoice-history-resizer:focus-visible{outline:none}.invoice-preview-resizer{flex:0 0 auto;width:7px;margin-left:-4px;cursor:ew-resize;position:relative;touch-action:none}.invoice-preview-resizer:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3px;height:40px;border-radius:3px;background:var(--color-border, #e2e8f0)}.invoice-preview-resizer:hover:after,.invoice-preview-resizer:focus-visible:after{background:var(--color-primary, #2563eb)}.invoice-preview-resizer:focus-visible{outline:none}.reporting-root{display:flex;flex-direction:column;gap:16px;padding:12px;height:100%;overflow:auto;scrollbar-gutter:stable;box-sizing:border-box}.reporting-section{border:1px solid var(--color-border, #d1d5db);border-radius:6px;padding:10px 12px;background:var(--color-surface, #fff)}.reporting-section.is-drop-active{outline:2px dashed var(--color-primary, #2563eb);outline-offset:-2px}.reporting-drag-overlay{background:var(--color-surface, #fff);border:1px solid var(--color-primary, #2563eb);box-shadow:0 6px 16px #00000038;cursor:grabbing;pointer-events:none}.reporting-section-title{font-weight:600;margin:0 0 6px;font-size:.95em}.reporting-section-toggle{display:flex;align-items:center;gap:6px;width:100%;background:transparent;border:none;padding:0;margin:0 0 6px;cursor:pointer;color:inherit;text-align:left;font:inherit}.reporting-section-toggle:hover .reporting-section-title{color:var(--color-primary, #2563eb)}.reporting-section-toggle .reporting-section-title{margin:0}.reporting-chevron{display:inline-block;transform-origin:50% 50%;transition:transform .2s ease;color:var(--color-text-muted, #6b7280);width:.85em;font-size:.85em}.reporting-chevron.is-expanded{transform:rotate(90deg)}.reporting-active-badge{font-size:.78em;font-weight:400;color:var(--color-text-muted, #6b7280);font-style:italic;margin-left:4px}.reporting-active-badge--warn{color:var(--color-danger, #b91c1c);font-style:normal;font-weight:500}.reporting-collapsible{display:grid;grid-template-rows:0fr;transition:grid-template-rows .2s ease}.reporting-collapsible.is-expanded{grid-template-rows:1fr}.reporting-collapsible-inner{overflow:hidden;min-height:0}.reporting-collapsible-scroll{padding-top:4px;padding-right:4px;max-height:50vh;overflow-y:auto}@media (prefers-reduced-motion: reduce){.reporting-collapsible,.reporting-chevron{transition:none}}.reporting-section-hint{font-size:.78em;color:var(--color-text-muted, #6b7280);margin:0 0 8px}.reporting-areas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media (max-width: 900px){.reporting-areas{grid-template-columns:1fr}}.reporting-area-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px;min-height:8px}.reporting-area-row{display:flex;align-items:center;gap:6px;padding:4px 6px;background:var(--color-surface-alt, #f9fafb);border:1px solid var(--color-border, #e5e7eb);border-radius:4px;-webkit-user-select:none;user-select:none}.reporting-area-row.is-dragging{opacity:.5;box-shadow:0 2px 6px #0000002e}.reporting-drag-handle{cursor:grab;color:var(--color-text-muted, #9ca3af);font-size:1em;padding:0 2px;line-height:1}.reporting-drag-handle:active{cursor:grabbing}.reporting-area-label{flex:1 1 auto;font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reporting-area-remove{background:transparent;border:none;color:var(--color-text-muted, #6b7280);cursor:pointer;font-size:1em;padding:0 4px;line-height:1}.reporting-area-remove:hover{color:var(--color-danger, #dc2626)}.reporting-agg-select{font-size:.85em;padding:1px 4px;border:1px solid var(--color-border, #d1d5db);border-radius:3px;background:var(--color-surface, #fff)}.reporting-cumulate-toggle{display:inline-flex;align-items:center;gap:3px;font-size:.8em;color:var(--color-text-muted, #6b7280);cursor:pointer;-webkit-user-select:none;user-select:none}.reporting-cumulate-toggle input[type=checkbox]{margin:0;cursor:pointer}.reporting-area-empty{font-style:italic;font-size:.82em;color:var(--color-text-muted, #9ca3af);padding:2px 4px}.reporting-add-row{display:flex;align-items:center}.reporting-add-row .fte-ss{flex:1 1 auto;min-width:0}.reporting-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.reporting-submit-row{display:flex;align-items:center;gap:12px}.reporting-error{color:var(--color-danger, #dc2626);font-size:.9em}.reporting-result-placeholder{font-style:italic;color:var(--color-text-muted, #6b7280);padding:24px;text-align:center}.reporting-table-wrap{overflow:auto;max-height:65vh;border:1px solid var(--color-border, #e5e7eb);border-radius:6px;background:var(--color-surface, #fff)}.reporting-table{width:auto;border-collapse:collapse;font-size:.88em}.reporting-table th,.reporting-table td{border:1px solid var(--color-border, #e5e7eb);padding:4px 8px;text-align:left;vertical-align:top}.reporting-table thead th{position:sticky;top:0;background:var(--color-surface-alt, #f3f4f6);font-weight:600;z-index:1}.reporting-th-resizer{position:absolute;top:0;right:-2px;bottom:0;width:5px;cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:2}.reporting-th-resizer:hover,.reporting-th-resizer:active{background:var(--color-primary, #2563eb);opacity:.4}.reporting-th-value,.reporting-th-total{text-align:right;white-space:nowrap}.reporting-th-value-agg{font-weight:400;font-size:.85em;color:var(--color-text-muted, #6b7280)}.reporting-td-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.reporting-td-row-dim{font-weight:500;vertical-align:top}.reporting-th-measure,.reporting-td-measure{font-style:italic;color:var(--color-text-muted, #4b5563);white-space:nowrap}.reporting-result-tabs-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-border, #e5e7eb);margin-bottom:8px}.reporting-result-tabs-row .reporting-tabs{border-bottom:none;margin-bottom:0}.reporting-export{position:relative;display:inline-flex;align-items:center;padding-bottom:4px}.reporting-export-menu{position:absolute;top:100%;right:0;margin-top:2px;min-width:180px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #d1d5db);border-radius:4px;box-shadow:0 4px 12px #00000014;z-index:10;display:flex;flex-direction:column}.reporting-export-menu button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;text-align:left;padding:7px 12px;font-size:.88em;cursor:pointer;color:var(--color-text, #111827)}.reporting-export-menu button:hover{background:var(--color-surface-alt, #f3f4f6)}.reporting-tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border, #e5e7eb);margin-bottom:8px}.reporting-tab{background:transparent;border:1px solid transparent;border-bottom:none;padding:6px 14px;font-size:.92em;cursor:pointer;color:var(--color-text-muted, #6b7280);border-radius:4px 4px 0 0;margin-bottom:-1px}.reporting-tab:hover{color:var(--color-text, #111827)}.reporting-tab.is-active{border-color:var(--color-border, #e5e7eb);border-bottom-color:var(--color-surface, #fff);background:var(--color-surface, #fff);color:var(--color-text, #111827);font-weight:600}.reporting-chart-area{display:flex;flex-direction:column;gap:8px}.reporting-chart-config{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:4px 0}.reporting-chart-config-item{display:inline-flex;align-items:center;gap:6px;font-size:.85em}.reporting-chart-config-item>span{color:var(--color-text-muted, #6b7280)}.reporting-chart-config-item select{font-size:.9em;padding:2px 4px;border:1px solid var(--color-border, #d1d5db);border-radius:3px;background:var(--color-surface, #fff)}.reporting-chart-wrap{min-height:360px;position:relative;overflow:hidden}.reporting-chart-tooltip{background:var(--color-surface, #fff);border:1px solid var(--color-border, #d1d5db);border-radius:4px;padding:6px 10px;font-size:.82em;box-shadow:0 2px 8px #0000001f;max-width:320px}.reporting-chart-tooltip-label{font-weight:600;margin-bottom:4px}.reporting-chart-tooltip-row{display:flex;align-items:center;gap:6px;line-height:1.5}.reporting-chart-tooltip-swatch{width:10px;height:10px;border-radius:2px;flex:0 0 auto}.reporting-chart-tooltip-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reporting-chart-tooltip-value{font-variant-numeric:tabular-nums;font-weight:500;margin-left:8px}.reporting-chart-tooltip-more{margin-top:4px;color:var(--color-text-muted, #6b7280);font-style:italic}.reporting-chart-empty{padding:40px;text-align:center;font-style:italic;color:var(--color-text-muted, #6b7280)}.reporting-tr-group-start>td{border-top:2px solid var(--color-border-strong, #9ca3af)}.reporting-th-group-start{border-left:2px solid var(--color-border-strong, #9ca3af)}.reporting-td-total{background:var(--color-surface-alt, #f9fafb);font-weight:600}.reporting-table tbody tr:nth-child(odd) td:not(.reporting-td-total){background:#00000003}
