@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");:root{--bg:#f1f5f9;--surface:#ffffff;--surface-2:#f8fafc;--text:#0f172a;--text-2:#334155;--muted:#64748b;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#dbeafe;--primary-text:#1e40af;--success:#16a34a;--success-light:#dcfce7;--success-text:#166534;--warning:#d97706;--warning-light:#fef3c7;--warning-text:#92400e;--danger:#dc2626;--danger-light:#fee2e2;--danger-text:#991b1b;--border:#e2e8f0;--border-2:#cbd5e1;--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow:0 1px 3px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.06);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.07),0 2px 4px -2px rgba(0,0,0,0.05);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.08),0 4px 6px -4px rgba(0,0,0,0.05);--radius-sm:6px;--radius:10px;--radius-lg:14px;--accent:#16a34a}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;font-size:15px;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}.card{box-shadow:var(--shadow)}.card,.card-flat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:.6rem 1.1rem;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .15s;white-space:nowrap}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-sm{padding:.3rem .7rem;font-size:.8rem;border-radius:var(--radius-sm)}.input{width:100%;padding:.6rem .75rem;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-size:.95rem;transition:border-color .15s,box-shadow .15s;outline:none}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.input::placeholder{color:var(--muted)}.label{display:block;font-size:.83rem;font-weight:500;color:var(--text-2);margin-bottom:.3rem}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge-pending{background:var(--warning-light);color:var(--warning-text)}.badge-paid{background:var(--success-light);color:var(--success-text)}.badge-overdue{background:var(--danger-light);color:var(--danger-text)}.badge-onetime{background:var(--primary-light);color:var(--primary-text)}.badge-grey{background:#f1f5f9;color:var(--muted)}.container{max-width:540px;margin:0 auto;padding:1rem}.container.wide{max-width:980px;margin:0 auto;padding:0 1.25rem}.section-title{font-size:1.15rem;font-weight:700;color:var(--text);margin-bottom:.1rem}.section-sub{font-size:.85rem;color:var(--muted)}hr.divider{border:none;border-top:1px solid var(--border);margin:1rem 0}.portal-root{background:#0f172a;color:#f0f4f8;min-height:100vh}.portal-root .card{background:#1e293b;border-color:#334155}.portal-root .input{background:#0f172a;border-color:#334155;color:#f0f4f8}.portal-root .input:focus{border-color:var(--success);box-shadow:0 0 0 3px rgba(34,197,94,.15)}.portal-root .btn{background:var(--success);color:#052e16}.portal-root .btn:hover:not(:disabled){background:#15803d}.portal-root .label{color:#94a3b8}@media (max-width:640px){.container.wide{padding:0 1rem}}.desktop-nav{display:flex}.hide-mobile{display:block}.mobile-spacer,.show-mobile{display:none}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -2px 8px rgba(0,0,0,.06);z-index:40}@media (max-width:640px){.desktop-nav,.hide-mobile{display:none!important}.show-mobile{display:flex!important}.mobile-spacer{display:block!important}.mobile-bottom-nav{display:flex}.stats-grid-3{grid-template-columns:1fr!important}.card,.card-flat{padding:.9rem!important}.input{font-size:16px!important}}@keyframes skeleton-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--border) 25%,var(--surface-2) 50%,var(--border) 75%);background-size:800px 100%;animation:skeleton-shimmer 1.4s linear infinite;border-radius:var(--radius-sm)}