:root{--bg-primary:#0f1117;--bg-secondary:#1a1d27;--bg-tertiary:#242833;--border:#2e3340;--text-primary:#e4e6ed;--text-secondary:#9399a8;--text-muted:#636980;--accent:#4f8ff7;--accent-hover:#3a7ae8;--green:#34d399;--yellow:#fbbf24;--red:#f87171;--surface:#1e2230;--danger-bg:#3a1a1a;--sidebar-width:200px;--frozen-width:460px;--cell-size:38px;--row-height:32px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-size:13px;line-height:1.4}button{cursor:pointer;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);border-radius:6px;padding:6px 14px;font-family:inherit;font-size:13px;transition:background .15s}button:hover{background:var(--bg-secondary)}button:disabled,button[disabled]{opacity:.5;cursor:not-allowed;background:var(--bg-tertiary);color:var(--text-muted);border-color:var(--border)}button:disabled:hover,button[disabled]:hover{background:var(--bg-tertiary)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-hover)}button.small{padding:3px 8px;font-size:11px}input,select,textarea{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}a{color:var(--accent);text-decoration:none}.app-loading,.loading,.grid-loading{height:100vh;color:var(--text-secondary);justify-content:center;align-items:center;font-size:16px;display:flex}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--bg-secondary);border:1px solid var(--border);text-align:center;border-radius:12px;width:360px;padding:40px}.login-card h1{margin-bottom:4px;font-size:24px}.login-card .subtitle{color:var(--text-secondary);margin-bottom:24px}.login-card form{flex-direction:column;gap:12px;display:flex}.login-card .error{color:var(--red);font-size:12px}.login-card .notice{color:var(--text-secondary);font-size:12px;line-height:1.4}.toggle-auth{color:var(--accent);background:0 0;border:none;margin-top:16px;font-size:12px}.app-shell{height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.sidebar-brand{border-bottom:1px solid var(--border);padding:16px}.sidebar-brand h2{color:var(--accent);font-size:16px}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex}.sidebar-nav a{color:var(--text-secondary);border-radius:6px;padding:8px 12px;transition:all .15s;display:block}.sidebar-nav a:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-nav a.active{background:var(--accent);color:#fff}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.user-email{color:var(--text-muted);text-overflow:ellipsis;font-size:11px;overflow:hidden}.logout-btn{padding:4px 8px;font-size:11px}.main-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.master-grid-container{flex-direction:column;height:100%;display:flex}.grid-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:6px 12px;display:flex}.grid-summary-header{color:var(--text-secondary);gap:16px;font-size:12px;display:flex}.grid-summary-header strong{color:var(--text-primary)}.grid-controls{align-items:center;gap:6px;display:flex}.grid-controls .nav-btn{padding:2px 8px;font-size:11px;line-height:1}.timeframe-select{width:auto;min-width:80px;padding:4px 6px;font-size:12px}.frame-label{color:var(--text-primary);text-align:center;min-width:70px;font-size:12px;font-weight:600}.jump-today-btn{padding:3px 10px;font-size:11px}.grid-search-input{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);border-radius:4px;width:180px;padding:3px 8px;font-size:12px}.grid-search-input::placeholder{color:var(--text-muted)}.grid-summary-divider{background:var(--border);flex-shrink:0;width:1px;height:14px}.grid-wrapper{flex:1;display:flex;overflow:hidden}.frozen-columns{border-right:2px solid var(--border);background:var(--bg-secondary);z-index:3;flex-shrink:0;overflow:hidden}.frozen-header,.frozen-row{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:0 4px;font-size:10px;display:flex}.frozen-header{color:var(--text-secondary);background:var(--bg-tertiary);z-index:4;font-weight:600;position:sticky;top:0}.frozen-header .sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.frozen-header .sortable:hover{color:var(--accent)}.col-resize-handle{cursor:col-resize;z-index:5;width:11px;height:100%;position:absolute;top:0;right:-6px}.col-resize-handle:hover,.col-resize-handle:active{background:var(--accent);opacity:.4}.col-type{text-align:center;flex-shrink:0;font-size:9px}.col-projnum{text-align:center;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;overflow:hidden}.col-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:50px;font-weight:500;overflow:hidden}.col-name.clickable-name{cursor:pointer;color:var(--accent);transition:color .15s}.col-name.clickable-name:hover{color:var(--text-primary);text-decoration:underline}.col-client{text-overflow:ellipsis;white-space:nowrap;min-width:40px;color:var(--text-muted);flex-shrink:0;overflow:hidden}.col-total,.col-year,.col-quarter,.col-month,.col-week,.col-today{text-align:center;font-variant-numeric:tabular-nums;flex-shrink:0}.col-today{color:var(--accent);font-weight:600}.day-cell.selected{background:#6366f10f}.day-cell.active{outline:2px solid var(--accent);outline-offset:-2px;z-index:1;background:#6366f126}.day-cell.meta-detail:after,.day-cell.meta-notes:after,.day-cell.meta-full:after{content:"";pointer-events:none;border-style:solid;border-width:0 6px 6px 0;width:0;height:0;position:absolute;top:0;right:0}.day-cell.meta-detail:after{border-color:transparent var(--accent) transparent transparent}.day-cell.meta-notes:after{border-color:#0000 #f59e0b #0000 #0000}.day-cell.meta-full:after{border-color:#0000 #10b981 #0000 #0000}.day-cell.typing{color:var(--accent);background:#6366f140;font-weight:700}.frozen-row.paused{opacity:.5;border-left:2px solid var(--yellow);background:#fbbf240f}.frozen-row.cancelled{opacity:.4;border-left:2px solid var(--red);background:#f871710f;text-decoration:line-through}.frozen-row.completed{opacity:.6;border-left:2px solid var(--green);background:#34d3990f}.section-divider{border-top:2px solid var(--border);background:var(--surface);box-sizing:border-box;align-items:center;padding:0 8px;display:flex}.divider-label{color:var(--text-secondary,#888);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.section-divider-scroll{border-top:2px solid var(--border);background:var(--surface);box-sizing:border-box}.type-badge{text-transform:uppercase;border-radius:3px;padding:1px 3px;font-size:8px;font-weight:700}.type-badge.schedule_c{color:var(--green);background:#34d39933}.type-badge.\31 099{color:var(--accent);background:#4f8ff733}.type-badge.non_billable{color:var(--text-muted);background:#63698033}.scrollable-area{flex:1;position:relative;overflow:auto}.date-header{color:var(--text-muted);border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--bg-tertiary);-webkit-user-select:none;user-select:none;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;font-size:9px;display:flex}.date-header:hover{background:#4f8ff71f}.date-header.selected{background:#4f8ff71f;font-weight:600}.date-header.current-week{color:var(--text-secondary);background:#4f8ff714}.date-header.today{color:var(--accent);background:#4f8ff733;font-weight:700}.date-header-day{text-transform:uppercase;font-weight:600}.date-header-num{font-size:8px}.grid-row{border-bottom:1px solid var(--border)}.day-cell{border-right:1px solid var(--border);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:11px;transition:background .1s;display:flex}.day-cell:hover{background:#4f8ff71f}.day-cell.current-week{background:#4f8ff70a}.day-cell.today{background:#4f8ff71a}.day-cell.has-data{color:var(--accent);font-weight:600}.day-cell.has-data:hover{background:#4f8ff733}.drawer-overlay{z-index:100;background:#00000080;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer-panel{background:var(--bg-secondary);border-left:1px solid var(--border);flex-direction:column;width:380px;height:100%;display:flex}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px;display:flex}.drawer-header h3{font-size:15px}.drawer-close{color:var(--text-secondary);background:0 0;border:none;padding:2px 6px;font-size:20px}.drawer-form{flex-direction:column;flex:1;gap:14px;padding:16px;display:flex}.drawer-form label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:12px;display:flex}.drawer-actions{justify-content:flex-end;gap:8px;margin-top:auto;padding-top:16px;display:flex}.entry-tabs{border-bottom:1px solid var(--border);gap:2px;padding:8px 16px 0;display:flex;overflow-x:auto}.entry-tab{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-bottom:none;border-radius:4px 4px 0 0;padding:6px 12px;font-size:11px;position:relative}.entry-tab.active{background:var(--bg-secondary);color:var(--text-primary);border-bottom:1px solid var(--bg-secondary);margin-bottom:-1px}.entry-tab.dirty:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:4px;right:4px}.priority-dashboard{padding:16px;overflow-y:auto}.bandwidth-ribbon{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;gap:32px;margin-bottom:16px;padding:16px;display:flex}.bandwidth-stat .label{color:var(--text-muted);font-size:11px;display:block}.bandwidth-stat .value{font-size:22px;font-weight:700}.priority-list{flex-direction:column;gap:10px;display:flex}.priority-card{background:var(--bg-secondary);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;padding:14px 16px}.priority-card.status-red{border-left-color:var(--red)}.priority-card.status-yellow{border-left-color:var(--yellow)}.priority-card.status-green{border-left-color:var(--green)}.priority-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.traffic-light{background:var(--text-muted);border-radius:50%;width:12px;height:12px}.traffic-light.red{background:var(--red)}.traffic-light.yellow{background:var(--yellow)}.traffic-light.green{background:var(--green)}.priority-stats{flex-wrap:wrap;gap:16px;display:flex}.priority-stats .stat{min-width:120px}.priority-stats .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;display:block}.priority-stats .value{font-size:13px}.progress-bar{background:var(--bg-tertiary);border-radius:3px;width:100%;height:6px;margin:4px 0;overflow:hidden}.progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .3s}.priority-action-items{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:14px 16px}.priority-action-items h3{margin:0 0 10px;font-size:14px}.priority-action-list{flex-direction:column;gap:6px;display:flex}.priority-action-row{background:var(--bg-tertiary);border-radius:4px;align-items:center;gap:10px;padding:6px 8px;font-size:12px;display:flex}.priority-action-row.priority-high,.priority-action-row.priority-urgent{border-left:3px solid var(--red)}.priority-action-row.priority-medium{border-left:3px solid var(--yellow)}.priority-action-row.priority-low{border-left:3px solid var(--text-muted)}.priority-action-type{text-transform:uppercase;color:var(--text-muted);letter-spacing:.3px;min-width:100px;font-size:10px}.priority-action-title{flex:1}.priority-action-due{color:var(--text-muted);font-size:11px}.priority-action-btns{gap:4px;display:flex}.priority-action-btns button{padding:2px 6px;font-size:11px}.projects-page{padding:16px 16px 120px;overflow-y:auto}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.project-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:16px;padding:16px;display:flex}.project-form input,.project-form select{width:auto;min-width:160px}.form-row{align-items:center;gap:16px;width:100%;display:flex}.form-row label{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.form-row input[type=checkbox]{width:auto}.projects-table{border-collapse:separate;border-spacing:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;width:100%}.projects-table th,.projects-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 12px;font-size:12px}.projects-table th.col-status,.projects-table td.col-status{width:70px;max-width:70px}.projects-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .1s}.projects-table th.sortable:hover{color:var(--text-primary)}.projects-table th{background:var(--bg-tertiary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.projects-table tr.inactive{color:var(--text-muted)}.projects-table tr.clickable-row{cursor:pointer;transition:background .1s}.projects-table tr.clickable-row:hover td{background:var(--bg-tertiary)}.projects-table tr.archived-row{opacity:.5}.projects-table tr.status-cancelled{color:var(--text-muted);text-decoration:line-through}.projects-table tr.status-completed{color:var(--text-muted)}.projects-table tr.section-divider-row td{border-top:2px solid var(--border);background:var(--surface);cursor:default;padding:4px 8px}.projects-table tr.section-divider-row:hover td{background:var(--surface)}.status-badge{text-transform:capitalize;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600}.status-badge.active{color:var(--green);background:#34d39926}.status-badge.standing{color:#94a3b8;background:#94a3b82e}.status-badge.paused{color:var(--yellow);background:#fbbf2426}.status-badge.completed{color:var(--accent);background:#4f8ff726}.status-badge.cancelled{color:var(--red);background:#f8717126}.status-select{width:auto;min-width:90px;padding:2px 4px;font-size:11px}.status-badge.clickable{cursor:pointer;transition:filter .15s}.status-badge.clickable:hover{filter:brightness(1.3)}.status-popup{z-index:100;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;min-width:110px;margin-top:2px;padding:4px;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #0000004d}.status-popup-item{text-align:left;cursor:pointer;text-transform:capitalize;background:0 0;border:none;border-radius:4px;width:100%;padding:4px 10px;font-size:11px;font-weight:600;display:block}.status-popup-item.active{color:var(--green)}.status-popup-item.standing{color:#94a3b8}.status-popup-item.paused{color:var(--yellow)}.status-popup-item.completed{color:var(--accent)}.status-popup-item.cancelled{color:var(--red)}.status-popup-item:hover{background:var(--bg-tertiary)}.actions-cell{align-items:center;gap:4px;display:flex}.project-name{font-weight:500}.empty{text-align:center;color:var(--text-muted);padding:24px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.reports-page{padding:16px;overflow-y:auto}.report-nav{align-items:center;gap:8px;display:flex}.report-period{text-align:center;min-width:120px;font-weight:600}.report-cards{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.report-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;min-width:110px;padding:12px 18px}.report-card .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:10px;display:block}.report-card .value{font-size:20px;font-weight:700}.report-bar-section{margin-bottom:20px}.report-bar-section h3{color:var(--text-secondary);margin-bottom:8px;font-size:14px}.stacked-bar{background:var(--bg-tertiary);border-radius:4px;height:20px;display:flex;overflow:hidden}.bar-segment{height:100%;transition:width .3s}.bar-legend{color:var(--text-secondary);gap:16px;margin-top:6px;font-size:11px;display:flex}.legend-item{align-items:center;gap:4px;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.report-table-section{margin-top:16px}.report-table-section h3{color:var(--text-secondary);margin-bottom:8px;font-size:14px}.clients-page{padding:16px;overflow-y:auto}.clients-page .page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.clients-page .page-header h1{margin:0;font-size:20px}.clients-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;margin-bottom:16px;padding:16px}.clients-form h3{margin:0 0 12px;font-size:14px}.clients-form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.clients-form-grid label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:12px;display:flex}.clients-form-grid label.full-width{grid-column:1/-1}.clients-form-grid input,.clients-form-grid textarea{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:4px;padding:6px 8px;font-size:12px}.clients-form-actions{gap:8px;margin-top:12px;display:flex}.clients-form-actions button.secondary{background:var(--bg-tertiary);color:var(--text-secondary)}.clients-empty{text-align:center;color:var(--text-muted);padding:48px 16px;font-size:14px}.clients-list{flex-direction:column;gap:8px;display:flex}.client-card{border:1px solid var(--border);background:var(--bg-primary);border-radius:6px;overflow:hidden}.client-card.client-inactive{opacity:.7}.client-card-header{cursor:pointer;align-items:center;gap:12px;padding:12px 16px;display:flex}.client-card-header:hover{background:var(--bg-secondary)}.client-card-main{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.client-name{font-size:14px;font-weight:600}.client-meta{color:var(--text-muted);font-size:11px}.client-card-contact{color:var(--text-secondary);flex-shrink:0;gap:16px;font-size:12px;display:flex}.client-primary-contact{font-weight:500}.client-card-actions{flex-shrink:0;gap:6px;display:flex}.client-card-actions button.danger{color:var(--red)}.client-type-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:3px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:600}.client-type-corporate{background:var(--accent);color:#fff}.client-type-individual{background:var(--text-muted);color:#fff}.client-status-badge{border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px}.client-status-active{color:#155724;background:#d4edda}.client-status-inactive{color:#721c24;background:#f8d7da}.client-status-prospective{color:#856404;background:#fff3cd}.client-referral{color:var(--text-muted);margin-top:8px;font-size:12px}.client-card-detail{border-top:1px solid var(--border);padding:0 16px 12px}.client-notes{color:var(--text-secondary);margin-top:8px;font-size:12px}.client-contacts-section{margin-top:10px;font-size:12px}.client-contacts-section strong{color:var(--text-secondary)}.client-contacts-list{margin:4px 0 0;padding:0;list-style:none}.client-contacts-list li{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.client-contacts-list li.primary{font-weight:500}.contact-name{min-width:100px}.contact-role{color:var(--text-muted);font-size:11px}.contact-info{color:var(--text-secondary);font-size:11px}.contact-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.primary-badge{background:var(--accent);color:#fff;border-radius:3px;padding:1px 4px;font-size:10px}.add-contact-form{grid-template-columns:1fr 1fr;gap:6px;max-width:480px;margin-top:6px;display:grid}.add-contact-form input{padding:4px 8px;font-size:12px}.client-projects{margin-top:8px;font-size:12px}.client-projects strong{color:var(--text-secondary)}.client-projects ul{margin:4px 0 0;padding:0;list-style:none}.client-projects li{align-items:center;gap:8px;padding:3px 0;display:flex}.client-projects li a{color:var(--text-primary);text-decoration:none}.client-projects li a:hover{color:var(--accent);text-decoration:underline}.client-created{color:var(--text-muted);margin-top:8px;font-size:11px}.settings-page{padding:16px;overflow-y:auto}.settings-sections{flex-direction:column;gap:20px;display:flex}.settings-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:16px}.settings-card h3{margin-bottom:4px;font-size:15px}.collapsible-card{padding:0}.collapsible-card-header{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:12px 16px;font-size:15px;font-weight:600;display:flex}.collapsible-card-header:hover{background:var(--bg-tertiary)}.collapsible-card-header:disabled{color:var(--text-primary);cursor:pointer;opacity:1;background:0 0}.collapsible-chevron{color:var(--text-muted);width:10px;font-size:10px;transition:transform .15s;display:inline-block}.collapsible-title{flex:1}.collapsible-summary{color:var(--text-muted);font-size:12px;font-weight:400}.collapsible-card-body{padding:0 16px 16px}.collapsible-card-body>.settings-card{background:0 0;border:none;padding:0}.collapsible-card-body>.settings-card>h3{display:none}.settings-desc{color:var(--text-secondary);margin-bottom:12px;font-size:12px}.settings-list{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.settings-list-item{background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.settings-list-row{align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.phase-code{width:40px;color:var(--accent);flex-shrink:0;font-weight:700}.phase-name,.task-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.clickable{cursor:pointer;border-bottom:1px dashed #0000}.clickable:hover{color:var(--accent);border-bottom-color:var(--accent)}.task-order{color:var(--text-muted);text-align:right;flex-shrink:0;width:24px;font-size:10px}.toggle-btn.on{color:var(--green);border-color:#34d3994d}.toggle-btn.off{color:var(--text-muted)}.inline-edit{background:var(--bg-primary);border:1px solid var(--accent);color:var(--text-primary);border-radius:3px;padding:2px 6px;font-size:12px}.seg-toggle{background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;gap:2px;padding:2px;display:inline-flex}.seg-toggle button{all:unset;cursor:pointer;color:var(--text-muted);border-radius:4px;padding:3px 12px;font-size:11px;font-weight:500;transition:background .15s,color .15s}.seg-toggle button:hover{color:var(--text-primary)}.seg-toggle button.active{background:var(--accent);color:#fff}.phase-task-assign{border-top:1px solid var(--border);background:var(--bg-secondary);padding:8px 10px 10px}.phase-task-actions{align-items:center;gap:8px;margin-bottom:8px;display:flex}.sortable-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-table th.sortable:hover{color:var(--accent)}.task-types-fieldset{border:1px solid var(--border);border-radius:6px;padding:8px 10px}.task-types-fieldset legend{color:var(--text-secondary);padding:0 4px;font-size:12px}.task-types-grid{flex-wrap:wrap;gap:6px 12px;display:flex}.task-type-check{cursor:pointer;align-items:center;gap:4px;font-size:12px;display:flex}.task-type-check input{width:auto}.task-badge-grid{flex-wrap:wrap;gap:6px;display:flex}.task-badge{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:999px;padding:4px 10px;font-size:12px;transition:all .15s}.task-badge:hover{border-color:var(--accent);color:var(--text-primary)}.task-badge.active{background:var(--accent);border-color:var(--accent);color:#fff}.seed-prompt{text-align:center;background:var(--bg-secondary);border:1px dashed var(--border);color:var(--text-secondary);border-radius:8px;margin-bottom:16px;padding:24px 16px;font-size:13px}.seed-prompt p{margin-bottom:12px}.inline-add-form{align-items:center;gap:8px;margin-top:12px;display:flex}.inline-add-form input{flex:1}button.delete-btn{color:var(--red);opacity:.6;background:0 0;border-color:#0000}button.delete-btn:hover{opacity:1;background:#f871711a}.projects-filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.projects-filter-bar select{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);border-radius:4px;padding:4px 8px;font-size:12px}.projects-filter-search{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);border-radius:4px;width:180px;padding:4px 8px;font-size:12px}.projects-filter-count{color:var(--text-muted);margin-left:auto;font-size:11px}.quick-add-section{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.quick-add-label{color:var(--text-secondary);font-size:12px}.chip{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;border-radius:12px;padding:3px 10px;font-size:11px;transition:background .15s}.chip:hover{background:var(--accent);border-color:var(--accent);color:#fff}.auto-save-indicator{color:var(--accent);font-size:11px;animation:1s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.expenses-page{box-sizing:border-box;height:100%;padding:16px;overflow-y:auto}.expenses-page .page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.expenses-page .page-header h1{margin:0;font-size:20px}.expenses-tabs{gap:4px;display:flex}.expenses-tabs button{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.expenses-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.expenses-tabs button:hover:not(.active){background:var(--bg-tertiary)}.tab-count-badge{background:var(--yellow,#ecc94b);color:#1a1a1a;text-align:center;border-radius:8px;min-width:16px;padding:1px 6px;font-size:10px;font-weight:700}.expenses-error{border:1px solid var(--red,#dc2626);color:var(--red,#dc2626);background:#dc26261a;border-radius:4px;margin-bottom:12px;padding:8px 12px;font-size:12px}.expenses-info{border:1px solid var(--green,#22c55e);color:var(--green,#22c55e);background:#22c55e1a;border-radius:4px;margin-bottom:12px;padding:8px 12px;font-size:12px}.expenses-empty{text-align:center;color:var(--text-muted);padding:48px 16px;font-size:14px}.expenses-layout{grid-template-columns:280px 1fr;align-items:start;gap:16px;display:grid}.expenses-accounts{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:12px}.expenses-accounts-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.expenses-accounts-header h3{margin:0;font-size:13px}.expenses-accounts-header button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:4px 10px;font-size:12px}.account-form{background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:8px;margin-bottom:10px;padding:10px;display:flex}.account-form h4{margin:0 0 4px;font-size:12px}.account-form label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:11px;display:flex}.account-form label.checkbox-label{white-space:nowrap;flex-direction:row;align-items:center;gap:8px}.account-form label.checkbox-label input[type=checkbox]{flex:none;width:14px;height:14px;margin:0}.account-form label.checkbox-label span{color:var(--text-primary);font-size:12px;line-height:1}.account-form input,.account-form select{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:3px;padding:4px 6px;font-size:12px}.account-form-actions{gap:6px;display:flex}.account-form-actions button{cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:3px;padding:4px 10px;font-size:11px}.account-form-actions button.secondary{background:var(--bg-tertiary);color:var(--text-secondary)}.account-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.account-list li{cursor:pointer;border-radius:4px;padding:6px 8px;font-size:12px}.account-list li:hover{background:var(--bg-tertiary)}.account-list li.active{background:var(--accent);color:#fff}.account-list li.active .account-meta{color:#fffc}.account-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.account-info{flex-direction:column;min-width:0;display:flex}.account-name{align-items:center;gap:6px;font-weight:600;display:flex}.account-meta{color:var(--text-muted);font-size:10px}.account-actions{opacity:.7;gap:2px;display:flex}.account-actions button{color:inherit;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px}.account-actions button.danger{color:var(--red,#dc2626)}.biz-tag{background:var(--accent);color:#fff;letter-spacing:.2px;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600}.account-list li.active .biz-tag{background:#ffffff4d}.account-meta-inline{color:var(--text-muted);font-size:11px;font-weight:400}.account-list li.active .account-meta-inline{color:#fffc}.account-filter-row{margin-bottom:6px}.account-filter-btn{border:1px dashed var(--border);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border-radius:4px;padding:6px 8px;font-size:11px}.account-filter-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.account-filter-btn.active{background:var(--bg-tertiary);border-style:solid;border-color:var(--accent);color:var(--text-primary)}.upload-form{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;display:flex}.upload-form h4{margin:0;font-size:12px}.upload-form label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:11px;display:flex}.upload-form select,.upload-form input[type=file]{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:3px;padding:4px 6px;font-size:11px}.upload-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:6px 10px;font-size:12px}.dropzone{border:2px dashed var(--border);text-align:center;background:var(--bg-primary);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:280px;padding:48px 24px;transition:border-color .15s,background .15s;display:flex}.dropzone.drag-over{border-color:var(--accent);background:#4f8ff714}.dropzone-plus{background:var(--bg-tertiary);width:56px;height:56px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;font-size:36px;font-weight:300;line-height:56px;display:flex}.dropzone.drag-over .dropzone-plus{background:var(--accent);color:#fff}.dropzone-title{color:var(--text-primary);font-size:16px;font-weight:600}.dropzone-subtitle{color:var(--text-secondary);max-width:360px;font-size:12px}.dropzone-warning{color:var(--yellow,#ecc94b);margin-top:8px;font-size:12px}.expenses-empty-state{text-align:center;color:var(--text-secondary);padding:48px 24px}.expenses-empty-title{color:var(--text-primary);margin-bottom:6px;font-size:14px;font-weight:600}.expenses-empty-subtitle{color:var(--text-secondary);font-size:12px}.dropzone-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;margin-top:14px;padding:8px 16px;font-size:12px;font-weight:600}.dropzone-button:hover:not(:disabled){filter:brightness(1.1)}.dropzone-button:disabled{opacity:.5;cursor:not-allowed}.dropzone-overlay{border:2px dashed var(--accent);z-index:10;pointer-events:none;background:#4f8ff72e;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dropzone-overlay-text{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--accent);border-radius:6px;padding:12px 20px;font-size:14px;font-weight:600;box-shadow:0 4px 12px #00000040}.txn-toolbar-actions{align-items:center;gap:8px;display:flex}.toolbar-upload-btn{background:var(--bg-tertiary);width:28px;height:28px;color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;display:inline-flex}.toolbar-upload-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.toolbar-upload-btn:disabled{opacity:.5;cursor:not-allowed}.expenses-main{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;min-height:200px;padding:12px;position:relative}.txn-table-wrap{position:relative;overflow-x:auto}.upload-error-detail{flex-direction:column;gap:6px;display:flex}.upload-error-message{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.upload-error-dismiss{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px}.upload-error-cols{font-size:12px;font-family:var(--font-mono,monospace);word-break:break-word}.txn-toolbar{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:4px 8px 12px;font-size:12px;display:flex}.txn-toolbar button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:12px}.txn-toolbar button.danger{background:var(--red,#dc2626);color:#fff}.txn-toolbar button.danger:hover:not(:disabled){filter:brightness(1.1)}.txn-toolbar button:disabled{opacity:.5;cursor:not-allowed}.txn-table{border-collapse:collapse;width:100%;font-size:12px}.txn-table th{text-align:left;border-bottom:1px solid var(--border);color:var(--text-secondary);background:var(--bg-primary);padding:6px 8px;font-weight:600;position:sticky;top:0}.txn-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.txn-table th.sortable:hover{color:var(--text-primary);background:var(--bg-tertiary)}.txn-table th.sorted{color:var(--accent)}.txn-table th .sort-indicator{opacity:.8;margin-left:2px;font-size:10px}.txn-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 8px}.txn-table tr.pending{background:#ecc94b0d}.txn-table tr.txn-row-business td{background:#3b82f61a}.txn-table tr.txn-row-personal td{background:#94a3b81f}.txn-table td.num{text-align:right;font-variant-numeric:tabular-nums}.txn-table td.row-actions,.txn-table td.quick-actions{white-space:nowrap}.tag-toggle{border:1px solid var(--border);border-radius:4px;display:inline-flex;overflow:hidden}.tag-toggle-btn{appearance:none;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:2px 10px;font-size:11px;font-weight:500;line-height:1.4}.tag-toggle-btn+.tag-toggle-btn{border-left:1px solid var(--border)}.tag-toggle-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.tag-toggle-btn:disabled{cursor:not-allowed;opacity:.5}.tag-toggle-btn.biz.active{color:#fff;background:#3b82f6d9;box-shadow:inset 0 0 0 1.5px #ffffffb3}.tag-toggle-btn.pers.active{color:#fff;background:#64748bd9;box-shadow:inset 0 0 0 1.5px #ffffffb3}.tag-pill{border:1px solid #0000;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:500;display:inline-block}.tag-pill-business{color:#3b82f6;background:0 0;border-color:#3b82f666}.tag-pill-personal{color:var(--text-secondary);border-color:var(--border);background:0 0}.tag-pill-inflow{color:#22c55e;background:#22c55e1a;border-color:#22c55e73}.amount-inflow{color:#22c55e;font-weight:600}.txn-table tr.txn-row-inflow td{background:#22c55e0f}.note-cell-input{width:100%;min-width:140px;color:var(--text-primary);background:0 0;border:1px solid #0000;border-radius:3px;padding:3px 6px;font-family:inherit;font-size:12px}.note-cell-input::placeholder{color:var(--text-muted);font-style:italic}.note-cell-input:hover:not(:disabled):not(:focus){border-color:var(--border)}.note-cell-input:focus{border-color:var(--accent);background:var(--bg-secondary);outline:none}.note-cell-input:disabled{opacity:.5;cursor:not-allowed}.txn-table tr.approved-row td{color:var(--text-secondary)}.txn-table tr.approved-row td.num,.txn-table tr.approved-row td:nth-child(4){color:var(--text-primary)}.status-tagged{color:var(--accent);font-weight:500}.status-untagged{color:var(--text-secondary)}.txn-table td.row-actions button,.txn-table td.quick-actions button{background:var(--bg-tertiary);border:1px solid var(--border);cursor:pointer;border-radius:3px;margin-left:2px;padding:2px 6px;font-size:11px}.txn-table td.row-actions button.danger{color:var(--red,#dc2626)}.txn-table td.row-actions button:disabled,.txn-table td.quick-actions button:disabled{opacity:.5;cursor:not-allowed}.txn-table .text-muted{color:var(--text-muted)}.txn-table em{font-style:normal;font-weight:600}.pending-pill{background:var(--yellow,#ecc94b);color:#1a1a1a;border-radius:2px;margin-left:4px;padding:1px 4px;font-size:9px;font-weight:700}.leakage{color:var(--red,#dc2626);font-weight:600}.confidence-badge{text-align:center;border-radius:3px;min-width:28px;padding:2px 6px;font-size:10px;font-weight:700;display:inline-block}.confidence-high{color:var(--green,#22c55e);background:#22c55e26}.confidence-medium{color:#b08800;background:#ecc94b26}.confidence-low{color:var(--red,#dc2626);background:#dc262626}.confidence-na{background:var(--bg-tertiary);color:var(--text-muted)}.tag-toggle-btn.biz.faded{color:#fff;background:#3b82f652}.tag-toggle-btn.pers.faded{color:#fff;background:#64748b52}.tag-toggle-btn.faded:hover:not(:disabled){filter:brightness(1.15)}.subtype-picker{display:inline-block;position:relative}.subtype-picker-button{color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:6px;min-width:120px;padding:3px 8px;font-size:12px;display:inline-flex}.subtype-picker-button:hover:not(:disabled){border-color:var(--accent)}.subtype-picker-button:disabled{opacity:.5;cursor:not-allowed}.subtype-picker-button.faded .subtype-picker-label{opacity:.6;font-style:italic}.subtype-picker-button.empty .subtype-picker-label{color:var(--text-secondary)}.subtype-picker-label{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.subtype-picker-caret{color:var(--text-secondary);font-size:14px;line-height:1}.subtype-popover{background:var(--bg-secondary);border:1px solid var(--border);z-index:100;border-radius:4px;min-width:180px;max-height:280px;padding:4px 0;position:absolute;top:calc(100% + 2px);left:0;overflow-y:auto;box-shadow:0 4px 16px #0006}.subtype-popover-item{cursor:pointer;color:var(--text-primary);justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.subtype-popover-item:hover,.subtype-popover-item.active{background:#4f8ff726}.subtype-popover-item.selected{color:var(--accent);font-weight:500}.subtype-popover-item.clear{border-bottom:1px solid var(--border)}.subtype-popover-hint{color:var(--text-secondary);font-size:10px;font-style:italic}.subtype-pill{border:1px solid var(--border);color:var(--text-primary);background:#ffffff08;border-radius:10px;padding:2px 8px;font-size:11px;display:inline-block}.classifier-card .classifier-row{flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0;display:flex}.classifier-status-badge{letter-spacing:.3px;border-radius:10px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.classifier-status-badge.baseline{color:#cbd5e1;background:#64748b40}.classifier-status-badge.personal{color:#93c5fd;background:#4f8ff740}.classifier-meta{color:var(--text-secondary);font-size:12px}.classifier-accuracy{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:12px}.classifier-toast{border-radius:4px;margin-top:8px;padding:8px 12px;font-size:12px}.classifier-toast.success{color:#86efac;background:#22c55e26;border:1px solid #22c55e4d}.classifier-toast.error{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d}.csv-wizard-overlay{z-index:200;background:#000000a6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.csv-wizard{background:var(--bg-secondary);border:1px solid var(--border);width:min(960px,100%);max-height:90vh;color:var(--text-primary);border-radius:8px;flex-direction:column;display:flex;box-shadow:0 8px 32px #00000080}.csv-wizard-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:16px 20px;display:flex}.csv-wizard-header h2{margin:0;font-size:16px;font-weight:600}.csv-wizard-header p{margin:4px 0 0;font-size:12px}.csv-wizard-drift{color:#fca5a5;background:#ef44441f;border:1px solid #ef444466;border-radius:4px;margin:12px 20px 0;padding:10px 14px;font-size:12px}.csv-wizard-drift code{background:#0000004d;border-radius:3px;padding:1px 5px}.csv-wizard-error{color:#fca5a5;background:#ef44441f;border:1px solid #ef444466;border-radius:4px;margin:12px 0;padding:8px 12px;font-size:12px}.csv-wizard-warning{color:#fcd34d;background:#fbbf241f;border:1px solid #fbbf244d;border-radius:3px;margin:4px 0;padding:6px 10px;font-size:11px}.csv-wizard-body{flex:1;grid-template-columns:360px 1fr;gap:20px;min-height:0;padding:20px;display:grid;overflow-y:auto}.csv-wizard-form{flex-direction:column;gap:12px;display:flex}.csv-wizard-field{flex-direction:column;gap:4px;font-size:12px;display:flex}.csv-wizard-field-label{color:var(--text-secondary);font-weight:500}.csv-wizard-required{color:var(--red)}.csv-wizard-select,.csv-wizard-form input[type=number]{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-family:inherit;font-size:12px}.csv-wizard-select:focus,.csv-wizard-form input[type=number]:focus{border-color:var(--accent);outline:none}.csv-wizard-radio-row{flex-direction:column;gap:4px;font-size:12px;display:flex}.csv-wizard-radio-row label{color:var(--text-primary);cursor:pointer}.csv-wizard-preview{flex-direction:column;gap:8px;min-width:0;display:flex}.csv-wizard-preview h3{color:var(--text-secondary);margin:0;font-size:13px;font-weight:600}.csv-wizard-preview .small{font-size:11px}.csv-wizard-preview-table{border-collapse:collapse;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;width:100%;font-size:12px}.csv-wizard-preview-table th,.csv-wizard-preview-table td{border-bottom:1px solid var(--border);text-align:left;padding:6px 8px}.csv-wizard-preview-table th{color:var(--text-secondary);font-size:11px;font-weight:500}.csv-wizard-preview-table tr:last-child td{border-bottom:none}.csv-wizard-preview-table .num{text-align:right;font-variant-numeric:tabular-nums}.csv-wizard-preview-table .amount-outflow{color:var(--text-primary)}.csv-wizard-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.account-mapping-pill{color:#86efac;cursor:pointer;background:#22c55e1f;border:1px solid #22c55e80;border-radius:8px;align-items:center;gap:4px;margin-left:6px;padding:1px 6px;font-size:10px;display:inline-flex}.account-mapping-pill:hover{background:#22c55e33}.account-mapping-pill.unset{border-color:var(--border);color:var(--text-muted);background:0 0}.account-form .form-hint{color:var(--text-secondary);border-left:2px solid var(--accent);background:#4f8ff714;border-radius:2px;margin:-4px 0 4px;padding:6px 10px;font-size:11px}.csv-wizard-segmented{border:1px solid var(--border);border-radius:4px;align-self:flex-start;display:inline-flex;overflow:hidden}.csv-wizard-segmented-btn{background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border:0;padding:6px 12px;font-family:inherit;font-size:12px;transition:background .12s,color .12s}.csv-wizard-segmented-btn+.csv-wizard-segmented-btn{border-left:1px solid var(--border)}.csv-wizard-segmented-btn:hover:not(.active){background:var(--bg-secondary);color:var(--text-primary)}.csv-wizard-segmented-btn.active{background:var(--accent);color:#fff}.csv-wizard-preview-section{flex-direction:column;gap:6px;min-width:0;display:flex}.csv-wizard-preview-section+.csv-wizard-preview-section{margin-top:14px}.csv-wizard-preview-section h3{color:var(--text-primary);margin:0;font-size:13px;font-weight:600}.csv-wizard-raw-scroll{border:1px solid var(--border);background:var(--bg-tertiary);border-radius:4px;max-height:220px;overflow:auto}.csv-wizard-raw-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:11px;font-family:var(--font-mono,monospace)}.csv-wizard-raw-table th,.csv-wizard-raw-table td{border-right:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;max-width:220px;padding:4px 8px;overflow:hidden}.csv-wizard-raw-table th{z-index:1;background:var(--bg-secondary);color:var(--text-primary);text-align:left;border-bottom:1px solid var(--border);font-weight:600;position:sticky;top:0}.csv-wizard-raw-table tbody tr:nth-child(2n) td{background:#ffffff05}.csv-wizard-raw-table tbody td{color:var(--text-primary)}.mileage-page{padding:16px 24px}.mileage-page .page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.mileage-page .page-header h1{margin:0;font-size:20px}.mileage-summary-card{background:var(--card-bg,#1e293b);border:1px solid var(--border,#334155);border-radius:8px;margin-bottom:24px;padding:16px}.mileage-summary-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;margin-bottom:16px;display:grid}.mileage-stat-label{text-transform:uppercase;letter-spacing:.5px;opacity:.7;font-size:11px}.mileage-stat-value{margin-top:2px;font-size:20px;font-weight:600}.mileage-vehicle-summary{border-collapse:collapse;width:100%;font-size:13px}.mileage-vehicle-summary th,.mileage-vehicle-summary td{text-align:left;border-bottom:1px solid var(--border,#334155);padding:6px 10px}.mileage-vehicle-summary th{opacity:.8;font-weight:600}.mileage-section-title{align-items:center;margin:16px 0 8px;font-size:16px;display:flex}.mileage-empty{text-align:center;background:var(--card-bg,#1e293b);border:1px dashed var(--border,#334155);opacity:.7;border-radius:6px;padding:24px}.mileage-trips-table{border-collapse:collapse;background:var(--card-bg,#1e293b);border:1px solid var(--border,#334155);border-radius:6px;width:100%;font-size:13px;overflow:hidden}.mileage-trips-table th,.mileage-trips-table td{border-bottom:1px solid var(--border,#334155);vertical-align:top;padding:8px 10px}.mileage-trips-table th{text-align:left;background:#ffffff08;font-weight:600}.mileage-trips-table tr:last-child td{border-bottom:none}.round-trip-badge{background:var(--blue,#3b82f6);color:#fff;border-radius:3px;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.vehicle-list{margin:0;padding:0;list-style:none}.vehicle-list>li{cursor:pointer;border:1px solid #0000;border-radius:4px;margin-bottom:4px;padding:8px 10px;transition:background .1s,border-color .1s}.vehicle-list>li:hover{background:var(--bg-hover,#ffffff0a)}.vehicle-list>li.active{background:var(--accent,#3b82f6);color:#fff}.vehicle-list>li.active .vehicle-meta,.vehicle-list>li.active .vehicle-meta-inline{color:#ffffffd9}.vehicle-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.vehicle-info{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.vehicle-name{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.vehicle-meta-inline{opacity:.8;font-size:11px;font-weight:400}.vehicle-meta{opacity:.7;font-size:11px}.vehicle-actions{flex:none;gap:4px;display:flex}.vehicle-actions button{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:14px}.vehicle-actions button:hover{opacity:1;background:#ffffff14}.vehicle-actions button.danger{color:var(--red,#ef4444)}.default-badge{background:var(--blue,#3b82f6);color:#fff;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.vehicle-list>li.active .default-badge{color:#fff;background:#ffffff40}.mileage-vehicle-form{background:var(--card-bg,#1e293b);border:1px solid var(--border,#334155);border-radius:6px;margin-bottom:12px;padding:12px}.mileage-vehicle-form-grid{grid-template-columns:1fr;gap:10px;display:grid}.mileage-vehicle-form-grid label{flex-direction:column;font-size:12px;display:flex}.mileage-vehicle-form-grid input{padding:4px 6px}.log-trip-modal{width:95%;max-width:720px}.log-trip-form{padding:16px}.log-trip-presets{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.preset-chip{background:var(--blue,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:4px 10px;font-size:12px}.preset-chip:hover{opacity:.85}.log-trip-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.log-trip-grid label{flex-direction:column;gap:3px;font-size:12px;display:flex}.log-trip-grid label.full-width{grid-column:1/-1}.log-trip-grid input,.log-trip-grid select{padding:5px 7px;font-size:13px}.log-trip-info{background:#3b82f614;border:1px solid #3b82f64d;border-radius:4px;margin-top:12px;padding:8px;font-size:12px}.form-error{color:#ef4444;background:#ef44441a;border:1px solid #ef444466;border-radius:4px;margin-top:8px;padding:6px 10px;font-size:12px}.irs-rates-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:13px}.irs-rates-table th,.irs-rates-table td{border-bottom:1px solid var(--border,#334155);text-align:left;padding:6px 10px}.irs-rates-table th{opacity:.8;font-weight:600}.irs-rates-table input{width:80px;padding:3px 5px}.pd-mileage-presets{flex-wrap:wrap;gap:6px;display:flex}.pd-mileage-preset-chip{align-items:center;gap:2px;display:inline-flex}.modal-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary,#1e293b);color:var(--text-primary,#e2e8f0);border:1px solid var(--border,#334155);border-radius:8px;flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 24px 48px #00000073}.modal-header{border-bottom:1px solid var(--border,#334155);background:var(--bg-tertiary,#0f172a);flex:none;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-header h2{margin:0;font-size:16px;font-weight:600}.modal-close{color:var(--text-secondary,#94a3b8);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.modal-close:hover{color:var(--text-primary,#e2e8f0)}.modal>form,.modal>.modal-body{flex:auto;overflow-y:auto}.modal-footer{border-top:1px solid var(--border,#334155);background:var(--bg-tertiary,#0f172a);flex:none;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.toggle-switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.toggle-switch input[type=checkbox]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.toggle-switch .toggle-track{background:var(--border,#475569);border-radius:999px;flex:none;width:32px;height:18px;transition:background .12s;display:inline-block;position:relative}.toggle-switch .toggle-thumb{background:#fff;border-radius:50%;width:14px;height:14px;transition:left .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000059}.toggle-switch input[type=checkbox]:checked+.toggle-track{background:var(--accent,#3b82f6)}.toggle-switch input[type=checkbox]:checked+.toggle-track .toggle-thumb{left:16px}.toggle-switch input[type=checkbox]:focus-visible+.toggle-track{outline:2px solid var(--accent,#3b82f6);outline-offset:2px}.toggle-switch .toggle-label{line-height:1.2}.bg-task-dock{z-index:9998;flex-direction:column;gap:8px;max-width:340px;display:flex;position:fixed;bottom:16px;right:16px}.bg-task-card{text-align:left;background:var(--bg-secondary);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex;box-shadow:0 6px 20px #00000059}.bg-task-card.done{cursor:pointer;border-color:var(--green,#22c55e)}.bg-task-card.done:hover{background:var(--bg-elevated,#ffffff0a)}.bg-task-card.error{border-color:var(--red,#dc2626)}.bg-task-body{flex:1;min-width:0}.bg-task-label{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.bg-task-phrase{color:var(--text-muted,#94a3b8);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.bg-spinner{border:2px solid var(--border,#475569);border-top-color:var(--accent,#3b82f6);border-radius:50%;flex:none;width:16px;height:16px;animation:.7s linear infinite bg-spin}@keyframes bg-spin{to{transform:rotate(360deg)}}.bg-check{background:var(--green,#22c55e);color:#06240f;border-radius:50%;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:inline-flex}.bg-error-icon{background:var(--red,#dc2626);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:inline-flex}.bg-dismiss{color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border:none;flex:none;padding:2px 4px;font-size:12px;line-height:1}.bg-dismiss:hover{color:var(--text-primary)}.page-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.page-header-actions>select,.page-header-actions>button{box-sizing:border-box;white-space:nowrap;flex-shrink:0;height:34px;padding:0 12px;font-size:13px}.page-header-actions>select{width:auto;min-width:0;padding:0 8px}.mileage-layout{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:16px;margin-top:16px;display:grid}.mileage-vehicles-panel,.mileage-trips-panel{background:var(--bg-secondary,#1e293b);border:1px solid var(--border,#334155);border-radius:8px;min-width:0;padding:12px 14px}.mileage-trips-panel{overflow-x:auto}.mileage-panel-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.mileage-panel-header h3{margin:0;font-size:14px;font-weight:600}.mileage-panel-count{color:var(--text-secondary,#94a3b8);font-size:12px}@media (width<=900px){.mileage-layout{grid-template-columns:1fr}}.mileage-trips-toolbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.mileage-trips-toolbar-info{font-size:13px}.mileage-trips-toolbar>button{white-space:nowrap;flex-shrink:0}.vehicle-detail-strip{background:var(--bg-tertiary,#0f172a);border:1px solid var(--border,#334155);border-radius:6px;margin-bottom:14px;padding:10px 12px}.vehicle-detail-header{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;display:flex}.odometer-add-form{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.odometer-add-form select,.odometer-add-form input{padding:4px 6px;font-size:12px}.odometer-add-form input[placeholder=Odometer]{width:110px}.odometer-add-form input[placeholder="Notes (optional)"]{flex:160px;min-width:140px}.odometer-readings-table{border-collapse:collapse;width:100%;font-size:12px}.odometer-readings-table th,.odometer-readings-table td{border-bottom:1px solid var(--border,#334155);text-align:left;padding:4px 8px}.odometer-readings-table th{opacity:.8;font-weight:600}.mileage-trips-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.mileage-trips-table th.sortable:hover{background:#ffffff0f}.mileage-trips-table th .sort-indicator{opacity:.8;margin-left:2px;font-size:10px}.mileage-trips-table th.num,.mileage-trips-table td.num{text-align:right}.draft-preview h1{margin:.8rem 0 .4rem;font-size:1.4rem}.draft-preview h2{margin:.7rem 0 .3rem;font-size:1.15rem}.draft-preview h3{margin:.6rem 0 .2rem;font-size:1rem}.draft-preview hr{border:none;border-top:1px solid var(--border);margin:1rem 0}.draft-preview table{border-collapse:collapse;width:100%;margin:.5rem 0;font-size:.85rem}.draft-preview td{border:1px solid var(--border);padding:4px 8px}.draft-preview ul{margin:.3rem 0;padding-left:1.2rem}.draft-preview li{margin:.15rem 0}.draft-preview strong{color:var(--text-primary)}.pd-page{flex:1;max-width:1200px;padding:16px 24px;overflow-y:auto}.pd-header{margin-bottom:16px}.pd-back{color:var(--text-secondary);margin-bottom:8px}.pd-title-row{align-items:center;gap:12px;display:flex}.pd-title-row h1{font-size:20px;font-weight:600}.pd-number{color:var(--text-muted);margin-right:8px;font-weight:400}.pd-status{text-transform:uppercase;border-radius:10px;padding:2px 10px;font-size:11px;font-weight:600}.pd-status--active{color:var(--green);background:#34d39926}.pd-status--paused{color:var(--yellow);background:#fbbf2426}.pd-status--completed{color:var(--accent);background:#4f8ff726}.pd-status--cancelled{color:var(--red);background:#f8717126}.pd-status--archived{color:var(--text-muted);background:#63698026}.pd-tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:20px;display:flex}.pd-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;padding:8px 16px;font-size:13px;display:flex}.pd-tab:hover{color:var(--text-primary);background:0 0}.pd-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.pd-tab-badge{background:var(--bg-tertiary);color:var(--text-muted);border-radius:8px;padding:1px 6px;font-size:10px}.pd-content{min-height:400px}.pd-empty{text-align:center;color:var(--text-secondary);padding:40px}.pd-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:16px}.pd-section h3{color:var(--text-primary);margin-bottom:12px;font-size:14px;font-weight:600}.pd-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.pd-stat{background:var(--bg-tertiary);border-radius:6px;padding:12px}.pd-stat-label{color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:11px}.pd-stat-value{font-size:18px;font-weight:600}.pd-stat-value.green{color:var(--green)}.pd-stat-value.yellow{color:var(--yellow)}.pd-stat-value.red{color:var(--red)}.pd-table{border-collapse:collapse;width:100%}.pd-table th,.pd-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px;font-size:13px}.pd-table th{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:500}.pd-table tr:hover td{background:var(--bg-tertiary)}.pd-badge{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.pd-badge--draft{color:var(--text-secondary);background:#63698033}.pd-badge--sent{color:var(--accent);background:#4f8ff726}.pd-badge--partial{color:var(--yellow);background:#fbbf2426}.pd-badge--paid{color:var(--green);background:#34d39926}.pd-badge--void{color:var(--red);background:#f8717126}.pd-badge--pending{color:var(--yellow);background:#fbbf2426}.pd-badge--in_progress{color:var(--accent);background:#4f8ff726}.pd-badge--completed{color:var(--green);background:#34d39926}.pd-badge--cancelled{color:var(--red);background:#f8717126}.pd-badge--inactive{color:var(--text-muted);background:#6369801f}.pd-badge--original{color:var(--accent);background:#4f8ff726}.pd-badge--addendum{color:var(--yellow);background:#fbbf2426}.pd-badge--change_order{color:var(--red);background:#f8717126}.pd-action-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.pd-action-item:last-child{border-bottom:none}.pd-action-days{color:var(--red);text-align:right;min-width:40px;font-size:12px;font-weight:600}.pd-action-type{text-transform:uppercase;color:var(--text-muted);min-width:90px;font-size:10px}.pd-form{flex-direction:column;gap:10px;margin-top:12px;display:flex}.pd-form-row{align-items:flex-end;gap:10px;display:flex}.pd-form-row>*{flex:1}.pd-form-row label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:11px;display:flex}.pd-form-actions{gap:8px;margin-top:8px;display:flex}.pd-toolbar{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.pd-toolbar-filters{align-items:center;gap:8px;display:flex}
