:root{--bg:#f3f6f4;--surface:#fff;--border:#e4e9e6;--text:#0f172a;--muted:#64748b;--primary:#059669;--primary-dark:#047857;--primary-soft:#d9f3e6;--success:#059669;--success-soft:#d9f3e6;--danger:#dc2626;--danger-soft:#fee2e2;--warning:#d97706;--warning-soft:#fef3c7;--neutral-soft:#eef2f6;--radius:18px;--radius-sm:12px;--shadow:0 1px 2px #1018280d, 0 12px 32px -16px #10182824;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;margin:0}h1,h2,h3{letter-spacing:-.01em;margin:0}p{margin:0}.muted{color:var(--muted);font-size:.875rem}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.page-center{background:radial-gradient(1200px 500px at 50% -10%, #d7f2e4, transparent 60%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.shell{min-height:100vh;padding-bottom:calc(5.5rem + env(safe-area-inset-bottom));flex-direction:column;display:flex}.shell-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border-bottom:1px solid #e4e9e6b3;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.6rem;display:flex}.brand-mark{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.05rem;font-weight:800;display:inline-flex;box-shadow:0 4px 12px -4px #05966980}.brand strong{letter-spacing:-.01em;font-size:.98rem}.signout{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:.5rem .95rem;font-size:.8rem;font-weight:600}.shell-main{flex:1;width:100%;max-width:640px;margin:0 auto;padding:1rem 1rem 2rem}.mobile-tabs{bottom:max(.75rem, env(safe-area-inset-bottom));z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;border:1px solid #e4e9e6e6;border-radius:22px;gap:.2rem;width:min(92vw,560px);margin:0 auto;padding:.35rem;display:flex;position:fixed;left:0;right:0;box-shadow:0 12px 40px -12px #10182840}.mobile-tab{color:var(--muted);background:0 0;border:none;border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:.15rem;padding:.45rem .15rem;font-size:.68rem;font-weight:700;text-decoration:none;transition:background .15s,color .15s;display:flex}.mobile-tab .tab-icon{font-size:1.25rem;line-height:1}.mobile-tab.active{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;box-shadow:0 6px 16px -6px #0596698c}.page{flex-direction:column;gap:1rem;display:flex}.page-header h2{font-size:1.5rem;font-weight:800}.page-header p{margin-top:.15rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem}.card h3{margin-bottom:.7rem;font-size:1rem;font-weight:800}.card-sub{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.hero{color:#fff;background:linear-gradient(135deg,#0ea56f 0%,#047857 55%,#065f46 100%);border-radius:24px;padding:1.4rem;position:relative;overflow:hidden;box-shadow:0 16px 40px -16px #0478578c}.hero:after{content:"";background:radial-gradient(circle,#ffffff2e,#0000 65%);border-radius:50%;width:190px;height:190px;position:absolute;top:-60px;right:-60px}.hero .muted{color:#ffffffbf}.hero h1{margin:.1rem 0 .9rem;font-size:1.45rem;font-weight:800}.hero .hero-line{z-index:1;justify-content:space-between;align-items:baseline;gap:.75rem;margin-top:.3rem;display:flex;position:relative}.hero .hero-line strong{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800}.stat-grid{grid-template-columns:repeat(2,1fr);gap:.7rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:.15rem;padding:.85rem .95rem;display:flex}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:800}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.4rem;font-weight:800}.list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem;transition:border-color .15s,transform .1s;display:flex}.row:active{transform:scale(.99)}.row-main{flex-direction:column;gap:.12rem;min-width:0;display:flex}.row-title{font-size:.95rem;font-weight:750}.row-sub{color:var(--muted);font-size:.78rem}.row-side{text-align:right;flex-shrink:0}.row-amount{font-variant-numeric:tabular-nums;font-weight:800}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .7rem;font-size:.72rem;font-weight:800;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-paid,.badge-ok{background:var(--success-soft);color:#047857}.badge-due,.badge-short{background:var(--danger-soft);color:#b91c1c}.badge-neutral{background:var(--neutral-soft);color:#475569}.button{cursor:pointer;border:1px solid #0000;border-radius:14px;width:100%;min-height:48px;padding:.7rem 1rem;font-size:.95rem;font-weight:750;transition:opacity .15s,transform .1s}.button:disabled{opacity:.5;cursor:not-allowed}.button:not(:disabled):active{transform:scale(.98)}.button-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;box-shadow:0 8px 20px -8px #05966999}.button-ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.button-small{border-radius:999px;width:auto;min-height:0;padding:.5rem .95rem;font-size:.82rem;font-weight:750}.link-button{color:var(--primary);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;font-weight:750}.form{flex-direction:column;gap:.85rem;display:flex}.field{color:#334155;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:700;display:flex}.field input,.field select{border:1.5px solid var(--border);min-height:48px;color:var(--text);background:var(--surface);border-radius:14px;padding:.6rem .85rem;font-size:1rem;font-weight:500;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #05966926}.form-error{color:var(--danger);font-size:.85rem;font-weight:600}.progress-track{background:#e8eeea;border-radius:999px;height:.6rem;margin:.7rem 0 0;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary), #10b981);border-radius:999px;height:100%;transition:width .4s}.week-slot-grid{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.week-slot{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fbfdfc;padding:.75rem}.week-slot-head{justify-content:space-between;align-items:baseline;margin-bottom:.55rem;display:flex}.week-slot-head strong{font-size:.85rem;font-weight:800}.week-slot-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.week-slot-btn{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;width:100%;min-height:0;padding:.55rem .7rem;font-size:.82rem;display:flex}.week-slot-empty{color:var(--muted);border-style:dashed}.week-slot-empty:active{border-color:var(--primary);border-style:solid}.week-slot-filled{background:var(--success-soft);border-color:#a7e3c2}.week-slot-name{white-space:nowrap;font-weight:750}.week-slot-amt{color:#047857;font-variant-numeric:tabular-nums;font-weight:800}.week-slot-plus{color:var(--primary);font-size:.75rem;font-weight:700}.auth-card{width:100%;max-width:380px}.brand-centered{text-align:center;flex-direction:column;align-items:center;gap:.55rem;margin-bottom:1.4rem;display:flex}.brand-centered h1{font-size:1.6rem;font-weight:800}.auth-switch{text-align:center;color:var(--muted);margin:1rem 0 0;font-size:.875rem}
