:root{font-family:Inter,"Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:#163e3b;background:#f6f8f4;font-synthesis:none;--teal:#155e58;--muted:#627773;--line:#dfe7de;--orange:#e7a15d}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}a{color:var(--teal)}button{cursor:pointer;border:0;border-radius:10px;background:var(--teal);color:white;padding:12px 19px;font-weight:650;min-height:44px}button:disabled{cursor:wait;opacity:.65}button.secondary{background:#eaf1e9;color:var(--teal)}button.danger{background:#fff0e9;color:#9c3b26}button.subtle{background:transparent;color:var(--teal);border:1px solid var(--line)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #dc9d37;outline-offset:3px}input,select{border:1px solid #cbd8cd;border-radius:9px;background:#fff;color:#193e3a;min-height:44px;padding:10px 12px;max-width:100%;min-width:0}input{width:100%}label.field{display:grid;gap:8px;font-size:14px;font-weight:600}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;gap:15px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;color:var(--teal);font-weight:800;letter-spacing:2px;text-decoration:none}.brand-symbol{display:grid;place-items:center;width:42px;height:42px;background:var(--teal);color:white;border-radius:14px 14px 14px 4px;letter-spacing:0;font-size:25px}.brand small{display:block;font-size:9px;letter-spacing:3px;margin-top:3px;color:#687e77}.top-actions{display:flex;align-items:center;gap:13px;font-size:13px}.top-actions select{font-size:13px}.preview-banner{background:#fff3d8;color:#6c4f16;padding:10px 5%;text-align:center;font-size:12px;line-height:1.6}.hidden{display:none!important}.loading{padding:70px;text-align:center;color:var(--muted)}.login-layout{max-width:1190px;margin:54px auto 35px;display:grid;grid-template-columns:1.05fr 1fr;min-height:570px;padding:0 25px;gap:65px;align-items:center}.welcome-art{align-self:stretch;background:#dfeade;border-radius:28px;padding:45px 39px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:11px;font-weight:750;letter-spacing:2px;text-transform:uppercase;color:#52746d;margin:0 0 17px}h1,h2,h3,p{margin-top:0}h1{font-size:38px;line-height:1.17;letter-spacing:-1.1px;margin-bottom:18px}h2{font-size:22px;letter-spacing:-.4px}h3{font-size:16px;line-height:1.5}.welcome-art h1{font-size:46px;max-width:360px}.welcome-art>p:not(.eyebrow){max-width:330px;line-height:1.8;color:#46675f}.shape-scene{height:175px;display:flex;align-items:flex-end;gap:18px;margin:20px 0 30px;padding:0 10px}.shape{position:relative;box-shadow:10px 10px 0 #163e3b0a}.shape.one{width:91px;height:123px;border-radius:60px 60px 10px 10px;background:#1e6c60;transform:rotate(-9deg)}.shape.two{width:110px;height:110px;border-radius:50%;background:#e4a567;margin-bottom:25px}.shape.three{width:99px;height:99px;border-radius:20px;background:#9db57d;transform:rotate(12deg)}.art-footer{font-size:12px;color:#46675f;display:flex;gap:17px}.login-form{padding:10px 0;max-width:410px}.login-form h2{font-size:30px;margin-bottom:10px}.muted{color:var(--muted);line-height:1.75;font-size:14px}.stack{display:grid;gap:20px}.login-form form{margin-top:30px}.form-note{padding:14px;border:1px solid var(--line);border-radius:10px;font-size:12px;line-height:1.8;color:var(--muted);margin-top:26px}.error{color:#9a302b;background:#fff0ed;border-radius:9px;padding:12px;line-height:1.6;font-size:13px}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);max-width:1600px;margin:auto;min-height:calc(100vh - 124px)}.sidebar{border-right:1px solid var(--line);padding:35px 23px;background:#f3f6ef}.role-label{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin:0 10px 24px}.nav{display:grid;gap:7px}.nav button{text-align:left;font-size:14px;background:transparent;color:#5d746e;font-weight:550;padding:14px 15px}.nav button.active{background:#e0eadb;color:#1c5149;font-weight:700}.sidebar-note{margin:45px 10px 0;font-size:12px;line-height:1.8;color:var(--muted)}.workspace{padding:36px 42px 60px;min-width:0}.page-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:27px}.page-heading h1{font-size:30px;margin-bottom:10px}.badge{display:inline-flex;align-items:center;padding:6px 10px;background:#e7efe1;color:#365d41;border-radius:50px;font-size:11px;font-weight:650;white-space:nowrap}.badge.test{background:#fff2db;color:#84561d}.badge.disabled,.badge.revoked{background:#f6e5de;color:#9c4f35}.hero{background:#e3eddf;border:1px solid #d4e2d2;border-radius:19px;padding:27px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.hero h2{margin-bottom:9px}.hero p{margin:0;max-width:600px}.hero-icon{font-size:45px;opacity:.75}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--line);border-radius:15px;background:white;padding:24px;min-width:0}.card h2{font-size:19px}.card-top{display:flex;justify-content:space-between;align-items:start;gap:14px}.card-top h3{margin-bottom:7px}.card p:last-child{margin-bottom:0}.card-button{background:transparent;color:var(--teal);border:1px solid #d0ddd0;margin-top:15px;font-size:13px;padding:10px 14px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:31px 0 16px}.section-title h2{margin:0}.empty{border:1px dashed #c6d6c8;border-radius:12px;padding:30px;text-align:center;background:#f9fbf7;color:var(--muted);font-size:14px;line-height:1.8}.course-code{font-size:11px;letter-spacing:.6px;color:#6a7d70;margin:14px 0 8px}.objectives{padding-left:18px;font-size:13px;color:#657970;line-height:1.9;margin-bottom:0}.stat{font-size:34px;font-weight:700;margin-bottom:5px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px;background:white}table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}th,td{text-align:left;padding:15px 18px;border-bottom:1px solid #e7ece5}th{color:var(--muted);font-weight:600;background:#f8faf6}tr:last-child td{border-bottom:0}td button{font-size:12px;min-height:36px;padding:8px 12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid .full{grid-column:1/-1}.check-field{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.7}.check-field input{width:18px;min-height:18px;flex-shrink:0}.notice{position:fixed;bottom:24px;right:24px;max-width:min(430px,calc(100vw - 40px));padding:16px 22px;background:#174f48;color:white;border-radius:12px;box-shadow:0 5px 25px #173c3b25;z-index:10;font-size:14px;line-height:1.6}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:5px;z-index:50;padding:12px;background:white;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.back-button{margin-bottom:22px}.small{font-size:12px}.space-top{margin-top:24px}.mono{font-family:Consolas,monospace;font-size:12px}footer{padding:25px 0;color:var(--muted);font-size:12px;line-height:1.8}.form-result{grid-column:1/-1;margin:0}.inline-actions{display:flex;gap:10px;flex-wrap:wrap}.roster-item{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);gap:12px}.roster-item:last-child{border:0}.text-button{padding:8px 0;background:transparent;color:var(--teal);font-size:13px}button.wide{width:100%}@media(max-width:1000px){.workspace{padding:30px 25px}.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:30px 13px}.grid.three{grid-template-columns:1fr}.login-layout{gap:30px;margin-top:35px}.welcome-art{padding:34px 27px}.welcome-art h1{font-size:37px}.shape-scene{gap:10px}.shape.one{width:70px}.shape.two{width:85px;height:85px}.shape.three{width:75px;height:75px}}@media(max-width:720px){.topbar{height:73px;padding:0 17px}.brand{font-size:14px;letter-spacing:1px}.brand-symbol{width:33px;height:36px;font-size:21px}.brand small{font-size:8px}.top-actions{gap:7px}.top-actions select{max-width:125px;padding:7px;font-size:12px}.top-actions button{font-size:12px;padding:8px}.top-actions #identity-label{display:none}.preview-banner{font-size:10px;padding:9px 17px}.login-layout{display:block;padding:0 22px;margin-top:28px;min-height:0}.welcome-art{display:none}.login-form{margin:auto;max-width:430px}.login-form h2{font-size:29px}.shell{display:block}.sidebar{padding:13px 17px;border-right:0;border-bottom:1px solid var(--line)}.role-label,.sidebar-note{display:none}.nav{display:flex;overflow-x:auto;gap:5px}.nav button{white-space:nowrap;padding:10px 12px;font-size:12px}.workspace{padding:25px 18px 45px}.page-heading h1{font-size:25px}.page-heading .badge{font-size:9px;padding:5px 7px}.hero{padding:22px;gap:8px}.hero h2{font-size:19px}.hero-icon{display:none}.grid,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.card{padding:20px}.grid{gap:15px}.page-heading{margin-bottom:20px}h1{font-size:30px}.table-wrap{max-width:100%}.section-title h2{font-size:19px}th,td{padding:13px}.notice{bottom:15px;right:15px}.login-form .eyebrow{margin-top:15px}}
textarea{font:inherit;min-width:0;max-width:100%;width:100%;border:1px solid #cbd8cd;border-radius:9px;padding:12px;color:#193e3a;background:#fff;resize:vertical}textarea:focus-visible{outline:3px solid #dc9d37;outline-offset:3px}.project-thumb{width:100%;height:150px;object-fit:contain;background:#f4f7f0;border-radius:9px;margin-bottom:17px}.project-image{display:block;max-width:100%;max-height:420px;object-fit:contain;border-radius:9px;background:#f5f8f1;margin:18px auto}.model-preview{width:100%;height:320px;margin-top:18px;border-radius:12px;overflow:hidden;background:#eaf0e6}.model-preview canvas{display:block;width:100%;height:320px}.badge.submitted{background:#fff1d9;color:#8e6420}.badge.approved{background:#dfefde;color:#2e6738}.badge.changes_requested{background:#ffede3;color:#95432a}.badge.draft{background:#eff0f5;color:#606575}.project-version .form-grid{margin-top:20px}
.learning-answers{font-size:14px;line-height:1.8}.learning-answers dt{font-weight:650;margin-top:15px}.learning-answers dd{margin:5px 0 15px;color:#627773;overflow-wrap:anywhere}.learning-task .form-grid,.learning-submission .form-grid,.learning-journal .form-grid{margin-top:18px}.learning-task>label{margin-top:20px}
.growth-demo{background:#fff3d8;color:#6c4f16;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.7;margin:-8px 0 22px}
.child-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 18px}.child-tab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fff;color:#2b5650;border:1px solid var(--line);min-width:140px;max-width:100%;text-align:left}.child-tab[aria-selected="true"]{background:var(--teal);color:#fff;border-color:var(--teal)}.child-name{font-weight:700;overflow-wrap:anywhere}.child-grade{font-size:12px;opacity:.85;font-weight:500}
.child-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.child-banner strong{font-size:18px;overflow-wrap:anywhere}
.growth-report .card-top h3{font-size:20px;margin-bottom:2px}.growth-meta{display:flex;flex-wrap:wrap;gap:8px 28px;margin:14px 0 4px;font-size:13px}.growth-meta div{min-width:0}.growth-meta dt{color:var(--muted);font-size:12px}.growth-meta dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}
.growth-body{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:28px;margin-top:20px;align-items:start}.donut-block{display:grid;gap:10px;justify-items:start}.donut{width:150px;height:150px}.donut-value{font-size:20px;font-weight:700;fill:#163e3b}.donut-title{font-weight:700;margin:0}.donut-coverage{margin:4px 0;font-size:14px}
.skills h4,.teacher-comment h4{margin:0 0 4px;font-size:15px}.skill-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:16px}.skill-row{border-top:1px solid var(--line);padding-top:12px}.skill-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.skill-name{font-weight:700}.skill-percent{font-weight:700;font-size:17px}.skill-about{margin:2px 0 8px}.skill-bar{height:10px;border-radius:6px;background:#e4eee8;overflow:hidden}.skill-bar span{display:block;height:100%;background:#197165;border-radius:6px}.skill-bar.empty-bar{background:repeating-linear-gradient(45deg,#eef2ec 0 6px,#f8faf6 6px 12px);border:1px dashed #c6d6c8}.skill-row .muted.small{margin:6px 0 0}
.growth-chip{gap:2px}.growth-chip.insufficient_evidence{background:#fff1d9;color:#7a5418}.growth-chip.not_yet_assessed{background:#eff0f5;color:#555b6b}.growth-chip.draft{background:#eff0f5;color:#555b6b}.growth-chip.teacher_reviewed{background:#e6eefb;color:#2c4f86}.growth-chip.published{background:#dfefde;color:#2e6738}
.skill-evidence,.trace{margin-top:8px;font-size:13px}.skill-evidence summary,.trace summary,.history-item>summary{cursor:pointer;color:var(--teal);font-weight:600;min-height:32px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.skill-evidence summary:focus-visible,.trace summary:focus-visible,.history-item>summary:focus-visible,.child-tab:focus-visible{outline:3px solid #dc9d37;outline-offset:3px}.skill-evidence ul{padding-left:18px;margin:8px 0;line-height:1.7}.skill-evidence li{margin-bottom:8px}.evidence-meta,.evidence-feedback{display:block}.evidence-feedback{color:#2b5650}
.teacher-comment{margin-top:22px;background:#f4f8f2;border-radius:12px;padding:14px 16px}.teacher-comment p{margin:0;line-height:1.7;overflow-wrap:anywhere}.self-only{margin-top:14px}
.history-list{display:grid;gap:10px}.history-item{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 14px}.history-item[open]>summary{margin-bottom:10px}.history-period{font-weight:700;color:#163e3b}.growth-report.compact{border:0;padding:0}
.growth-form .objective{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.growth-form .objective.invalid{border:2px solid #c0533c;border-radius:10px;padding:12px}.objective-text{font-weight:600;line-height:1.6}.field-error{color:#9a302b;font-size:13px;margin:8px 0 0}.skill-fieldset legend{font-weight:700;padding:0 6px}.edit-banner{background:#e6eefb;color:#2c4f86;border-radius:10px;padding:10px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}select:disabled{background:#f2f4f0;color:#8a978f}[aria-invalid="true"]{border-color:#c0533c}
.quick-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.quick-links .card-button{margin-top:6px}.todo{margin-bottom:6px}.todo-card .stat{margin-bottom:0}.todo-none{margin:0 0 6px}
@media(max-width:720px){.growth-body{grid-template-columns:1fr;gap:18px}.donut-block{grid-template-columns:110px minmax(0,1fr);align-items:center}.donut{width:110px;height:110px}.child-tab{flex:1 1 140px}.growth-meta{gap:8px 18px}}
.todo+.inline-actions,.todo-none+.inline-actions{margin-top:14px}@media(max-width:720px){.todo-card{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px}.todo-card .stat{margin:0;font-size:28px;min-width:36px}.todo-card .muted{flex:1;margin:0;min-width:120px}.todo-card .card-button{margin-top:0}}
.workspace h1:focus{outline:none}

/* ===== SORVIAN Academy theme (UI/UX r0): colours taken from the official logo — blue → violet → orange, white robot,
   little cubes, stars, light-blue glow. Decoration never sits on top of content (pointer-events:none, z-index below). ===== */
:root{--ink:#1a1f5c;--muted:#56608a;--line:#dfe5fb;--teal:#3346d8;--blue:#2f6bff;--violet:#7b3fe4;--orange:#ff9a1f;--sky:#eef5ff;--grad:linear-gradient(120deg,#2f6bff 0%,#7b3fe4 55%,#ff9a1f 100%);--grad-btn:linear-gradient(120deg,#3346d8,#6a35d6);--focus:#5b2fd6;--grad-text:linear-gradient(110deg,#2a4fe0 0%,#6a35d6 60%,#c2410c 100%);color:var(--ink);background:#f5f8ff}
body{background:radial-gradient(900px 420px at 0% 0%,#e3efff 0,transparent 70%),radial-gradient(700px 380px at 100% 10%,#efe8ff 0,transparent 70%),#f7f9ff;min-height:100vh}
a{color:var(--teal)}
button{background:var(--grad-btn);color:#fff;border-radius:12px;box-shadow:0 4px 14px #3346d833}button:hover:not(:disabled){filter:brightness(1.07)}
button.secondary{background:#eaf0ff;color:#2a37b8;box-shadow:none}button.subtle{background:#fff;color:#2a37b8;border:1px solid var(--line);box-shadow:none}button.danger{box-shadow:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.skill-evidence summary:focus-visible,.trace summary:focus-visible,.history-item>summary:focus-visible,.child-tab:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
input,select,textarea{border-color:#cfd8f5;color:var(--ink)}
.topbar{height:76px;background:#ffffffe6;border-bottom:1px solid var(--line);position:relative;backdrop-filter:blur(6px)}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--grad);pointer-events:none}
.brand{color:var(--ink);letter-spacing:.5px;gap:10px}.brand-logo{width:48px;height:48px;border-radius:12px;background:#fff;box-shadow:0 2px 10px #3346d822;flex-shrink:0}
.brand-text{font-size:17px;font-weight:800;line-height:1.1}.brand-text small{display:block;font-size:9px;letter-spacing:2.5px;margin-top:4px;color:var(--muted);font-weight:700}
.preview-banner{background:#fff4df;color:#6a4a10}
/* Login */
.login-layout{grid-template-columns:1.1fr 1fr;gap:56px;margin-top:40px}
.welcome-art{background:#fff;border:1px solid var(--line);border-radius:28px;padding:0;justify-content:flex-start;box-shadow:0 18px 50px #3346d81f}
.academy-banner{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.welcome-text{padding:26px 32px 30px;position:relative}.welcome-text h1{font-size:34px;max-width:none;margin-bottom:12px}.welcome-text>p:not(.eyebrow){max-width:none;color:var(--muted);line-height:1.75;margin-bottom:0}
.art-footer{gap:8px;flex-wrap:wrap;margin-top:18px}.art-chip{background:var(--sky);color:#2a37b8;border-radius:50px;padding:6px 12px;font-weight:650}
.eyebrow{color:#5a3fc4}
.login-form{background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px 34px 30px;box-shadow:0 18px 50px #3346d814;position:relative}
.login-form::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;border-radius:24px 24px 0 0;background:var(--grad)}
.form-note{border-color:var(--line);background:#f8faff}
/* Shell */
.shell{min-height:calc(100vh - 116px)}
.sidebar{background:#ffffffb3;border-right:1px solid var(--line)}
.role-label{color:#5a3fc4;font-weight:700}
.nav button{color:#4a5482;border-radius:12px;box-shadow:none;background:transparent}.nav button:hover{background:#eef3ff}
.nav button.active{background:var(--grad-btn);color:#fff;box-shadow:0 6px 16px #3346d833}
.page-heading h1{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:2px}
@media (forced-colors:active){.page-heading h1{color:CanvasText;background:none}}
.page-heading .eyebrow::before{content:"✦ ";color:var(--orange)}
.badge{background:#eaf0ff;color:#2a37b8}
.card{border-color:var(--line);border-radius:18px;box-shadow:0 6px 22px #2f3a8a0d}
.card-button{color:#2a37b8;border-color:#cfd8f5;background:#fff;box-shadow:none}
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#e9f1ff 0%,#efe9ff 60%,#fff1e0 100%);border:1px solid #dbe3fb;border-radius:22px;padding:24px 28px}
.hero::before,.hero::after{content:"";position:absolute;pointer-events:none;border-radius:4px;opacity:.9}
.hero::before{width:16px;height:16px;background:#4a8bff;top:16px;right:150px;transform:rotate(18deg);box-shadow:-34px 54px 0 -3px #ff9a1f,26px 70px 0 -5px #7b3fe4}
.hero::after{width:260px;height:260px;border-radius:50%;right:-80px;top:-120px;background:radial-gradient(closest-side,#bfe3ff99,transparent);opacity:1}
.hero-text{position:relative;z-index:1}.hero-icon{position:relative;z-index:1;opacity:1;width:104px;height:104px;flex-shrink:0}
.robot{width:100%;height:100%;display:block;filter:drop-shadow(0 6px 12px #3346d833)}
.stat{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
@media (forced-colors:active){.stat{color:CanvasText;background:none}}
.empty{border-color:#c9d4f5;background:#fafbff}
th{background:#f6f8ff}
.notice{background:#252c7a}
.skill-bar{background:#e7ecfb}.skill-bar span{background:var(--grad)}.skill-bar.empty-bar{background:repeating-linear-gradient(45deg,#eef1fb 0 6px,#f9faff 6px 12px);border-color:#c9d4f5}
.donut-value{fill:var(--ink)}.teacher-comment{background:#f4f7ff}.history-period{color:var(--ink)}
.child-tab{border-color:var(--line);color:var(--ink)}.child-tab[aria-selected="true"]{background:var(--grad-btn);border-color:transparent}
/* Student ID, works, private space */
.id-chip{display:inline-flex;align-items:center;gap:0;border-radius:50px;overflow:hidden;border:1.5px solid #c9d2fb;background:#fff;font-size:12px;white-space:nowrap;vertical-align:middle}
.id-label{background:var(--grad-btn);color:#fff;padding:5px 9px;font-weight:700}.id-code{padding:5px 10px;font-family:Consolas,"SFMono-Regular",monospace;letter-spacing:.5px;color:var(--ink)}
.badge.id-badge{background:#fff;border:1.5px solid #c9d2fb;font-family:Consolas,monospace}
.child-list{display:grid;gap:20px}.child-card .card-top{flex-wrap:wrap}.child-card h3{font-size:19px;margin-bottom:2px}
.child-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;margin-top:14px}
.works-block,.space-block{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#fbfcff;min-width:0}
.space-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}.space-head h4{margin:0;font-size:15px}
.works-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.work-item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center}
.work-thumb{width:64px;height:64px;border-radius:12px;object-fit:cover;background:#eef3ff;border:1px solid var(--line);display:grid;place-items:center;font-size:11px;font-weight:700;color:#5a3fc4;text-align:center}
.work-thumb.model{background:linear-gradient(135deg,#e7efff,#efe7ff)}
.work-text{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0}.work-text strong{flex-basis:100%;overflow-wrap:anywhere}
.works-block .card-button{margin-top:12px}
.space-room{color:var(--muted)}
.space-empty{display:flex;gap:12px;align-items:center;border:1.5px dashed #c3cdf5;border-radius:14px;padding:12px;background:linear-gradient(135deg,#f3f7ff,#f6f1ff)}
.space-robot{width:58px;height:58px;flex-shrink:0}.space-title{font-weight:750;margin:0 0 2px;color:#3a2fa8}.space-empty .muted{margin:0;line-height:1.6}
.space-shot{display:block;width:100%;border-radius:12px;border:1px solid var(--line);aspect-ratio:16/9;object-fit:cover;margin-bottom:10px}
.space-url{overflow-wrap:anywhere;margin:6px 0 0;color:var(--muted)}.space-link{font-weight:700}
.id-card{margin-bottom:6px}.id-card .card-top{flex-wrap:wrap;margin-bottom:12px}.id-card h3{margin-bottom:2px}
.roster-item .id-chip{margin-left:6px}
@media(max-width:1000px){.child-body{grid-template-columns:1fr}.login-layout{gap:28px}}
@media(max-width:720px){.topbar{height:64px;padding:0 12px}.brand-logo{width:40px;height:40px}.brand-text{display:none}
 .login-layout{display:block;padding:0 16px;margin-top:16px}.welcome-art{display:flex;border-radius:20px;margin-bottom:16px;box-shadow:0 10px 30px #3346d81a}.welcome-text{display:none}
 .login-form{padding:24px 20px 22px;border-radius:20px}.login-form::before{border-radius:20px 20px 0 0}
 .sidebar{background:#ffffffd9}.hero{padding:18px 18px}.hero-icon{display:block;width:64px;height:64px}.hero::before{display:none}
 .child-card .id-chip{order:-1}.work-item{grid-template-columns:56px minmax(0,1fr)}.work-thumb{width:56px;height:56px}.space-robot{width:48px;height:48px}}
@media (prefers-reduced-motion:no-preference){.nav button,.card-button,button{transition:filter .15s,background-color .15s}}