:root{--bg:#07090d;--panel:#0f131a;--panel-2:#141a23;--line:#1f2733;--txt:#d7dde6;--muted:#8a94a3;--amber:#f5a93b;--red:#e5534b;--green:#3fb96a;--blue:#5b9dd9;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--sans:"IBM Plex Sans",system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--txt);font-family:var(--sans);font-size:15px;line-height:1.55;padding-bottom:80px}.wrap{max-width:1180px;margin:0 auto;padding:0 20px}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber)}h1{font-family:var(--mono);font-size:clamp(22px,4vw,32px);font-weight:700;line-height:1.15}h2{font-family:var(--mono);font-size:17px;font-weight:700;margin-bottom:4px}.sub{color:var(--muted);font-size:14px;max-width:780px}section{margin-top:48px}header{border-bottom:1px solid var(--line);padding:30px 0 24px;background:linear-gradient(180deg,#0b0f15 0%,var(--bg) 100%)}.kpis{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px;min-width:150px}.kpi .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.kpi .val{font-family:var(--mono);font-size:20px;font-weight:700;margin-top:4px}.kpi .val.green{color:var(--green)}.kpi .val.amber{color:var(--amber)}.kpi .val.red{color:var(--red)}.kpi .note{font-size:11px;color:var(--muted)}.note-box{font-size:13px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin-top:14px}.note-box b{color:var(--amber)}.alert-box{font-size:13px;color:var(--txt);background:#e5534b14;border:1px solid rgba(229,83,75,.35);border-radius:8px;padding:12px 16px;margin-top:14px}.alert-box b{color:var(--red)}.ok-box{font-size:13px;color:var(--txt);background:#3fb96a12;border:1px solid rgba(63,185,106,.3);border-radius:8px;padding:12px 16px;margin-top:14px}.ok-box b{color:var(--green)}.alloc{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:16px}.slice{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:14px;border-top:3px solid var(--amber)}.slice.lock{border-top-color:var(--green)}.slice .a-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.slice .a-val{font-family:var(--mono);font-size:20px;font-weight:700;margin:4px 0}.slice p{font-size:12.5px;color:var(--muted)}.grid-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;margin-top:18px;background:var(--panel)}table{border-collapse:collapse;min-width:920px;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:0}th{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 12px;background:var(--panel-2);text-align:right}th.cat{text-align:left;position:sticky;left:0;background:var(--panel-2);z-index:3;min-width:215px}td.cat{position:sticky;left:0;background:var(--panel);z-index:2;padding:7px 12px;font-size:13px;min-width:215px}td.cat .obs{display:block;font-size:10.5px;color:var(--muted)}td.cat .cat-row{display:flex;align-items:center;gap:6px}td.cat .drag-handle{cursor:grab;color:var(--muted);font-size:14px;line-height:1;flex:none}td.cat .cat-name{flex:1;min-width:0;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--txt);font-size:13px;padding:3px 5px;outline:none}td.cat .cat-name:hover,td.cat .cat-name:focus{border-color:var(--line);background:var(--panel-2)}td.cat .cat-del{flex:none;background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px;border-radius:4px}td.cat .cat-del:hover{color:var(--red);background:var(--panel-2)}td.cat .cat-obs{display:block;width:100%;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--muted);font-size:10.5px;padding:2px 5px;margin-top:2px;outline:none}td.cat .cat-obs:hover,td.cat .cat-obs:focus{border-color:var(--line);background:var(--panel-2)}td.cat .cat-flags{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}td.cat .cat-flags label{display:flex;align-items:center;gap:3px;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);cursor:pointer}td.cat .cat-flags input[type=checkbox]{margin:0;cursor:pointer}tr.dragging{opacity:.4}tr.add-row td{padding:6px 12px;background:var(--panel)}.add-cat{background:transparent;border:1px dashed var(--line);border-radius:6px;color:var(--muted);font-size:12px;padding:5px 10px;cursor:pointer;width:100%}.add-cat:hover{border-color:var(--amber);color:var(--amber)}tr.grp td{background:var(--panel-2);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);padding:7px 12px;position:sticky;left:0}td.num{text-align:right}td.num input{width:100%;min-width:96px;background:transparent;border:none;color:var(--txt);font-family:var(--mono);font-size:13px;text-align:right;padding:7px 12px;outline:none}td.num input:focus{background:#f5a93b14}td.num input.zero{color:#3d4654}tr.total td{font-family:var(--mono);font-weight:700;padding:9px 12px;text-align:right;background:var(--panel-2)}tr.total td.cat{text-align:left}tr.total.entr td{color:var(--green)}tr.total.gasto td{color:var(--red)}tr.sub td{font-family:var(--mono);font-weight:700;padding:10px 12px;text-align:right;background:#10161f;font-size:14px}tr.sub td.cat{text-align:left;color:var(--txt)}tr.acum td{font-family:var(--mono);font-weight:700;padding:12px;text-align:right;background:#0c1118;font-size:15px;border-top:2px solid var(--amber)}tr.acum td.cat{text-align:left;color:var(--amber)}.pos{color:var(--green)}.neg{color:var(--red)}.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--muted);align-items:center}button.reset{margin-top:14px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);font-family:var(--mono);font-size:12px;padding:8px 16px;border-radius:8px;cursor:pointer}button.reset:hover{color:var(--txt);border-color:var(--amber)}button.primary{margin-top:14px;margin-left:10px;background:#3fb96a1f;border:1px solid rgba(63,185,106,.4);color:var(--green);font-family:var(--mono);font-size:12px;padding:8px 16px;border-radius:8px;cursor:pointer}button.primary:hover{background:#3fb96a33}#saveStatus{font-family:var(--mono);font-size:11px;margin-left:12px;color:var(--green)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:22px}.rules{columns:2;column-gap:32px;font-size:13px;color:var(--muted);margin-top:14px}@media (max-width:700px){.rules{columns:1}}.rules li{margin-bottom:6px;break-inside:avoid}.rules li.hot{color:var(--red);font-weight:600}.task-list{list-style:none;margin-top:10px}.task-list li{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13.5px;align-items:flex-start}.task-list li:last-child{border-bottom:none}.task-list li:before{content:"›";color:var(--amber);font-family:var(--mono);flex:none}.sev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:18px}.debt{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;border-left:3px solid var(--muted)}.debt.dead{opacity:.6;border-left-color:var(--green)}.debt.sev1{border-left-color:var(--red)}.debt.sev2{border-left-color:var(--amber)}.debt.sev3{border-left-color:var(--blue)}.debt.sev4{border-left-color:var(--green)}.debt .sev{font-family:var(--mono);font-size:10px;letter-spacing:.12em;padding:2px 8px;border-radius:4px;background:var(--panel-2);color:var(--muted)}.debt.dead .sev{color:var(--green)}.debt.sev1 .sev{color:var(--red)}.debt.sev2 .sev{color:var(--amber)}.debt.sev3 .sev{color:var(--blue)}.debt.sev4 .sev{color:var(--green)}.debt h3{font-size:15px;margin:10px 0 2px}.debt .amt{font-family:var(--mono);font-size:20px;font-weight:700}.debt .meta{font-size:12.5px;color:var(--muted);margin-top:6px}.debt .track{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);line-height:1.8}.debt .track b{color:var(--txt)}.tot-line{margin-top:16px;padding:14px 18px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.tot-line b{color:var(--amber)}footer{margin-top:56px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:var(--muted);font-family:var(--mono)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:32px;max-width:360px;width:100%}.login-card h1{font-size:20px;margin-bottom:6px}.login-card .sub{margin-bottom:20px}.login-field{margin-bottom:14px}.login-field label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.login-field input{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--txt);font-family:var(--sans);font-size:14px;padding:10px 12px;outline:none}.login-field input:focus{border-color:var(--amber)}.login-error{color:var(--red);font-size:13px;margin-bottom:12px}.login-card button{width:100%;background:var(--amber);border:none;color:#0a0d12;font-weight:600;font-family:var(--sans);font-size:14px;padding:11px;border-radius:8px;cursor:pointer;margin-top:6px}.login-card button:disabled{opacity:.6;cursor:default}.scenario-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}.scenario-bar select{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);font-family:var(--mono);font-size:13px;padding:9px 12px;border-radius:8px;outline:none;min-width:200px}.scenario-bar select:focus{border-color:var(--amber)}.scenario-bar button{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);font-family:var(--mono);font-size:12px;padding:9px 14px;border-radius:8px;cursor:pointer;white-space:nowrap}.scenario-bar button:hover{color:var(--txt);border-color:var(--amber)}.scenario-bar button.danger:hover{color:var(--red);border-color:var(--red)}.scenario-bar .logout{margin-left:auto}.status-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--line)}.status-pill.seguro{color:var(--green);border-color:#3fb96a66;background:#3fb96a14}.status-pill.atencao{color:var(--amber);border-color:#f5a93b66;background:#f5a93b14}.status-pill.critico{color:var(--red);border-color:#e5534b66;background:#e5534b14}.bridge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:16px}.bridge-card{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:16px}.bridge-card h3{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:10px}.bridge-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;color:var(--muted)}.bridge-row b{color:var(--txt);font-family:var(--mono)}.bridge-row.total{border-top:1px dashed var(--line);margin-top:6px;padding-top:8px;font-size:14px}.bridge-row.total b{font-size:15px}.bridge-field{margin-top:10px}.bridge-field label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.bridge-field input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--txt);font-family:var(--mono);font-size:13px;padding:7px 10px;outline:none}.bridge-field input:focus{border-color:var(--amber)}.bridge-card .month-label{width:100%;background:transparent;border:1px solid transparent;border-radius:4px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:10px;padding:3px 5px;outline:none}.bridge-card .month-label:hover,.bridge-card .month-label:focus{border-color:var(--line);background:var(--panel)}.bridge-card-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.bridge-card-actions button{background:transparent;border:1px dashed var(--line);border-radius:6px;color:var(--muted);font-size:11px;padding:5px 10px;cursor:pointer}.bridge-card-actions button:hover{border-color:var(--amber);color:var(--amber)}.month-head{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.month-head .month-name{width:100%;text-align:right;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--txt);font-family:var(--mono);font-size:12px;text-transform:uppercase;padding:3px 5px;outline:none}.month-head .month-name:hover,.month-head .month-name:focus{border-color:var(--line);background:var(--panel)}.month-actions{display:flex;gap:4px}.month-actions button{background:transparent;border:1px solid var(--line);border-radius:4px;color:var(--muted);cursor:pointer;font-size:11px;padding:1px 6px;line-height:1.4}.month-actions button:hover{color:var(--amber);border-color:var(--amber)}.debt-edit{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.debt-edit .span2{grid-column:1 / -1}.debt-edit label{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.debt-edit input,.debt-edit select,.debt-edit textarea{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--txt);font-family:var(--sans);font-size:12.5px;padding:6px 8px;outline:none;resize:vertical}.debt-edit input:focus,.debt-edit select:focus,.debt-edit textarea:focus{border-color:var(--amber)}.debt-status{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:4px;margin-left:8px}.debt-status.ativa{color:var(--amber);background:#f5a93b1a}.debt-status.quitada{color:var(--green);background:#3fb96a1a}.debt-status.monitorar{color:var(--blue);background:#5b9dd91a}.text-edit{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:14px;border-top:1px dashed var(--line)}.text-edit .field.span2{grid-column:1 / -1}.text-edit label{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.text-edit input,.text-edit textarea{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--txt);font-family:var(--sans);font-size:12.5px;padding:6px 8px;outline:none;resize:vertical}.text-edit input:focus,.text-edit textarea:focus{border-color:var(--amber)}.edit-list{margin-top:6px}.edit-list-item{display:flex;gap:8px;align-items:flex-start;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}.edit-list-item textarea,.edit-list-item .text-edit{flex:1}.edit-list-item .text-edit{margin-top:0;padding-top:0;border-top:none}.edit-list-item textarea{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--txt);font-family:var(--sans);font-size:12.5px;padding:6px 8px;outline:none;resize:vertical}.edit-list-item textarea:focus{border-color:var(--amber)}.row-actions{display:flex;flex-direction:column;gap:4px;flex:none}.row-actions button{background:transparent;border:1px solid var(--line);border-radius:4px;color:var(--muted);cursor:pointer;font-size:11px;padding:2px 6px;line-height:1.4}.row-actions button:hover:not(:disabled){color:var(--txt);border-color:var(--amber)}.row-actions button:disabled{opacity:.3;cursor:default}.hot-toggle{display:flex;align-items:center;gap:3px;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);cursor:pointer;white-space:nowrap}.hot-toggle input[type=checkbox]{margin:0;cursor:pointer}.edit-list>.add-cat{margin-top:8px}.backup-bar{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.backup-bar input[type=file]{display:none}.loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--muted);font-family:var(--mono)}.toast{position:fixed;bottom:20px;right:20px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 18px;font-size:13px;z-index:50}.toast.error{border-color:#e5534b80;color:var(--red)}.toast.success{border-color:#3fb96a80;color:var(--green)}
