:root{--ink:#233a31;--muted:#6c7e72;--green:#27775b;--line:#dce7df;--paper:#fff;--bg:#f4f7ef;--yellow:#f5cf70;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:0;border-radius:12px;padding:11px 18px;background:var(--green);color:white;font-weight:700}button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:wait}.secondary{background:#e7efe8;color:var(--green)}.danger{background:#fff0ec;color:#a93e2b}input,select,textarea{min-width:0;width:100%;border:1px solid #bdcfc1;background:#fff;border-radius:10px;padding:12px;color:var(--ink)}input[type=checkbox]{width:20px;height:20px;flex-shrink:0}label{display:grid;gap:7px;font-size:14px;font-weight:600}.check{display:flex;align-items:flex-start;font-weight:400;line-height:1.7}form{display:grid;gap:16px}h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,3.4vw,46px);line-height:1.25;letter-spacing:-1px}h2{font-size:24px}h3{font-size:18px}p{line-height:1.8}.muted,small{color:var(--muted)}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:var(--green);display:block;margin-bottom:12px}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1200px;margin:auto;padding:0 28px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;color:var(--ink);font-size:21px}.brand-icon{display:grid;place-items:center;background:var(--green);color:#fff;border-radius:18px 18px 18px 5px;width:46px;height:46px}.brand small{font-size:11px;font-weight:400;display:block;margin-top:3px;letter-spacing:2px}.nav-actions{display:flex;align-items:center;gap:14px;font-size:14px}.page{max-width:1200px;margin:0 auto;padding:28px}.auth-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center;min-height:70vh}.auth-story{position:relative}.auth-story p{margin-top:22px;max-width:440px}.story-image{width:100%;max-width:490px;border-radius:28px;margin-top:26px;aspect-ratio:1.9;object-fit:cover}.story-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.tag{font-size:12px;padding:6px 10px;background:#e6eddf;color:#4c674c;border-radius:8px;display:inline-block}.card{background:white;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 8px 30px #29482d05}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.tabs button{background:transparent;color:var(--muted)}.tabs button.active{background:var(--green);color:#fff}.error{color:#b44328;font-size:14px;line-height:1.6;min-height:22px}.form-note{font-size:13px;color:var(--muted)}.welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.welcome p{margin-top:10px}.child-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:24px}.child-controls label{min-width:200px}.workspace-tabs{border-bottom:1px solid var(--line);padding-bottom:16px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.course{overflow:hidden;padding:0;display:flex;flex-direction:column}.course-art{height:185px;background:#e8efda;display:flex;align-items:center;justify-content:center;position:relative}.course-art img{width:100%;height:100%;object-fit:cover}.course-art .number-art{font-size:68px;font-weight:900;color:#397e65;letter-spacing:8px;text-shadow:5px 5px #fff}.course-body{padding:25px;display:flex;flex-direction:column;gap:15px;flex:1}.course-body p{font-size:14px;color:var(--muted);flex:1}.course-footer{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.empty{text-align:center;padding:45px 20px;background:#eaf0e2;border-radius:20px;line-height:2}.empty p{margin:12px 0}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:12px 0 20px}.section-head select{max-width:230px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:24px}.metric{border-radius:18px;background:#fff;border:1px solid var(--line);padding:20px}.metric b{display:block;font-size:30px;margin-top:10px}.report-list{display:grid;gap:15px}.report-item{display:flex;gap:20px;justify-content:space-between}.report-item p{font-size:13px;margin-top:8px;color:var(--muted)}.status{font-size:12px;border-radius:8px;padding:5px 9px;background:#e5f3e9;color:var(--green);white-space:nowrap}.status.pending{background:#fff3d3;color:#8c6818}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.settings-grid h2{margin-bottom:20px}.settings-grid .wide{grid-column:1/-1}.table-wrap{overflow:auto;max-height:600px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th,td{padding:14px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td.wrap{white-space:normal;min-width:200px}td button{padding:7px 10px;font-size:12px;margin:3px}.admin-stack{display:grid;gap:24px}.admin-stack h2{margin-bottom:18px}.inline-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.inline-form label{flex:1;min-width:120px}.secret{overflow-wrap:anywhere;background:#fff8df;border:1px solid #e9d297;padding:16px;border-radius:12px;margin:15px 0}.secret code{display:block;font-size:15px;user-select:all;margin:10px 0}.footer{max-width:1200px;margin:36px auto 0;padding:25px 28px;border-top:1px solid var(--line);color:var(--muted);display:flex;justify-content:space-between;font-size:12px;gap:15px;flex-wrap:wrap}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#233a31;color:white;border-radius:12px;padding:14px 24px;z-index:100;max-width:90%;box-shadow:0 8px 30px #0002}.toast[hidden],[hidden]{display:none!important}dialog{border:1px solid var(--line);border-radius:20px;padding:28px;width:min(480px,90vw);max-height:90vh;overflow:auto;color:var(--ink)}dialog::backdrop{background:#162e2366}dialog h2{margin-bottom:18px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end}.policy{max-width:760px}.policy h2{margin-top:28px;margin-bottom:10px}.policy p{margin-top:10px}.avatar-symbol{font-size:45px;margin-bottom:10px}.loading{text-align:center;padding:60px;font-size:18px}:focus-visible{outline:3px solid #d39518;outline-offset:3px}
@media(max-width:760px){.site-header{padding:0 18px;height:76px}.brand{font-size:18px}.brand small{font-size:10px}.nav-actions{gap:8px}.page{padding:20px 18px}.auth-layout{grid-template-columns:1fr;gap:28px}.story-image{display:none}.auth-story p{margin-top:12px}.auth-story h1 br{display:none}.auth-story h1{font-size:30px}.story-tags{margin-top:12px}.card{padding:20px}.course{padding:0}.grid,.settings-grid{grid-template-columns:1fr}.welcome{align-items:flex-start}.welcome h1{font-size:28px}.welcome p{font-size:13px}.metrics{gap:8px}.metric{padding:14px 10px;font-size:12px}.metric b{font-size:24px}.section-head{align-items:flex-start;flex-direction:column}.report-item{flex-direction:column;gap:12px}.course-art{height:160px}.nav-actions #identity{display:none}.footer{margin-top:24px}.inline-form{display:grid;grid-template-columns:1fr 1fr}.inline-form button{grid-column:1/-1}}

@media(max-width:760px){.welcome>.tag{display:none}}

.ai-planned{margin-bottom:22px;background:#f1f3e8}.ai-planned p{line-height:1.8}.measurement-details{margin:12px 0;font-size:13px}.measurement-details summary{cursor:pointer;color:#416e59}.measurement-details dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.measurement-details dl>div{background:#f3f5ed;border-radius:10px;padding:12px}.measurement-details dt{font-weight:600}.measurement-details dd{margin:8px 0;color:#315f4b}.measurement-details p{font-size:12px;color:#768172;line-height:1.7}

.report-item{align-items:flex-start}.report-item>div:first-child{flex:1;min-width:0}.report-item .record-actions{flex:0 0 170px;max-width:100%;align-content:flex-start}@media(max-width:700px){.report-item .record-actions{flex:auto;width:100%}}
/* Quiet, non-personal placeholders while fresh account/child data loads. */
.space-loading{min-height:220px;display:grid;place-content:center}
.space-loading>span,.return-placeholder>span{visibility:hidden;animation:space-loading-label 0s .6s forwards}
.return-placeholder{min-height:340px;padding:28px;border-radius:28px;background:#edf2e3;color:#4b6559;text-align:center}
.return-placeholder-art{height:240px;max-width:760px;margin:0 auto 18px;border-radius:28px;background:radial-gradient(ellipse at 22% 64%,#fdf9e8 0 12%,transparent 12.5%),radial-gradient(ellipse at 50% 46%,#fdf9e8 0 12%,transparent 12.5%),radial-gradient(ellipse at 78% 60%,#fdf9e8 0 12%,transparent 12.5%),linear-gradient(155deg,#dfeccf,#d5e5d9)}
@keyframes space-loading-label{to{visibility:visible}}
