@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-navy:#1b3d6f;--color-navy-dark:#132d54;--color-navy-light:#2a5298;--color-navy-tint:#eef3fa;--color-navy-tint-2:#e0e9f5;--color-bg:#f4f6f9;--color-surface:#fff;--color-surface-2:#f8f9fb;--color-border:#e2e8f0;--color-border-strong:#c8d5e8;--color-paid:#1a7f45;--color-paid-bg:#eaf7ef;--color-paid-border:#b6e0c9;--color-pending:#c0392b;--color-pending-bg:#fdeeec;--color-pending-border:#f5c0bb;--color-partial:#b7770d;--color-partial-bg:#fef8ec;--color-partial-border:#f5dfa0;--text-primary:#0f1923;--text-secondary:#4a5568;--text-muted:#9aa5b4;--font-sans:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace;--radius-sm:6px;--radius:10px;--radius-lg:14px}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}.auth-shell{align-items:stretch;min-height:100vh;display:flex}.auth-left{background:var(--color-navy);flex-direction:column;flex-shrink:0;justify-content:space-between;width:420px;padding:3rem 2.5rem;display:flex}.auth-left-logo{align-items:center;gap:12px;display:flex}.auth-left-triangle{width:44px;height:44px}.auth-left-brand{color:#fff;letter-spacing:.01em;font-size:17px;font-weight:700;line-height:1.1}.auth-left-brand span{letter-spacing:.12em;text-transform:uppercase;color:#ffffff8c;margin-top:2px;font-size:11px;font-weight:400;display:block}.auth-left-tagline{color:#fff6;font-size:12px;font-style:italic}.auth-right{background:var(--color-surface);flex:1;justify-content:flex-start;align-items:center;padding:3rem 4rem;display:flex}.auth-card{width:100%;max-width:400px}.auth-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--color-navy);margin-bottom:.5rem;font-size:11px;font-weight:600}.auth-heading{color:var(--text-primary);margin-bottom:.35rem;font-size:32px;font-weight:700;line-height:1.2}.auth-sub{color:var(--text-secondary);margin-bottom:2rem;font-size:16px;line-height:1.55}.field{margin-bottom:1.1rem}.field label{color:var(--text-secondary);margin-bottom:.4rem;font-size:13px;font-weight:500;display:block}.field input{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-size:15px;font-family:var(--font-sans);color:var(--text-primary);outline:none;padding:.6rem .85rem;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--color-navy);box-shadow:0 0 0 3px #1b3d6f1a}.field input::placeholder{color:var(--text-muted)}.otp-input{letter-spacing:.4em;text-align:center;font-family:var(--font-mono)!important;font-size:24px!important;font-weight:500!important}.btn-primary{background:var(--color-navy);color:#fff;border-radius:var(--radius-sm);width:100%;font-size:15px;font-weight:600;font-family:var(--font-sans);cursor:pointer;border:none;margin-top:.25rem;padding:.7rem 1rem;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--color-navy-dark)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{color:var(--color-navy);font-size:13px;font-family:var(--font-sans);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.btn-ghost:hover{color:var(--color-navy-dark)}.error-msg{color:var(--color-pending);background:var(--color-pending-bg);border:1px solid var(--color-pending-border);border-radius:var(--radius-sm);margin-top:.75rem;padding:.5rem .75rem;font-size:13px}.success-msg{color:var(--color-paid);background:var(--color-paid-bg);border:1px solid var(--color-paid-border);border-radius:var(--radius-sm);margin-top:.75rem;padding:.5rem .75rem;font-size:13px}.dashboard-shell{background:var(--color-bg);flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--color-navy);z-index:10;justify-content:space-between;align-items:center;height:60px;padding:0 1.75rem;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:14px;display:flex}.topbar-triangle{flex-shrink:0;width:32px;height:32px}.topbar-brand{color:#fff;letter-spacing:.01em;font-size:15px;font-weight:700;line-height:1.15}.topbar-brand span{letter-spacing:.1em;text-transform:uppercase;color:#ffffff80;font-size:10px;font-weight:400;display:block}.topbar-divider{background:#ffffff26;width:1px;height:28px}.topbar-empresa{color:#fff;letter-spacing:.01em;font-size:13px;font-weight:600;line-height:1.2}.topbar-identity{flex-direction:column;gap:1px;display:flex}.topbar-right{align-items:center;gap:1rem;display:flex}.topbar-section{color:#ffffffa6;letter-spacing:.04em;font-size:12px}.btn-logout{border-radius:var(--radius-sm);color:#ffffffd9;font-size:13px;font-family:var(--font-sans);cursor:pointer;background:#ffffff1a;border:1px solid #fff3;padding:.35rem .85rem;font-weight:500;transition:background .15s}.btn-logout:hover{background:#ffffff2e}.dashboard-main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:2rem 1.75rem}.dashboard-header{border-bottom:1.5px solid var(--color-border);margin-bottom:1.5rem;padding-bottom:1.25rem}.dashboard-header h1{color:var(--text-primary);margin-bottom:.2rem;font-size:22px;font-weight:700}.dashboard-header p{color:var(--text-secondary);font-size:14px}.summary-strip{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.summary-card{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem}.summary-card-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.4rem;font-size:11px;font-weight:600}.summary-card-value{color:var(--text-primary);font-size:22px;font-weight:700;font-family:var(--font-mono)}.summary-card-value.navy{color:var(--color-navy)}.summary-card-value.green{color:var(--color-paid)}.summary-card-value.red{color:var(--color-pending)}.filter-row{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.filter-row label{color:var(--text-secondary);white-space:nowrap;font-size:13px;font-weight:500}.filter-row select{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:var(--font-sans);cursor:pointer;outline:none;padding:.35rem .65rem}.filter-row select:focus{border-color:var(--color-navy)}.period-card{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:.75rem;transition:border-color .15s;overflow:hidden}.period-card:hover{border-color:var(--color-border-strong)}.period-card-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.period-card-header-left{align-items:center;gap:14px;display:flex}.period-indicator{border-radius:2px;flex-shrink:0;width:4px;height:38px}.period-indicator.paid{background:var(--color-paid)}.period-indicator.pending{background:var(--color-pending)}.period-indicator.partial{background:var(--color-partial)}.period-label{color:var(--text-primary);margin-bottom:2px;font-size:16px;font-weight:600}.period-meta{color:var(--text-muted);font-size:12px}.period-card-header-right{align-items:center;gap:.75rem;display:flex}.badge{border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.badge.paid{background:var(--color-paid-bg);color:var(--color-paid);border:1px solid var(--color-paid-border)}.badge.pending{background:var(--color-pending-bg);color:var(--color-pending);border:1px solid var(--color-pending-border)}.badge.partial{background:var(--color-partial-bg);color:var(--color-partial);border:1px solid var(--color-partial-border)}.chevron{color:var(--text-muted);font-size:11px;transition:transform .2s;display:inline-block}.chevron.open{transform:rotate(180deg)}.period-card-body{border-top:1.5px solid var(--color-border);background:var(--color-surface-2);grid-template-columns:1fr 1fr;gap:2rem;padding:1.25rem;display:grid}@media (width<=600px){.auth-left{display:none}.summary-strip,.period-card-body{grid-template-columns:1fr}}.section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--color-border);margin-bottom:.75rem;padding-bottom:.5rem;font-size:10px;font-weight:700}.invoice-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.55rem 0;display:flex}.invoice-row:last-child{border-bottom:none}.invoice-txn{font-family:var(--font-mono);color:var(--text-muted);margin-bottom:1px;font-size:11px}.invoice-date{color:var(--text-primary);font-size:13px;font-weight:500}.invoice-amount{text-align:right;flex-shrink:0}.invoice-subtotal{font-family:var(--font-mono);color:var(--text-primary);font-size:14px;font-weight:600}.invoice-balance{color:var(--text-muted);margin-top:1px;font-size:11px}.invoice-balance.owed{color:var(--color-pending);font-weight:500}.ticket-row{border-bottom:1px solid var(--color-border);padding:.55rem 0}.ticket-row:last-child{border-bottom:none}.ticket-building{color:var(--text-primary);margin-bottom:2px;font-size:13px;font-weight:600}.ticket-desc{color:var(--text-secondary);margin-bottom:5px;font-size:12px;line-height:1.45}.ticket-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ticket-date{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.ticket-type-badge{background:var(--color-navy-tint);color:var(--color-navy);border:1px solid var(--color-navy-tint-2);border-radius:4px;padding:2px 7px;font-size:10px;font-weight:600}.ticket-complete{color:var(--color-paid);font-size:10px;font-weight:600}.empty-state{color:var(--text-muted);padding:.5rem 0;font-size:13px;font-style:italic}.loading-msg{text-align:center;color:var(--text-secondary);padding:4rem 0;font-size:15px}.error-banner{background:var(--color-pending-bg);border:1.5px solid var(--color-pending-border);border-radius:var(--radius-sm);color:var(--color-pending);margin-bottom:1.25rem;padding:.75rem 1rem;font-size:13px}
