:root{--bg: #f4efe6;--bg-2: #ebe3d4;--paper: #fffaf3;--ink: #1f2a24;--muted: #5d6b63;--line: #e4d8c4;--green: #1f6b4a;--green-2: #2d8a62;--green-soft: #e5f3ea;--gold: #c0893a;--gold-soft: #f7ead3;--red: #b42318;--red-soft: #fde8e6;--amber: #b54708;--amber-soft: #fef4e6;--navy: #243447;--shadow: 0 18px 50px rgba(36, 52, 71, .08);--radius: 18px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Outfit,system-ui,sans-serif;color:var(--ink);background:radial-gradient(1200px 500px at 10% -10%,#f7ead3 0%,transparent 55%),radial-gradient(900px 400px at 100% 0%,#dceee4 0%,transparent 50%),var(--bg)}h1,h2,h3,.serif{font-family:Fraunces,Georgia,serif}button,input,select,textarea{font-family:inherit}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(920px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:var(--paper);border-radius:28px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}.login-side{padding:42px 36px;background:linear-gradient(160deg,#1f6b4a,#243447);color:#f8f4ec;display:flex;flex-direction:column;justify-content:space-between}.login-side h1{margin:8px 0 10px;font-size:34px;line-height:1.15}.login-side p{margin:0;opacity:.9;line-height:1.5}.brand-kicker{letter-spacing:.18em;text-transform:uppercase;font-size:12px;opacity:.8}.login-form{padding:42px 36px}.login-form h2{margin:0 0 6px;font-size:28px}.sub{color:var(--muted);margin:0 0 22px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;font-weight:600;color:var(--navy)}.field input,.field select,.field textarea{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;font-size:15px;color:var(--ink);outline:none}.field textarea{min-height:80px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #1f6b4a1f}.btn{border:0;border-radius:12px;padding:12px 16px;font-weight:600;cursor:pointer;background:var(--green);color:#fff}.btn:hover{background:var(--green-2)}.btn.secondary{background:var(--gold-soft);color:#7a4f12}.btn.ghost{background:transparent;color:var(--navy);border:1px solid var(--line)}.btn.danger{background:var(--red)}.btn.small{padding:8px 12px;font-size:13px}.btn.full{width:100%}.linkish{background:none;border:0;color:var(--green);cursor:pointer;padding:0;font-weight:600}.alert{background:var(--red-soft);color:var(--red);border-radius:12px;padding:10px 12px;margin-bottom:14px;font-size:14px}.alert.ok{background:var(--green-soft);color:var(--green)}.hint{font-size:13px;color:var(--muted);margin-top:16px;line-height:1.45}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 22px;background:#fffaf3eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;flex-direction:column}.brand-btn{background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit}.brand small{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700;font-size:11px}.brand strong{font-family:Fraunces,serif;font-size:22px}.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.user-chip{background:var(--green-soft);color:var(--green);border-radius:999px;padding:8px 12px;font-weight:600;font-size:13px;border:0;cursor:pointer}.tabs{display:flex;gap:8px;padding:14px 22px 0}.tab{border:1px solid transparent;background:transparent;padding:10px 16px;border-radius:12px 12px 0 0;cursor:pointer;color:var(--muted);font-weight:600;display:inline-flex;align-items:center;gap:8px}.tab svg{width:18px;height:18px}.tab.active{background:var(--paper);color:var(--green);border-color:var(--line);border-bottom-color:var(--paper)}.page{margin:0 22px 22px;background:var(--paper);border:1px solid var(--line);border-radius:0 18px 18px;padding:22px;box-shadow:var(--shadow);flex:1}.bottom-nav{display:none}.btn.tap{min-height:48px;padding:14px 18px;font-size:16px}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:18px}.page-head h2{margin:0 0 4px}.head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.period{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);padding:8px;border-radius:14px}.period select,.period input{border:0;background:transparent;font-weight:600;font-size:14px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.kpi{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}.kpi span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.kpi b{font-size:26px;font-family:Fraunces,serif;letter-spacing:-.02em}.kpi.green{background:linear-gradient(180deg,#f3faf6,#fff)}.kpi.red{background:linear-gradient(180deg,#fff6f5,#fff)}.kpi.gold{background:linear-gradient(180deg,#fff8ee,#fff)}.kpi.navy{background:linear-gradient(180deg,#f4f7fb,#fff)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}.card h3{margin:0 0 12px;font-size:18px}.filters{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.badge.pago{background:var(--green-soft);color:var(--green)}.badge.pendente{background:var(--amber-soft);color:var(--amber)}.badge.vencida{background:var(--red-soft);color:var(--red)}.muted{color:var(--muted);font-size:13px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f2a2473;display:grid;place-items:center;padding:16px;z-index:40}.modal{width:min(640px,100%);background:var(--paper);border-radius:20px;padding:22px;max-height:92vh;overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .wide{grid-column:1 / -1}.toast{position:fixed;right:18px;bottom:88px;background:var(--navy);color:#fff;padding:12px 14px;border-radius:12px;z-index:50;box-shadow:var(--shadow);max-width:320px}.bars{display:flex;align-items:flex-end;gap:28px;height:220px;padding:12px 8px 0}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end}.bar{width:56px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#2d8a62,#1f6b4a);min-height:6px}.bar.alt{background:linear-gradient(180deg,#d39a45,#c0893a)}.bar-label{font-size:12px;color:var(--muted);text-align:center}.empty{padding:28px;text-align:center;color:var(--muted)}.sync-dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block;margin-right:6px}.live.ok{color:var(--green)}.live.warn{color:var(--amber)}.totals-row{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0 16px}.pill{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:13px}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.live{font-size:12px;color:var(--muted)}@media (max-width: 980px){.login-card{grid-template-columns:1fr}.login-side{min-height:180px}.kpis,.filters,.grid-2,.form-grid,.account-grid{grid-template-columns:1fr 1fr}}@media (max-width: 820px){.desktop-nav,.hide-mobile{display:none}.page{margin:0;border:0;border-radius:0;box-shadow:none;padding:16px 16px 96px;background:transparent}.card,.kpi{box-shadow:0 8px 24px #2434470d}.kpis,.filters,.grid-2,.form-grid,.account-grid{grid-template-columns:1fr}.topbar{padding:12px 14px;gap:10px}.brand strong{font-size:18px}.top-actions{width:100%}.login-form,.login-side{padding:24px 20px}.bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;background:#fffaf3;border-top:1px solid var(--line);z-index:30;padding:6px 4px calc(8px + env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:700;padding:8px 4px;min-width:0}.bottom-nav button.active{color:var(--green)}.btn,.btn.tap{width:100%}.row-actions .btn{width:auto}table{font-size:13px}th:nth-child(6),td:nth-child(6){display:none}}
