:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#24374b;background:#f4f6f8;color-scheme:light dark;--navy:#24374b;--blue:#3478a8;--coral:#ef9469;--sage:#7ba88f;--paper:#fff;--surface:#f4f6f8;--line:#dce3e8;--text:#24374b;--muted:#687783;--danger:#b74141}*{box-sizing:border-box}body{margin:0;background:var(--surface);color:var(--text)}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}.portal-shell{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}.portal-sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;background:var(--navy);color:#fff;display:flex;flex-direction:column;gap:28px}.portal-brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:800}.portal-brand span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--coral);color:var(--navy);font-family:Georgia,serif}.portal-sidebar nav{display:grid;gap:5px}.portal-sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;color:#d9e2e8;text-decoration:none;font-weight:650}.portal-sidebar nav a:hover,.portal-sidebar nav a[aria-current=page]{background:#ffffff18;color:#fff}.portal-sidebar nav a[aria-current=page]{box-shadow:inset 3px 0 var(--coral)}[dir=rtl] .portal-sidebar nav a[aria-current=page]{box-shadow:inset -3px 0 var(--coral)}.portal-home{margin-top:auto;color:#d9e2e8}.portal-text-button{border:0;background:none;color:#fff;text-align:start;padding:0}.portal-main{min-width:0;padding:28px clamp(20px,4vw,64px) 80px}.portal-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.portal-topbar h1{margin:2px 0 0;font-family:Georgia,serif;font-size:clamp(1.8rem,3vw,2.6rem)}.portal-topbar p{margin:0;color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.1em}.avatar,.child-avatar{display:grid;place-items:center;border:0;border-radius:50%;background:#dce9e2;color:#315b49;font-weight:800}.avatar{width:44px;height:44px}.metric-grid,.child-grid,.settings-grid{display:grid;gap:18px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:36px}.metric-grid article,.data-card,.child-card,.schedule-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 10px 30px #24374b0a}.metric-grid article span{float:inline-end;color:var(--blue);font-size:1.4rem}.metric-grid strong{display:block;font-size:2rem}.metric-grid p,.member-row p,.challenge-row p{margin:4px 0;color:var(--muted)}.child-grid{grid-template-columns:repeat(auto-fit,minmax(285px,1fr))}.child-card__head{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px}.child-avatar{width:48px;height:48px}.child-card h3,.data-card h2{margin:0 0 8px}.status-good{color:#397a5e!important}.status-warn{color:#9a5b2e!important}.status-pill{padding:5px 9px;border-radius:999px;background:#eaf1f5;font-size:.75rem;font-weight:700}.child-card dl{display:grid;grid-template-columns:1fr 1fr;margin:20px 0}.child-card dl div{border-inline-start:1px solid var(--line);padding-inline-start:12px}.child-card dt{font-size:.75rem;color:var(--muted)}.child-card dd{margin:3px 0;font-weight:800}.button-row,.button-stack,.segmented{display:flex;gap:10px;flex-wrap:wrap}.button-stack{flex-direction:column}.button-row button,.data-card button,.schedule-card button,.empty-state a{min-height:42px;padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--text);font-weight:700}.portal-primary{width:100%;min-height:48px!important;background:var(--coral)!important;border-color:var(--coral)!important;color:#1f3142!important}.portal-alert,.portal-notice{padding:12px 16px;border-radius:10px;background:#fff0ec;color:#873b2a}.portal-alert{display:flex;justify-content:space-between;margin-bottom:20px}.portal-alert button{border:0;background:none;color:inherit}.portal-picker{display:flex;align-items:center;gap:12px;margin-bottom:22px;font-weight:700}.portal-picker select,input,select{min-height:42px;border:1px solid #cbd5dc;border-radius:9px;padding:8px 10px;background:var(--paper);color:var(--text)}.schedule-card{max-width:780px}.schedule-row{display:grid;grid-template-columns:70px 1fr 1fr;gap:16px;align-items:end;padding:12px 0;border-bottom:1px solid var(--line)}label{display:grid;gap:6px;font-weight:650;font-size:.9rem}.schedule-card>.portal-primary{margin-top:18px}.data-card{display:grid;gap:14px}.app-row{display:grid;grid-template-columns:40px minmax(120px,1fr) auto minmax(120px,180px);align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.app-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#eaf1f5;font-weight:800}.switch input{position:absolute;opacity:0}.switch span{display:block;width:44px;height:25px;border-radius:20px;background:#aebac2;padding:3px}.switch span:after{content:"";display:block;width:19px;height:19px;border-radius:50%;background:#fff;transition:transform .15s}.switch input:checked+span{background:var(--sage)}.switch input:checked+span:after{transform:translate(19px)}[dir=rtl] .switch input:checked+span:after{transform:translate(-19px)}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.member-row,.challenge-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.member-row>div,.challenge-row>div:first-child{flex:1}.pair-code{display:block;text-align:center;font-size:2.2rem;letter-spacing:.2em;font-weight:900;color:var(--blue);padding:18px}.check{grid-template-columns:auto 1fr;align-items:start}.check input{min-height:auto;margin-top:3px}.bar-chart{display:flex;align-items:end;gap:8px;height:180px;padding-top:18px}.bar-chart i{flex:1;min-height:12px;border-radius:7px 7px 2px 2px;background:linear-gradient(var(--blue),#75afd0)}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.danger-zone{grid-column:1/-1;border-color:#e9bbbb}.danger{background:#fff0f0!important;color:var(--danger)!important;border-color:#dfa5a5!important}.plan-name{font:700 1.8rem Georgia,serif;margin:0}.segmented button[aria-pressed=true]{background:var(--navy);color:#fff}.empty-state{display:grid;justify-items:center;gap:12px;padding:70px;text-align:center;background:var(--paper);border:1px dashed #bcc8cf;border-radius:18px}.empty-state span{font-size:2rem;color:var(--coral)}.empty-state a{text-decoration:none}.portal-mobile-nav{display:none}.portal-center{min-height:100vh;display:grid;place-content:center;justify-items:center}.portal-spinner{width:36px;height:36px;border:3px solid #d8e0e5;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(420px,.95fr)}.auth-story{padding:clamp(28px,7vw,90px);background:linear-gradient(145deg,#21354b,#3478a8);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.auth-story h1{max-width:650px;font:700 clamp(3rem,6vw,6rem)/.98 Georgia,serif;margin:10px 0 22px}.auth-story p{max-width:570px;font-size:1.1rem;line-height:1.6}.portal-brand--light{align-self:start}.auth-card{position:relative;align-self:center;width:min(440px,calc(100% - 40px));margin:auto;padding:40px;background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 70px #24374b1a}.auth-card h2{font:700 2.2rem Georgia,serif}.auth-card form{display:grid;gap:16px}.portal-google{width:100%;min-height:48px;margin-top:12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--text);font-weight:700}.auth-links{display:flex;justify-content:space-between;margin-top:18px}.auth-links button,.auth-language button{border:0;background:none;color:var(--blue);padding:6px}.auth-language{position:absolute;top:14px;inset-inline-end:18px}.auth-language button[aria-pressed=true]{font-weight:900;text-decoration:underline}.page-intro{color:var(--muted);margin-top:-16px}.portal-notice{background:#edf7f1;color:#35694f}.requests-card{margin-bottom:24px;border-inline-start:4px solid var(--coral)}.requests-summary{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;list-style:none;font-size:1.25rem;font-weight:800}.requests-summary::-webkit-details-marker{display:none}.requests-summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:8px}.requests-count{display:grid;place-items:center;min-width:28px;height:28px;padding-inline:8px;border-radius:999px;background:var(--surface);color:var(--muted);font-size:.8rem}.requests-expand{margin-inline-start:auto;font-size:1.35rem;line-height:1;transition:transform .15s}.requests-card[open] .requests-expand{transform:rotate(180deg)}.requests-list{display:grid}.request-row{display:grid;grid-template-columns:44px minmax(180px,1fr) auto;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--line)}.request-row p{margin:4px 0 0;color:var(--muted)}.request-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eaf1f5;color:var(--blue);font-size:1.25rem;font-weight:900}.request-icon--challenge{background:#fff0e9;color:#a9512a}.request-row button[aria-busy=true]{opacity:.65}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#1d2a36;--surface:#14202b;--line:#344656;--text:#edf3f7;--muted:#aebbc5}}:root[data-theme=dark]{--paper:#1d2a36;--surface:#14202b;--line:#344656;--text:#edf3f7;--muted:#aebbc5}@media(max-width:850px){.portal-shell{display:block}.portal-sidebar{display:none}.portal-main{padding:20px 16px 92px}.portal-mobile-nav{position:fixed;z-index:20;inset-inline:0;bottom:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(64px,1fr);overflow-x:auto;background:var(--navy);padding:7px max(6px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.portal-mobile-nav a{display:grid;justify-items:center;gap:2px;color:#cdd7de;text-decoration:none;font-size:.65rem;min-height:50px;padding:4px}.portal-mobile-nav a span{font-size:1.25rem}.portal-mobile-nav a[aria-current=page]{color:var(--coral)}.metric-grid{grid-template-columns:1fr 1fr}.metric-grid article:last-child{grid-column:1/-1}.two-column,.settings-grid{grid-template-columns:1fr}.danger-zone{grid-column:auto}.auth-shell{display:block;background:linear-gradient(145deg,#21354b,#3478a8);padding:20px 0}.auth-story{min-height:230px;padding:24px;background:none}.auth-story h1{font-size:2.8rem}.auth-story>div>p:last-child{display:none}.auth-card{padding:28px}.app-row{grid-template-columns:40px 1fr auto}.app-row label:last-child{grid-column:2/-1}.schedule-row{grid-template-columns:48px 1fr 1fr;gap:8px}.request-row{grid-template-columns:42px 1fr}.request-row>.button-row{grid-column:2}.empty-state{padding:45px 20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.submission-review{padding:16px;border:1px solid var(--line);border-radius:12px;display:grid;gap:14px}.submission-text{white-space:pre-wrap;overflow-wrap:anywhere}.submission-media{display:flex;flex-wrap:wrap;gap:12px}.submission-media img,.submission-media video{max-width:100%;width:320px;max-height:400px;object-fit:contain}.usage-chart{height:180px;display:flex;align-items:end;gap:4px;margin-block:20px}.usage-chart i{flex:1;background:var(--blue);border-radius:4px 4px 0 0}.usage-table{width:100%;border-collapse:collapse;text-align:start}.usage-table th,.usage-table td{text-align:start;padding:8px;border-bottom:1px solid var(--line)}.challenges-workspace{display:grid;gap:1.25rem;min-width:0}.challenge-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.challenge-toolbar h2{margin:0}.challenge-tabs{display:flex;flex-wrap:wrap;gap:.5rem}.challenge-tabs button[aria-current=page],.challenges-workspace button[aria-pressed=true]{background:var(--portal-accent, #315d4e);color:#fff}.challenges-workspace fieldset{border:0;padding:0;margin:0;min-width:0;display:grid;gap:1rem}.challenges-workspace fieldset fieldset{margin-block:.75rem}.challenges-workspace legend{font-weight:600;margin-block-end:.5rem}.challenges-workspace label:not(.check){display:grid;gap:.4rem;margin-block:.5rem}.challenges-workspace textarea{width:100%;min-height:7rem;padding:.75rem;border:1px solid #abb9b1;border-radius:.75rem;background:inherit;color:inherit;font:inherit;resize:vertical}.challenge-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:1rem}.challenges-workspace details{margin-block:1rem}.challenges-workspace summary{cursor:pointer;padding-block:.75rem;font-weight:600;min-height:44px}.challenge-preview iframe{width:100%;height:600px;border:1px solid #abb9b1;border-radius:1rem;background:#fff}.challenges-workspace .challenge-row{flex-wrap:wrap;gap:1rem}.challenges-workspace .button-row{flex-wrap:wrap}.challenges-workspace .check input{flex-shrink:0}.challenges-workspace :focus-visible{outline:3px solid #b68639;outline-offset:3px}@media(max-width:600px){.challenge-toolbar>button{width:100%}.challenge-tabs button{flex:1 1 42%}.challenge-preview iframe{height:520px}}.topic-suggestions{display:flex;flex-wrap:wrap;gap:.5rem}.topic-suggestions button{font-size:.85rem;text-align:start}.collection-header{border-inline-start:4px solid var(--sage);padding-inline-start:1rem;margin-block:1rem}.challenges-workspace button,.policy-workspace button{appearance:none;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--text);font:inherit;font-size:.9rem;font-weight:650;line-height:1.3;transition:background .15s,border-color .15s}.challenges-workspace button:hover:not(:disabled),.policy-workspace button:hover:not(:disabled){border-color:var(--sage);background:var(--surface)}.challenges-workspace button:disabled,.policy-workspace button:disabled{opacity:.5;cursor:default}.challenges-workspace button.primary,.policy-workspace .policy-primary{background:var(--navy);color:#fff;border-color:var(--navy)}.challenges-workspace .challenge-tabs{padding:6px;border:1px solid var(--line);border-radius:16px;background:var(--paper);gap:4px}.challenges-workspace .challenge-tabs button{border-color:transparent;background:transparent;flex:1 1 auto}.challenges-workspace .challenge-tabs button[aria-current=page]{background:var(--navy);color:#fff;border-color:var(--navy)}.challenges-workspace .assignment-group{border:1px solid var(--line);border-radius:14px;margin:0;overflow:hidden;background:var(--paper)}.challenges-workspace .assignment-summary{display:flex;gap:14px;align-items:center;padding:18px;list-style:none}.assignment-summary::-webkit-details-marker{display:none}.collection-mark{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;background:var(--surface);color:var(--sage)}.assignment-title{flex:1;min-width:0;line-height:1.5;overflow-wrap:anywhere}.assignment-title small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.assignment-expand{font-size:1.4rem}.assignment-group[open] .assignment-expand{transform:rotate(180deg)}.assignment-content{padding:0 18px 12px;border-top:1px solid var(--line)}.collection-actions{padding-block:14px}.assignment-item .challenge-row{padding-block:12px}.assignment-item>details{margin:0!important}.assignment-item>details>summary{font-size:.85rem;color:var(--blue);padding-block:8px}.assignment-item .button-row button{font-size:.8rem;padding:7px 10px}.destructive-action{color:var(--danger)!important}.policy-workspace{display:grid;gap:18px}.policy-help{color:var(--muted);font-size:.875rem;font-weight:400;line-height:1.6;margin-block:6px}.policy-workspace fieldset{border:0;padding:0;margin:0;min-width:0}.app-search-controls{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,240px);gap:16px}.app-editor{display:grid;grid-template-columns:minmax(180px,1fr) minmax(360px,1.3fr);gap:20px;align-items:center;border-top:1px solid var(--line);padding-block:16px}.app-editor fieldset{display:grid;grid-template-columns:minmax(150px,1fr) 120px auto;gap:12px;align-items:end}.app-identity{display:flex;gap:12px;align-items:center;min-width:0}.app-identity>div{min-width:0}.app-identity small{display:block;color:var(--muted);overflow-wrap:anywhere;font-size:.75rem;margin-top:4px}.app-identity .app-icon{width:44px;height:44px;flex-shrink:0}.app-icon img{width:100%;height:100%;object-fit:contain;border-radius:10px}.schedule-editor{max-width:1000px}.schedule-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.schedule-days button{padding:10px 4px;display:grid;gap:6px}.schedule-days small{font-weight:400;font-size:.7rem;overflow-wrap:anywhere}.schedule-days button[aria-pressed=true]{border-color:var(--sage);box-shadow:inset 0 0 0 1px var(--sage);background:var(--surface)}.schedule-day-editor{padding:20px;background:var(--surface);border-radius:14px;margin-top:18px}.schedule-day-editor h3{margin-top:0}.schedule-limits{display:grid;grid-template-columns:1fr 1fr;gap:28px}.schedule-limits input[type=number]{width:100%;font-size:1.2rem}.schedule-limits .check{margin-top:12px}.schedule-copy{margin-top:20px}.schedule-copy summary{cursor:pointer;padding-block:12px;font-weight:650}.copy-day-options{display:flex;gap:16px;flex-wrap:wrap;margin-block:20px}.schedule-save{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:16px}.schedule-save>span{color:var(--muted);font-size:.85rem}.policy-workspace :focus-visible{outline:3px solid var(--blue);outline-offset:3px}.portal-sidebar>.portal-text-button{margin-top:auto}@media(max-width:1050px){.app-editor{grid-template-columns:1fr}.schedule-days{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:600px){.app-search-controls,.schedule-limits{grid-template-columns:1fr}.app-editor fieldset{grid-template-columns:1fr 100px}.app-editor fieldset button{grid-column:1/-1}.schedule-days{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-save .button-row{width:100%}.schedule-save button{flex:1}.assignment-content{padding-inline:12px}.challenges-workspace .assignment-summary{padding:14px}.challenge-tabs{gap:4px}.assignment-item .button-row{width:100%}}.challenges-workspace button.primary:hover:not(:disabled),.policy-workspace .policy-primary:hover:not(:disabled){background:#31536b;color:#fff;border-color:#31536b}.challenge-child-filter{max-width:360px}.creation-flow{display:grid;gap:20px}.creation-wizard{max-width:860px;margin-inline:auto;width:100%}.wizard-heading{display:flex;gap:16px;justify-content:space-between;align-items:center}.wizard-heading h3{margin:6px 0}.wizard-heading small{color:var(--muted)}.wizard-progress{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 20px}.wizard-progress li{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.75rem}.wizard-progress li span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface)}.wizard-progress li[aria-current=step]{color:var(--text);font-weight:700}.wizard-progress li[aria-current=step] span{background:var(--navy);color:#fff}.wizard-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.challenges-workspace .wizard-choice{display:flex;align-items:center;gap:14px;padding:22px;text-align:start;min-height:80px;border-radius:16px}.wizard-choice>span{font-size:1.4rem;color:var(--blue)}.wizard-choice.domain-home>span{color:#a45c3e}.wizard-choice.domain-language>span{color:#785095}.wizard-choice.domain-school>span{color:#997832}.wizard-choices.repeat-choices{grid-template-columns:repeat(5,1fr)}.reward-control{text-align:center;padding:24px;border:1px solid var(--line);border-radius:16px}.reward-control strong{font-size:2.2rem}.reward-control input{width:100%;accent-color:var(--sage)}.reward-control span{color:var(--muted)}.wizard-review,.subscription-allowance{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 18px}.subscription-allowance p{margin:0 0 6px}.subscription-allowance a,.creation-wizard a{color:var(--blue);font-weight:650}.creation-wizard fieldset>.data-card{box-shadow:none}.creation-wizard .button-row button[aria-pressed=true]{background:var(--navy);color:#fff}@media(max-width:600px){.wizard-choices{grid-template-columns:1fr}.wizard-progress{gap:6px}.wizard-progress li{font-size:.7rem}.challenges-workspace .wizard-choice{padding:16px;min-height:64px}}input[type=checkbox],input[type=radio]{width:1rem;height:1rem;min-height:0;margin:3px 0 0;padding:0;border:0;border-radius:0;background:transparent;color:currentColor;accent-color:var(--navy)}input[type=range],input[type=file]{min-height:0;padding:0;border:0;background:transparent}.auth-install{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.install-portal-button{width:100%;min-height:44px;padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--text);font-weight:700}.install-guide ol{display:grid;gap:10px;margin:0;padding-inline-start:24px}.install-portal-card{align-content:start}
