:root{--bg:#0b0f14;--panel:#131a22;--card:#fff;--red:#df2027;--muted:#708090;--line:#e7eaf0;--green:#17834b}*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,Segoe UI,sans-serif;background:#f2f4f7;color:#18202a}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 0,#3a1114,var(--bg) 45%);padding:20px}.login form{width:min(420px,100%);background:#fff;padding:32px;border-radius:18px;box-shadow:0 20px 60px #0008}.login .logo{font-weight:900;font-size:42px;color:var(--red)}.login h1{margin:0}.login p{color:var(--muted)}label{display:grid;gap:6px;margin:14px 0;font-weight:650}input,select,textarea{width:100%;border:1px solid #ccd2da;border-radius:9px;padding:11px;background:#fff}.login button,.primary{background:var(--red);color:#fff;border:0;border-radius:9px;padding:12px 18px;font-weight:800}.login a{display:block;margin-top:18px;color:#333}.app{display:grid;grid-template:72px 1fr/240px 1fr;min-height:100vh}aside{grid-row:1/3;background:var(--bg);color:#fff;padding:20px 13px;display:flex;flex-direction:column}.aside-brand{padding:2px 12px 22px}.aside-brand b{display:block;color:var(--red);font-size:30px}.aside-brand span{font-size:13px}nav{display:grid;gap:5px}nav button,#logout{border:0;background:transparent;color:#bbc4ce;text-align:left;padding:11px 13px;border-radius:8px;cursor:pointer}nav button:hover,nav button.active{background:#252e39;color:#fff}#logout{margin-top:auto}header{grid-column:2;display:flex;align-items:center;gap:14px;padding:12px 22px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}header h1{font-size:20px;margin:0}header small{color:var(--muted)}#menuToggle{display:none}.head-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.head-actions button,.head-actions a{border:1px solid var(--line);background:#fff;padding:9px 11px;border-radius:9px;text-decoration:none;color:#222}.head-actions span{background:var(--red);color:#fff;border-radius:20px;padding:1px 6px}main{padding:22px;overflow:hidden}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;box-shadow:0 4px 14px #17202d0a}.card small{color:var(--muted)}.card strong{display:block;font-size:24px;margin-top:8px}.card.red{border-top:4px solid var(--red)}.card.green{border-top:4px solid var(--green)}.grid2{display:grid;grid-template-columns:1.45fr 1fr;gap:14px;margin-top:14px}.panel h2{font-size:16px;margin:0 0 16px}.chart-wrap{height:300px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:13px}.toolbar input,.toolbar select{width:auto;min-width:180px}.table-wrap{overflow:auto}.data{width:100%;border-collapse:collapse;min-width:760px}.data th,.data td{padding:11px 9px;border-bottom:1px solid var(--line);text-align:left}.data th{font-size:12px;color:var(--muted);text-transform:uppercase}.status{display:inline-block;padding:4px 8px;border-radius:20px;background:#eef1f4;font-size:12px}.status.novo,.status.vencido{background:#ffe6e7;color:#a40008}.status.aprovado,.status.recebido,.status.pago{background:#dff5e8;color:#0c6837}.actions button{border:1px solid #ddd;background:#fff;border-radius:7px;padding:6px;margin:2px}.modal{position:fixed;inset:0;background:#0008;display:grid;place-items:center;padding:18px;z-index:20}.modal form{background:#fff;border-radius:14px;padding:22px;width:min(700px,100%);max-height:90vh;overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.wide{grid-column:1/-1}#toast{position:fixed;right:20px;bottom:20px;background:#111;color:#fff;padding:12px 16px;border-radius:9px;transform:translateY(100px);transition:.2s;z-index:30}#toast.show{transform:none}@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.app{grid-template-columns:1fr;grid-template-rows:68px 1fr}aside{position:fixed;z-index:15;inset:0 auto 0 0;width:250px;transform:translateX(-102%);transition:.2s}aside.open{transform:none}header{grid-column:1}#menuToggle{display:block;border:0;background:none;font-size:23px}main{padding:14px}}@media(max-width:520px){.cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.head-actions a{display:none}}
