:root{--ks-royal-blue:#1D4E89;--ks-royal-blue-hover:#163d6b;--ks-mustard:#D4AF37;--ks-music:#FFC93C;--ks-choir:#F2B5C9;--ks-stem:#3FBFA6;--ks-playgroup:#D7BFE6;--ks-books:#A38BA4;--ks-bg:#FFFFFF;--ks-bg-soft:#FAFAFA;--ks-bg-hover:#F4F4F5;--ks-rule:#ECECEE;--ks-rule-strong:#D4D4D8;--ks-text:#18181B;--ks-text-muted:#71717A;--ks-text-subtle:#A1A1AA;--ks-error:#B91C1C;--ks-success:#15803D;--font-serif:"Lora",Georgia,"Times New Roman",serif;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--radius-sm:6px;--radius:8px;--radius-lg:12px}*{box-sizing:border-box}body,html{padding:0;background:var(--ks-bg);font-family:var(--font-sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,h1,h2,h3,h4,html{margin:0;color:var(--ks-text)}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500;letter-spacing:-.01em}a{color:var(--ks-royal-blue);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}::selection{background:rgba(29,78,137,.12)}.topnav{background:var(--ks-bg);border-bottom:1px solid var(--ks-rule);position:-webkit-sticky;position:sticky;top:0;z-index:50}.topnav-inner{max-width:1100px;margin:0 auto;padding:0 32px;height:56px;gap:28px}.topnav-brand,.topnav-inner{display:flex;align-items:center}.topnav-brand{gap:10px;color:var(--ks-text)}.topnav-brand:hover{text-decoration:none}.topnav-logo{width:28px;height:28px;object-fit:contain}.topnav-wordmark{font-family:var(--font-serif);font-size:16px;font-weight:500;letter-spacing:.06em}.topnav-links{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0;flex:1 1}.topnav-links summary,.topnav-links>li>a{display:inline-flex;align-items:center;padding:6px 12px;border-radius:var(--radius-sm);color:var(--ks-text-muted);font-size:14px;font-weight:500;cursor:pointer;list-style:none}.topnav-links summary:hover,.topnav-links>li>a:hover{background:var(--ks-bg-hover);color:var(--ks-text);text-decoration:none}.topnav-links summary::-webkit-details-marker{display:none}.topnav-links summary::marker{content:""}.topnav-links summary:after{content:"";width:6px;height:6px;margin-left:8px;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(45deg) translateY(-2px);opacity:.6}.topnav-dropdown{position:relative}.topnav-dropdown details[open] summary{background:var(--ks-bg-hover);color:var(--ks-text)}.topnav-dropdown-panel{position:absolute;top:calc(100% + 4px);left:0;min-width:280px;background:var(--ks-bg);border:1px solid var(--ks-rule);border-radius:var(--radius);box-shadow:0 4px 16px rgba(0,0,0,.04);padding:6px}.topnav-dropdown-group{padding:4px 2px}.topnav-dropdown-group+.topnav-dropdown-group{border-top:1px solid var(--ks-rule);margin-top:4px;padding-top:8px}.topnav-dropdown-heading{font-size:11px;font-weight:500;color:var(--ks-text-subtle);padding:4px 10px 6px}.topnav-dropdown-panel a{display:block;padding:7px 10px;border-radius:var(--radius-sm);color:var(--ks-text);font-size:14px}.topnav-dropdown-panel a:hover{background:var(--ks-bg-hover);text-decoration:none}.topnav-user{margin-left:auto}.user-menu{position:relative}.user-menu summary{list-style:none;cursor:pointer;display:inline-flex}.user-menu summary::-webkit-details-marker{display:none}.user-menu summary::marker{content:""}.avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--ks-bg-hover);color:var(--ks-text);font-size:12px;font-weight:500;border:1px solid var(--ks-rule-strong)}.user-menu summary:hover .avatar{background:var(--ks-rule)}.user-menu-panel{position:absolute;top:calc(100% + 6px);right:0;min-width:240px;background:var(--ks-bg);border:1px solid var(--ks-rule);border-radius:var(--radius);box-shadow:0 4px 16px rgba(0,0,0,.04);padding:14px}.user-menu-identity{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--ks-rule)}.user-menu-name{font-size:14px;font-weight:500;color:var(--ks-text)}.user-menu-email{font-size:12px;color:var(--ks-text-muted);margin-top:2px}.role-badge{display:inline-block;margin-top:8px;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:500;text-transform:lowercase;letter-spacing:0}.role-admin{background:rgba(212,175,55,.15);color:#8a6d11}.role-teacher{background:var(--ks-bg-hover);color:var(--ks-text-muted)}.user-menu-signout{width:100%;background:none;border:1px solid var(--ks-rule-strong);border-radius:var(--radius-sm);padding:7px 12px;font-size:13px;font-weight:500;color:var(--ks-text);cursor:pointer;font-family:inherit}.user-menu-signout:hover{background:var(--ks-bg-hover)}.app-shell{max-width:1100px;margin:0 auto;padding:56px 32px 96px}.dashboard{display:grid;grid-gap:48px;gap:48px}.dashboard-greeting{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:8px}.dashboard-greeting h1{font-size:32px;font-weight:500;margin:0;color:var(--ks-royal-blue)}.dashboard-meta{display:flex;align-items:center;gap:14px;margin-top:10px;flex-wrap:wrap}.term-chip{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;background:rgba(215,191,230,.35);color:#5b3f7a;font-size:13px;font-weight:500}.dashboard-date{font-size:14px;color:var(--ks-text-muted)}.section-label{font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--ks-text-muted);margin:0 0 16px;letter-spacing:0;text-transform:none}.admin-label:after{content:""}.announcements{background:rgba(255,201,60,.1);border:1px solid rgba(212,175,55,.3);border-radius:var(--radius);padding:16px 18px}.announcements ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.announcements li{font-size:14px;color:var(--ks-text)}.announcement-dot{color:var(--ks-mustard);margin-right:10px}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:12px;gap:12px}.tile{--tile-accent:var(--ks-royal-blue);--tile-tint:rgba(29,78,137,0.06);display:block;position:relative;background:var(--ks-bg);border:1px solid var(--ks-rule);border-radius:var(--radius);color:var(--ks-text);padding:18px 20px 20px 22px;overflow:hidden;transition:background .15s ease,border-color .15s ease,transform .1s ease}.tile:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--tile-accent)}.tile:hover{background:var(--tile-tint);border-color:var(--tile-accent);text-decoration:none;transform:translateY(-1px)}.tile h3{font-family:var(--font-sans);font-size:15px;font-weight:600;margin:0 0 6px;color:var(--ks-text);letter-spacing:0}.tile p{margin:0;font-size:13px;color:var(--ks-text-muted);line-height:1.5}.tile-accent-royal-blue{--tile-accent:#1D4E89;--tile-tint:rgba(29,78,137,0.06)}.tile-accent-mustard{--tile-accent:#D4AF37;--tile-tint:rgba(212,175,55,0.10)}.tile-accent-music{--tile-accent:#FFC93C;--tile-tint:rgba(255,201,60,0.12)}.tile-accent-choir{--tile-accent:#F2B5C9;--tile-tint:rgba(242,181,201,0.18)}.tile-accent-stem{--tile-accent:#3FBFA6;--tile-tint:rgba(63,191,166,0.10)}.tile-accent-playgroup{--tile-accent:#D7BFE6;--tile-tint:rgba(215,191,230,0.20)}.tile-accent-books{--tile-accent:#A38BA4;--tile-tint:rgba(163,139,164,0.12)}.link-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:4px;gap:4px}.link-list li{font-size:14px;padding:8px 0;border-bottom:1px solid var(--ks-rule)}.link-list li:last-child{border-bottom:none}.link-list a{color:var(--ks-text);font-weight:500}.link-list a:hover{color:var(--ks-royal-blue);text-decoration:none}.link-list-desc{color:var(--ks-text-muted);font-weight:400}.admin-section{padding-top:8px}.page{max-width:720px;margin:0 auto}.card{background:var(--ks-bg);padding:0}.card h2{font-size:24px;font-weight:500;margin:0 0 8px}.card .lede{font-size:15px;margin:0 0 32px}.card .lede,.user-strip{color:var(--ks-text-muted)}.user-strip{font-size:13px;margin:0 0 16px}.form{grid-gap:20px;gap:20px}.form,.row{display:grid}.row{grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media (max-width:540px){.row{grid-template-columns:1fr}}label{display:block;font-size:13px;font-weight:500;color:var(--ks-text);margin-bottom:6px}label .req{color:var(--ks-error);margin-left:2px}input,select,textarea{width:100%;font-size:14px;font-family:inherit;padding:9px 12px;border:1px solid var(--ks-rule-strong);border-radius:var(--radius-sm);background:var(--ks-bg);color:var(--ks-text);transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ks-royal-blue);box-shadow:0 0 0 3px rgba(29,78,137,.12)}button[type=submit]{margin-top:8px;background:var(--ks-text);color:#fff;font-weight:500;font-size:14px;padding:10px 18px;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease;font-family:inherit;justify-self:start}button[type=submit]:hover{background:#000}button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.msg{margin-top:16px;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;border:1px solid}.msg.success{background:#f0fdf4;color:var(--ks-success);border-color:#bbf7d0}.msg.error{background:#fef2f2;color:var(--ks-error);border-color:#fecaca}.footer-note{margin-top:24px;font-size:12px;color:var(--ks-text-subtle)}.breadcrumb{font-size:13px;margin-bottom:24px}.breadcrumb,.breadcrumb a{color:var(--ks-text-muted)}.breadcrumb a:hover{text-decoration:none}.breadcrumb a:hover,.breadcrumb-current{color:var(--ks-text)}.placeholder-note{margin-top:24px;padding:16px 18px;background:var(--ks-bg-soft);border:1px solid var(--ks-rule);border-radius:var(--radius);font-size:14px;color:var(--ks-text-muted)}.placeholder-note strong{color:var(--ks-text);font-weight:500}.resource-header{margin-bottom:36px}.resource-header h1{font-size:32px;font-weight:500;color:var(--ks-royal-blue);margin:0 0 8px;letter-spacing:-.01em}.resource-header .lede{font-size:16px;color:var(--ks-text-muted);margin:0;line-height:1.55}.resource-prose{font-size:16px;line-height:1.7;color:var(--ks-text);max-width:68ch}.resource-prose>*+*{margin-top:1.1em}.resource-prose h1{font-size:26px;color:var(--ks-royal-blue);margin-top:2em;letter-spacing:-.01em}.resource-prose h1,.resource-prose h2{font-family:var(--font-serif);font-weight:500}.resource-prose h2{font-size:22px;color:var(--ks-text);margin-top:1.6em}.resource-prose h3{font-family:var(--font-serif);font-size:18px;font-weight:600;color:var(--ks-text);margin-top:1.4em}.resource-prose h1:first-child,.resource-prose h2:first-child,.resource-prose h3:first-child{margin-top:0}.resource-prose p{margin:0}.resource-prose strong{font-weight:600;color:var(--ks-text)}.resource-prose em{font-style:italic}.resource-prose a{color:var(--ks-royal-blue)}.resource-prose ol,.resource-prose ul{padding-left:1.4em;margin:0}.resource-prose li{margin-bottom:.4em}.resource-prose li::marker{color:var(--ks-text-subtle)}.resource-prose blockquote{margin:1.4em 0;padding:.4em 0 .4em 1.2em;border-left:3px solid var(--ks-mustard);color:var(--ks-text-muted);font-style:italic;font-family:var(--font-serif);font-size:17px}.resource-prose hr{border:0;border-top:1px solid var(--ks-rule);margin:2.2em 0}.resource-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--ks-bg-hover);padding:1px 5px;border-radius:4px}.resource-prose table{width:100%;border-collapse:collapse;font-size:14px;margin:1.4em 0}.resource-prose td,.resource-prose th{border:1px solid var(--ks-rule);padding:8px 12px;text-align:left;vertical-align:top}.resource-prose th{background:var(--ks-bg-soft);font-weight:600}.wizard{background:var(--ks-bg);border:1px solid var(--ks-rule);border-radius:var(--radius-lg);padding:28px 32px;margin-top:8px}.wizard-progress{height:4px;background:var(--ks-rule);border-radius:999px;overflow:hidden}.wizard-progress-bar{height:100%;background:var(--ks-royal-blue);transition:width .25s ease}.wizard-step-meta{margin:14px 0 24px;font-size:12px;color:var(--ks-text-muted)}.wizard-step h2{font-size:24px;font-weight:500;color:var(--ks-royal-blue);margin:0 0 8px}.wizard-step .lede{font-size:15px;color:var(--ks-text-muted);margin:0 0 24px;line-height:1.55}.wizard-step textarea{font-family:inherit;resize:vertical;min-height:84px}.wizard-controls{display:flex;justify-content:space-between;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--ks-rule)}.btn-primary,.btn-secondary{font-family:inherit;font-size:14px;font-weight:500;padding:9px 18px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;display:inline-flex;align-items:center;transition:background .12s ease,border-color .12s ease;text-decoration:none}.btn-primary{background:var(--ks-royal-blue);color:#fff}.btn-primary:hover{background:var(--ks-royal-blue-hover);text-decoration:none}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#fff;color:var(--ks-text);border-color:var(--ks-rule-strong)}.btn-secondary:hover{background:var(--ks-bg-hover)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-primary.as-link,.btn-secondary.as-link{text-decoration:none}.guidance-list{margin:0 0 24px;padding-left:20px}.guidance-list li{margin-bottom:8px;color:var(--ks-text);line-height:1.55}.guidance-list li::marker{color:var(--ks-mustard);font-weight:600}.guide-box{margin:0 0 18px;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--ks-rule);font-size:14px;line-height:1.6}.guide-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.guide-body ul{margin:0;padding-left:18px}.guide-body ul li{margin-bottom:4px;color:var(--ks-text)}.guide-body ul li:last-child{margin-bottom:0}.guide-body p{color:var(--ks-text)}.guide-engage{background:rgba(63,191,166,.08);border-color:rgba(63,191,166,.3)}.guide-engage .guide-title{color:#0f6e5b}.guide-avoid{background:rgba(242,181,201,.18);border-color:rgba(242,181,201,.55)}.guide-avoid .guide-title{color:#9b3a55}.guide-example{background:rgba(215,191,230,.22);border-color:rgba(215,191,230,.55);font-style:italic;font-family:var(--font-serif);font-size:15px}.guide-example .guide-title{color:#5b3f7a;font-family:var(--font-sans);font-style:normal}.obs-options{display:grid;grid-gap:10px;gap:10px;margin-bottom:20px}.obs-option{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--ks-rule-strong);border-radius:var(--radius);cursor:pointer;font-size:14px;transition:background .12s ease,border-color .12s ease}.obs-option:hover{background:var(--ks-bg-soft)}.obs-option.is-checked{background:rgba(63,191,166,.08);border-color:var(--ks-stem)}.obs-option input{width:auto;margin:0;accent-color:var(--ks-stem)}.obs-note label{font-weight:500;font-size:13px}.decision-options{display:grid;grid-gap:10px;gap:10px;margin-bottom:8px}.decision-option{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--ks-rule-strong);border-radius:var(--radius);cursor:pointer;transition:background .12s ease,border-color .12s ease}.decision-option:hover{background:var(--ks-bg-soft)}.decision-option.is-checked{background:rgba(29,78,137,.05);border-color:var(--ks-royal-blue)}.decision-option input{margin-top:4px;width:auto;accent-color:var(--ks-royal-blue)}.decision-label{font-size:14px;font-weight:600;color:var(--ks-text)}.decision-desc{font-size:13px;color:var(--ks-text-muted);margin-top:2px;line-height:1.5}.actions-row{display:flex;justify-content:flex-end;margin-bottom:16px}.data-table{width:100%;border-collapse:collapse;font-size:14px;background:var(--ks-bg);border:1px solid var(--ks-rule);border-radius:var(--radius);overflow:hidden}.data-table td,.data-table th{padding:10px 14px;border-bottom:1px solid var(--ks-rule);text-align:left;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover,.data-table th{background:var(--ks-bg-soft)}.data-table th{font-weight:500;font-size:12px}.data-table td.muted,.data-table th{color:var(--ks-text-muted)}.data-table code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--ks-bg-hover);padding:1px 5px;border-radius:3px}.eval-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--ks-rule)}.eval-section:first-of-type{border-top:none;padding-top:0}.eval-section h2{font-size:18px;font-weight:500;margin:0 0 14px;color:var(--ks-text)}.kv{display:grid;grid-template-columns:180px 1fr;grid-gap:6px 14px;gap:6px 14px;margin:0;font-size:14px}.kv dt{color:var(--ks-text-muted);font-weight:500}.kv dd{margin:0;color:var(--ks-text)}.eval-obs-list{display:grid;grid-gap:16px;gap:16px}.eval-obs{border:1px solid var(--ks-rule);border-left:3px solid var(--ks-stem);border-radius:var(--radius);padding:12px 14px;background:var(--ks-bg)}.eval-obs h3{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--ks-text-muted);margin:0 0 4px}.eval-obs-tick{font-size:15px;color:var(--ks-text);margin:0}.eval-obs-note{margin:6px 0 0;font-size:14px;color:var(--ks-text-muted);font-style:italic}.eval-note{font-size:15px;line-height:1.7;color:var(--ks-text);margin:0;padding:14px 16px;background:var(--ks-bg-soft);border-radius:var(--radius);border-left:3px solid var(--ks-mustard)}.eval-decision{font-size:18px;font-weight:600;color:var(--ks-royal-blue);margin:0}.signin-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:var(--ks-bg)}.signin-card{width:100%;max-width:380px;text-align:center}.signin-crest{width:120px;height:120px;object-fit:contain;margin:0 auto 24px;display:block}.signin-wordmark{font-family:var(--font-serif);font-size:26px;font-weight:500;color:var(--ks-text);letter-spacing:.1em;margin:0;line-height:1.1}.signin-subtitle{font-family:var(--font-sans);font-size:13px;font-weight:400;color:var(--ks-text-muted);letter-spacing:0;text-transform:none;margin:6px 0 32px}.signin-tagline{font-family:var(--font-serif);font-style:italic;font-size:15px;color:var(--ks-text-muted);margin:0 0 36px;line-height:1.55}.ms-button{display:inline-flex;align-items:center;gap:10px;width:100%;justify-content:center;background:#fff;color:var(--ks-text);font-family:var(--font-sans);font-size:14px;font-weight:500;padding:11px 18px;border:1px solid var(--ks-rule-strong);border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease,border-color .12s ease}.ms-button:hover{background:var(--ks-bg-soft);border-color:var(--ks-text-muted)}.ms-button svg{flex-shrink:0}.signin-form{margin:0 0 32px}.signin-trust{font-size:12px;color:var(--ks-text-muted);line-height:1.6;margin:0 0 40px}.signin-trust a{color:var(--ks-text);border-bottom:1px solid var(--ks-rule-strong)}.signin-trust a:hover{border-color:var(--ks-text);text-decoration:none}.signin-footer{border-top:1px solid var(--ks-rule);padding-top:20px;font-size:11px;color:var(--ks-text-subtle);line-height:1.6}