:root{--bg: #f6f8fb;--card: #ffffff;--border: #e2e8f0;--text: #0f172a;--text-secondary: #64748b;--accent: #2563eb;--accent-hover: #1d4ed8;--green: #16a34a;--red: #dc2626;--amber: #d97706;--amber-bg: #fef3c7;--red-bg: #fee2e2;--green-bg: #dcfce7;--blue-bg: #dbeafe;--radius: 10px;--shadow: 0 1px 3px rgba(15, 23, 42, .07), 0 1px 2px rgba(15, 23, 42, .05);--sidebar-w: 240px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5}#root{min-height:100vh}h1,h2,h3,h4,p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--text-secondary);font-size:12.5px}.mt-1{margin-top:8px}.mt-2{margin-top:14px}.mt-3{margin-top:20px}.mb-2{margin-bottom:14px}.mb-3{margin-bottom:20px}.nowrap{white-space:nowrap}.num{text-align:right}.span-2{grid-column:span 2}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:8px;padding:8px 14px;font-size:13.5px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .05s;background:var(--card);color:var(--text);white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-outline{border-color:var(--border);background:var(--card)}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:#2563eb14;color:var(--accent)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-block{width:100%;justify-content:center}.btn-sm{padding:5px 10px;font-size:12.5px;border-radius:7px}.btn-group{display:inline-flex;gap:4px;flex-wrap:wrap}.icon-btn{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-secondary);border-radius:7px;width:28px;height:28px;cursor:pointer;transition:background .15s,color .15s;padding:0}.icon-btn:hover{background:#2563eb14;color:var(--accent)}.icon-btn-danger:hover{background:#dc262617;color:var(--red)}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;min-width:0}.field-inline{flex-direction:row;align-items:center;gap:8px;margin-bottom:0}.field-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;display:flex;align-items:center;gap:5px}.field-hint{font-size:11.5px;color:var(--text-secondary)}.field-error{font-size:11.5px;color:var(--red)}input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:13.5px;font-family:inherit;color:var(--text);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}input[type=color]{width:36px;height:34px;padding:2px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.filter-row .field{margin-bottom:0}.field-grow{flex:1;min-width:180px}.form-error{background:var(--red-bg);color:var(--red);border:1px solid #fecaca;border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.money-input{position:relative}.money-input input{padding-right:34px}.money-input-suffix{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--text-secondary);font-size:13px;pointer-events:none}.input-flag{border-color:#f59e0b!important;background:#fffbeb!important}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:#fff;border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:16px 12px;gap:8px;z-index:40}.sidebar-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15.5px;color:var(--accent);padding:6px 10px 16px}.side-nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto}.side-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--text-secondary);font-size:13.5px;font-weight:500;transition:background .12s,color .12s}.side-link:hover{background:#f1f5f9;color:var(--text);text-decoration:none}.side-link.active{background:#2563eb1a;color:var(--accent);font-weight:600}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:10px 24px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.topbar-spacer{flex:1}.topbar-user{display:flex;align-items:center;gap:12px}.topbar-name{font-size:13px;color:var(--text-secondary);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.burger,.sidebar-backdrop{display:none}.content{padding:24px;width:100%}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-title{font-size:20px;font-weight:700}.page-subtitle{color:var(--text-secondary);font-size:13px;margin-top:2px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:16px}.card-title{font-size:14.5px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:7px}.card-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:16px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stat-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:6px}.stat-value{font-size:22px;font-weight:700;letter-spacing:-.01em;word-break:break-word}.stat-sub{font-size:12px;color:var(--text-secondary);margin-top:4px}.stat-footer{font-size:12px;color:var(--text-secondary);margin-top:8px}.stat-green .stat-value{color:var(--green)}.stat-red .stat-value{color:var(--red)}.stat-delta{font-size:12px;margin-top:4px;font-weight:600}.delta-good{color:var(--green)}.delta-bad{color:var(--red)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-2 .card{margin-bottom:0}.span-2{grid-column:1 / -1}.table-card{padding:0;overflow:hidden}.table-scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--border);background:#f8fafc;white-space:nowrap}.table th.num,.table th.act-col{text-align:right}.table td{padding:9px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.table tbody tr:hover{background:#f8fafc}.table tbody tr:last-child td{border-bottom:none}.table-compact td,.table-compact th{padding:7px 12px}.check-col{width:34px;text-align:center}.act-col{width:70px;text-align:right;white-space:nowrap}.row-selected{background:#2563eb0d}.row-clickable{cursor:pointer}.row-muted{opacity:.6}.tx-time{font-size:11px;color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-top:1px}.tx-desc{display:flex;flex-direction:column;gap:1px;min-width:140px}.tx-counterparty{font-size:12px;color:var(--text-secondary)}.tx-transfer-note{font-size:12px;color:var(--accent)}.tx-raw{font-size:11.5px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px;display:inline-block}.type-cell{width:34px}.ico-income{color:var(--green)}.ico-expense{color:var(--red)}.ico-transfer{color:var(--accent)}.inline-select{padding:4px 6px;font-size:12.5px;min-width:130px}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.money-income{color:var(--green);font-weight:600}.money-expense{color:var(--red);font-weight:600}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap}.badge-green{background:var(--green-bg);color:#15803d}.badge-red{background:var(--red-bg);color:#b91c1c}.badge-amber{background:var(--amber-bg);color:#b45309}.badge-blue{background:var(--blue-bg);color:#1d4ed8}.badge-gray{background:#f1f5f9;color:#475569}.badge-purple{background:#f3e8ff;color:#7c3aed}.alert{display:flex;align-items:flex-start;gap:10px;border-radius:var(--radius);padding:12px 14px;font-size:13.5px;border:1px solid transparent}.alert a{font-weight:600}.alert-red{background:var(--red-bg);border-color:#fecaca;color:#991b1b}.alert-amber{background:var(--amber-bg);border-color:#fde68a;color:#92400e}.alert-green{background:var(--green-bg);border-color:#bbf7d0;color:#166534}.alert-blue{background:var(--blue-bg);border-color:#bfdbfe;color:#1e40af}.error-list,.gap-list{margin:6px 0 0;padding-left:18px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:100;overflow-y:auto}.modal{display:flex;flex-direction:column;background:#fff;border-radius:12px;box-shadow:0 20px 50px #0f172a40;width:100%;max-width:460px;max-height:calc(100vh - 80px);animation:modal-in .15s ease-out}.modal-head{flex:0 0 auto}.modal-body{min-height:0;overflow-y:auto;overflow-x:hidden}.modal-sm{max-width:400px}.modal-lg{max-width:760px}.modal-xl{max-width:1040px}.modal-wide{max-width:760px}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 0}.modal-title{font-size:16px;font-weight:700}.modal-body{padding:14px 18px 18px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px;grid-column:1 / -1}.confirm-text{font-size:14px;margin-bottom:10px}.progress{height:8px;background:#eef2f7;border-radius:999px;overflow:hidden;width:100%}.progress-sm{height:6px}.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .3s}.fill-amber{background:var(--amber)}.fill-red{background:var(--red)}.spinner-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px 0}.spinner{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.spinner-label{color:var(--text-secondary);font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:34px 16px}.empty-icon{width:56px;height:56px;border-radius:50%;background:#2563eb14;color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:6px}.empty-title{font-weight:600;font-size:15px}.empty-hint{color:var(--text-secondary);font-size:13px;max-width:420px}.empty-action{margin-top:10px}.toasts{position:fixed;bottom:18px;right:18px;display:flex;flex-direction:column;gap:8px;z-index:200;max-width:380px}.toast{background:#0f172a;color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;box-shadow:0 8px 24px #0f172a40;animation:toast-in .2s ease-out}.toast-success{background:#15803d}.toast-error{background:#b91c1c}.toast-info{background:#1d4ed8}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.period-picker{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.period-presets{display:flex;gap:6px;flex-wrap:wrap}.period-custom{display:flex;gap:8px;align-items:center}.period-custom input{width:auto}.period-custom-label{font-size:12px;color:var(--text-secondary);margin-right:4px}.chart-tooltip{background:#fff;border:1px solid var(--border);border-radius:8px;padding:8px 12px;box-shadow:var(--shadow);font-size:12.5px}.ct-label{font-weight:600;margin-bottom:4px}.ct-row{display:flex;gap:14px;justify-content:space-between}.ct-name{font-size:12px}.legend-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}.legend-list li{display:flex;align-items:center;gap:8px;font-size:12.5px}.legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.legend-name{flex:1}.legend-val{font-weight:600;font-variant-numeric:tabular-nums}.mv-bar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:#eef2f7}.mv-seg{height:100%}.mv-mandatory{background:#2563eb}.mv-variable{background:#94a3b8}.budget-mini-list{display:flex;flex-direction:column;gap:12px}.budget-mini{display:block;color:var(--text);padding:8px;border:1px solid var(--border);border-radius:8px;transition:border-color .15s}.budget-mini:hover{border-color:var(--accent);text-decoration:none}.budget-mini-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;margin-bottom:6px}.budget-mini-nums{display:flex;justify-content:space-between;font-size:12px;margin-top:5px}.anomaly-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.anomaly-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:1px solid var(--border);border-radius:8px;padding:8px 10px;cursor:pointer;font:inherit;color:var(--text);transition:border-color .15s,background .15s}.anomaly-item:hover{border-color:var(--accent);background:#f8fafc}.anomaly-icon{color:var(--amber);display:flex}.anomaly-desc{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.anomaly-date{display:block;font-size:11.5px;color:var(--text-secondary)}.anomaly-amount{font-weight:600}.account-balance-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.account-balance-list li{display:flex;justify-content:space-between;gap:10px;font-size:13px}.balance-name{display:flex;align-items:center;gap:7px;color:var(--text-secondary)}.balance-val{font-weight:600;font-variant-numeric:tabular-nums}.filter-bar{margin-bottom:14px}.filter-bar .field{min-width:130px}.bulk-bar{display:flex;align-items:center;gap:12px;background:#2563eb12;border:1px solid rgba(37,99,235,.25);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;font-size:13px;font-weight:600;color:var(--accent);flex-wrap:wrap}.pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}.pagination-info{font-size:13px;color:var(--text-secondary)}.dropzone{border:2px dashed #cbd5e1;border-radius:12px;background:#fff;padding:44px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;color:var(--text-secondary);transition:border-color .15s,background .15s;text-align:center}.dropzone:hover,.dropzone-over{border-color:var(--accent);background:#2563eb0a;color:var(--accent)}.dropzone-busy{pointer-events:none;opacity:.7}.dropzone-title{font-size:15px;font-weight:600;color:var(--text)}.dropzone-hint{font-size:12.5px}.doc-name{display:flex;align-items:center;gap:8px}.doc-filename{font-weight:500;word-break:break-all}.doc-counts{font-size:12px;color:var(--text-secondary)}.doc-error{color:var(--red);font-size:12px;margin-top:3px}.review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap}.review-summary{display:flex;align-items:center;gap:7px;font-weight:600;font-size:13px}.review-actions{display:flex;gap:8px;flex-wrap:wrap}.review-table .op-cell{display:flex;flex-direction:column;gap:3px}.op-flags{display:flex;gap:3px}.op-flag{display:inline-flex;color:#b45309;cursor:help}.op-amount-input{min-width:90px}.op-currency{width:62px;padding:3px 4px;font-size:12px}.review-table input,.review-table select{padding:5px 7px;font-size:12.5px}.review-table select.op-category{min-width:170px}.review-table select.op-account{min-width:150px}.review-table select.op-type{min-width:90px}.review-table{min-width:1350px}.op-processed{opacity:.62}.confidence{display:flex;align-items:center;gap:6px;justify-content:flex-end;font-size:12px;color:var(--text-secondary)}.confidence-dot{width:8px;height:8px;border-radius:50%}.c-green{background:var(--green)}.c-amber{background:var(--amber)}.c-red{background:var(--red)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.account-card{display:flex;flex-direction:column;gap:10px}.account-archived{opacity:.62}.account-card-head{display:flex;align-items:flex-start;gap:10px}.account-icon{width:38px;height:38px;border-radius:10px;background:#2563eb17;color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.account-title{flex:1;min-width:0}.account-name{font-weight:700;font-size:15px}.account-meta{font-size:12px;color:var(--text-secondary)}.account-balance{font-size:24px;font-weight:700}.account-source{display:flex;align-items:center;gap:8px;font-size:12px}.account-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;border-top:1px solid #f1f5f9;padding-top:10px}.accounts-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}.account-credit .account-icon{background:#dc262617;color:#dc2626}.account-balance{display:flex;align-items:baseline;gap:8px}.account-balance-hint{font-size:12px;font-weight:500;color:var(--text-secondary)}.credit-block{display:flex;flex-direction:column;gap:6px;font-size:13px}.credit-line{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.credit-debt{color:#dc2626}.credit-ok{color:var(--green)}.credit-bar{height:6px;border-radius:999px;background:#f1f5f9;overflow:hidden}.credit-bar>span{display:block;height:100%;background:var(--green);border-radius:999px;transition:width .25s ease}.credit-bar>span.mid{background:#f59e0b}.credit-bar>span.warn{background:#dc2626}.credit-over{color:#b91c1c;font-weight:600}.credit-hint{font-size:12px}.attention-card{border-color:#fde68a;background:linear-gradient(0deg,#fbbf240f,#fbbf240f),var(--card)}.attention-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.attention-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--border)}.attention-row:first-child{border-top:none}.attention-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.attention-actions{display:flex;gap:6px;flex-wrap:wrap}.occ-table td{vertical-align:middle}.cand-list,.rule-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:6px}.cand-row,.rule-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.cand-desc{flex:1;min-width:140px}.inline-form{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.rule-name{flex:1;min-width:180px}.rule-input{width:84px}.calendar-item-paid{opacity:.62}.calendar-item-skipped{opacity:.45;text-decoration:line-through}.calendar-moved{margin-left:4px;color:var(--accent)}.planned-group{margin-bottom:18px}.planned-group-head{display:flex;align-items:baseline;gap:10px;font-weight:600;font-size:14px;margin-bottom:8px}.planned-overdue td{background:#dc26260a}.calendar-item-planned{border-left:3px solid var(--accent)}.balance-group-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.toolbar-row{display:flex;align-items:center;gap:16px}.budget-list{display:flex;flex-direction:column;gap:14px}.budget-card-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.budget-name{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px}.budget-card-actions{display:flex;gap:4px}.budget-total{margin-bottom:12px}.budget-total-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;margin-bottom:6px}.budget-limits{display:flex;flex-direction:column;gap:9px}.budget-limit-head{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;margin-bottom:4px;flex-wrap:wrap}.budget-limit-name{font-weight:500}.budget-limit-nums{color:var(--text-secondary);font-variant-numeric:tabular-nums;display:flex;gap:8px;align-items:center}.warn-label{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700}.warn-amber{color:#b45309}.warn-red{color:#b91c1c}.budget-carry{margin-top:10px;border-top:1px dashed var(--border);padding-top:8px;font-size:12px}.budget-limit-editor{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:12px}.budget-limit-editor-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.budget-limit-input{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid #f1f5f9}.budget-limit-input:last-child{border-bottom:none}.budget-limit-input .money-input{width:150px}.upcoming-list{display:flex;flex-direction:column;gap:12px}.upcoming-day{display:flex;gap:14px;align-items:flex-start}.upcoming-date{width:88px;flex-shrink:0;font-weight:600;font-size:13px;padding-top:5px}.upcoming-items{flex:1;display:flex;flex-direction:column;gap:5px}.upcoming-item{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 10px;border:1px solid var(--border);border-radius:8px}.upcoming-name{flex:1}.switch{position:relative;display:inline-block;width:34px;height:19px;cursor:pointer}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#cbd5e1;border-radius:999px;transition:background .15s}.switch-slider:before{content:"";position:absolute;width:15px;height:15px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .15s}.switch input:checked+.switch-slider{background:var(--accent)}.switch input:checked+.switch-slider:before{transform:translate(15px)}.control-panel{display:flex;flex-direction:column;gap:12px}.control-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.control-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);min-width:80px}.assumptions{display:flex;flex-direction:column;gap:10px}.assumption-group{display:flex;flex-direction:column;gap:4px}.assumption-label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.assumption-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13px}.assumption-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;border-top:1px solid #f1f5f9;padding-top:7px}.forecast-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.forecast-disclaimer{display:flex;gap:10px;align-items:flex-start;color:var(--text-secondary);font-size:12.5px;flex:1;min-width:260px}.goal-card{display:flex;flex-direction:column;gap:10px}.goal-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.goal-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--accent)}.goal-amounts{font-size:19px}.goal-meta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--text-secondary)}.goal-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;border-top:1px solid #f1f5f9;padding-top:10px}.chat-page{display:flex;flex-direction:column}.chat-card{display:flex;flex-direction:column;padding:0;overflow:hidden;flex:1}.chat-messages{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px;max-height:56vh;min-height:200px}.chat-msg{display:flex;gap:10px;align-items:flex-start}.chat-msg-user{flex-direction:row-reverse}.chat-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#2563eb1a;color:var(--accent)}.chat-msg-user .chat-avatar{background:var(--accent);color:#fff}.chat-msg-error .chat-avatar{background:var(--red-bg);color:var(--red)}.chat-bubble{max-width:78%;background:#f1f5f9;border:1px solid var(--border);border-radius:12px;padding:10px 14px;font-size:13.5px}.chat-msg-user .chat-bubble{background:var(--accent);color:#fff;border-color:var(--accent)}.chat-msg-error .chat-bubble{background:var(--red-bg);border-color:#fecaca;color:#991b1b}.chat-text{white-space:pre-wrap;word-break:break-word}.chat-refs{margin-top:8px;font-size:11.5px;color:var(--text-secondary);border-top:1px dashed var(--border);padding-top:6px}.chat-msg-user .chat-refs{color:#fffc;border-color:#ffffff4d}.chat-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.chat-confirm-hint{display:flex;align-items:center;gap:5px;margin-top:8px;font-size:11.5px;color:#b45309;font-weight:600}.chat-action-applied{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--green);font-weight:600;margin-bottom:4px}.chat-time{margin-top:6px;font-size:11px}.chat-examples{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.chat-examples-inline{padding:10px 16px;border-top:1px solid var(--border);background:#f8fafc}.chat-input-row{display:flex;gap:10px;padding:14px 16px;border-top:1px solid var(--border);background:#fff}.chat-input{flex:1}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.settings-tabs{position:sticky;top:53px;z-index:8;display:flex;gap:8px;overflow-x:auto;padding:8px 0 10px;margin-bottom:8px;background:var(--app-bg, var(--bg, #f6f7fb));scrollbar-width:none}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab{flex:0 0 auto;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .12s ease}.settings-tab:hover{border-color:var(--accent);color:var(--accent)}.settings-tab:active{transform:scale(.97)}.settings-grid>section{scroll-margin-top:64px}.settings-subtitle{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:7px;margin:18px 0 10px;border-top:1px solid var(--border);padding-top:14px}.settings-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:2px}.settings-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:7px 8px;border-radius:8px;font-size:13px}.settings-row:hover{background:#f8fafc}.settings-name{flex:1 1 auto;display:flex;align-items:center;flex-wrap:wrap;gap:2px 7px;min-width:0}.settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto;margin-left:auto}.color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.rename-form{display:flex;gap:6px;align-items:center;flex:1 1 240px;flex-wrap:wrap}.rename-form input[type=text]{flex:1 1 140px;max-width:220px}.rename-form .btn{flex:0 0 auto}.add-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-top:1px dashed var(--border);padding-top:10px}.add-row>*,.rename-form>*{width:auto;min-width:0}.add-row input[type=text]{flex:1 1 120px;min-width:110px}.add-row select{flex:0 0 auto;min-width:104px}.add-row input[type=color],.rename-form input[type=color]{flex:0 0 34px;width:34px;height:32px;padding:2px;border-radius:8px;cursor:pointer}.add-row .btn{flex:0 0 auto}.card-danger-zone{border-color:#fecaca;background:snow}.card-danger-zone .card-title{color:var(--red)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(160deg,#eff6ff,#f6f8fb 55%,#eef2ff)}.auth-card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px #0f172a1a;width:100%;max-width:400px;padding:30px 28px}.auth-brand{text-align:center;color:var(--accent);margin-bottom:22px}.auth-brand h1{font-size:20px;margin-top:8px}.auth-brand p{color:var(--text-secondary);font-size:13px;margin-top:4px}.auth-form .field{margin-bottom:14px}.auth-alt{text-align:center;font-size:13px;color:var(--text-secondary);margin-top:16px}@media (max-width: 767px){.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translate(-100%);transition:transform .2s ease;box-shadow:none;width:min(78vw,280px)}.sidebar.open{transform:translate(0);box-shadow:0 0 40px #0f172a59}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;z-index:35}.burger{display:inline-flex}.topbar{padding:8px 12px}.topbar-name{display:none}.content{padding:14px}.page-header{align-items:flex-start;flex-direction:column}.page-actions{width:100%}.page-actions .btn{flex:1;justify-content:center}.grid-2,.settings-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.form-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-value{font-size:18px}.filter-bar .filter-row{flex-direction:column;align-items:stretch}.filter-bar .field{min-width:0}.period-custom input{flex:1;min-width:0}.period-custom{width:100%}.period-custom label{flex:1;display:flex;align-items:center}.modal-overlay{padding:14px 10px;align-items:flex-start}.modal{max-width:100%}.review-toolbar{flex-direction:column;align-items:stretch}.review-actions{flex-wrap:wrap}.review-actions .btn{flex:1;justify-content:center}.chat-bubble{max-width:92%}.chat-input-row .btn-label{display:none}.upcoming-day{flex-direction:column;gap:4px}.toasts{left:14px;right:14px;max-width:none}.forecast-footer{flex-direction:column;align-items:flex-start}}.cp-layout{display:grid;grid-template-columns:300px 1fr;gap:1rem;align-items:start}.cp-list{padding:.75rem;position:sticky;top:1rem;max-height:calc(100vh - 120px);overflow-y:auto}.cp-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.cp-item{display:flex;gap:.5rem;align-items:center;width:100%;text-align:left;padding:.55rem .6rem;border-radius:8px;border:1px solid transparent;background:none;cursor:pointer;color:var(--foreground);font:inherit}.cp-item:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.cp-item.active{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.cp-item-body{display:flex;flex-direction:column;min-width:0}.cp-item-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-item-meta{font-size:.8rem;color:var(--muted-foreground)}.cp-detail{min-width:0}.stack{display:flex;flex-direction:column;gap:1rem}.cp-head{display:flex;gap:.9rem;align-items:flex-start}.cp-head-icon{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);flex-shrink:0}.cp-head-body{flex:1;min-width:0}.cp-head-title{font-size:1.15rem;font-weight:700;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.cp-head-meta{display:flex;gap:.9rem;align-items:center;flex-wrap:wrap;font-size:.85rem;margin-top:.2rem}.cp-head-meta svg{vertical-align:-2px}.cp-notes{margin-top:.4rem;font-size:.9rem}.cp-head-actions{display:flex;gap:.3rem}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.6rem}.section-head h3{display:flex;align-items:center;gap:.45rem;font-size:1rem;margin:0}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem}.search-row{display:flex;gap:.5rem;align-items:center;padding:.45rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--card)}.search-row input{border:none;outline:none;background:none;width:100%;font:inherit;color:var(--foreground)}.cp-linked{border:1px dashed color-mix(in srgb,var(--accent) 60%,transparent);padding:0 .3rem;border-radius:6px}@media (max-width: 860px){.cp-layout{grid-template-columns:1fr}.cp-list{position:static;max-height:300px}}.radio-col{display:flex;flex-direction:column;gap:.45rem}.radio-row{display:flex;gap:.5rem;align-items:flex-start;cursor:pointer;font-size:.95rem;padding:.35rem .5rem;border-radius:6px;border:1px solid var(--border)}.radio-row:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.radio-row input{margin-top:.2rem}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-title-row .card-title{margin:0}.tx-day-row td{background:#f8fafc;border-top:1px solid var(--border);padding:5px 10px}.tx-day-bar{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:12px}.tx-day-title{font-weight:600;font-size:13px}.tx-day-balance{margin-left:auto;color:var(--text-secondary)}.balance-chart{width:100%;height:150px;display:block}.balance-chart-wrap{position:relative}.chart-tabs{display:flex;gap:4px}.chart-tabs button{border:1px solid var(--border);background:none;cursor:pointer;border-radius:6px;padding:2px 8px;font-size:11px;color:var(--muted)}.chart-tabs button.on{border-color:var(--accent);color:var(--accent)}.reconcile-bar{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:#f0fdf4;font-size:12px}.reconcile-bar.warn{background:#fffbeb;border-color:#fcd34d}.reconcile-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.reconcile-bar.ok .reconcile-head strong{color:#15803d}.reconcile-bar.warn .reconcile-head strong{color:#b45309}.reconcile-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}.reconcile-list li{display:flex;gap:6px;align-items:flex-start;color:#92400e}.op-page{border:none;background:none;cursor:pointer;padding:0 2px;font-size:10px;color:var(--muted);text-decoration:underline dotted}.op-page:hover{color:var(--accent)}.op-push-chip{border:1px solid #c7d2fe;background:#eef2ff;color:#4338ca;border-radius:6px;padding:0 5px;font-size:10px;cursor:pointer;margin-left:6px}.op-push-chip:hover{background:#e0e7ff;border-color:#a5b4fc}.op-card-row td{background:#f3f4f6;border-top:2px solid var(--border);padding:6px 10px}.op-card-row.unmatched td{background:#fff7ed}.op-card-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px}.op-card-title{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:var(--text-primary)}.op-card-acc{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.op-card-acc span{color:var(--muted)}.op-card-acc select{max-width:240px}.op-card-check{display:inline-flex;align-items:center;gap:5px;color:#15803d;font-weight:500}.op-card-diff,.op-card-warn{display:inline-flex;align-items:center;gap:5px;color:#b45309;font-weight:500}.op-date-row td{padding:0;background:var(--bg-subtle, #f1f5f9);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.op-date-bar{display:flex;align-items:baseline;gap:10px;padding:7px 12px;position:sticky;top:0;z-index:1;background:inherit}.op-date-title{font-weight:600;font-size:13px}.op-date-bar .muted{font-size:12px}.op-desc-input{width:100%;min-width:190px}.review-table .tx-counterparty{display:block;margin-top:2px}.account-breakdown{font-size:11.5px;line-height:1.45;margin-top:4px}.balance-log{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12.5px}.balance-log li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:4px 0;border-bottom:1px dashed var(--border)}.balance-log li:last-child{border-bottom:none}.side-badge{margin-left:auto;min-width:20px;padding:1px 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;text-align:center;line-height:18px}.hint-card{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin-bottom:14px;color:var(--text-secondary);font-size:13px;line-height:1.5}.hint-card svg{flex:none;margin-top:2px;color:var(--accent)}.tabs-row{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}.tab-btn{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text-secondary);font-size:13px;cursor:pointer}.tab-btn:hover{border-color:#cbd5e1;color:var(--text)}.tab-btn.active{border-color:var(--accent);background:#2563eb14;color:var(--accent);font-weight:600}.tab-count{padding:0 6px;border-radius:999px;background:#f1f5f9;color:var(--text-secondary);font-size:11px;line-height:18px}.tab-btn.active .tab-count{background:#2563eb29;color:var(--accent)}.bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin-bottom:12px;border-color:#2563eb59;background:#2563eb0f;font-size:13px}.bulk-actions{display:flex;gap:8px;flex-wrap:wrap}.row-flagged td{background:#fffdf5}.msg-cell{max-width:380px;color:var(--text-secondary);font-size:12px;line-height:1.45}.flag-line{display:flex;flex-wrap:wrap;gap:4px}.small{font-size:11px}.draft-source{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.draft-raw{margin:0 0 14px;padding:10px 12px;border-radius:8px;background:#f8fafc;border:1px solid var(--border);color:var(--text-secondary);font-size:13px;line-height:1.45}.live-control{display:flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--border);border-radius:8px;background:var(--card);font-size:12px;color:var(--text-secondary)}.live-control select{border:none;background:transparent;color:inherit;font-size:12px;padding:0;cursor:pointer;outline:none}.live-control.on{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.live-control.on .live-icon{animation:live-pulse 2.4s ease-in-out infinite}.live-time{font-variant-numeric:tabular-nums;opacity:.75}@keyframes live-pulse{0%,to{opacity:1;transform:rotate(0)}50%{opacity:.55;transform:rotate(180deg)}}@keyframes skeleton-pulse{0%{opacity:.55}50%{opacity:1}to{opacity:.55}}.skeleton{display:inline-block;background:linear-gradient(90deg,#eef2f7,#e2e8f0,#eef2f7);animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-table{padding:14px 16px;display:flex;flex-direction:column;gap:14px}.skeleton-row{display:flex;gap:16px;align-items:center}.skeleton-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:14px}.skeleton-card{display:flex;flex-direction:column;gap:10px;padding:16px}.toast{display:flex;align-items:center;gap:12px}.toast-action{border:1px solid rgba(255,255,255,.45);background:transparent;color:#fff;border-radius:8px;padding:3px 10px;font-size:12px;cursor:pointer}.toast-action:hover{background:#ffffff24}.toast-close{border:none;background:transparent;color:#ffffffbf;font-size:16px;line-height:1;cursor:pointer;padding:0 2px}.toast-close:hover{color:#fff}.row-active td{box-shadow:inset 3px 0 0 var(--accent)}.inline-edit .money-input{min-width:120px}.inline-input{width:100%;min-width:140px;padding:5px 8px;border:1px solid var(--border);border-radius:8px;font-size:13px}kbd{display:inline-block;padding:1px 5px;border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;background:#f8fafc;font-size:11px;font-family:inherit;color:var(--text-secondary)}.drafts-footnote{margin-top:12px}.candidates-box{border:1px solid #fde68a;background:#fffbeb;border-radius:10px;padding:10px 12px;margin-bottom:14px}.candidates-title{display:flex;align-items:center;gap:6px;font-size:12px;color:#92400e;margin-bottom:8px}.candidate-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid rgba(146,64,14,.15);font-size:13px}.candidate-row:first-of-type{border-top:none}.rules-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;max-height:260px;overflow:auto}.rule-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13px}.rule-row-off{opacity:.55}.rule-main{display:flex;flex-direction:column;gap:4px}.rule-actions{display:flex;align-items:center;gap:6px}.rules-subtitle{margin:4px 0 10px;font-size:13px;color:var(--text-secondary)}.field-hint{display:block;margin-top:4px;font-size:11px;color:var(--text-secondary)}.month-label{min-width:132px;text-align:center;font-size:14px}.stat-hint{font-size:11px;color:var(--text-secondary)}.calendar-card{padding:14px 16px;margin-bottom:14px}.calendar-head{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;margin-bottom:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-weekday{font-size:11px;color:var(--text-secondary);text-align:center;padding-bottom:4px}.calendar-cell{min-height:92px;border:1px solid var(--border);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:4px;background:#fff}.calendar-cell-empty{background:#f8fafc;border-style:dashed}.calendar-cell-today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.calendar-day{font-size:11px;color:var(--text-secondary)}.calendar-item{border-radius:6px;padding:3px 5px;font-size:10.5px;line-height:1.25;display:flex;flex-direction:column;gap:1px;overflow:hidden}.calendar-item-expense{background:var(--red-bg);color:#991b1b}.calendar-item-income{background:var(--green-bg);color:#166534}.calendar-item-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-item-amount{font-weight:600}.calendar-empty{margin-top:10px;font-size:12px;color:var(--text-secondary)}.card-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.subscriptions-card{padding:14px 16px}.subscriptions-note{display:flex;align-items:center;gap:6px;margin:10px 0 0}.review-layout{display:grid;grid-template-columns:minmax(280px,38%) minmax(0,1fr);gap:14px;align-items:start}.doc-preview{position:sticky;top:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 120px)}.doc-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);background:#f8fafc}.doc-preview-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-preview-actions{display:flex;align-items:center;gap:4px}.doc-preview-body{overflow:auto;padding:8px;display:flex;justify-content:center;align-items:flex-start;min-height:320px}.doc-preview-frame{width:100%;height:68vh;border:none}.doc-preview-img{max-width:100%;transform-origin:top center;transition:transform .15s ease-out}@media (max-width: 1100px){.review-layout{grid-template-columns:1fr}.doc-preview{position:static;max-height:420px}}.rec-card{padding:16px 18px 10px}.rec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.rec-title{display:flex;align-items:center;gap:7px;margin:0 0 3px;font-size:14.5px;font-weight:700}.rec-title svg{color:var(--text-secondary)}.rec-count{display:inline-flex;align-items:center;min-width:20px;height:19px;padding:0 6px;border-radius:10px;background:var(--bg);color:var(--text-secondary);font-size:11px;font-weight:600}.rec-empty{margin:2px 0 6px}.btn-ai{border-color:var(--accent);color:var(--accent)}.btn-ai:hover:not(:disabled){background:var(--accent);color:#fff}.ai-panel{margin:12px 16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.ai-panel-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.ai-panel-head .ai-panel-actions{margin-left:auto;display:flex;gap:6px}.ai-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.ai-item{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:9px 11px;background:var(--card);border:1px solid var(--border);border-radius:8px}.ai-item-main{min-width:0}.ai-item-op{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;margin-bottom:4px}.ai-item-changes{font-size:12.5px;display:grid;gap:3px}.ai-item-changes s{text-decoration-color:var(--red)}.ai-note{font-size:11.5px}.ai-summary{font-size:13px;margin-bottom:10px;line-height:1.5}.ai-card .ai-hint{margin:-4px 0 12px}.ai-form{display:grid;gap:10px}.field-check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-secondary)}.ai-test{margin-top:10px;font-size:12.5px;padding:8px 10px;border-radius:8px}.ai-test-ok{background:var(--green-bg);color:#15803d}.ai-test-fail{background:var(--red-bg);color:#b91c1c}.ai-usage{margin-top:10px;display:flex;align-items:center;gap:6px;font-size:11.5px}.chat-engine{margin-top:6px;font-size:10.5px;letter-spacing:.02em;opacity:.8}.chat-cursor{display:inline-block;width:7px;height:15px;margin-left:2px;vertical-align:-2px;background:var(--accent);border-radius:1px;animation:chat-blink 1s steps(2,start) infinite}@keyframes chat-blink{50%{opacity:0}}.chat-status{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11.5px;color:var(--text-secondary)}.spin{animation:spin .9s linear infinite}.chat-mic{padding:0 10px}.chat-mic-on{border-color:var(--red);color:var(--red);animation:mic-pulse 1.4s ease-in-out infinite}@keyframes mic-pulse{50%{box-shadow:0 0 0 4px var(--red-bg)}}.account-cards{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.account-card-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:8px;background:var(--surface-2, rgba(127, 127, 127, .12));font-size:11px;font-variant-numeric:tabular-nums}.account-card-chip-title{color:var(--muted);font-size:10px}.account-card-chip .chip-x{border:none;background:none;cursor:pointer;padding:0 2px;color:var(--muted);font-size:13px;line-height:1}.account-card-chip .chip-x:hover{color:#dc2626}.chip-add{border:1px dashed var(--border);background:none;cursor:pointer;border-radius:8px;padding:2px 7px;font-size:11px;color:var(--text-secondary)}.chip-add:hover{border-color:var(--accent);color:var(--accent)}.cards-editor{display:flex;flex-direction:column;gap:6px;margin-top:6px}.cards-editor-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;background:var(--surface-2, rgba(127, 127, 127, .08))}.cards-editor-row .card-number{font-variant-numeric:tabular-nums;font-weight:600}.cards-editor-row .btn{margin-left:auto}.cards-editor-add{display:flex;gap:6px;align-items:center;margin-top:4px}.cards-editor-add input{flex:1;min-width:0}.cards-editor-add input:first-child{max-width:90px}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.content>.page-header,.content>.card,.content>.card-grid,.content>.alert{animation:page-in .26s cubic-bezier(.22,.8,.3,1) both}.content>*:nth-child(2){animation-delay:.02s}.content>*:nth-child(3){animation-delay:.04s}.content>*:nth-child(4){animation-delay:.06s}.content>*:nth-child(5){animation-delay:.08s}.content>*:nth-child(n+6){animation-delay:.1s}.card-grid .card{transition:transform .18s cubic-bezier(.22,.8,.3,1),box-shadow .18s ease,border-color .18s ease}.card-grid .card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0f172a1a}.btn{transition:background .15s,border-color .15s,color .15s,transform .12s ease,box-shadow .18s ease}.btn:hover:not(:disabled){box-shadow:0 2px 8px #0f172a14}.btn:active{transform:translateY(1px) scale(.98)}.table tbody tr{transition:background .14s ease}.nav-link,.sidebar a,.sidebar button{transition:background .16s ease,color .16s ease,transform .16s ease}input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}.no-amount-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}.no-amount-banner span{flex:1 1 320px}.side-badge{position:relative}.side-badge-alert:after{content:"";position:absolute;top:-3px;right:-4px;width:7px;height:7px;border-radius:50%;background:#dc2626;border:1px solid var(--card, #fff)}.rates-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rates-meta{font-size:12.5px;color:var(--muted-foreground)}.rates-meta.stale{color:#b45309}.rates-hint{margin:2px 0 10px}.rates-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.rates-search{max-width:200px;padding:6px 10px;font-size:13px}.settings-grid>.card-wide{grid-column:1 / -1}.bucket-bar{display:flex;height:10px;border-radius:6px;overflow:hidden;background:var(--border);margin-bottom:12px}.bucket-seg{height:100%}.b-needs{background:#2563eb}.b-wants{background:#f59e0b}.b-savings{background:#16a34a}.b-debt{background:#b91c1c}.b-transfers{background:#8b5cf6}.b-unclassified{background:#94a3b8}.bucket-table{width:100%;border-collapse:collapse;font-size:13px}.bucket-table th{text-align:left;font-weight:600;color:var(--muted-foreground);padding:4px 6px;font-size:12px}.bucket-table td{padding:5px 6px;border-top:1px solid var(--border)}.bucket-table td.num,.bucket-table th.num{text-align:right;white-space:nowrap}.bucket-table .over{color:#b91c1c}.bucket-table .under{color:#15803d}.bucket-note{margin:8px 0 0}.bucket-select{padding:4px 8px;font-size:12px;border-radius:6px;min-width:138px;max-width:168px;flex:0 0 auto}.bucket-auto{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground);border:1px solid var(--border);border-radius:4px;padding:1px 5px;flex:0 0 auto}.uncat-table{width:100%;font-size:13px}.uncat-table td select{max-width:200px;padding:4px 6px;font-size:12.5px}.uncat-label{font-weight:500}.health-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.health-cell{display:flex;flex-direction:column;gap:2px}.health-label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground)}.health-value{font-size:22px;font-weight:700}.runway-bar{height:6px;border-radius:4px;background:var(--border);margin-top:6px;overflow:hidden}.runway-fill{height:100%;background:#16a34a}.health-note{margin:10px 0 0}.checklist{list-style:none;margin:0;padding:0}.checklist-row{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:start;padding:12px 0;border-bottom:1px solid var(--border)}.checklist-row:last-child{border-bottom:none}.checklist-row.done .checklist-title{color:var(--muted-foreground);text-decoration:line-through}.checklist-icon{color:var(--muted-foreground);padding-top:2px}.checklist-row.done .checklist-icon{color:#16a34a}.checklist-body{display:flex;flex-direction:column;gap:2px}.checklist-title{font-weight:600}.checklist-sub{margin:4px 0 0;padding-left:16px;font-size:12.5px;color:var(--muted-foreground)}.checklist-action{align-self:center}.debt-plan{display:grid;gap:12px}.debt-plan-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.debt-plan-num{font-size:20px;font-weight:700}.debt-plan-row{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:4px 0;border-bottom:1px solid var(--border)}.debt-plan-order{margin:4px 0 0;padding-left:18px;font-size:13px}.debt-plan-warn{margin:6px 0 0;padding-left:16px}.tx-day-bar{align-items:center;gap:8px}.tx-day-title{font-weight:700;font-size:13px}.tx-day-count{color:var(--text-secondary);font-size:11.5px}.tx-day-chip,.tx-day-balance{display:inline-flex;align-items:baseline;gap:6px;padding:3px 10px;border-radius:8px;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.tx-day-chip .chip-label,.tx-day-balance .chip-label{font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;opacity:.75}.tx-day-chip b,.tx-day-balance b{font-weight:700}.tx-day-chip-income{background:var(--green-bg);color:#166534}.tx-day-chip-expense{background:var(--red-bg);color:#991b1b}.tx-day-balance{margin-left:auto;background:var(--blue-bg);color:#1d4ed8}.tx-day-balance.negative{background:var(--red-bg);color:#991b1b}.calendar-grid{grid-auto-rows:minmax(132px,auto);align-items:start}.calendar-cell,.calendar-cell-empty{height:132px;box-sizing:border-box;overflow:hidden;padding:8px;gap:3px}.calendar-day-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.calendar-day{font-size:11px;font-weight:600;color:var(--text-secondary)}.calendar-item{flex-direction:column;align-items:stretch;gap:0;padding:3px 6px;font-size:10.5px;line-height:1.35;border-radius:5px;overflow:hidden}.calendar-item,.calendar-more,.calendar-cell-total,.calendar-day{flex:0 0 auto}.calendar-item-name{flex:0 0 auto;min-width:0}.calendar-item-amount{align-self:flex-end;font-weight:600;font-variant-numeric:tabular-nums}.calendar-more{border:none;background:none;padding:1px 2px;cursor:pointer;font-size:10.5px;font-weight:600;color:var(--accent)}.calendar-more:hover{text-decoration:underline}.calendar-foot{display:flex;justify-content:flex-end;margin-top:auto}.calendar-cell-total{margin-top:0;font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums}.day-modal-list{list-style:none;margin:0 0 8px;padding:0}.day-modal-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.day-modal-row:last-child{border-bottom:none}.day-modal-main{display:flex;align-items:baseline;gap:8px;min-width:0}.day-modal-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.day-modal-dot.expense{background:#dc2626}.day-modal-dot.income{background:#16a34a}.day-modal-name{font-size:13px}.day-modal-amount{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.day-modal-amount.expense{color:#b91c1c}.day-modal-amount.income{color:#15803d}.debt-plan-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.debt-plan-head .money-input{width:170px}.debt-plan-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;padding:14px 0 16px;border-bottom:1px solid var(--border);margin-bottom:8px}.debt-plan-summary>div{display:flex;flex-direction:column;gap:3px}.debt-plan-summary b{font-size:17px;font-variant-numeric:tabular-nums}.debt-plan-table th,.debt-plan-table td{vertical-align:middle}.debt-plan-table .money-input{min-width:120px}.debt-plan-table select{width:74px}.debt-priority-input{width:62px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--foreground);font-variant-numeric:tabular-nums}.debt-plan-table tr.debt-stuck td{background:#dc26260a}.feasibility{margin-top:16px;padding:14px 16px;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--card) 92%,var(--accent) 8%)}.feasibility-ok{border-color:#16a34a59}.feasibility-tight,.feasibility-risky{border-color:#d9770666}.feasibility-infeasible{border-color:#dc262666}.feasibility-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.feasibility-tips{margin:8px 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.45}.debt-plan-warn{margin:10px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px}.debt-rate-input{width:62px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--foreground);text-align:right;font-variant-numeric:tabular-nums}.debt-rate-input.empty{border-style:dashed;color:var(--muted-foreground)}.debt-rank{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--muted-foreground);font-size:10.5px;font-variant-numeric:tabular-nums;vertical-align:1px}.debt-name-row{display:inline-flex;align-items:center;gap:6px}.debt-plan-table td{padding-top:10px;padding-bottom:10px}.debt-plan-head select{min-width:250px}.card-head-row .debt-plan-head{flex:0 0 auto;flex-wrap:nowrap;margin-left:auto}.card-head-row .debt-plan-head select{min-width:0;width:250px}.debt-plan-table td.num,.debt-plan-table .nowrap{white-space:nowrap}.debt-month-input{width:118px;padding:5px 6px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--foreground);font-size:12px;font-variant-numeric:tabular-nums}.debt-detail-dates{display:flex;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.debt-detail-dates .field{max-width:200px}.occ-table .act-col{width:auto;min-width:250px}.occ-table .tx-counterparty{display:block;margin-top:2px}.occ-table td.act-col>*+*{margin-left:6px}.occ-table td.act-col .btn{margin-right:2px}.modal-body .modal-actions{position:sticky;bottom:0;z-index:2;background:#fff;padding:10px 0 2px;margin-top:8px;border-top:1px solid var(--border)}.modal-foot{flex:0 0 auto;display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--border)}.modal-body .modal-actions{position:static;padding:12px 0 2px;margin-top:12px;background:transparent;border-top:1px solid var(--border);box-shadow:none}.settings-row-cat{flex-wrap:nowrap}.settings-row-cat .settings-name{flex-wrap:nowrap;overflow:hidden}.settings-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-row-cat .settings-name>.badge,.settings-row-cat .settings-name>.muted{flex:0 0 auto}.settings-row-cat{min-height:42px}.settings-row-cat .bucket-select{max-width:150px}.settings-row-cat .settings-actions{gap:4px}.settings-row-cat .icon-btn{padding:3px}.hdr-summary{position:relative;display:flex;align-items:center;gap:8px;min-width:0}.hdr-total{display:flex;align-items:baseline;gap:6px;padding:5px 10px;border-radius:9px;background:#f1f5f9;text-decoration:none;color:var(--text);white-space:nowrap}.hdr-label{font-size:11px;color:var(--muted-foreground)}.hdr-total strong{font-size:13.5px;font-variant-numeric:tabular-nums}.hdr-accounts{display:flex;align-items:center;gap:6px;min-width:0}.hdr-account{display:flex;flex-direction:column;gap:1px;padding:4px 9px;border:1px solid var(--border);border-radius:9px;text-decoration:none;color:var(--text);max-width:158px;background:#fff}.hdr-account:hover,.hdr-total:hover{border-color:#cbd5e1}.hdr-account-name{font-size:10.5px;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hdr-account-sum{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.hdr-account-sum.negative,.hdr-drop-sum.negative{color:var(--red)}.hdr-more{display:inline-flex;align-items:center;gap:2px;height:30px;padding:0 8px;border:1px dashed var(--border);border-radius:9px;background:#fff;color:var(--muted-foreground);font-size:12px;cursor:pointer}.hdr-more.open svg{transform:rotate(180deg)}.hdr-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:45;min-width:252px;padding:6px;background:#fff;border:1px solid var(--border);border-radius:11px;box-shadow:0 16px 34px #0f172a24}.hdr-drop-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 8px;border-radius:8px;text-decoration:none;color:var(--text);font-size:12.5px}.hdr-drop-row:hover{background:#f8fafc}.hdr-drop-name{display:flex;flex-direction:column;min-width:0}.hdr-drop-meta{font-size:10.5px;color:var(--muted-foreground)}.hdr-drop-sum{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.hdr-pill{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 9px;border:1px solid var(--border);border-radius:9px;background:#fff;text-decoration:none;color:var(--text);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.hdr-pill-muted{color:var(--muted-foreground)}.hdr-pill-alert{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.hdr-updated{font-size:11px;color:var(--muted-foreground);font-variant-numeric:tabular-nums}.hdr-stale .hdr-updated{color:var(--amber, #b45309)}.hdr-empty{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px dashed var(--border);border-radius:9px;color:var(--muted-foreground);font-size:12px;text-decoration:none;white-space:nowrap}.hdr-error{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid #fecaca;border-radius:9px;background:#fef2f2;color:#b91c1c;font-size:12px;cursor:pointer}.hdr-skeleton{display:inline-block;width:96px;height:28px;border-radius:9px;background:linear-gradient(90deg,#eef2f7 25%,#f8fafc 37%,#eef2f7 63%);background-size:400% 100%;animation:hdr-shimmer 1.2s ease infinite}.hdr-skeleton-total{width:128px}@keyframes hdr-shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media (max-width: 1420px){.hdr-pill-label{display:none}}@media (max-width: 1200px){.hdr-summary .hdr-accounts,.hdr-summary .hdr-updated{display:none}}@media (max-width: 900px){.hdr-summary .hdr-label,.topbar-name{display:none}.hdr-summary{gap:5px}.hdr-pill{padding:0 7px}}.icon-btn-active{color:#b45309}.assumption-details{margin:4px 0 8px;font-size:12.5px;color:var(--muted-foreground)}.assumption-details summary{cursor:pointer;padding:2px 0}.assumption-details .error-list{margin:6px 0 0;padding-left:18px}.rules-actions{display:flex;gap:8px;flex-wrap:wrap;flex:0 0 auto}.rules-hint{margin:2px 0 10px}.settings-row-rule .settings-name{min-height:28px;flex-wrap:wrap;row-gap:4px}.settings-row-rule .settings-name-text{max-width:380px}.rule-suggest-table td{vertical-align:top}.row-warn td{background:#fffbeb}.text-warn{color:#b45309}.seam-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;flex-wrap:wrap}.seam-row>span{flex:1 1 320px;min-width:0}.daily-mode-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 10px}.daily-mode-row .field-label{margin:0;flex:0 0 auto}.alerts-bell{position:relative;flex:0 0 auto}.alerts-trigger{cursor:pointer;font:inherit;font-size:12px}.alerts-trigger[aria-expanded=true]{border-color:var(--accent, #2563eb)}.alerts-panel{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-width:min(380px,calc(100vw - 32px));max-height:min(70vh,520px);overflow:auto;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 40px #0f172a2e;z-index:60;padding:10px 12px 12px}.alerts-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:8px}.alerts-panel-head strong{font-size:13px}.alerts-panel-actions{display:flex;gap:6px;flex-wrap:wrap}.alerts-empty{display:flex;gap:8px;align-items:flex-start;padding:14px 4px;color:var(--muted-foreground);font-size:12px;line-height:1.45}.alerts-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.alerts-item{position:relative;display:grid;grid-template-columns:18px 1fr;gap:8px;padding:8px 26px 8px 8px;border:1px solid var(--border);border-radius:10px;background:#fff}.alerts-item.is-read{opacity:.62;background:#fafafa}.alerts-item.sev-critical{border-left:3px solid #dc2626}.alerts-item.sev-warning{border-left:3px solid #d97706}.alerts-item.sev-info{border-left:3px solid #2563eb}.alerts-item-icon{margin-top:2px;color:var(--muted-foreground)}.alerts-item.sev-critical .alerts-item-icon{color:#dc2626}.alerts-item.sev-warning .alerts-item-icon{color:#d97706}.alerts-item-body{display:flex;flex-direction:column;gap:2px;min-width:0}.alerts-item-kind{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground)}.alerts-item-title{font-size:12.5px;line-height:1.3}.alerts-item-text{font-size:12px;color:#334155;line-height:1.35}.alerts-item-meta{font-size:11px;color:var(--muted-foreground);font-variant-numeric:tabular-nums}.alerts-item-close{position:absolute;top:6px;right:6px;border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;padding:2px;border-radius:6px;line-height:0}.alerts-item-close:hover{background:#f1f5f9;color:#0f172a}.alerts-item-read{position:absolute;right:8px;bottom:6px;border:none;background:transparent;color:#2563eb;font-size:11px;cursor:pointer;padding:0}.alerts-item-read:hover{text-decoration:underline}.alerts-settings{display:flex;flex-direction:column;gap:2px}.settings-row-main{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:2px}.settings-row-title{font-size:13px;font-weight:500}.settings-row-hint{font-size:11.5px;color:var(--muted-foreground);line-height:1.35}.settings-row-actions{display:flex;align-items:center;gap:4px;flex:0 0 auto}.input-money{width:110px;text-align:right;padding:5px 8px;font-variant-numeric:tabular-nums}.alerts-kinds{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}.alerts-kind{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid var(--border);border-radius:999px;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.alerts-kind.is-on{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.alerts-kind input{margin:0}@media (max-width: 700px){.alerts-panel{right:-8px;width:min(360px,calc(100vw - 24px))}}.envelope-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-left:3px solid var(--border)}.envelope-card.env-ok{border-left-color:#16a34a}.envelope-card.env-tight{border-left-color:#d97706}.envelope-card.env-deficit{border-left-color:#dc2626}.envelope-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 24px}.envelope-main{display:flex;flex-direction:column;gap:2px;min-width:0}.envelope-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground)}.envelope-value{font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums}.envelope-sub{font-size:12px;color:var(--muted-foreground)}.envelope-status{align-self:flex-start;margin-top:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500}.envelope-status.ok{background:#ecfdf5;color:#047857}.envelope-status.tight{background:#fffbeb;color:#b45309}.envelope-status.deficit{background:#fef2f2;color:#b91c1c}.envelope-facts{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px 18px;flex:1 1 420px}.envelope-facts>div{display:flex;flex-direction:column;gap:1px;min-width:0}.envelope-facts span{font-size:11px;color:var(--muted-foreground)}.envelope-facts strong{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.envelope-why summary{cursor:pointer;font-size:12px;color:var(--muted-foreground)}.envelope-why ul{margin:6px 0 0;padding-left:18px;font-size:12px;color:#334155;line-height:1.5}.envelope-history{border-top:1px dashed var(--border);padding-top:8px}.envelope-history-title{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground)}.envelope-history ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}.envelope-history li{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;font-variant-numeric:tabular-nums}.env-week{min-width:150px;color:#0f172a}.env-week em{font-style:normal;color:var(--muted-foreground)}.env-fact{color:#334155}.env-delta.good{color:#047857}.env-delta.bad{color:#b91c1c}.env-none{color:var(--muted-foreground)}@media (max-width: 900px){.envelope-facts{grid-template-columns:repeat(2,minmax(120px,1fr))}.envelope-value{font-size:24px}}.envelope-shortfall{color:#b91c1c;font-weight:500}.rpt-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rpt-month{display:inline-flex;align-items:center;gap:4px}.rpt-month input[type=month]{padding:4px 8px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:13px;background:#fff}.rpt-card{display:flex;flex-direction:column;gap:8px}.rpt-table{width:100%;font-variant-numeric:tabular-nums}.rpt-table td.num,.rpt-table th.num{text-align:right;white-space:nowrap}.rpt-delta{display:inline-flex;align-items:center;gap:2px;font-size:11.5px}.rpt-delta.up{color:#b91c1c}.rpt-delta.down{color:#047857}.stat-sub .rpt-delta.up,.stat-sub .rpt-delta.down{color:inherit}.rpt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.rpt-list li{display:flex;align-items:baseline;gap:8px;font-size:12.5px;font-variant-numeric:tabular-nums;padding:3px 0;border-bottom:1px dashed var(--border)}.rpt-list-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.rpt-list-meta{flex:0 0 auto;color:var(--muted-foreground);font-size:11.5px}.rpt-list strong{flex:0 0 auto;white-space:nowrap}.rpt-note{margin:6px 0 0;font-size:11.5px;color:var(--muted-foreground);line-height:1.4}@media (max-width: 900px){.rpt-actions{width:100%;justify-content:space-between}}.budget-mini-note{font-size:11px;color:var(--muted-foreground)}
