:root{--bg: #1a1a1a;--bg-panel: #232323;--bg-cell: #2a2a2a;--bg-cell-hover: #333;--bg-header: #1e1e1e;--fg: #e0e0e0;--fg-dim: #999;--fg-faint: #666;--border: #383838;--green: #4ade80;--green-dim: #22c55e33;--red: #f87171;--red-dim: #ef444433;--blue: #60a5fa;--blue-dim: #3b82f633;--yellow: #fbbf24;--orange: #fb923c;--header-h: 32px;--row-h: 28px;--label-w: 200px;--month-w: 120px;--sub-w: 60px;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", "Source Code Pro", monospace;--font-ui: -apple-system, system-ui, sans-serif;--budget-fg: #38bdf8;--budget-header-fg: #38bdf8;--realized-fg: #2dd4bf;--realized-header-fg: #2dd4bf;--reconciled-fg: #2dd4bf;--over-budget-fg: #fb7185;--under-budget-fg: #2dd4bf;--cashflow-budget-fg: #38bdf8;--cashflow-realized-fg: #2dd4bf;--cashflow-pos: #2dd4bf;--cashflow-neg: #fb7185;--budget-sufficient-fg: #2dd4bf66;--budget-insufficient-fg: #fb923c66;--border-strong: #4a4a4a;--border-faint: transparent}[data-theme=classic]{--budget-fg: #60a5fa;--budget-header-fg: #60a5fa;--realized-fg: #4ade80;--realized-header-fg: #4ade80;--reconciled-fg: #4ade80;--over-budget-fg: #f87171;--under-budget-fg: #4ade80;--cashflow-budget-fg: #60a5fa;--cashflow-realized-fg: #4ade80;--cashflow-pos: #4ade80;--cashflow-neg: #f87171;--border-strong: #555555}[data-theme=ocean]{--budget-fg: #38bdf8;--budget-header-fg: #38bdf8;--realized-fg: #2dd4bf;--realized-header-fg: #2dd4bf;--reconciled-fg: #2dd4bf;--over-budget-fg: #fb7185;--under-budget-fg: #2dd4bf;--cashflow-budget-fg: #38bdf8;--cashflow-realized-fg: #2dd4bf;--cashflow-pos: #2dd4bf;--cashflow-neg: #fb7185;--budget-sufficient-fg: #2dd4bf66;--budget-insufficient-fg: #fb923c66;--border-strong: #4a4a4a}[data-theme=sunset]{--budget-fg: #fbbf24;--budget-header-fg: #fbbf24;--realized-fg: #fb923c;--realized-header-fg: #fb923c;--reconciled-fg: #fb923c;--over-budget-fg: #ef4444;--under-budget-fg: #84cc16;--cashflow-budget-fg: #fbbf24;--cashflow-realized-fg: #fb923c;--cashflow-pos: #84cc16;--cashflow-neg: #ef4444;--border-strong: #555555}[data-theme=contrast]{--bg: #000000;--bg-panel: #111111;--bg-cell: #161616;--bg-cell-hover: #222222;--bg-header: #0a0a0a;--fg: #ffffff;--fg-dim: #b0b0b0;--fg-faint: #808080;--border: #444444;--budget-fg: #00ccff;--budget-header-fg: #00ccff;--realized-fg: #00ff88;--realized-header-fg: #00ff88;--reconciled-fg: #00ff88;--over-budget-fg: #ff3333;--under-budget-fg: #00ff88;--cashflow-budget-fg: #00ccff;--cashflow-realized-fg: #00ff88;--cashflow-pos: #00ff88;--cashflow-neg: #ff3333;--border-strong: #777777;--border-faint: #333333}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-ui);background:var(--bg);color:var(--fg);font-size:13px;line-height:1.4;-webkit-font-smoothing:antialiased}button{font-family:var(--font-ui);font-size:12px;color:var(--fg);background:var(--bg-cell);border:1px solid var(--border);padding:4px 10px;border-radius:4px;cursor:pointer;transition:background .15s}button:hover{background:var(--bg-cell-hover)}button:active{background:var(--bg-panel)}button.active{background:var(--blue-dim);border-color:var(--blue)}input,select,textarea{font-family:var(--font-ui);font-size:13px;color:var(--fg);background:var(--bg);border:1px solid var(--border);padding:4px 8px;border-radius:3px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue)}input[type=number]{font-family:var(--font-mono);text-align:right;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.app-shell{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--bg-panel);border-bottom:1px solid var(--border);height:48px;flex:none}.app-bar h1{font-size:16px;font-weight:600;white-space:nowrap}.app-bar .app-logo{height:26px;width:auto;display:block;flex:none}.app-bar .spacer{flex:1}.toolbar{display:flex;align-items:center;gap:8px;padding:6px 16px;background:var(--bg-panel);border-bottom:1px solid var(--border);flex:none}.sheet th.corner-toggle .fold-all{width:100%;height:100%;border:none;background:transparent;color:var(--fg-dim);font-size:12px;border-radius:0;padding:0;text-align:left}.sheet th.corner-toggle .fold-all:hover{background:var(--bg-cell-hover);color:var(--fg)}.sheet th.corner-toggle .fold-all .arrow{display:inline-block;width:14px;text-align:center}.sheet-wrap{overflow:auto;flex:1;min-height:0}.sheet{border-collapse:collapse;table-layout:fixed;width:max-content;min-width:100%}.sheet th,.sheet td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);height:var(--row-h);padding:0;vertical-align:middle}.sheet th{background:var(--bg-header);color:var(--fg-dim);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:5;text-align:center;height:var(--header-h);white-space:nowrap;overflow:hidden;box-shadow:inset 0 -1px 0 var(--border)}.sheet th.label-col,.sheet td.label-col{width:var(--label-w);min-width:var(--label-w);left:0;z-index:4;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--bg-header);position:sticky}.sheet th.label-col{z-index:6}.sheet td.label-col{background:var(--bg-panel)}.sheet th.month-col{width:var(--month-w);min-width:var(--month-w)}.sheet th.sub-col{width:var(--sub-w);min-width:var(--sub-w);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;text-align:center;height:20px;padding:0;top:var(--header-h)}.sheet th.sub-budget{color:var(--budget-header-fg)}.sheet th.sub-realized{color:var(--realized-header-fg)}.sheet td.sub-cell{width:var(--sub-w);min-width:var(--sub-w);max-width:var(--sub-w)}.sheet td.month-cell{text-align:right;padding:0 4px;background:var(--bg-cell);cursor:text}.sheet td.month-cell:hover{background:var(--bg-cell-hover)}.sheet tbody tr:has(>td.month-cell:hover)>td.label-col.cat-row,.sheet tbody tr:has(>td.group-cell-total:hover)>td.label-col.group-row{background:var(--bg-cell-hover)}.sheet td.group-cell-total:hover{background:var(--bg-cell-hover)}.sheet td.month-cell input{width:100%;height:100%;border:none;background:transparent;text-align:right;padding:0 4px;font-family:var(--font-mono);font-size:10px;box-sizing:border-box}.sheet td.month-cell input:focus{background:var(--blue-dim);outline:1px solid var(--blue)}.sheet td.month-cell input.edit-error,.sheet td.month-cell input.edit-error:focus{background:var(--red-dim);outline:1px solid var(--red)}.sheet td.month-cell .display{display:block;padding:0 4px;font-family:var(--font-mono);font-size:10px;line-height:var(--row-h);color:var(--fg);cursor:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet td.month-cell.empty .display{color:var(--fg-faint)}.sheet td.month-cell{position:relative}.sheet td.month-cell .cell-edit-stack{display:block}.sheet td.month-cell .cell-edit-stack .expr-preview{position:absolute;top:50%;left:calc(100% + 3px);transform:translateY(-50%);z-index:5;padding:0 4px;font-family:var(--font-mono);font-size:9px;line-height:14px;color:var(--blue);background:var(--bg-panel, #1e293b);border:1px solid var(--blue);border-radius:3px;box-shadow:0 1px 3px #00000059;pointer-events:none;white-space:nowrap}.sheet td.month-cell .cell-edit-stack .expr-preview.flip-left{left:auto;right:calc(100% + 3px)}.sheet th.month-col,.sheet th.sub-col.sub-budget,.sheet td.sub-budget,.sheet td.month-cell[colspan="2"]{border-left:2px solid var(--border-strong)}.sheet th.sub-col.sub-budget,.sheet td.sub-budget{border-right:1px solid var(--border-faint)}.sheet td.sub-budget.reconciled .display{color:var(--reconciled-fg)}.sheet td.month-cell.budget-sufficient .display{color:var(--budget-sufficient-fg, inherit)!important}.sheet td.month-cell.budget-insufficient .display{color:var(--budget-insufficient-fg, inherit)!important}.sheet td.cell-selected{outline:2px solid var(--blue);outline-offset:-2px;background:var(--blue-dim)!important}.sheet td.group-row{background:var(--bg-header);font-weight:600;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.sheet td.group-row:hover{background:var(--bg-panel)}.sheet td.group-row .arrow{display:inline-block;width:14px;text-align:center}.sheet td.group-row .group-name{color:var(--fg)}.sheet td.group-cell-total{text-align:right;padding:0 8px;font-family:var(--font-mono);font-size:10px;background:var(--bg-header);color:var(--fg-dim)}.sheet td.cat-row{padding-left:24px}.sheet .recurring-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:4px;font-size:14px;line-height:1;color:var(--fg-faint);background:transparent;border:none;border-radius:3px;cursor:pointer;padding:0;vertical-align:middle;transition:color .15s,background .15s}.sheet .recurring-icon:hover{color:var(--blue);background:var(--blue-dim)}.sheet .note-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:4px;font-size:12px;line-height:1;color:var(--fg-faint);background:transparent;border:none;border-radius:3px;cursor:pointer;padding:0;vertical-align:middle;transition:color .15s,background .15s}.sheet .note-icon:hover{color:var(--blue);background:var(--blue-dim)}.sheet .note-icon.has-note{color:var(--yellow)}.sheet .note-icon.has-note:hover{color:var(--yellow);background:#fbbf2426}.note-textarea{width:100%;min-height:calc(7.5em + 16px);resize:vertical;font-family:inherit;font-size:.95em;line-height:1.5;padding:8px;box-sizing:border-box}.recurring-modal{max-width:420px}.radio-pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--fg);cursor:pointer;padding:2px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-cell)}.radio-pill input{margin:0}.mini-btn{font-size:11px;padding:2px 8px}.recurring-months{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;max-height:200px;overflow-y:auto}.recurring-preview{display:flex;flex-direction:column;gap:2px;margin-top:4px;max-height:180px;overflow-y:auto}.recurring-preview-line{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:2px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-cell)}.recurring-preview-line.clear .recurring-preview-val{color:var(--red)}.recurring-preview-line.none{opacity:.5}.month-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--fg-dim);cursor:pointer;padding:3px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-cell);-webkit-user-select:none;user-select:none}.month-chip.active{color:var(--blue);border-color:var(--blue);background:var(--blue-dim)}.month-chip input{display:none}.month-chip.disabled{opacity:.4;pointer-events:none}.validity-fields{display:flex;gap:12px}.validity-fields label{flex:1}.validity-error{color:var(--red);margin-top:6px;font-size:12px}.sheet td.invalid-month{opacity:.45;cursor:default}.sheet td.add-row{cursor:pointer;color:var(--fg-faint);font-style:italic;background:var(--bg-panel)}.sheet td.add-row:hover{color:var(--blue);background:var(--bg-cell-hover)}.sheet td.cashflow-label{background:var(--bg-header);font-weight:700;font-size:10px;border-top:2px solid var(--border)}.sheet td.cashflow-cell{text-align:right;padding:0 4px;font-family:var(--font-mono);font-size:10px;font-weight:600;background:var(--bg-header);border-top:2px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet td.cashflow-cell.pos{color:var(--cashflow-pos)}.sheet td.cashflow-cell.neg{color:var(--cashflow-neg)}.sheet td.type-label{background:var(--bg-header);font-weight:700;font-size:10px}.sheet td.type-sum-cell{text-align:right;padding:0 4px;font-family:var(--font-mono);font-size:10px;font-weight:600;background:var(--bg-header);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet td.type-sum-cell.sub-budget{color:var(--reconciled-fg);border-left:2px solid var(--border-strong);border-right:1px solid var(--border-faint)}.sheet td.type-sum-cell.sub-realized{color:var(--fg)}.sheet td.cashflow-cell.sub-budget{border-left:2px solid var(--border-strong)}.sheet th .month-name{font-size:12px;text-transform:none;letter-spacing:0;color:var(--fg)}.sheet th .year-name{font-size:10px;color:var(--fg-faint)}.sheet th.current-month{border-bottom:2px solid var(--blue)}.sheet th.current-month .month-name{color:var(--blue)}.sheet th.month-col{cursor:pointer;position:sticky}.sheet th.month-col:hover{background:var(--bg-cell-hover)}.sheet th.month-reconciled{border-bottom:2px solid var(--green)}.sheet th.month-reconciled .month-name{color:var(--green)}.sheet th.month-unreconciled{border-bottom:2px solid var(--orange)}.sheet th.month-unreconciled .month-name{color:var(--orange)}.sheet th .reconcile-dot{width:6px;height:6px;border-radius:50%;margin:2px auto 0}.sheet th .dot-reconciled{background:var(--green)}.sheet th .dot-unreconciled{background:var(--orange)}.yearly-shell{display:flex;flex-direction:column;flex:1;min-height:0}.yearly-toolbar{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--border);background:var(--bg-panel);font-size:12px;flex-wrap:wrap}.yearly-toolbar .spacer{flex:1}.yearly-back{font-size:12px}.yearly-nav{font-size:12px;padding:2px 10px}.yearly-range{font-family:var(--font-mono)}.yearly-empty{padding:40px 16px;text-align:center;color:var(--fg-faint);font-size:13px}.yearly-wrap{overflow:auto;flex:1;min-height:0}table.yearly{border-collapse:collapse;table-layout:fixed;width:max-content}table.yearly th,table.yearly td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);height:var(--row-h);padding:0;vertical-align:middle}table.yearly th{background:var(--bg-header);color:var(--fg-dim);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:5;text-align:center;height:var(--header-h);white-space:nowrap;box-shadow:inset 0 -1px 0 var(--border)}table.yearly th.label-col,table.yearly td.label-col{width:var(--label-w);min-width:var(--label-w);left:0;z-index:4;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;background:var(--bg-header)}table.yearly th.label-col{z-index:6}table.yearly td.label-col{background:var(--bg-panel)}table.yearly th.year-head{width:calc(var(--sub-w) * 3);min-width:calc(var(--sub-w) * 3);font-size:12px;text-transform:none;color:var(--fg);background:var(--bg-header)}table.yearly th.sub-col.y-budget{color:var(--budget-header-fg)}table.yearly th.sub-col.y-diff{color:var(--fg-faint)}table.yearly th.sub-col.y-realized{color:var(--realized-header-fg)}table.yearly th.sub-col{font-size:9px;text-transform:none;letter-spacing:0;overflow:hidden;text-overflow:ellipsis}table.yearly th.year-head,table.yearly th.sub-col.y-budget,table.yearly td.y-cell.y-budget{border-left:2px solid var(--border-strong)}table.yearly th.sub-col.y-budget,table.yearly th.sub-col.y-diff,table.yearly td.y-cell.y-budget,table.yearly td.y-cell.y-diff{border-right:1px solid var(--border-faint)}table.yearly td.y-cell{text-align:right;padding:0 4px;font-family:var(--font-mono);font-size:12px;background:var(--bg-cell);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:var(--sub-w);min-width:var(--sub-w)}table.yearly td.y-cell .trend{position:relative;margin-left:2px;font-size:8px;vertical-align:top}.yearly .trend.worse{color:var(--red)}.yearly .trend.better{color:var(--green)}.yearly td.y-diff.over-budget{color:var(--budget-insufficient-fg, #fb923c66);font-weight:600}.yearly td.y-diff.under-budget,.yearly td.y-diff.diff-good{color:var(--budget-sufficient-fg, #2dd4bf66);font-weight:600}.yearly td.y-diff.diff-bad{color:var(--budget-insufficient-fg, #fb923c66);font-weight:600}.yearly tr.y-group td.label-col{font-weight:600;padding-left:4px}.yearly tr.y-group td.y-cell{background:var(--bg-header);color:var(--fg)}.yearly tr.y-cat td.label-col{padding-left:24px}.yearly tr.y-cat td.label-col .type-income{color:var(--green)}.yearly tr.y-cat td.label-col .type-expense{color:var(--red)}.yearly tr.y-net td.label-col{background:var(--bg-header);font-weight:700;font-size:10px;border-top:2px solid var(--border)}.yearly tr.y-net td.y-cell{background:var(--bg-header);border-top:2px solid var(--border);font-weight:600}.type-income{color:var(--green)}.type-expense{color:var(--red)}.month-menu-modal{max-width:360px}.month-menu-modal .menu-list{display:flex;flex-direction:column;gap:4px;margin-top:8px}.month-menu-modal .menu-item{text-align:left;width:100%;padding:8px 12px;border:1px solid transparent;border-radius:4px;background:var(--bg-cell);color:var(--fg)}.month-menu-modal .menu-item:hover:not(:disabled){background:var(--bg-cell-hover);border-color:var(--border)}.month-menu-modal .menu-item:disabled{color:var(--fg-faint);cursor:default;opacity:.6}.month-menu-modal .menu-item.menu-danger{color:var(--red)}.month-menu-modal .menu-item.menu-danger:hover:not(:disabled){background:var(--red-dim);border-color:var(--red)}.month-menu-modal .menu-toast{margin-top:10px;font-size:12px;color:var(--green)}.import-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--red-dim);color:var(--fg);border:1px solid var(--red);border-radius:8px;padding:10px 16px;font-size:13px;z-index:1000;max-width:480px;text-align:center}.month-menu-modal .future-blocked{font-size:12px;color:var(--orange);margin:6px 0}.month-menu-modal .confirm-body,.modal .confirm-body{font-size:13px;color:var(--fg);margin:8px 0 4px}.month-menu-modal .confirm-sub,.modal .confirm-sub{font-size:11px;color:var(--fg-dim);margin-bottom:4px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal-overlay.anchored{align-items:flex-start;justify-content:flex-start;overflow-y:auto}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:20px;min-width:360px;max-width:500px}.modal h3{margin-bottom:12px;font-size:15px}.modal .field{margin-bottom:10px}.modal .field label{display:block;font-size:11px;color:var(--fg-dim);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.modal .field input,.modal .field select{width:100%}.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.modal .actions button{min-width:70px}.modal.info-modal{max-width:620px;max-height:80vh;overflow-y:auto}.modal.csv-modal{max-width:680px;width:680px}.csv-modal h4{margin-bottom:8px;font-size:13px}.csv-period-grid{display:flex;gap:12px}.csv-period-grid .field{flex:1}.csv-month-row{display:flex;gap:8px}.csv-month-row select{flex:1}.csv-list{max-height:46vh;overflow-y:auto;border:1px solid var(--border);border-radius:6px;margin-top:8px}.csv-row{display:grid;grid-template-columns:84px 1fr 78px 92px 180px;gap:8px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--border)}.csv-row.ignored .csv-date,.csv-row.ignored .csv-text,.csv-row.ignored .csv-amount{opacity:.45;text-decoration:line-through}.csv-row.missing{background:#dc262629;box-shadow:inset 3px 0 #dc2626}.csv-month{font-size:12px;padding:4px 6px;min-width:0}.csv-row.ignored .csv-month{opacity:.45}.csv-cat-cell{display:flex;gap:4px;align-items:center;min-width:0}.csv-cat-cell .csv-combo{flex:1;min-width:0}.csv-split-add{flex:none;width:24px;height:24px;padding:0;line-height:1}.csv-split{display:grid;grid-template-columns:84px 1fr 78px 92px 180px;gap:8px;align-items:center;padding:4px 10px;border-bottom:1px solid var(--border);background:var(--bg-panel)}.csv-split-marker{font-size:12px;color:var(--fg-dim);text-align:center}.csv-split-amount{text-align:right;font-variant-numeric:tabular-nums;font-size:12px;padding:4px 6px}.csv-split-month{font-size:11px;color:var(--fg-faint)}.csv-split-remove{width:24px;height:24px;padding:0;line-height:1}.csv-row:last-child{border-bottom:none}.csv-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.csv-amount{text-align:right;font-variant-numeric:tabular-nums}.csv-amount.neg{color:var(--red)}.csv-date{font-size:12px;color:var(--fg-dim)}.csv-combo{position:relative}.csv-combo-input{width:100%}.csv-combo-list{z-index:200;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;box-shadow:0 6px 16px #0006}.csv-combo-option{padding:6px 10px;font-size:12px;cursor:pointer}.csv-combo-option.active{background:var(--bg-cell-hover)}.csv-combo-option.ignore{color:var(--fg-dim);font-style:italic}.csv-warn{color:#fbbf24;font-size:12px}.csv-error{color:var(--red);font-size:12px}.csv-confirm{border:1px solid #fbbf24;border-radius:6px;padding:10px 12px;margin-top:12px}.csv-confirm p{margin:0 0 8px;font-size:13px}.csv-preview table{width:100%;font-size:11px;border-collapse:collapse;margin-top:4px}.csv-preview th,.csv-preview td{border:1px solid var(--border);padding:3px 6px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.csv-review-head{display:flex;justify-content:space-between;margin-top:6px}.info-body{font-size:13px;line-height:1.6;color:var(--fg)}.info-body p{margin:0}.info-spacer{height:8px}.dim{color:var(--fg-dim)}.muted{font-size:11px;color:var(--fg-faint)}.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;gap:16px}.no-data h2{font-size:18px;color:var(--fg-dim)}.no-data p{color:var(--fg-faint);max-width:400px}.no-data .brand-logo{width:120px;height:auto;display:block}.no-data .brand-title{font-size:34px;font-weight:600;letter-spacing:-.5px;color:var(--fg);margin:-4px 0 0}.no-data .brand-title .brand-accent{color:#5ccaa8;font-weight:500}tr.dragging{opacity:.4}tr.drag-over-cat{border-top:2px solid var(--blue)}tr.drag-over-group>td.label-col{background:var(--blue-dim);border-top:2px solid var(--blue)}tr.group-dragging{opacity:.4}tr.group-drag-over>td.label-col{border-top:2px solid var(--blue)}.group-row{cursor:grab}.group-row:active{cursor:grabbing}.cat-row{cursor:grab}.cat-row:active{cursor:grabbing}.cloud-status{font-size:.8em;cursor:pointer;padding:2px 6px;border-radius:4px;white-space:nowrap}.cloud-status:hover{background:#ffffff1a}.version-list{max-height:250px;overflow-y:auto;border:1px solid var(--border, #333);border-radius:4px;padding:4px}.version-item{display:flex;align-items:center;gap:8px;padding:4px 8px;cursor:pointer}.version-item:hover{background:#ffffff0d}.version-item input[type=radio]{cursor:pointer}.form-group{margin-bottom:12px}.form-group label{display:block;font-size:.85em;margin-bottom:4px;color:#aaa}.form-group input{width:100%;padding:6px 8px;border:1px solid var(--border, #333);border-radius:4px;background:var(--bg-input, #1a1a1a);color:var(--text, #eee);box-sizing:border-box}.orphan-banner{margin:8px 12px;padding:8px 12px;border:1px solid var(--orange);border-radius:6px;background:#fb923c14;font-size:12px}.orphan-banner-head{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.orphan-banner-head .dim{font-size:11px}.orphan-row{display:flex;align-items:center;gap:8px;padding:4px 0;border-top:1px solid var(--border)}.orphan-name{font-weight:600;min-width:120px}.orphan-actions{margin-left:auto;display:flex;gap:6px}.orphan-actions button{min-width:60px}.orphan-type-hint{font-size:11px;margin-top:4px}.orphan-summary{font-size:12px;margin:8px 0}
