:root{--primary:#1a56db;--primary-dark:#1442a8;--primary-light:#e1effe;--success:#0e9f6e;--warning:#ff8a00;--danger:#e02424;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--radius:8px;--shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;--shadow-lg:0 4px 6px #0000001a,0 2px 4px #0000000f}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background:#f9fafb;background:var(--gray-50);color:#1f2937;color:var(--gray-800);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overscroll-behavior:none}.app-container{display:flex;flex-direction:column;margin:0 auto;max-width:600px;min-height:calc(100vh - 48px);min-height:calc(100vh - var(--app-header-h, 48px));width:100%}.version-footer{color:var(--text-muted);font-size:11px;margin-top:auto;padding:12px 0;text-align:center}.app-header{box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;box-shadow:var(--shadow);position:sticky;top:0;z-index:100}.app-header-inner{margin:0 auto;max-width:1200px;padding:0 16px}.navbar{background:#1a56db;background:var(--primary);color:#fff;padding:8px 0}.navbar-inner{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.navbar h1{cursor:pointer;font-size:18px;font-weight:600;white-space:nowrap}.nav-sections{display:flex;flex:1 1;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}.nav-sections::-webkit-scrollbar{display:none}.nav-section{border-radius:8px;border-radius:var(--radius);color:#ffffffd9;font-size:14px;font-weight:500;padding:6px 10px;text-decoration:none;white-space:nowrap}.nav-section:hover{background:#ffffff26;color:#fff}.nav-section.active{background:#ffffff40;color:#fff;font-weight:600}.nav-label-short{display:none}@media (max-width:899px){.nav-label-full{display:none}.nav-label-short{display:inline}}@media (max-width:759px){.navbar-inner{row-gap:6px}.navbar h1{flex:1 1;font-size:17px}.nav-sections{flex-basis:100%;justify-content:space-between;margin:0 -16px;order:3;padding:0 12px}.nav-section{padding:6px 8px}}@media (max-width:379px){.nav-section{font-size:13px;padding:6px 4px}}.sub-nav{background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200)}.sub-nav-inner{display:flex;overflow-x:auto;scrollbar-width:none}.sub-nav-inner::-webkit-scrollbar{display:none}.sub-nav-inner>:first-child{margin-left:auto}.sub-nav-inner>:last-child{margin-right:auto}.sub-nav-label{align-self:center;color:#374151;color:var(--gray-700);font-weight:600;padding:0 12px 0 0}.sub-nav-item,.sub-nav-label{font-size:14px;white-space:nowrap}.sub-nav-item{border-bottom:2px solid #0000;color:#6b7280;color:var(--gray-500);flex:0 0 auto;font-weight:500;min-width:120px;padding:11px 14px;text-align:center;text-decoration:none;transition:color .15s,border-color .15s}.sub-nav-item.active{border-bottom-color:#1a56db;border-bottom-color:var(--primary);color:#1a56db;color:var(--primary)}@media (max-width:759px){.sub-nav-item{flex:1 1 auto;font-size:13px;min-width:0;padding:11px 4px}.sub-nav-label{display:none}}.navbar-user{align-items:center;display:flex;font-size:13px;gap:8px}.navbar-btn{background:#fff3;border:none;border-radius:8px;border-radius:var(--radius);color:#fff;cursor:pointer;font-size:13px;padding:6px 12px}.navbar-btn:hover{background:#ffffff4d}.navbar-help-btn.active{background:#ffffff73}.navbar-help-btn{align-items:center;border-radius:50%;display:inline-flex;font-size:15px;font-weight:700;height:28px;justify-content:center;line-height:1;padding:0;width:28px}.navbar-btn-admin{background:#ffc8324d;border:1px solid #ffc83280}.navbar-btn-admin:hover{background:#ffc83280}.navbar.navbar-emulating{background:#7c3aed}.emulation-banner{background:#ede9fe;border-bottom:2px solid #c4b5fd;color:#5b21b6;font-size:13px;font-weight:500;padding:8px 0}.emulation-banner-inner{align-items:center;display:flex;justify-content:space-between}.emulation-stop-btn{background:#7c3aed;border:none;border-radius:8px;border-radius:var(--radius);color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:4px 12px}.emulation-stop-btn:hover{background:#6d28d9}.card{background:#fff;border-radius:8px;border-radius:var(--radius);box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;box-shadow:var(--shadow);margin:12px 16px;padding:16px}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.card-title{color:#1f2937;color:var(--gray-800);font-size:16px;font-weight:600}.btn{align-items:center;border:none;border-radius:8px;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;justify-content:center;padding:10px 20px;transition:background .15s}.btn-primary{background:#1a56db;background:var(--primary);color:#fff}.btn-primary:hover{background:#1442a8;background:var(--primary-dark)}.btn-success{background:#0e9f6e;background:var(--success);color:#fff}.btn-danger{background:#e02424;background:var(--danger);color:#fff}.btn-outline{background:#fff;border:1px solid #1a56db;border:1px solid var(--primary);color:#1a56db;color:var(--primary)}.btn-outline:hover{background:#e1effe;background:var(--primary-light)}.btn-sm{font-size:13px;padding:6px 12px}.btn-block{width:100%}.btn:disabled{cursor:not-allowed;opacity:.5}.form-group{margin-bottom:10px}.form-group label{color:#4b5563;color:var(--gray-600);display:block;font-size:13px;font-weight:500;margin-bottom:4px}.form-control{appearance:none;-webkit-appearance:none;background:#fff;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:8px;border-radius:var(--radius);color:#1f2937;color:var(--gray-800);font-size:15px;padding:10px 12px;width:100%}.form-control:focus{border-color:#1a56db;border-color:var(--primary);box-shadow:0 0 0 3px #1a56db26;outline:none}select.form-control{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%236b7280' d='M6 8 1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}textarea.form-control{min-height:54px;resize:vertical}.daily-total{align-items:center;border-radius:20px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:4px 10px;white-space:nowrap}.daily-total.full{background:#d1fae5;color:#065f46}.daily-total.partial{background:#fef3c7;color:#92400e}.daily-total.over{background:#d1fae5;color:#065f46}.daily-total.over-limit{background:#dc2626;color:#fff;font-weight:700}.daily-total.warn-desc{background:#fef3c7;color:#92400e}.entry-swipe-container{position:relative;touch-action:pan-y;-webkit-user-select:none;user-select:none}.entry-card{background:#fff;border-radius:8px;border-radius:var(--radius);box-shadow:0 4px 6px #0000001a,0 2px 4px #0000000f;box-shadow:var(--shadow-lg);margin:8px 16px;padding:14px;transition:transform .15s ease}.entry-card-header{align-items:center;border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100);display:flex;gap:10px;margin-bottom:10px;padding-bottom:8px}.entry-nav-row{display:flex;gap:8px;margin-bottom:10px}.entry-nav-btn{background:#e5e7eb;background:var(--gray-200);border:1px solid #9ca3af;border:1px solid var(--gray-400);border-radius:8px;border-radius:var(--radius);color:#374151;color:var(--gray-700);cursor:pointer;flex:1 1;font-size:12px;font-weight:500;overflow:hidden;padding:8px 10px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.entry-nav-btn:hover:not(:disabled){background:#d1d5db;background:var(--gray-300)}.entry-nav-btn:disabled{cursor:not-allowed;opacity:.3}.entry-card-info{flex:1 1;min-width:0}.entry-nav-count{align-self:flex-start;color:#9ca3af;color:var(--gray-400);flex-shrink:0;font-size:12px;white-space:nowrap}.entry-card-job{color:#1a56db;color:var(--primary);font-size:14px;font-weight:600;margin-bottom:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-card-task{color:#6b7280;color:var(--gray-500);font-size:12px}.entry-card-customer{color:#9ca3af;color:var(--gray-400);font-size:11px;margin-bottom:2px}.entry-form-row{display:flex;gap:10px}.entry-footer-row{align-items:center;gap:8px}.entry-footer-row,.swipe-hints{display:flex;justify-content:space-between}.swipe-hints{padding:8px 20px}.swipe-hint-vertical,.swipe-hints{color:#9ca3af;color:var(--gray-400);font-size:12px}.swipe-hint-vertical{flex-direction:column;gap:4px;padding:4px 0}.date-nav,.swipe-hint-vertical{align-items:center;display:flex}.date-nav{background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);justify-content:space-between;padding:8px 16px}.date-nav-controls{align-items:center;display:flex;gap:10px}.date-nav-controls button{align-items:center;background:#f3f4f6;background:var(--gray-100);border:none;border-radius:50%;color:#4b5563;color:var(--gray-600);cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;width:32px}.date-nav-controls button:disabled{cursor:not-allowed;opacity:.3}.date-nav-label{font-size:15px;font-weight:600;min-width:140px;position:relative;text-align:center}.date-nav-label-tappable{border-bottom:1px dashed #d1d5db;border-bottom:1px dashed var(--gray-300);cursor:pointer;padding-bottom:2px}.date-nav-hidden-input{height:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;width:0}.ts-list-item{align-items:center;border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100);cursor:pointer;display:flex;justify-content:space-between;padding:14px 16px;transition:background .1s}.ts-list-item:hover{background:#f9fafb;background:var(--gray-50)}.ts-list-item:last-child{border-bottom:none}.ts-period{font-size:15px;font-weight:500}.ts-status{border-radius:12px;font-size:12px;font-weight:500;padding:3px 10px}.ts-status.pending{background:#fef3c7;color:#92400e}.ts-status.submitted{background:#d1fae5;color:#065f46}.ts-status.imported{background:#dbeafe;color:#1e40af}.ts-status.approved{background:#d1fae5;color:#047857}.ts-status.paid{background:#dcfce7;border:1px solid #86efac;color:#15803d}.fav-item{align-items:center;border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;padding:10px 0}.fav-item:last-child{border-bottom:none}.fav-remove{background:none;border:none;color:#e02424;color:var(--danger);cursor:pointer;font-size:18px;padding:4px 8px}.login-page{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:24px}.login-page h1{color:#1f2937;color:var(--gray-800);font-size:28px;margin-bottom:8px}.login-page p{color:#6b7280;color:var(--gray-500);margin-bottom:32px}.loading{align-items:center;color:#9ca3af;color:var(--gray-400);display:flex;justify-content:center;padding:40px}.spinner{animation:spin .6s linear infinite;border:3px solid #e5e7eb;border-top-color:#1a56db;border:3px solid var(--gray-200);border-radius:50%;border-top-color:var(--primary);height:24px;margin-right:8px;width:24px}@keyframes spin{to{transform:rotate(1turn)}}input.no-spinners::-webkit-inner-spin-button,input.no-spinners::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input.no-spinners{appearance:textfield}.empty-state{color:#9ca3af;color:var(--gray-400);padding:40px 24px;text-align:center}.empty-state p{margin-bottom:16px}.tab-bar{background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);display:flex;position:sticky;top:48px;top:var(--app-header-h,48px);z-index:50}.tab-bar button{background:none;border:none;border-bottom:2px solid #0000;color:#6b7280;color:var(--gray-500);cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:12px;transition:color .15s,border-color .15s}.tab-bar button.active{border-bottom-color:#1a56db;border-bottom-color:var(--primary);color:#1a56db;color:var(--primary)}.expense-summary-sticky{background:#f9fafb;background:var(--gray-50);box-shadow:0 6px 6px -6px #0000002e;padding-top:6px;position:sticky;top:92px;top:calc(var(--app-header-h, 48px) + 44px);z-index:40}@media (min-width:768px){.app-container{max-width:700px}.entry-card{margin:16px 24px;padding:24px}}.modal-overlay{align-items:flex-end;background:#00000080;bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:200}.modal-content{background:#fff;border-radius:16px 16px 0 0;margin:0 auto;max-height:85vh;max-width:600px;overflow-y:auto;padding:20px;width:100%}@media (min-width:640px){.modal-overlay{align-items:center;padding:24px}.modal-content{border-radius:16px;max-height:90vh}}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.modal-header h2{font-size:18px;font-weight:600}.action-row{display:flex;gap:8px;padding:12px 16px}.action-row .btn{flex:1 1}.period-summary{background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-around;padding:12px 16px}.period-summary-item{text-align:center}.period-summary-value{color:#1f2937;color:var(--gray-800);font-size:20px;font-weight:700}.period-summary .range-short{display:none}@media (max-width:619px){.period-summary .range-long{display:none}.period-summary .range-short{display:inline;white-space:nowrap}}.period-summary-label{color:#9ca3af;color:var(--gray-400);font-size:11px;letter-spacing:.5px;text-transform:uppercase}.tabular-scroll{-webkit-overflow-scrolling:touch;background:#fff;border-radius:8px;border-radius:var(--radius);box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;box-shadow:var(--shadow);margin:0 8px;overflow-x:auto}.tabular-table{border-collapse:collapse;font-size:13px;table-layout:auto;width:100%}.tabular-table td,.tabular-table th{border:1px solid #e5e7eb;border:1px solid var(--gray-200);padding:6px 4px;text-align:center;white-space:nowrap}.tabular-job-header{left:0;min-width:120px;position:sticky;text-align:left!important;z-index:2}.tabular-date-header,.tabular-job-header{background:#f3f4f6;background:var(--gray-100);color:#374151;color:var(--gray-700);font-size:12px;font-weight:600}.tabular-date-header{min-width:38px}.tabular-date-header.weekend{background:#e5e7eb;background:var(--gray-200);color:#6b7280;color:var(--gray-500)}.tabular-date-sub{color:#6b7280;color:var(--gray-500);font-size:11px;font-weight:400}.tabular-total-header{background:#f3f4f6;background:var(--gray-100);color:#374151;color:var(--gray-700);font-size:12px;font-weight:700;min-width:38px}.tabular-job-cell{background:#fff;left:0;max-width:200px;position:sticky;text-align:left!important;z-index:1}.tabular-job-name{color:#1a56db;color:var(--primary);font-size:12px;font-weight:600}.tabular-job-name,.tabular-task-name{overflow:hidden;text-overflow:ellipsis}.tabular-task-name{color:#6b7280;color:var(--gray-500);font-size:11px}.tabular-cell{color:#374151;color:var(--gray-700);cursor:pointer;font-size:13px;transition:background .1s}.tabular-cell:hover{background:#e1effe;background:var(--primary-light)}.tabular-cell.weekend{background:#f9fafb;background:var(--gray-50)}.tabular-cell.weekend:hover{background:#e1effe;background:var(--primary-light)}.tabular-cell.has-hours{color:#1f2937;color:var(--gray-800);font-weight:600}.tabular-cell.total{cursor:default;font-size:13px}.tabular-cell.total:hover{background:inherit}.tabular-cell.over-limit{background:#fee2e2!important;color:#dc2626}.tabular-cell.variance{cursor:default;font-size:12px;font-weight:500}.tabular-cell.variance:hover{background:inherit}.tabular-row-total{background:#f9fafb;background:var(--gray-50);font-size:13px;font-weight:700}.tabular-row-total.variance{font-size:12px;font-weight:600}.tabular-totals-row td{border-top:2px solid #d1d5db;border-top:2px solid var(--gray-300)}.tabular-totals-row .tabular-job-cell,.tabular-totals-row td,.tabular-variance-row .tabular-job-cell,.tabular-variance-row td{background:#f9fafb;background:var(--gray-50)}.tabular-variance-row .tabular-job-cell{color:#6b7280;color:var(--gray-500);font-size:12px}.tabular-delete-btn{background:none;border:none;color:#e02424;color:var(--danger);cursor:pointer;flex-shrink:0;font-size:18px;font-weight:700;line-height:1;opacity:.6;padding:0 4px}.tabular-delete-btn:hover{opacity:1}@media (min-width:700px){.app-container:has(.wide-section) .tab-bar{box-sizing:border-box;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw}.app-container:has(.wide-section) .tab-bar{justify-content:center}.app-container:has(.wide-section) .tab-bar button{flex:0 1 260px}}.sticky-thead th{background:#fff;background:var(--card-bg,#fff);box-shadow:inset 0 -1px 0 #e5e7eb;box-shadow:inset 0 -1px 0 var(--gray-200,#e5e7eb);position:sticky;top:0;top:var(--sticky-top,0);z-index:10}.icon-btn{align-items:center;background:none;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:6px;color:#4b5563;color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:15px;height:28px;justify-content:center;line-height:1;min-width:28px;padding:0 6px}.icon-btn:hover:not(:disabled){background:#e1effe;background:var(--primary-light);border-color:#1a56db;border-color:var(--primary);color:#1a56db;color:var(--primary)}.icon-btn:disabled{cursor:default;opacity:.4}.icon-btn.active{border-color:#1a56db;border-color:var(--primary);color:#1a56db;color:var(--primary)}.banner{align-items:flex-start;border-radius:8px;display:flex;font-size:14px;gap:8px;margin:8px 0;padding:8px 12px}.banner-text{flex:1 1;min-width:0}.banner .banner-close{border:none;color:inherit;font-size:18px;height:20px;min-width:20px}.banner-ok{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46}.banner-err{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}.banner-warn{background:#fff7ed;border:1px solid #fdba74;color:#9a3412}.banner-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}.page-header-actions,.page-header-nav{align-items:center;display:flex;gap:4px}.page-header-title{flex:1 1;min-width:0}.page-header-title h2{font-size:20px;margin:4px 0}.page-header-subtitle{color:#4b5563;color:var(--gray-600);font-size:13px}.page-header-position{color:#6b7280;color:var(--gray-500);font-size:12px;margin:0 4px}.page-header-center{justify-content:center}.page-header-center .page-header-title{flex:0 1 auto;text-align:center}.wide-section-inner{margin:0 auto;max-width:100%;width:fit-content}.wide-section-inner.wide-section-fill{width:100%}body{overflow-x:clip}@media (min-width:700px){.wide-section{box-sizing:border-box;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:16px;padding-right:16px;width:100vw}}.invoice-extras{display:inline-flex;gap:1px;margin-left:4px;vertical-align:middle}.invoice-extra{border-radius:4px;font-size:13px;line-height:1;padding:1px 2px;text-decoration:none}.invoice-extra:hover{background:#e1effe;background:var(--primary-light)}.job-page-link{border-radius:4px;color:#1a56db;color:var(--primary);display:inline-block;font-size:13px;font-weight:600;line-height:1.2;margin-left:4px;padding:0 3px;text-decoration:none}.job-page-link:hover{background:#e1effe;background:var(--primary-light)}.sort-arrows{align-items:center;display:inline-flex;font-weight:400;gap:2px;margin-left:4px;white-space:nowrap}.sort-arrows-label{font-size:11px}.sort-arrow{background:none;border:none;color:#9ca3af;color:var(--gray-400);cursor:pointer;font-size:10px;line-height:1;padding:0 1px}.sort-arrow.active{color:#1a56db;color:var(--primary)}.filter-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.debug-panel{margin-top:24px}.debug-panel summary{color:#4b5563;color:var(--gray-600);cursor:pointer;font-size:13px}.debug-panel pre{background:#f3f4f6;background:var(--gray-100);font-size:12px;max-height:480px;overflow:auto;padding:12px}.dash-wide{padding-bottom:16px;padding-top:8px}.dash-toolbar{display:flex;gap:6px;justify-content:flex-end;padding:0 16px 8px}.dash-grid,.dash-toolbar{margin:0 auto;max-width:1800px}.dash-grid{grid-gap:12px;display:grid;gap:12px;grid-auto-flow:row dense;grid-auto-rows:minmax(220px,auto);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));padding:0 16px}@media (min-width:700px){.dash-grid,.dash-toolbar{padding-left:0;padding-right:0}}.dash-cell{display:flex;flex-direction:column;min-width:0;position:relative}.dash-w2{grid-column:span 2}.dash-h2{grid-row:span 2}@media (max-width:619px){.dash-grid{grid-auto-rows:auto}.dash-w2{grid-column:auto}.dash-h2{grid-row:auto}.dash-only-wide{display:none}}.dash-arranging .dash-cell>.card{opacity:.85;outline:1px dashed #d1d5db;outline:1px dashed var(--gray-300);pointer-events:none}.dash-arrange-bar{align-items:center;background:#fff;background:var(--card-bg,#fff);border-radius:6px;display:flex;gap:4px;padding:2px;position:absolute;right:6px;top:6px;z-index:2}.dash-handle{color:#4b5563;color:var(--gray-600);cursor:grab;font-size:18px;line-height:1;padding:2px 6px;touch-action:none;-webkit-user-select:none;user-select:none}.dash-dragging>.card{opacity:.6;outline:2px dashed #1a56db;outline:2px dashed var(--primary)}.dash-dragging .dash-handle{cursor:grabbing}.chart{margin:12px 0;position:relative}.chart-title{color:#374151;color:var(--gray-700);font-size:14px;font-weight:600;margin-bottom:4px}.chart-scroll{overflow-x:auto;position:relative}.chart-legend{color:#4b5563;color:var(--gray-600);display:flex;flex-wrap:wrap;font-size:12px;gap:4px 14px;margin-bottom:4px}.chart-legend-item{align-items:center;display:inline-flex;gap:5px}.chart-swatch{border-radius:2px;display:inline-block;height:10px;width:10px}.chart-tooltip{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:6px;box-shadow:0 4px 6px #0000001a,0 2px 4px #0000000f;box-shadow:var(--shadow-lg);font-size:12px;padding:6px 8px;pointer-events:none;position:absolute;white-space:nowrap;z-index:5}.chart-tooltip-title{font-weight:600;margin-bottom:2px}.chart-tooltip-line{align-items:center;display:flex;gap:6px}.chart-tooltip-line strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-left:auto;padding-left:10px}.report-controls{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:8px;border-radius:var(--radius);margin-bottom:10px;padding:8px 12px}.report-row{align-items:center;display:flex;flex-wrap:wrap;font-size:13px;gap:6px 10px;margin:4px 0}.report-label{color:#4b5563;color:var(--gray-600);font-weight:600;min-width:64px}.report-check{align-items:center;display:inline-flex;gap:4px}.report-totals{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}.report-total{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:8px;border-radius:var(--radius);min-width:130px;padding:8px 12px}.report-total-label{color:#6b7280;color:var(--gray-500);font-size:12px}.report-total-value{font-feature-settings:"tnum";font-size:18px;font-variant-numeric:tabular-nums;font-weight:600}.report-table-wrap{max-width:100%;overflow-x:auto}.report-table{background:#fff;border-collapse:collapse;font-size:13px}.report-table td,.report-table th{border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100);padding:5px 8px;text-align:left;white-space:nowrap}.report-table th{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);color:#6b7280;color:var(--gray-500);font-size:12px}.report-table .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.report-total-row td{border-top:2px solid #d1d5db;border-top:2px solid var(--gray-300);font-weight:700}.chart-swatch-line{display:inline-block;height:2px;position:relative;width:16px}.chart-swatch-line>span{border-radius:50%;height:8px;left:4px;position:absolute;top:-3px;width:8px}.chart-axes{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}.chart-axes-zone{align-items:center;background:#fff;border:1px dashed #d1d5db;border:1px dashed var(--gray-300);border-radius:8px;display:flex;flex:1 1 200px;flex-wrap:wrap;gap:6px;min-height:40px;padding:6px 8px}.chart-axes-zone.armed{border-color:#1a56db;border-color:var(--primary);cursor:pointer}.chart-axes-zone.over{background:#f9fafb;background:var(--gray-50);border-color:#1a56db;border-color:var(--primary);border-style:solid}.chart-axes-label{color:#4b5563;color:var(--gray-600);font-size:12px;font-weight:600;margin-right:4px}.chart-axes-chip{align-items:center;background:#f3f4f6;background:var(--gray-100);border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:999px;color:#374151;color:var(--gray-700);cursor:grab;display:inline-flex;font-size:12px;gap:5px;padding:3px 8px}.chart-axes-chip.picked{border-color:#1a56db;border-color:var(--primary);box-shadow:0 0 0 2px #e1effe;box-shadow:0 0 0 2px var(--primary-light)}.chart-empty{border:1px dashed #d1d5db;border:1px dashed var(--gray-300);border-radius:8px;color:#6b7280;color:var(--gray-500);font-size:13px;margin:12px 0;padding:40px 16px;text-align:center}.report-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.report-table th.sortable:hover{color:#1a56db;color:var(--primary)}.report-table .sort-indicator{display:inline-block;font-size:10px;margin-left:2px;width:1em}.report-note{color:#4b5563;color:var(--gray-600);font-size:12px;margin:-2px 0 6px;padding-left:2px}.chart-frame{cursor:zoom-in;position:relative}.chart-frame-expand{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--gray-200);border-radius:6px;color:#4b5563;color:var(--gray-600);cursor:pointer;font-size:14px;line-height:22px;padding:0 6px;position:absolute;right:0;top:0;z-index:2}.chart-frame-expand:hover{border-color:#1a56db;border-color:var(--primary);color:#1a56db;color:var(--primary)}.chart-fullscreen{background:#fff;inset:0;overflow:auto;padding:16px 20px;position:fixed;z-index:2000}.chart-fullscreen-close{background:none;border:none;color:#4b5563;color:var(--gray-600);cursor:pointer;font-size:26px;line-height:1;position:absolute;right:12px;top:8px;z-index:2}.nav-badge{background:#fde68a;border-radius:6px;color:#78350f;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.3px;line-height:14px;margin-left:4px;padding:0 4px;text-transform:uppercase;vertical-align:super}@media (max-width:759px){.nav-badge{font-size:8px;line-height:12px;margin-left:2px;padding:0 3px}}
/*# sourceMappingURL=main.cc0a3fb7.css.map*/