:root{--bg:#f8fafc;--panel:#fff;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--primary:#2563eb;--primary2:#1d4ed8;--green:#16a34a;--red:#dc2626;--yellow:#d97706;--nav:#0f172a;--shadow:0 10px 30px rgba(15,23,42,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#0f172a,#1e3a8a)}.auth-card{width:min(460px,100%);background:#fff;border-radius:24px;padding:32px;box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:12px}.brand-center{justify-content:center;margin-bottom:24px}.brand h1{font-size:20px;margin:0}.brand p{margin:3px 0 0;color:var(--muted);font-size:13px}.logo{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#22c55e);color:#fff;font-weight:800}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f1f5f9;border-radius:12px;padding:4px;margin-bottom:18px}.auth-tab{border:0;background:transparent;padding:10px;border-radius:9px;cursor:pointer}.auth-tab.active{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.08);font-weight:700}.auth-form{display:grid;gap:14px}.auth-form label,.form-grid label{display:grid;gap:7px;font-size:13px;font-weight:600}.auth-form input,.form-grid input,.form-grid select,.form-grid textarea,.filters input,.filters select,.topbar select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff}.security-note{text-align:center;color:var(--muted);font-size:12px;margin-top:18px}.btn{border:0;border-radius:10px;padding:11px 14px;font-weight:700;cursor:pointer}.btn-primary{background:var(--primary);color:white}.btn-primary:hover{background:var(--primary2)}.btn-secondary{background:#e0e7ff;color:#1e3a8a}.btn-danger{background:#fee2e2;color:#991b1b}.btn-ghost{background:#f1f5f9;color:#334155}.btn-full{width:100%}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:var(--nav);color:#fff;padding:20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand p{color:#94a3b8}.nav-list{display:grid;gap:6px;margin-top:28px}.nav-item{border:0;background:transparent;color:#cbd5e1;text-align:left;padding:12px;border-radius:10px;cursor:pointer}.nav-item:hover,.nav-item.active{background:#1e293b;color:#fff}.sidebar-footer{margin-top:auto}.user-summary{font-size:13px;color:#cbd5e1;margin-bottom:12px}.content{padding:24px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.topbar h2{margin:0}.topbar p{margin:4px 0 0;color:var(--muted)}.topbar-actions{display:flex;gap:8px;align-items:center}.view{display:none}.active-view{display:block}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kpi-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.kpi-card span{color:var(--muted);font-size:13px}.kpi-card strong{display:block;font-size:26px;margin:8px 0}.kpi-card small{color:var(--muted)}.kpi-card.positive strong{color:var(--green)}.kpi-card.negative strong{color:var(--red)}.kpi-card.warning strong{color:var(--yellow)}.chart-grid,.table-grid,.report-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin-top:14px}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.panel-header h3,.panel h3{margin:0}.wrap{flex-wrap:wrap}.filters{display:flex;gap:8px;flex-wrap:wrap}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:13px}th{color:var(--muted)}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#f1f5f9}.badge.Pago,.badge.Recebido{background:#dcfce7;color:#166534}.badge.Pendente{background:#fef3c7;color:#92400e}.badge.Agendado{background:#dbeafe;color:#1d4ed8}.badge.Atrasado{background:#fee2e2;color:#991b1b}.badge.Cancelado{background:#e2e8f0;color:#475569}.money.income{color:var(--green);font-weight:700}.money.expense{color:var(--red);font-weight:700}.compact-list,.card-list{display:grid;gap:10px}.compact-item,.finance-card{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px}.compact-item small,.finance-card small{color:var(--muted)}.finance-card.overdue{border-color:#fecaca;background:#fff7f7}.status-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.status-tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}.status-tab.active{background:#0f172a;color:#fff}.account-grid,.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.account-card,.category-card{border:1px solid var(--line);border-radius:14px;padding:16px}.account-card strong{font-size:22px}.button-row{display:flex;gap:8px;flex-wrap:wrap}.profile-panel{max-width:650px}.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:grid;place-items:center;padding:20px;z-index:20}.modal-card{width:min(520px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:20px}.modal-card.large{width:min(850px,100%)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.icon-btn{border:0;background:#f1f5f9;border-radius:9px;padding:8px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.span-2{grid-column:span 2}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.toast{position:fixed;right:20px;top:20px;z-index:50;background:#0f172a;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow)}canvas{max-height:320px}.empty{color:var(--muted);text-align:center;padding:22px}.action-btn{border:0;background:#f1f5f9;border-radius:8px;padding:6px 8px;cursor:pointer;margin-right:4px}@media(max-width:1000px){.app-shell{grid-template-columns:88px 1fr}.sidebar{padding:14px}.sidebar .brand div:last-child,.nav-item{font-size:0}.nav-item::first-letter{font-size:22px}.nav-item{text-align:center}.sidebar-footer .user-summary{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.chart-grid,.table-grid{grid-template-columns:1fr}}@media(max-width:700px){.app-shell{display:block}.sidebar{position:fixed;bottom:0;top:auto;width:100%;height:auto;z-index:10;padding:8px}.sidebar .brand,.sidebar-footer{display:none}.nav-list{display:flex;overflow:auto;margin:0}.nav-item{min-width:70px;padding:10px;font-size:0}.nav-item::first-letter{font-size:20px}.content{padding:16px 16px 90px}.topbar{align-items:flex-start}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.kpi-grid{grid-template-columns:1fr 1fr}.kpi-card strong{font-size:20px}.chart-grid,.table-grid,.report-grid{grid-template-columns:1fr}.account-grid,.category-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}}@media(max-width:450px){.kpi-grid,.account-grid,.category-grid{grid-template-columns:1fr}.topbar{display:block}.topbar-actions{margin-top:12px;justify-content:flex-start}}

/* Backup e restauração */
.backup-warn{background:#fef3c7;color:#92400e;border:1px solid #fcd34d;padding:10px 12px;border-radius:8px;font-size:14px;margin:8px 0}
.backup-ok{background:#dcfce7;color:#166534;border:1px solid #86efac;padding:10px 12px;border-radius:8px;font-size:14px;margin:8px 0}
