
:root{font-family:Inter,system-ui,sans-serif;color-scheme:dark;--bg:#08111f;--panel:#101c2f;--panel2:#14243b;--line:#263955;--txt:#eaf0f8;--muted:#91a4bd;--blue:#2f78b7;--green:#4fd39a;--red:#ff7b85;--yellow:#f2c65c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt)}header{padding:20px 28px;background:linear-gradient(135deg,#10223b,#173f68);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #294764}.wrap{max-width:1320px;margin:auto;padding:22px}.tabs{display:flex;gap:7px;flex-wrap:wrap;padding:7px;background:#0d1829;border:1px solid var(--line);border-radius:14px;margin-bottom:18px}.tabs button,.btn{border:0;border-radius:9px;padding:10px 14px;color:#b8c6d9;background:transparent;cursor:pointer;font:inherit}.tabs button:hover{background:#1a2b44;color:#fff}.tabs button.on,.tabs button.on:hover,.btn{background:var(--blue);color:#fff}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.card{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:0 10px 25px #0003}.metric b{font-size:23px;display:block;margin-top:5px}.muted{color:var(--muted);font-size:13px}.green{color:var(--green)}.red{color:var(--red)}.section{display:none}.section.on{display:block}form{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}label{font-size:13px;color:#c6d2e1}input,select,textarea{width:100%;margin-top:5px;padding:10px;background:#0b1626;border:1px solid #334b6c;border-radius:8px;color:var(--txt);font:inherit}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid #233650;text-align:left}th{color:var(--muted);font-size:12px;background:#0b1626}.pill{font-size:12px;padding:4px 8px;border-radius:12px;background:#1b2c45}.ok{background:#173b2e;color:#77d9a9}.bad{background:#472128;color:#ff9ca3}.warn{background:#493c1c;color:#f7d77b}.bar{height:8px;background:#22344d;border-radius:8px;overflow:hidden}.bar i{height:100%;display:block;background:#4c8dcc}.actions{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.wide{grid-column:1/-1}.scroll{overflow:auto}.goal{margin:12px 0}.goalhead{display:flex;justify-content:space-between;gap:10px}.danger{background:#7d2831}.small{padding:6px 9px;font-size:12px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.grid{grid-template-columns:1fr 1fr}form{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}}@media(max-width:560px){.grid,form{grid-template-columns:1fr}.wrap{padding:12px}header{padding:15px}.tabs button{flex:1}}

[hidden]{display:none!important}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login .card{max-width:440px;width:100%;padding:36px}.login h1{font-size:30px}#status{position:fixed;bottom:16px;left:16px;right:16px;z-index:20;background:#472128;padding:14px;border-radius:10px}button:disabled{opacity:.5;cursor:not-allowed}button[aria-busy="true"]{cursor:wait}

.economia-dialog .dialog-form{display:grid;grid-template-columns:1fr;gap:14px;text-align:left}.economia-dialog .dialog-form label{display:block}.economia-dialog .swal2-validation-message{background:#472128;color:#ff9ca3}.economia-dialog .swal2-title{font-size:24px}.economia-dialog .swal2-html-container{margin-top:20px}

.goal{padding:18px 0;margin:0;border-bottom:1px solid var(--line)}.goal:last-child{border-bottom:0}.goalhead{align-items:flex-start;flex-wrap:wrap;gap:8px 16px;line-height:1.5}.goal .bar{margin:12px 0}.goal-meta{display:grid;gap:8px;line-height:1.5}.goal-meta strong{font-weight:600;color:var(--txt)}.goal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.goal-actions .small{padding:8px 12px}.allocation-notice{padding:12px;border:1px solid var(--line);border-radius:9px;line-height:1.6}#toasts{position:fixed;top:20px;right:20px;z-index:2000;display:grid;gap:10px;max-width:min(380px,calc(100vw - 32px));pointer-events:none}.toast{padding:15px 18px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--txt);box-shadow:0 8px 28px #0005;line-height:1.5;overflow-wrap:anywhere}.toast-success{border-left:4px solid var(--green)}.toast-error{border-left:4px solid var(--red)}
