@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');
:root{--purple:#3b176d;--violet:#7042a6;--lilac:#e9ddf7;--cream:#f7f0e5;--paper:#fffdf9;--ink:#261d2e;--muted:#786f7d;--line:#e9dfd3;--shadow:0 24px 70px rgba(50,24,71,.13)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}h1,h2{font-family:'Playfair Display',serif;margin:.25rem 0}h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:1.65rem}p{line-height:1.55}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.7rem;font-weight:700}.purple{color:var(--violet)}button{border:0;font:inherit;cursor:pointer}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);padding:24px;gap:24px}.photo-panel{position:relative;border-radius:42px;overflow:hidden;min-height:650px;background:var(--purple)}.photo-panel>img{width:100%;height:100%;object-fit:cover;position:absolute}.photo-panel:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(33,13,54,.82))}.photo-copy{position:absolute;z-index:1;left:7%;bottom:8%;color:white;max-width:560px}.photo-copy h1{font-size:clamp(3.5rem,7vw,7rem);line-height:.9}.photo-copy p{font-size:1.15rem}.login-card,.password-card{background:var(--paper);border-radius:42px;padding:clamp(30px,5vw,70px);display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow)}.mini-brand,.brand{display:flex;align-items:center;gap:12px;margin-bottom:auto}.mini-brand img,.brand img{width:52px;height:52px;border-radius:18px;object-fit:cover}.mini-brand div,.brand div{display:flex;flex-direction:column}.mini-brand span,.brand span{font-size:.75rem;color:var(--muted)}form{display:grid;gap:18px;margin:28px 0}label{font-weight:600;font-size:.85rem;display:grid;gap:8px}input{width:100%;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:#fff;font:inherit;outline:none}input:focus{border-color:var(--violet);box-shadow:0 0 0 4px var(--lilac)}form>button{padding:16px 20px;border-radius:18px;background:var(--purple);color:white;font-weight:700;display:flex;justify-content:space-between}.alert,.success{padding:14px 16px;border-radius:16px}.alert{background:#fff0f0;color:#9b2525}.success{background:#e9f8ef;color:#236842;margin-bottom:20px}.password-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,#eadcf8,transparent 35%),var(--cream)}.password-card{max-width:600px;min-height:620px}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.app-shell>aside{background:var(--purple);color:white;padding:26px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.app-shell aside .brand{margin-bottom:42px}.app-shell aside .brand span{color:#d8c6ed}.app-shell aside nav{display:grid;gap:7px}.app-shell aside nav a{color:#d8c6ed;text-decoration:none;padding:13px 16px;border-radius:17px;display:flex;gap:12px}.app-shell aside nav a.active,.app-shell aside nav a:hover{background:rgba(255,255,255,.13);color:white}.family-card{margin-top:auto;position:relative;border-radius:25px;overflow:hidden;height:180px}.family-card img{width:100%;height:100%;object-fit:cover}.family-card span{position:absolute;left:12px;bottom:12px;background:rgba(59,23,109,.78);padding:7px 10px;border-radius:12px;font-size:.75rem}.dashboard{padding:36px clamp(24px,5vw,70px) 80px;max-width:1500px;width:100%;margin:auto}.dashboard header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.user-chip{background:white;border-radius:999px;padding:9px 15px;color:var(--purple);box-shadow:0 5px 20px #3b176d12}.hero-balance{background:linear-gradient(135deg,var(--purple),#7b4cb1);color:white;border-radius:34px;padding:30px 35px;display:flex;align-items:center;justify-content:space-between;overflow:hidden}.hero-balance div{display:grid;gap:8px}.hero-balance strong{font-size:clamp(2.4rem,5vw,4rem)}.hero-balance small{color:#e7d8f5}.hero-balance img{width:145px;height:145px;border-radius:50%;object-fit:cover;border:7px solid rgba(255,255,255,.16);transform:rotate(3deg)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0}.metrics article,.panel{background:var(--paper);border-radius:26px;padding:23px;border:1px solid #eee4d9}.metrics article{display:grid;gap:8px}.metrics strong{font-size:1.65rem}.metrics em{font-style:normal;color:var(--muted);font-size:.8rem}.metrics .green{color:#178052}.two-columns{display:grid;grid-template-columns:1.4fr .8fr;gap:18px}.panel-title{display:flex;align-items:center;justify-content:space-between}.soft{background:var(--lilac);color:var(--purple);padding:10px 15px;border-radius:14px}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty div{font-size:2.5rem;color:var(--violet)}.empty strong{display:block;color:var(--ink)}.start-card{background:#e8dcc9}.step{display:flex;gap:12px;margin:18px 0;align-items:center}.step b{display:grid;place-items:center;background:white;color:var(--purple);width:34px;height:34px;border-radius:12px}.step div{display:flex;flex-direction:column}.step span{font-size:.78rem;color:var(--muted)}.mobile-nav{display:none}
@media(max-width:760px){.login-shell{display:block;padding:0}.photo-panel{min-height:38vh;border-radius:0 0 38px 38px}.photo-copy{bottom:10%;left:8%}.photo-copy h1{font-size:3.2rem}.login-card{border-radius:34px 34px 0 0;margin-top:-28px;position:relative;min-height:64vh;padding:32px 25px}.mini-brand{margin-bottom:40px}.app-shell{display:block}.app-shell>aside{display:none}.dashboard{padding:24px 17px 100px}.dashboard header h1{font-size:2.2rem}.user-chip span{display:none}.hero-balance{padding:24px;border-radius:28px}.hero-balance img{width:92px;height:92px}.metrics{grid-template-columns:1fr 1fr}.metrics article:last-child{grid-column:1/-1}.two-columns{grid-template-columns:1fr}.mobile-nav{position:fixed;display:flex;left:12px;right:12px;bottom:10px;background:rgba(59,23,109,.96);backdrop-filter:blur(15px);border-radius:22px;padding:9px;justify-content:space-around;z-index:5}.mobile-nav a{color:#d8c6ed;font-size:1.15rem;display:grid;gap:2px;text-align:center}.mobile-nav span{font-size:.62rem}.mobile-nav .active{color:white}.password-card{min-height:80vh;padding:30px 24px}}
