.app{max-width:1600px;margin:0 auto;padding:20px 20px 48px}.header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.header-left{display:flex;flex-wrap:wrap;align-items:center;gap:20px}.header h1{margin:0;font-size:1.15rem;font-weight:600;color:var(--text-heading)}.subtitle{margin:4px 0 0;color:var(--text-muted);font-size:.95rem}.header-controls{display:flex;align-items:center;gap:12px}.section-tabs{display:flex;gap:2px;flex-wrap:wrap}.section-tab{padding:6px 12px;border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.9rem;font-weight:500;transition:color .15s,border-color .15s}.section-tab:hover{color:var(--text)}.section-tab.active{background:transparent;border-bottom-color:var(--accent);color:var(--text-heading)}.date-picker{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.preset-group{display:flex;gap:6px;flex-wrap:wrap}.preset{padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.preset:hover{border-color:var(--border-hover);color:var(--text)}.preset.active{background:var(--accent);border-color:var(--accent);color:#fff}.custom-range{display:flex;gap:12px}.custom-range label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:var(--text-muted)}.custom-range input{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--text)}.range-label{font-size:.8rem;color:var(--text-dim)}.month-picker{display:flex;align-items:center;gap:6px}.month-nav{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.month-nav:hover{border-color:var(--border-hover);color:var(--text)}.month-picker input[type=month]{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.expenses-layout{display:flex;flex-direction:column;gap:20px;min-width:0}.expenses-layout>*{min-width:0}.expenses-hero-row,.income-hero-row,.summary-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding-bottom:0;margin-bottom:0;border-bottom:none}.income-hero-row{grid-template-columns:repeat(6,minmax(0,1fr))}.expenses-hero-row .summary-card--highlight .summary-value{font-size:1.35rem}.cashflow-hero-row .summary-card--highlight .summary-value{color:var(--ok)}.card{background:var(--surface-2);border:1px solid var(--border-hover);border-radius:var(--radius);padding:16px;min-width:0;overflow:hidden;box-shadow:var(--card-shadow)}.expenses-calendar-row{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.income-layout{display:flex;flex-direction:column;gap:20px;min-width:0}.income-hero-row .summary-card--highlight .summary-value{color:var(--ok)}.income-main-grid{display:grid;grid-template-columns:1fr;gap:16px;min-width:0}.income-main-left,.income-main-right{min-width:0}.income-main-left{display:flex;flex-direction:column;gap:16px}.income-main-right{display:flex;flex-direction:column;gap:12px}.income-transactions-card{display:grid;grid-template-columns:1fr auto;gap:0 12px;align-items:start}.income-day-header{grid-column:1;grid-row:1;margin:0;padding:0;border:none}.income-transactions-card>.section-header-row{grid-column:2;grid-row:1;align-self:center;margin:0}.income-transactions-card>:not(.income-day-header):not(.section-header-row){grid-column:1 / -1}.income-day-header h3{margin:0 0 8px;font-size:.95rem;font-weight:500;color:var(--text-muted)}.income-day-header .day-detail-stat{margin:0 0 4px;color:var(--ok)}.income-transactions-card .section-header-row{margin-top:0}.income-day-meta{margin:0 0 10px;font-size:.85rem}.income-day-categories{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.income-day-category-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:.85rem}.income-day-category-name{color:var(--text-muted)}.income-day-category-amount{color:var(--text);font-weight:500}.setup-layout{display:flex;flex-direction:column;gap:1.25rem}.meals-setup-panel .section-header-row{margin-bottom:.25rem}.meals-setup-hint{margin:0 0 12px;font-size:.85rem}.meals-setup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.card h3{margin:0 0 12px;font-size:.95rem;font-weight:500;color:var(--text-muted)}.payment-accounts-panel h3{margin:0 0 16px;font-size:.95rem;font-weight:500;color:var(--text-muted)}.payment-accounts-split{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.payment-accounts-column{min-width:0;display:flex;flex-direction:column;gap:8px}.payment-accounts-column-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-accounts-column-header h4{margin:0;font-size:.85rem;font-weight:500;color:var(--text-muted)}.payment-accounts-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.payment-account-card{display:flex;align-items:stretch;gap:8px;background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0;overflow:hidden}.payment-account-card:last-child{border-bottom:none}.payment-account-card .row-actions{align-self:center;padding-right:8px;flex-shrink:0}.payment-account-card:hover{background:var(--surface-hover)}.payment-account-card-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 12px;background:transparent;border:none;cursor:pointer;text-align:left;font:inherit;color:inherit}.payment-account-card-main:hover{background:#ffffff05}div.payment-account-card-main{cursor:default}div.payment-account-card-main:hover{background:transparent}.payment-account-stats{display:flex;flex-wrap:wrap;gap:6px 10px}.payment-account-stat{font-size:.75rem;color:var(--text-muted)}.payment-account-balance{font-size:.875rem;font-weight:600}.payment-account-balance.positive,.account-balance-positive{color:var(--ok)}.payment-account-balance.negative,.account-balance-negative{color:var(--danger)}.payment-account-holdings{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.account-activity-header{margin:0 0 12px;flex-shrink:0;overflow:visible}.account-activity-header-top{display:flex;align-items:flex-end;gap:12px;margin-bottom:8px;padding-bottom:2px}.account-activity-header-top h4{margin:0;flex:1;min-width:0}.account-activity-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;margin:0;font-size:.8rem;color:var(--text-muted)}.account-activity-sep{color:var(--text-dim)}.account-activity-payoff-btn,.account-activity-header-top .month-picker{flex-shrink:0}.account-activity-period-range{margin:4px 0 0;font-size:.75rem;color:var(--text-dim)}.account-activity-tabs{display:flex;align-items:flex-end;gap:4px;margin:0;flex-shrink:0}.account-activity-tabs .section-tab{border-bottom:none;box-shadow:inset 0 -2px 0 transparent}.account-activity-tabs .section-tab.active{border-bottom-color:transparent;box-shadow:inset 0 -2px 0 var(--accent)}.rebate-tier-badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#60a5fa33;color:var(--accent-text);font-size:.75rem;font-weight:600}.rebate-default-badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;background:#9ca3af40;color:var(--text-muted);font-size:.65rem;font-weight:600;vertical-align:middle}.rebate-status-unlimited{color:var(--accent-text);font-weight:600}.rebate-requirement-unmet{color:var(--danger);font-weight:600}.rebate-requirement-note{display:block;font-size:.7rem;color:var(--text-muted);margin-top:2px}.rebate-requirement-row-unmet{background:#f8717114}.rebate-tier-editor,.rebate-category-editor{margin-top:8px}.rebate-category-def-header,.rebate-tier-header{display:grid;gap:6px;margin-bottom:4px;padding:0 8px;font-size:.7rem;color:var(--text-muted);font-weight:600}.rebate-category-def-header{grid-template-columns:1.6fr .8fr .7fr .5fr 1fr 1fr auto}.rebate-category-def-header.simple{grid-template-columns:1.6fr .8fr .7fr .5fr auto}.rebate-tier-header{grid-template-columns:1.2fr repeat(auto-fit,minmax(90px,1fr)) auto}.rebate-tier-row,.rebate-category-def-row{display:grid;align-items:end;gap:6px;margin-bottom:8px;padding:8px;border-radius:6px;background:#ffffff08}.rebate-category-def-row{grid-template-columns:1.6fr .8fr .7fr .5fr 1fr 1fr auto}.rebate-category-def-row.simple{grid-template-columns:1.6fr .8fr .7fr .5fr auto}.rebate-default-check{display:flex;align-items:center;justify-content:center;margin:0;padding-bottom:6px}.rebate-tier-row{grid-template-columns:1.2fr repeat(auto-fit,minmax(90px,1fr)) auto}.rebate-tier-row label{font-size:.75rem;min-width:0}.rebate-tier-row label input,.rebate-category-def-row input{display:block;width:100%;margin-top:2px}.rebate-summary{margin:0 0 12px;padding:10px 12px;border-radius:8px;background:#ffffff0a}.rebate-summary-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.rebate-summary-header h5{margin:0;font-size:.9rem}.rebate-summary-header .btn-primary{flex-shrink:0;padding:4px 10px;font-size:.75rem}.rebate-summary-note{font-size:.75rem;margin:0 0 8px}.rebate-summary-threshold{margin:0 0 8px;font-size:.8rem;color:var(--text-muted)}.rebate-summary-table{font-size:.8rem}.rebate-summary-table th,.rebate-summary-table td{padding:6px 8px}.rebate-not-maxed{background:#fbbf2414}.rebate-status-maxed{color:var(--ok);font-weight:600}.rebate-status-remaining{color:var(--warn);font-weight:600}.rebate-summary-total{margin:8px 0 0;font-size:.875rem}.rebate-settings-fields{margin-top:8px}.rebate-settings-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.rebate-enable-label{display:flex;align-items:center;gap:8px;cursor:pointer}.rebate-mappings{margin-top:8px}.rebate-mappings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:.875rem}.rebate-mapping-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.rebate-mapping-row select{flex:1;min-width:0}.rebate-mapping-arrow{color:var(--text-muted);flex-shrink:0}.rebate-mapping-remove{flex-shrink:0;padding:4px 8px;font-size:.75rem}.rebate-description-rules{margin-top:12px}.rebate-description-rule-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.rebate-description-rule-row select{flex:0 1 140px;min-width:120px}.rebate-description-keywords{flex:2;min-width:180px}.account-activity-period-summary{display:flex;flex-wrap:wrap;gap:12px 20px;margin:0 0 12px;padding:10px 12px;border-radius:8px;background:#ffffff0a;font-size:.875rem;color:var(--text-muted)}.account-activity-period-summary strong{font-weight:600}.account-activity-baseline-note{margin:-4px 0 12px;font-size:.8rem}.account-activity-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:2px}.record-modal.account-activity-modal>.account-activity-footer{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-top:12px}.record-modal.account-activity-modal>.account-activity-footer .table-pagination{flex:1;margin-top:0;min-width:0}.record-modal.account-activity-modal>.account-activity-footer>.btn-secondary:last-child{margin-left:auto}.account-activity-table{table-layout:fixed}.account-activity-table th:nth-child(1),.account-activity-table td:nth-child(1){width:110px;white-space:nowrap}.account-activity-table th:nth-child(2),.account-activity-table td:nth-child(2){width:110px;white-space:nowrap}.account-activity-table th:nth-child(3),.account-activity-table td:nth-child(3){width:auto;overflow:hidden}.account-activity-table th:nth-child(4),.account-activity-table td:nth-child(4){width:120px;overflow:hidden}.account-activity-table th:nth-child(5),.account-activity-table td:nth-child(5){width:130px;white-space:nowrap;text-align:right}.account-activity-table .account-activity-desc{display:block;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-activity-table .account-activity-category{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-activity-table .account-activity-category-note{display:block;font-size:.75rem;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-activity-table tr.account-activity-in-row td{background:color-mix(in srgb,var(--ok) 12%,transparent)}.account-activity-table tr.account-activity-in-row td:nth-child(2){color:var(--ok);font-weight:500}.account-activity-table tr.account-activity-before-baseline td{opacity:.55}.account-activity-in{color:var(--ok)}.account-activity-out{color:var(--danger)}.data-table td.account-activity-in{color:var(--ok)}.data-table td.account-activity-out{color:var(--danger)}.income-calendar .activity-calendar-cell.selected{background:color-mix(in srgb,var(--ok) 18%,transparent);border-color:var(--ok)}.payment-account-title{display:inline-flex;align-items:center;gap:8px;min-width:0}.payment-account-name{font-size:.875rem;font-weight:500;color:var(--text);min-width:0;word-break:break-word}.account-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:8px;font-weight:700;letter-spacing:-.02em;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;background:var(--surface-2);border:1px solid var(--border)}.account-icon-logo{width:100%;height:100%;object-fit:contain;padding:3px;box-sizing:border-box}.account-icon-sm{width:22px;height:22px;font-size:.55rem;border-radius:6px}.account-icon-md{width:28px;height:28px;font-size:.62rem}.account-activity-title{display:inline-flex;align-items:center;gap:8px}.income-transactions-list{display:flex;flex-direction:column;gap:8px}.income-entry-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:.75rem;color:var(--text-muted)}.income-entry-date{display:inline-block;padding:2px 8px;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:.7rem;white-space:nowrap}.income-entry-amount{font-weight:600;color:var(--text)}.income-entry-accounts{padding:2px 8px;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--accent-text);font-size:.7rem;white-space:nowrap}.form-hint{font-size:.75rem}@media(max-width:1100px){.payment-accounts-split{grid-template-columns:1fr}}@media(max-width:768px){.payment-accounts-split{grid-template-columns:1fr}}@media(min-width:768px){.income-main-grid{grid-template-columns:minmax(380px,1.35fr) minmax(300px,1fr);align-items:start}}.expenses-variable-table{display:flex;flex-direction:column}.fixed-expense-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1;min-width:0;justify-content:flex-end}.fixed-expense-filters select{max-width:180px;min-width:0;padding:6px 8px;font-size:.85rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text)}@media(min-width:768px){.expenses-calendar-row{grid-template-columns:minmax(320px,.9fr) minmax(360px,1.4fr)}}@media(min-width:1200px){.expenses-calendar-row{grid-template-columns:minmax(340px,.75fr) minmax(640px,1.6fr)}}.transactions-toolbar{margin-bottom:12px}.data-table td.over-budget{background:#f8717126;color:var(--danger);font-weight:500}.data-table td.near-budget{background:#fbbf241f;color:var(--warn);font-weight:500}.over-budget-text{color:var(--danger);font-weight:500}.near-budget-text{color:var(--warn);font-weight:500}.budget-alert-banner{padding:8px 12px;margin-bottom:12px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--warn) 12%,transparent);border:1px solid var(--warn);color:var(--warn);font-size:.8rem}.spending-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.budget-badge{font-size:.65rem;font-weight:600;padding:2px 6px;border-radius:4px}.budget-badge--warning{background:#fbbf2433;color:var(--warn)}.budget-badge--over{background:#f8717133;color:var(--danger)}.budget-usage{display:flex;align-items:center;gap:8px;min-width:100px}.budget-usage-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden;display:flex}.budget-usage-fill{height:100%;border-radius:3px 0 0 3px;transition:width .2s}.budget-usage-fill--ok{background:var(--ok)}.budget-usage-fill--warning{background:var(--warn)}.budget-usage-fill--over{background:var(--danger)}.budget-usage-overflow{height:100%;background:repeating-linear-gradient(45deg,var(--danger),var(--danger) 2px,var(--danger) 2px,var(--danger) 4px)}.budget-usage-pct{font-size:.75rem;color:var(--text-muted);white-space:nowrap;min-width:32px}.banner{padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:.9rem}.banner.warning{background:color-mix(in srgb,var(--warn) 12%,transparent);border:1px solid var(--warn);color:var(--warn)}.main{display:flex;flex-direction:column;gap:0}.panel{background:transparent;border:none;border-radius:0;padding:0}.summary-card{background:var(--surface-2);border:1px solid var(--border-hover);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow)}.summary-label{font-size:.75rem;color:var(--text-muted)}.summary-value{font-size:1.2rem;font-weight:600;color:var(--text-heading)}.summary-sub{font-size:.8rem;color:var(--text-dim)}.summary-card--highlight .summary-value{color:var(--accent-text)}.summary-card--warning .summary-value{color:var(--warn)}.summary-card--danger .summary-value{color:var(--danger)}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.card.full-width{margin-top:16px}.chart-select{display:block;width:100%;max-width:280px;margin-bottom:12px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-size:.9rem}.table-scroll{overflow-x:auto;scrollbar-width:none}.table-scroll::-webkit-scrollbar{display:none}.data-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}.data-table th{color:var(--text-muted);font-weight:500;font-size:.75rem}.data-table td{color:var(--text)}.data-table tbody tr:hover{background:var(--surface-hover)}.data-table .notes-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.muted{color:var(--text-muted)}.error{color:var(--danger)}.empty-chart{color:var(--text-dim);text-align:center;padding:40px 0;margin:0}@media(max-width:1100px){.expenses-hero-row,.income-hero-row,.summary-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media(max-width:900px){.expenses-hero-row,.income-hero-row,.summary-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media(max-width:640px){.header-controls{width:100%;justify-content:space-between}.date-picker{align-items:stretch;width:100%}.header-left,.header{flex-direction:column;align-items:flex-start}.section-tabs{width:100%}}.row-actions{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.btn-link{background:none;border:none;color:var(--accent-text);cursor:pointer;font-size:.8rem;padding:0}.btn-link:hover{text-decoration:underline}.btn-danger-link{color:var(--danger)}.btn-primary,.btn-secondary{padding:8px 14px;border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer;border:1px solid var(--border)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text)}.btn-danger{padding:8px 14px;border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer;background:var(--danger-strong);color:#fff;border:1px solid var(--danger-strong)}.btn-danger:hover{background:var(--danger-strong);border-color:var(--danger-strong)}.confirm-dialog{max-width:380px}.confirm-dialog h4{margin-bottom:8px}.confirm-dialog-message{margin:0;font-size:.9rem;line-height:1.5;color:var(--text-muted)}.btn-add{padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.btn-add:hover{border-color:var(--border-hover);color:var(--text);background:var(--surface-hover)}.record-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.record-modal{background:var(--surface-2);border:1px solid var(--border-hover);border-radius:var(--radius);box-shadow:var(--card-shadow);padding:20px;width:100%;max-width:420px;max-height:90vh;overflow-y:auto}.record-modal.payment-account-modal{width:max(720px,min(960px,96vw));max-width:96vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.record-modal.payment-account-modal .record-modal-body{flex:1 1 auto;min-height:0;overflow-y:auto}.record-modal.payment-account-modal .record-modal-actions{flex-shrink:0;margin-top:12px}.record-modal.payment-account-modal input:not([type=checkbox]),.record-modal.payment-account-modal select,.record-modal.payment-account-modal textarea{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:.875rem}.record-modal.payment-account-modal input::placeholder{color:var(--text-dim)}.record-modal.payment-account-modal input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent);flex-shrink:0}.credit-account-form{display:flex;flex-direction:column;gap:12px}.pa-settings-tabs{display:flex;gap:4px;flex-wrap:wrap;position:sticky;top:0;z-index:1;padding-bottom:8px;background:var(--surface-2);border-bottom:1px solid var(--border);margin-bottom:4px}.pa-settings-panel{display:flex;flex-direction:column;gap:12px}.pa-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pa-settings-grid .form-field:first-child{grid-column:1 / -1}.pa-section-title{display:block;font-size:.875rem;font-weight:600;color:var(--text)}.pa-cashback-toggle{margin-top:4px;padding:10px 12px;border-radius:8px;background:#ffffff0a}.record-modal.account-activity-modal{width:max(50vw,min(960px,96vw));max-width:96vw;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.account-fd-panel{display:flex;flex-direction:column;gap:12px}.account-fd-avail{margin:0}.account-fd-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow:visible}.account-fd-form .form-field:focus-within{position:relative;z-index:1}.account-fd-form .form-field:last-child{grid-column:1 / -1}.account-fd-table{width:100%}.account-fd-panel>.btn-primary{align-self:flex-start}.portfolio-header-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.portfolio-summary-chips{flex-wrap:wrap;row-gap:4px}.portfolio-holdings-table{width:100%}.portfolio-holdings-table td:last-child{overflow:visible}.portfolio-instrument-name{font-weight:600}.portfolio-instrument-meta{font-size:.85em;margin-top:2px}.portfolio-row-actions{display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:flex-end;align-items:center}.portfolio-more{position:relative}.portfolio-more>summary{list-style:none}.portfolio-more>summary::-webkit-details-marker{display:none}.portfolio-more-menu{position:absolute;right:0;top:100%;z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:8rem;padding:8px 10px;margin-top:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 20px #00000040}.portfolio-events-heading{margin:1.25rem 0 .5rem;font-size:.95rem}.portfolio-trade-cash{margin:0 0 12px;font-size:.875rem}.form-field-label-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.form-field-label-row label{margin:0}.portfolio-trade-hint{font-size:.75rem;color:var(--text-muted)}.portfolio-trade-breakdown{display:flex;flex-direction:column;gap:4px;margin:4px 0 12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-size:.875rem}.portfolio-trade-breakdown-row{display:flex;justify-content:space-between;gap:12px}.portfolio-trade-breakdown-row.total{font-weight:600;margin-top:4px;padding-top:6px;border-top:1px solid var(--border)}.btn-link.danger{color:var(--danger)}.form-field-checkbox label{display:flex;align-items:center;gap:8px;font-weight:400}.record-modal.portfolio-form-modal{z-index:30}.record-modal.loan-form-modal,.record-modal.workout-record-modal,.detail-modal.workout-session-modal{max-width:min(720px,96vw)}.loan-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.loan-form-grid .span-full{grid-column:1 / -1}.workout-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.workout-form-grid .span-full{grid-column:1 / -1}.segment-toggle{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.segment-toggle button{flex:1;padding:8px 12px;border:none;background:transparent;color:var(--text-muted);font-size:.875rem;cursor:pointer}.segment-toggle button:hover:not(.active){background:var(--surface-hover)}.segment-toggle button.active{background:var(--border);color:var(--text)}.workout-session-block{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.workout-more-options{margin-top:4px}.workout-more-options summary{cursor:pointer;color:var(--text-muted);font-size:.875rem;-webkit-user-select:none;user-select:none}.workout-more-options[open] summary{margin-bottom:12px}.workout-more-options .workout-form-grid{margin-top:0}.record-modal h4{margin:0 0 16px;font-size:1rem;font-weight:500;color:var(--text)}.record-modal-body{display:flex;flex-direction:column;gap:12px}.record-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.detail-modal{max-width:520px}.detail-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.detail-modal-header h4{margin:0;flex:1}.detail-modal-close{flex-shrink:0;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-muted);font-size:1.5rem;line-height:1;cursor:pointer}.detail-modal-close:hover{background:var(--border);color:var(--text)}.detail-modal-body{min-width:0}.form-field{display:flex;flex-direction:column;gap:4px}.form-field label{font-size:.8rem;color:var(--text-muted)}.form-field input,.form-field select,.form-field textarea{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:.875rem}.form-field textarea{min-height:60px;resize:vertical}.reimbursement-rows{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.reimbursement-row{display:flex;gap:.5rem;align-items:center}.reimbursement-row input,.reimbursement-row select{flex:1;min-width:0}.reimbursement-row .btn-icon{flex:0 0 auto;padding:.25rem .5rem}.workout-session-summary-card .day-entry-main{width:100%}.workout-session-modal-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.workout-session-modal-item{margin:0}.workout-session-superset-preview{margin:0 0 12px;font-size:.9rem}.workout-session-edit-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.workout-session-edit-row{padding:12px;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:8px}.workout-session-edit-row-header{display:flex;justify-content:space-between;align-items:center}.form-row-inline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.workout-session-delete-confirm{margin-top:16px}.workout-session-edit-table-wrap{overflow-x:auto;margin-bottom:12px}.workout-session-edit-table{width:100%;border-collapse:collapse;font-size:.875rem}.workout-session-edit-table th{text-align:left;padding:6px 8px;color:var(--text-muted);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap}.workout-session-edit-table td{padding:6px 4px;vertical-align:middle}.workout-session-edit-table input{width:100%;min-width:0;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);font-size:.875rem}.workout-session-edit-table .col-exercise input{min-width:120px}.workout-session-edit-table .col-weight input{min-width:72px}.workout-session-edit-table .col-num input{min-width:48px}.workout-session-edit-table .col-actions{width:56px;text-align:right}.workout-session-edit-table .row-notes td{padding-top:0;padding-bottom:8px}.workout-session-edit-table .row-notes input{font-size:.8125rem}@media(max-width:640px){.form-row-inline,.workout-form-grid,.loan-form-grid,.account-fd-form{grid-template-columns:1fr}}.data-table .actions-col{width:56px}.health-section{display:flex;flex-direction:column;gap:20px}.health-layout{display:grid;gap:20px;grid-template-columns:1fr}.health-layout .card.full-width{margin-top:0}.health-calendar,.health-day-panel,.health-summary-row,.health-volume-chart,.health-top-exercises,.health-weight-trend,.health-pr-table,.health-macros-chart,.health-macro-adherence,.health-net-calories-chart,.health-body-weight-chart,.health-burn-chart{min-width:0}.health-summary-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.health-day-panel{align-self:start}.health-summary-row{grid-column:1 / -1;grid-row:1}.health-calendar{grid-column:1 / -1;grid-row:2}.health-workout-parts,.health-nutrition-parts,.health-body-parts{display:contents}.day-body-weight-log{margin:0 0 16px}.day-body-weight-log>.section-header-row{margin-bottom:12px}.day-body-weight-log .form-field input{max-width:160px}.macro-adherence-strip{display:flex;flex-direction:column;gap:14px;padding-top:4px}.macro-adherence-item{display:flex;flex-direction:column;gap:6px}.macro-adherence-header{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}.macro-adherence-header strong{font-variant-numeric:tabular-nums}.macro-adherence-bar{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.macro-adherence-fill{height:100%;border-radius:999px}.macro-adherence-fill--protein{background:#60a5fa}.macro-adherence-fill--calories{background:#34d399}.macro-adherence-note{margin:0;font-size:.8rem}@media(min-width:768px){.health-layout{grid-template-columns:3fr 2fr}.health-summary-row{grid-column:1 / -1;grid-row:1}.health-calendar{grid-column:1;grid-row:2}.health-day-panel{grid-column:2;grid-row:2}.health-volume-chart{grid-column:1;grid-row:3}.health-top-exercises{grid-column:2;grid-row:3}.health-weight-trend{grid-column:1;grid-row:4}.health-pr-table{grid-column:2;grid-row:4}.health-macros-chart{grid-column:1 / -1;grid-row:5}.health-macro-adherence{grid-column:1 / -1;grid-row:6}.health-net-calories-chart{grid-column:1 / -1;grid-row:7}.health-body-weight-chart{grid-column:1;grid-row:8}.health-burn-chart{grid-column:2;grid-row:8}}@media(min-width:1024px){.health-layout{grid-template-columns:2fr 1fr 1fr}.health-summary-row{grid-column:1 / -1;grid-row:1}.health-calendar{grid-column:1;grid-row:2}.health-day-panel{grid-column:2 / -1;grid-row:2}.health-volume-chart{grid-column:1;grid-row:3}.health-top-exercises{grid-column:2;grid-row:3}.health-weight-trend{grid-column:3;grid-row:3}.health-pr-table{grid-column:1 / -1;grid-row:4}.health-macros-chart{grid-column:1 / 3;grid-row:5}.health-macro-adherence{grid-column:3;grid-row:5}.health-net-calories-chart{grid-column:1 / -1;grid-row:6}.health-body-weight-chart{grid-column:1 / 3;grid-row:7}.health-burn-chart{grid-column:3;grid-row:7}}.activity-calendar{background:var(--surface-2);border:1px solid var(--border-hover);border-radius:var(--radius);padding:16px;box-shadow:var(--card-shadow)}.activity-calendar-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.activity-calendar-header h3{margin:0;font-size:.95rem;font-weight:500;color:var(--text-muted)}.activity-calendar-legend{display:flex;gap:16px;font-size:.8rem;color:var(--text-muted)}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.workout{background:var(--workout)}.legend-dot.meal{background:var(--ok)}.legend-dot.expense{background:var(--danger)}.legend-dot.fixed{background:var(--warn)}.legend-dot.income{background:var(--ok)}.activity-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.activity-calendar-weekday{text-align:center;font-size:.7rem;font-weight:500;color:var(--text-dim);padding:4px 0}.activity-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.activity-calendar-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;min-height:52px;padding:6px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font:inherit;color:inherit;transition:background .15s,border-color .15s}.activity-calendar-cell.empty{background:transparent;cursor:default;pointer-events:none}.activity-calendar-cell:not(.empty):hover{background:var(--surface-hover);border-color:var(--border-hover)}.activity-calendar-cell.today .activity-calendar-day{color:var(--accent-text);font-weight:600}.activity-calendar-cell.selected{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:var(--accent)}.activity-calendar-day{font-size:.85rem;color:var(--text);line-height:1}.activity-calendar-badges{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.activity-badge{font-size:.65rem;font-weight:600;line-height:1;padding:2px 4px;border-radius:4px;min-width:14px;text-align:center;border:none;cursor:pointer;font-family:inherit}.activity-badge.workout{background:#a78bfa40;color:var(--workout)}.activity-badge.meal{background:#34d39940;color:var(--ok)}.activity-badge.expense{background:color-mix(in srgb,var(--danger) 25%,transparent);color:var(--danger);font-size:.6rem;padding:2px 3px}.activity-badge.fixed{background:color-mix(in srgb,var(--warn) 25%,transparent);color:var(--warn);font-size:.6rem;padding:2px 3px}.activity-badge.income{background:#34d39940;color:var(--ok);font-size:.6rem;padding:2px 3px}.day-detail-panel{background:var(--surface-2);border:1px solid var(--border-hover);border-radius:var(--radius);padding:16px;min-width:0;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:0 12px;box-shadow:var(--card-shadow)}.day-detail-panel>h3{grid-column:1;grid-row:1}.day-detail-panel>.day-detail-stat{grid-column:1;grid-row:2}.cashflow-day-stats{display:flex;flex-wrap:wrap;gap:12px 16px;margin:0 0 4px}.cashflow-stat.income{color:var(--ok)}.cashflow-stat.expense{color:var(--danger)}.cashflow-day-streams{display:grid;grid-template-columns:1fr;gap:16px;min-width:0;margin-top:8px}.cashflow-day-stream{min-width:0}.cashflow-day-stream h4{margin:0 0 8px;font-size:.85rem;font-weight:600;color:var(--text-muted)}@media(min-width:1100px){.cashflow-day-streams{grid-template-columns:1fr 1fr;gap:20px}}.day-detail-panel>.section-header-row{grid-column:2;grid-row:1 / span 2;align-self:center;margin:0}.day-detail-panel>:not(h3):not(.day-detail-stat):not(.section-header-row){grid-column:1 / -1}.day-detail-panel h3{margin:0;font-size:.95rem;font-weight:500;color:var(--text-muted)}.day-detail-columns{display:grid;grid-template-columns:1fr;gap:16px}.section-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-header-row h3,.section-header-row h4{margin:0;font-size:.95rem;font-weight:500;color:var(--text-muted)}.day-detail-section h4{margin:0 0 12px;font-size:.85rem;font-weight:500;color:var(--text-muted)}.day-detail-stat{margin:0 0 8px;font-size:.9rem;color:var(--text)}.detail-field-list{display:flex;flex-direction:column;gap:10px;margin:0}.detail-field{display:grid;grid-template-columns:120px 1fr;gap:8px 12px;align-items:baseline}.detail-field dt{margin:0;font-size:.75rem;font-weight:500;color:var(--text-muted)}.detail-field dd{margin:0;font-size:.9rem;color:var(--text);word-break:break-word}.variable-expense-summary{display:none}.variable-expense-summary-item{display:flex;flex-direction:column;gap:4px;min-width:100px}.variable-expense-summary-item--alert .variable-expense-summary-value{color:var(--warn)}.variable-expense-summary-label{font-size:.7rem;font-weight:500;color:var(--text-muted)}.variable-expense-summary-value{font-size:.95rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.variable-expense-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;flex:1}.variable-expense-card{background:var(--surface);border:1px solid var(--border-hover);border-radius:var(--radius-sm);padding:12px 14px}.variable-expense-card--clickable{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:background .15s,border-color .15s}.variable-expense-card--clickable:hover{background:var(--surface-hover);border-color:var(--border-hover)}.variable-expense-card--clickable:hover .variable-expense-card-header h4{color:var(--accent-text)}.category-detail-summary{margin-bottom:16px;padding:0 0 12px;background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0}.category-detail-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:0}.category-detail-transactions-heading{margin:0 0 10px;font-size:.8rem;font-weight:500;color:var(--text-muted)}.category-detail-search{margin-bottom:12px}.category-detail-search input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--text);font-size:.875rem}.category-detail-search input::placeholder{color:var(--text-dim)}.expense-link-picker{display:flex;flex-direction:column;gap:8px}.expense-link-picker .category-detail-search{margin-bottom:0}.expense-link-selected{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.8125rem;color:var(--text-muted)}.expense-link-empty{margin:0;font-size:.8125rem}.expense-link-list{list-style:none;margin:0;padding:0;max-height:180px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;background:var(--surface-2)}.expense-link-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;padding:8px 10px;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;font:inherit;font-size:.8125rem}.expense-link-list li:last-child .expense-link-option{border-bottom:none}.expense-link-option:hover{background:var(--surface)}.expense-link-option--selected{background:var(--surface);outline:1px solid var(--border);outline-offset:-1px}.expense-link-option-main{display:flex;flex-direction:column;gap:2px;min-width:0}.expense-link-option-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-link-option-meta{color:var(--text-muted);font-size:.75rem}.expense-link-option-amount{flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--text-muted)}.category-detail-transactions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.category-detail-transaction{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 0;background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0}.category-detail-transaction-main{display:flex;flex-direction:column;gap:4px;min-width:0}.category-detail-transaction-desc{font-size:.875rem;color:var(--text)}.category-detail-transaction-date{font-size:.75rem;color:var(--text-muted)}.category-detail-transaction-amount{font-size:.875rem;font-weight:500;color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0}.variable-expense-card.budget-row--ok{border-left:3px solid var(--ok)}.variable-expense-card.budget-row--warning{border-left:3px solid var(--warn)}.variable-expense-card.budget-row--over{border-left:3px solid var(--danger)}.variable-expense-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.variable-expense-card-title{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}.variable-expense-card-header h4{margin:0;font-size:.9rem;font-weight:500;color:var(--text)}.variable-expense-card-amount{font-size:1.1rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0}.variable-expense-card-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;font-size:.8rem;color:var(--text);margin-bottom:12px}.variable-expense-meta-label{display:block;font-size:.65rem;font-weight:500;color:var(--text-muted);margin-bottom:2px}.variable-expense-card .budget-usage{width:100%}.day-entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.day-entry-card{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 0;background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0}.day-entry-card:hover{background:transparent}.day-entry-main{display:flex;flex-direction:column;gap:2px;min-width:0}.day-entry-main--clickable{cursor:pointer;text-align:left;background:none;border:none;padding:0;font:inherit;color:inherit;flex:1}.day-entry-main--clickable:hover .day-entry-title{color:#fff}.day-entry-title{font-size:.875rem;font-weight:500;color:var(--text);word-break:break-word}.fixed-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#1a1a1a;background:var(--warn);vertical-align:middle}.day-entry-sub{font-size:.75rem;color:var(--text-muted)}.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap;min-width:0}.table-pagination-label{font-size:.8rem;color:var(--text-muted)}.table-pagination-controls{display:flex;gap:8px}@media(max-width:768px){.data-table--workouts .col-duration,.data-table--workouts .col-notes,.data-table--meals .col-carbs,.data-table--meals .col-fat{display:none}}@media(min-width:1200px){.day-detail-columns{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.activity-calendar-cell{min-height:44px;padding:4px 2px}.activity-calendar-day{font-size:.75rem}.activity-badge{font-size:.6rem;padding:1px 3px}}.trips-panel.card{display:flex;flex-direction:column;gap:14px}.trips-layout{display:grid;grid-template-columns:minmax(160px,200px) 1fr;gap:16px;align-items:start}.trips-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.trips-empty{padding:8px 0;font-size:.875rem}.trips-list-item{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--surface-2);border:none;border-radius:6px;color:var(--text);cursor:pointer}.trips-list-item:hover,.trips-list-item.active{background:var(--surface)}.trips-list-name{font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trips-detail{display:flex;flex-direction:column;gap:14px;min-width:0}.trips-detail-title h4{margin:0 0 4px}.trips-detail-title .muted{margin:0;font-size:.8rem}.trips-detail-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.trips-delete-trip{margin-left:auto}.trips-summary-strip{display:flex;flex-wrap:wrap;gap:12px 24px;padding:4px 0 12px;background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0}.trips-summary-item{display:flex;flex-direction:column;gap:4px;min-width:100px}.trips-summary-label{font-size:.7rem;font-weight:500;color:var(--text-muted)}.trips-summary-value{font-size:.95rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.trips-summary-item--total .trips-summary-value{font-size:1.05rem}.trips-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 12px;padding:12px 0;background:transparent;border:none;border-radius:0}.trips-form label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--text-muted)}.trips-form input,.trips-form select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:.875rem}.trips-form input:focus,.trips-form select:focus{outline:none;border-color:var(--accent)}.trips-form .span-full{grid-column:1 / -1}.trips-form-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.trips-table-wrap{overflow-x:auto}.trips-expenses-table .trips-col-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.trips-expenses-table .actions-col{width:1%;white-space:nowrap;text-align:right}.trip-leg-badge{display:inline-block;font-size:.7rem;padding:2px 6px;border-radius:4px;background:var(--border);color:var(--text-muted);white-space:nowrap}@media(max-width:900px){.trips-layout{grid-template-columns:1fr}.trips-summary-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.trips-delete-trip{margin-left:0}}.login-gate{min-height:70vh;display:flex;align-items:center;justify-content:center}.login-card{width:min(100%,380px);padding:28px 24px;border:1px solid var(--border-hover);border-radius:var(--radius);background:var(--surface-2);box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:12px}.login-card h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-heading)}.login-label{font-size:.85rem;color:var(--text-muted)}.login-card .btn-primary{width:100%}.login-input{font-size:1.5rem;letter-spacing:.35em;text-align:center;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-heading)}.login-input:focus{outline:none;border-color:var(--accent)}.login-error{margin:0}.logout-btn{padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:.85rem;font-weight:500;cursor:pointer}.logout-btn:hover{border-color:var(--border-hover);color:var(--text)}.car-service-section{display:flex;flex-direction:column;gap:20px}.car-service-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.car-service-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.car-service-hint{margin:0;font-size:.85rem}.car-service-matrix-wrap--edit{outline:2px solid var(--accent);outline-offset:-1px}.car-service-header-input{display:block;width:100%;margin-bottom:4px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:.8rem}.car-service-header-input--odo{font-variant-numeric:tabular-nums}.car-service-visit-actions{display:flex;gap:4px;justify-content:flex-end;margin-top:6px}.car-service-visit-btn{padding:4px 8px;font-size:.75rem}.car-service-items-heading{font-size:.85rem;font-weight:600;color:var(--text-muted);padding-top:4px}.car-service-pending-wrap{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}.car-service-pending-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--border)}.car-service-pending-title{font-size:.875rem;font-weight:600;color:var(--text)}.car-service-pending-total{font-size:.95rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.car-service-pending-table{table-layout:auto}.car-service-pending-table th{font-size:.8rem;color:var(--text);background:var(--surface-2)}.car-service-pending-table td{font-size:.9rem}.car-service-pending-cat{color:var(--text-muted);font-size:.8rem;white-space:nowrap}.scroll-strip{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 40%,transparent) transparent}.scroll-strip::-webkit-scrollbar{height:5px}.scroll-strip::-webkit-scrollbar-track{background:transparent}.scroll-strip::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 30%,var(--border));border-radius:999px}.scroll-strip::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 55%,var(--text-muted) 45%)}.car-service-next-summary{min-width:160px}.car-service-next-detail{display:block;margin-top:2px;font-size:.72rem;line-height:1.35}.car-service-scroll-shell{position:relative;display:flex;align-items:stretch;gap:0}.car-service-scroll-btn{flex:0 0 28px;align-self:center;width:28px;height:44px;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--text);font-size:1.25rem;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.car-service-scroll-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover)}.car-service-scroll-btn:disabled{opacity:.35;cursor:default}.car-service-scroll-shell .car-service-matrix-wrap{flex:1;min-width:0}.car-service-matrix-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.car-service-matrix{min-width:max-content;table-layout:auto;font-size:.9rem}.car-service-matrix thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);color:var(--text);font-size:.8rem;font-weight:600;border-bottom:2px solid var(--border);vertical-align:bottom}.car-service-matrix th.car-service-visit-col{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:108px;padding:12px 10px;border-left:1px solid var(--border)}.car-service-matrix th.car-service-visit-col:nth-child(2n){background:color-mix(in srgb,var(--surface-2) 88%,var(--accent) 12%)}.car-service-matrix th.car-service-visit-col:nth-child(odd){background:var(--surface-2)}.car-service-visit-date{font-size:.875rem;font-weight:600;color:var(--text)}.car-service-odo{display:inline-block;margin-top:4px;padding:2px 6px;border-radius:4px;font-weight:600;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--text);background:color-mix(in srgb,#f5d547 35%,var(--surface) 65%);border:1px solid color-mix(in srgb,#f5d547 50%,var(--border) 50%)}.car-service-sticky{position:sticky;left:0;z-index:3;background:var(--surface);min-width:200px;max-width:260px;text-align:left!important;font-weight:500;box-shadow:4px 0 8px -4px #00000026;border-right:1px solid var(--border)}.car-service-matrix thead .car-service-sticky{z-index:4}.car-service-category-row .car-service-category-label{font-weight:700;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text);background:var(--surface-2);padding:12px 12px 8px;border-top:2px solid var(--border);z-index:3;box-shadow:4px 0 8px -4px #0000001f}.car-service-category-row .car-service-category-fill{background:var(--surface-2);padding:12px 12px 8px;border-top:2px solid var(--border)}.car-service-matrix tbody tr:not(.car-service-category-row):not(.car-service-total-row):hover td{background:var(--surface-hover)}.car-service-matrix tbody tr:not(.car-service-category-row):not(.car-service-total-row):hover .car-service-sticky{background:var(--surface-hover)}.car-service-matrix td.car-service-visit-data{border-left:1px solid var(--border)}.car-service-matrix td.car-service-visit-data--alt{background:color-mix(in srgb,var(--surface) 92%,var(--accent) 8%)}.car-service-matrix tbody tr:not(.car-service-category-row):not(.car-service-total-row):hover .car-service-visit-data--alt{background:var(--surface-hover)}.car-service-cell{padding:4px 6px!important;min-width:88px;border-left:1px solid var(--border)}.car-service-matrix-wrap:not(.car-service-matrix-wrap--edit) .car-service-cell{padding:10px 12px!important}.car-service-cell-value{font-variant-numeric:tabular-nums}.car-service-cell-value--empty{color:var(--text-dim)}.car-service-cell-input{width:100%;min-height:36px;padding:6px 8px;border:2px solid var(--accent);border-radius:6px;background:var(--bg);color:var(--text);font:inherit;font-size:.875rem;font-variant-numeric:tabular-nums;text-align:right}.car-service-total-row td{border-top:2px solid var(--border);background:var(--surface-2);font-size:.9rem;padding-top:12px;padding-bottom:12px}.car-service-total-row .car-service-sticky{background:var(--surface-2)}.car-service-matrix .car-service-total-col{border-left:2px solid var(--border);background:var(--surface-2);min-width:100px;white-space:nowrap}.car-service-matrix thead .car-service-total-col{z-index:2}.car-service-category-row .car-service-total-col{border-top:2px solid var(--border)}:root{color-scheme:dark;--bg: #0f1117;--surface: #161b26;--surface-2: #232b3c;--surface-hover: #2a3346;--border: #3f4a5c;--border-hover: #5b677a;--card-shadow: 0 4px 20px rgba(0, 0, 0, .35);--text: #e8eaed;--text-heading: #f3f4f6;--text-muted: #9aa0a6;--text-dim: #6b7280;--accent: #3b82f6;--accent-text: #93c5fd;--ok: #34d399;--warn: #fbbf24;--danger: #f87171;--danger-strong: #dc2626;--workout: #a78bfa;--radius: 10px;--radius-sm: 6px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}button,input,select,textarea{font:inherit}
