:root{--purple:#513080;--dark:#2c2240;--light:#f8f5fc;--cream:#faf8f4;--line:#e9e3ef;--gold:#e5b151;--pink:#e990af;--green:#199976;--muted:#81788d;--white:#fff;--shadow:0 13px 36px rgba(54,37,82,.075);font-family:'Segoe UI',system-ui,sans-serif;color:var(--dark);background:var(--cream)}
*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:'Segoe UI',system-ui,sans-serif;line-height:1.18}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bc8ffd;outline-offset:2px}
.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.loading-logo{font-size:56px;color:var(--purple)}.loading-screen h1{font-size:28px}.loading-screen p{color:var(--muted)}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 10% 10%,#e8dbf8,transparent 35%),radial-gradient(circle at 90% 95%,#fbe3eb,transparent 42%),#faf8fd}.auth-card{background:#fff;border-radius:27px;width:min(100%,460px);padding:40px;box-shadow:var(--shadow);border:1px solid var(--line)}.auth-card .brand-glyph{background:#eee5fa;color:var(--purple);width:54px;height:54px;display:grid;place-items:center;border-radius:17px;font-size:29px;margin-bottom:22px}.auth-card h1{font-size:32px;letter-spacing:-.025em}.auth-card>p{color:var(--muted);margin:10px 0 26px;line-height:1.5}.auth-card form{display:grid;gap:14px}.auth-foot{font-size:12px;color:var(--muted);margin-top:24px;text-align:center}
.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.sidebar{background:#352452;color:#f7efff;display:flex;flex-direction:column;padding:26px 14px 20px;position:sticky;height:100vh;top:0}.logo{display:flex;gap:12px;align-items:center;padding:4px 13px 30px}.logo-mark{width:39px;height:39px;border-radius:13px;background:#7354a4;display:grid;place-items:center;font-size:23px;color:#ffe3a2}.logo-title{font:700 17px/1.1 'Segoe UI',system-ui,sans-serif;letter-spacing:-.3px}.logo-sub{display:block;color:#bba9cf;font-size:10px;font-weight:700;letter-spacing:1.6px;margin-top:5px}.nav-group-title{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#9c8ab5;padding:8px 16px 12px}.nav{display:grid;gap:4px}.nav button{width:100%;border:0;background:none;color:#d7cae6;display:flex;align-items:center;gap:12px;border-radius:12px;padding:12px 14px;text-align:left;font-weight:700;font-size:13px}.nav button .sym{font-size:19px;width:23px;text-align:center;font-family:system-ui}.nav button.active,.nav button:hover{background:#654593;color:white}.sidebar-bottom{margin-top:auto;border-top:1px solid #58416e;padding:19px 13px 0;font-size:12px;color:#c3b3d4}.sidebar-bottom strong{color:white}.sidebar-bottom button{color:#e4d7f4;text-decoration:underline;background:none;border:0;padding:8px 0}.main{min-width:0;padding:0 36px 60px;max-width:1550px;width:100%;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);height:76px;gap:14px}.crumb{font-size:12px;font-weight:800;color:#857597;letter-spacing:1.2px;text-transform:uppercase}.top-actions{display:flex;gap:10px;align-items:center}.parent-pill{display:flex;gap:8px;align-items:center;padding:8px 12px;background:white;border:1px solid var(--line);border-radius:40px;font-size:12px;font-weight:700}.parent-pill i{display:grid;place-items:center;font-style:normal;background:#efe6f8;color:#694e91;width:24px;height:24px;border-radius:50%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:34px 0 24px}.page-head h1{font-size:clamp(27px,3vw,37px);letter-spacing:-1.1px}.page-head p{color:var(--muted);font-size:14px;margin-top:9px;line-height:1.5}.kicker{font-size:11px;color:#896da7;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:7px}.flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{background:var(--purple);color:white;border:1px solid var(--purple);border-radius:12px;padding:11px 17px;font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px}.btn:hover{filter:brightness(1.075)}.btn.secondary{color:var(--purple);background:white;border-color:#ded2ea}.btn.soft{color:#634289;background:#efe7f8;border-color:#efe7f8}.btn.green{background:#169b73;border-color:#169b73}.btn.pink{background:#f7e9ee;border-color:#f7e9ee;color:#a44f71}.btn.gold{background:#f5e9cf;border-color:#f5e9cf;color:#8c6626}.btn.sm{font-size:11px;min-height:33px;padding:7px 11px;border-radius:9px}.btn.ghost{background:transparent;color:#776a88;border-color:transparent}.btn.danger{background:#fff3f4;color:#b43c5c;border-color:#ffdce2}.btn.block{width:100%}.tiny{color:var(--muted);font-size:12px}.muted{color:var(--muted)}.grid{display:grid;gap:18px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:22px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.panel h2{font-size:19px}.panel h3{font-size:17px}.hero{background:linear-gradient(110deg,#513080,#7551a7);color:#fff;border-radius:22px;padding:30px 33px;position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;min-height:173px}.hero:after{content:'✦';position:absolute;right:18%;top:-56px;font-size:210px;opacity:.065}.hero h2{font-size:28px;letter-spacing:-.5px;max-width:600px}.hero p{max-width:570px;color:#ded0ef;line-height:1.5;font-size:13px;margin-top:11px}.hero .btn{background:white;color:var(--purple);border-color:white;white-space:nowrap;z-index:1}.section{margin-top:27px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}.section-head h2{font-size:21px}.child-card{position:relative;overflow:hidden}.child-card:before{content:'';height:5px;position:absolute;left:0;top:0;right:0;background:var(--c)}.child-top{display:flex;align-items:center;gap:12px;margin-bottom:17px}.avatar{width:50px;height:50px;border-radius:17px;display:grid;place-items:center;font:700 23px Outfit;background:color-mix(in srgb,var(--c) 15%,white);color:var(--c)}.child-top h3{font-size:20px}.score-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:15px;border-top:1px solid var(--line);gap:8px}.score-stats b{font:700 30px Outfit}.score-stats span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.positive{color:#158766}.accountability{color:#bf627d}.net{color:#633f96}.status-pill{background:#f2eaf9;padding:6px 10px;font-size:10px;font-weight:800;color:var(--purple);border-radius:30px;white-space:nowrap}.activity{display:grid;gap:0}.activity-item{display:flex;gap:12px;align-items:flex-start;border-bottom:1px solid #f0ecf4;padding:13px 0}.activity-item:last-child{border:0}.type-dot{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:11px;font-size:17px}.type-dot.positive{background:#e0f5ec}.type-dot.accountability{background:#ffedf1}.activity-item .grow{flex:1;min-width:0}.activity-item p{font-size:13px;line-height:1.4;font-weight:700}.activity-item small{font-size:11px;color:var(--muted)}.activity-item time{font-size:11px;color:#8b7e99;white-space:nowrap}.prize{background:linear-gradient(140deg,#fff3d7,#fff9ef);border:1px solid #f5e4ba;position:relative}.prize .crown{font-size:39px;display:block;margin-bottom:10px}.prize h3{font-size:22px;margin:8px 0}.prize p{font-size:13px;color:#806f5b;line-height:1.5}.empty{color:var(--muted);padding:25px 10px;text-align:center;font-size:13px;line-height:1.6}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px}.toolbar .field{min-width:150px;max-width:250px}.field{display:grid;gap:7px;min-width:0}.field label{font-weight:800;color:#564b63;font-size:12px}.field input,.field select,.field textarea{border:1px solid #dfd8e7;background:white;color:#292334;padding:11px 12px;border-radius:10px;outline:none;width:100%;font-size:13px}.field textarea{min-height:85px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:#ac79e6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}.check-row{display:flex;gap:7px;align-items:center;font-size:12px;font-weight:700}.check-row input{width:auto}.table-scroll{overflow-x:auto;width:100%}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:#83798d;font-weight:800;padding:12px 10px;border-bottom:1px solid var(--line)}td{font-size:12px;padding:13px 10px;border-bottom:1px solid #f0ebf4;vertical-align:middle}tr:last-child td{border-bottom:0}.pill{display:inline-block;border-radius:20px;padding:5px 9px;font-size:10px;font-weight:800;background:#f4eff8;color:#79569e}.pill.good{background:#ddf4e9;color:#138565}.pill.bad{background:#fae9ef;color:#aa5e74}.pill.done{background:#e1f4ec;color:#188968}.row-actions{display:flex;flex-wrap:wrap;gap:5px}.micro{font-size:11px;line-height:1.4}.task-card{padding:17px;border:1px solid var(--line);border-radius:14px;background:#fff;display:grid;gap:11px}.task-card.done{background:#f0fbf5;border-color:#d2f0e1}.task-card.excused{background:#f7f3fb}.task-card h3{font-size:15px}.task-card p{color:var(--muted);font-size:11px;line-height:1.5}.task-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.task-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.task-btns{display:flex;gap:6px;flex-wrap:wrap}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid #e6ddeb;background:white;color:#72647e;border-radius:25px;padding:8px 13px;font-size:12px;font-weight:800}.chip.active{background:var(--purple);border-color:var(--purple);color:white}.rule-card{padding:17px;border:1px solid var(--line);border-radius:14px;background:#fff}.rule-card h3{font-size:15px}.rule-card p{font-size:12px;color:#786e84;line-height:1.5;margin-top:8px}.rule-card .row-actions{margin-top:13px}.rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.progress-bars{display:grid;gap:13px}.bar-row{display:grid;grid-template-columns:95px 1fr 35px;gap:11px;align-items:center;font-size:12px}.bar-track{height:10px;background:#f0eaf5;border-radius:20px;overflow:hidden}.bar-fill{height:100%;background:#7e58b5;border-radius:20px}.report-numbers{display:flex;gap:20px;flex-wrap:wrap}.report-numbers strong{font:700 29px Outfit;display:block}.report-numbers small{font-size:11px;color:var(--muted)}.report-hero{background:linear-gradient(130deg,#fff,#f4edfc);border:1px solid #e9ddf5}.notice{padding:14px 16px;background:#f6f0fc;color:#70538d;font-size:12px;line-height:1.5;border-radius:12px;border:1px solid #e9def5;margin:12px 0}.winner{text-align:center;padding:28px 15px;background:linear-gradient(145deg,#fff8e9,#ffffff);border:1px solid #f0e3bd;border-radius:15px}.winner .big{font-size:44px}.winner h3{font-size:22px;margin:9px 0}.winner p{font-size:12px;color:var(--muted)}.modal-overlay{position:fixed;inset:0;z-index:50;background:rgba(25,13,40,.55);display:grid;place-items:center;padding:20px;overflow:auto}.modal{width:min(100%,620px);background:#fff;border-radius:22px;box-shadow:0 28px 70px #21172c44;max-height:94vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:23px 26px 10px}.modal-head h2{font-size:24px}.modal-body{padding:17px 26px 26px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:21px}.icon-button{border:0;background:#f1edf5;color:#534265;width:34px;height:34px;border-radius:11px;font-size:19px}.mobile-menu{display:none}.auth-error{color:#b33259;font-size:12px}.settings-block{margin-bottom:24px}.label-overline{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-weight:800}.fineprint{font-size:11px;line-height:1.6;color:var(--muted)}#toast{position:fixed;bottom:26px;right:25px;background:#2d243e;color:#fff;border-radius:12px;padding:14px 20px;z-index:100;box-shadow:0 8px 30px #0002;font-size:13px;font-weight:800;opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s}#toast.show{opacity:1;transform:none}.print-only{display:none}
@media(max-width:1150px){.main{padding:0 22px 40px}.shell{grid-template-columns:205px minmax(0,1fr)}.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three .child-card:last-child{grid-column:1/-1}.hero h2{font-size:24px}}
@media(max-width:760px){.shell{display:block}.sidebar{position:fixed;z-index:40;left:0;top:0;bottom:0;width:260px;transform:translateX(-110%);transition:transform .2s}.shell.menu-open .sidebar{transform:none;box-shadow:10px 0 60px #0005}.mobile-menu{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:white;color:var(--purple);font-size:19px}.main{padding:0 15px 35px}.topbar{height:63px}.page-head{margin:25px 0 17px}.page-head h1{font-size:29px}.hero{padding:25px 22px;display:block}.hero h2{font-size:25px}.hero .btn{margin-top:17px}.grid.three,.grid.two,.task-list,.rules-grid{grid-template-columns:1fr}.grid.three .child-card:last-child{grid-column:auto}.panel{padding:17px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.toolbar .field{flex:1;max-width:none;min-width:120px}.modal-overlay{padding:10px}.modal-head{padding:22px 17px 10px}.modal-body{padding:14px 17px 22px}.section{margin-top:22px}.top-actions .parent-pill{font-size:0}.top-actions .parent-pill i{font-size:12px}.bar-row{grid-template-columns:72px 1fr 25px}}
@page{size:letter;margin:.32in}
@media print{body{background:white!important}#app,#modal-root,#toast{display:none!important}#print-root{display:block!important}.print-page{page-break-after:always;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:.12in;height:10.32in}.print-slip{border:1px dashed #aaa;padding:.2in;overflow:hidden;position:relative;font-size:10pt;min-height:0}.print-slip h2{font-size:13pt;margin:0 0 .15in;color:#39235d}.print-slip .slip-tag{font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-left:4px solid #229a75;padding-left:8px;margin-bottom:.13in}.print-slip.accountability .slip-tag{border-left-color:#d27995}.print-slip p{margin:.07in 0;overflow-wrap:anywhere}.print-slip .handwriting{border-bottom:1px solid #aaa;height:.36in}.print-slip .cut-tip{position:absolute;bottom:8px;right:12px;font-size:8px;color:#888}.print-single{grid-template-rows:1fr 1fr}.report-print{font-size:12pt;padding:.3in}.report-print h1{font-size:24pt}}
/* Build 002: family jar, goals, achievements and huddles */
.hero-quick{display:flex;flex-wrap:wrap;gap:9px;align-items:center;justify-content:flex-end}
.hero-quick .secondary{background:#fff2;color:#fff;border:1px solid #fff5}
.quick-banner{margin:17px 0 0;padding:15px 18px;background:linear-gradient(110deg,#fff9eb,#f6eefc);border:1px solid #eae0d1;border-radius:14px;display:flex;align-items:center;flex-wrap:wrap;gap:15px;font-size:13px}
.quick-banner b{color:#594076}.quick-banner span{color:var(--muted);flex:1;min-width:170px}
.queue-actions{margin:16px 0 20px;flex-wrap:wrap}
.steps{display:grid;gap:12px;padding:12px 0}.steps p{line-height:1.6;color:#554b61;font-size:13px}
.grow-card{padding:16px;margin-top:12px;border:1px solid #eadff3;background:linear-gradient(150deg,#fff,#fdfafd);border-radius:13px;display:flex;flex-direction:column;gap:9px}
.grow-card h3{font-size:16px}.grow-card p{color:var(--muted);line-height:1.5;font-size:12px}.grow-card .row-actions{flex-wrap:wrap;margin-top:auto}
.badge-icon{width:57px;height:57px;border-radius:17px;display:grid;place-items:center;background:#f8e9b8;font-size:30px}
.huddle-card{padding:20px;border-bottom:1px solid var(--line);display:grid;gap:15px}.huddle-card:last-child{border:0}.huddle-card .grid{gap:13px}.huddle-card .grid>div{background:#faf7fd;padding:14px;border-radius:13px}.huddle-card p{white-space:pre-line;color:#554b61;font-size:13px;line-height:1.5;margin-top:9px;overflow-wrap:anywhere}
button:disabled{opacity:.46;cursor:not-allowed}
@media(max-width:760px){.hero-quick{justify-content:flex-start;margin-top:8px}.quick-banner{align-items:stretch}.quick-banner button{width:100%}.huddle-card{padding:14px 2px}}
