:root{--ink:#172036;--purple:#5b5bd6;--muted:#68738b;--line:#e6e9f1}*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:var(--ink);font:16px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif}a{text-decoration:none;color:inherit}button,input,select{font:inherit}header{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - 1240px)/2));position:sticky;top:0;z-index:10}.brand{display:flex;gap:12px;align-items:center;font-weight:800}.brand>b,.brand-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:var(--purple);color:white;box-shadow:0 8px 22px #5b5bd640}.brand span{display:flex;flex-direction:column}.brand small{font-size:12px;font-weight:500;color:var(--muted)}header nav{display:flex;gap:22px}.login-link,header nav a{font-weight:700}.shell{max-width:1240px;margin:0 auto;padding:28px 24px;display:grid;grid-template-columns:220px 1fr;gap:30px}aside{background:var(--ink);color:white;border-radius:26px;padding:14px;height:max-content;box-shadow:0 15px 40px #17203620}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:800;color:#94a0b7}.purple{color:var(--purple)}aside .eyebrow{padding:0 10px}.kid{display:flex;align-items:center;gap:10px;padding:11px;border-radius:16px;margin:3px 0;font-weight:700}.kid i{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-style:normal}.kid span{margin-left:auto}.kid.selected{background:white;color:var(--ink)}.topline{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.topline h1{font-size:38px;line-height:1.1;margin:4px 0 8px;letter-spacing:-.04em}.topline p{margin:0;color:var(--muted)}label{display:grid;gap:7px;font-size:14px;font-weight:700}.month input,input,select{background:#fff;border:1px solid #dce1eb;border-radius:12px;padding:11px 13px;color:var(--ink);min-width:0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.metric{padding:22px;border-radius:24px;min-height:168px;box-shadow:0 10px 25px #25345b0d}.metric>span{font-size:24px}.metric p{margin:10px 0 3px;font-weight:700}.metric strong{display:block;font-size:32px;letter-spacing:-.04em}.metric small{color:var(--muted)}.violet{background:#ebeaff}.orange{background:#fff0e7}.mint{background:#dff6ee}.bar{height:7px;border-radius:8px;background:#ffffff90;margin-top:16px;overflow:hidden}.bar i{display:block;height:100%;background:#f47c48;border-radius:8px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:28px 0 12px}.section-title h2{margin:0}.section-title span,.badge{font-size:12px;background:#fff1dc;color:#a85a00;border-radius:99px;padding:5px 9px}.task-list,.admin-list{display:grid;gap:10px}.task,.admin-list article{background:#fff;border:1px solid var(--line);border-radius:19px;padding:16px;display:flex;align-items:center;gap:14px}.status{width:38px;height:38px;border:2px solid #d7dce7;border-radius:13px;display:grid;place-items:center;color:transparent}.status.complete{background:#29af7d;border-color:#29af7d;color:white}.task-title{font-weight:800}.badge{margin-left:8px}.task p,.admin-list p{margin:3px 0 0;color:var(--muted);font-size:14px}.value{margin-left:auto;text-align:right;color:#15996a;font-weight:800}.value small{display:block;color:var(--muted);font-weight:500}.admin-shell{max-width:1120px;margin:auto;padding:32px 24px}.actions{display:flex;gap:10px}.actions button,button.primary{border:0;border-radius:13px;padding:12px 17px;font-weight:800;cursor:pointer}.primary{background:var(--purple)!important;color:white}.filters{background:#fff;border-radius:20px;padding:16px;margin:18px 0}.filters form{display:flex;gap:15px}.compact .metric{min-height:115px}.admin-list{margin-top:20px}.admin-list article form{margin-left:auto}.admin-list article>strong{width:85px;text-align:right;color:#15996a}.success,.error{padding:12px 15px;border-radius:12px;margin:14px 0}.success{background:#dcf8eb;color:#08764f}.error{background:#fee8e8;color:#a62424}.modal{position:fixed;inset:0;background:#17203688;display:none;place-items:center;padding:20px;z-index:30}.modal.open{display:grid}.modal-card{position:relative;width:min(560px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:26px;padding:26px;display:grid;gap:16px;box-shadow:0 30px 80px #0003}.modal-card h2{margin:0}.close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:28px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.toggle{display:flex;align-items:center}.login-bg{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#dedaff,#f5f7fb 52%)}.login-card{width:min(430px,calc(100% - 32px));background:#fff;border-radius:30px;padding:34px;box-shadow:0 25px 70px #30347022;text-align:center}.login-card .brand-icon{margin:0 auto 20px}.login-card h1{font-size:32px;margin:4px}.login-card>p{color:var(--muted)}.login-card form{display:grid;gap:15px;text-align:left;margin:25px 0}.login-card .primary{width:100%}.back{font-size:14px;color:var(--muted)}.empty{background:white;padding:30px;border-radius:20px}
@media(max-width:800px){header{padding:0 16px}.shell{grid-template-columns:1fr;padding:18px 14px}.shell aside{display:flex;overflow:auto}.shell aside .eyebrow{display:none}.kid{min-width:120px}.topline{align-items:flex-start;flex-direction:column}.topline h1{font-size:32px}.metrics{grid-template-columns:1fr}.metric{min-height:125px}.task{align-items:flex-start}.value{min-width:75px}.admin-shell{padding:20px 14px}.actions,.filters form{width:100%;display:grid;grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.admin-list article{flex-wrap:wrap}.admin-list article form{margin-left:0}.login-link{font-size:14px}}
.progress-panel{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:28px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;margin-top:20px}.donut{width:145px;aspect-ratio:1;border-radius:50%;background:conic-gradient(#5b5bd6 calc(var(--p)*1%),#e8eaf2 0);display:grid;place-items:center}.donut:before{content:"";position:absolute;width:105px;aspect-ratio:1;background:white;border-radius:50%}.donut div{position:relative;text-align:center;display:grid}.donut strong{font-size:28px}.donut small{color:var(--muted)}.progress-info .section-title{margin:0 0 18px}.progress-info h2{margin:2px 0}.progress-track{height:12px;background:#e9ebf3;border-radius:99px;overflow:hidden}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#5b5bd6,#8b7df4);border-radius:99px}.legend{display:flex;flex-wrap:wrap;gap:20px;margin-top:16px;color:var(--muted);font-size:14px}.lg{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.green-dot{background:#21aa78}.amber-dot{background:#f0a13a}.red-dot{background:#e35763}.manage-section{scroll-margin-top:85px;margin-top:38px}.manage-section>.section-title p{margin:3px 0;color:var(--muted)}.manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.manage-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.manage-card-top{display:flex;justify-content:space-between;gap:15px}.manage-card-top h3{margin:10px 0 2px}.manage-card-top p{color:var(--muted);margin:0}.manage-card-top>strong{color:#15996a}.frequency{font-size:12px;font-weight:800;color:#4e56a8;background:#ececff;padding:5px 9px;border-radius:99px}.manage-values{display:flex;gap:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:16px 0;font-size:13px;color:var(--muted)}.manage-values b{display:block;color:var(--ink);font-size:15px}.manage-actions{display:flex;gap:8px}.manage-actions button{border:0;border-radius:10px;background:#eef0f7;padding:9px 13px;font-weight:800;cursor:pointer}.manage-actions .danger{background:#fff0f1;color:#bd3442}.manage-actions form{margin-left:auto}
@media(max-width:800px){header nav a:first-child{display:none}.progress-panel{grid-template-columns:1fr;justify-items:center}.progress-info{width:100%}.manage-grid{grid-template-columns:1fr}.manage-section>.section-title{align-items:flex-start;gap:12px}.legend{gap:10px}}
