@font-face {
  font-family: "JoyToy Kids";
  src: url("PFKidsAge10.ttf") format("truetype");
  font-display: swap;
  font-style: normal;
  font-weight: 500;
}

:root {
  --ink: #201812;
  --paper: #fffdf4;
  --cream: #fff4bf;
  --yellow: #ffd400;
  --red: #ef3340;
  --green: #00a651;
  --blue: #1456d9;
  --sky: #dff2ff;
  --line: #d9d1bd;
  --muted: #685f56;
  --shadow: 0 18px 50px rgba(32, 24, 18, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Trebuchet MS", Arial, sans-serif; font-size: 16px; line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
img { max-width: 100%; }
.joytoy-logo { width: 126px; height: auto; object-fit: contain; }
.eyebrow, .section-label { margin: 0 0 1rem; font-size: .76rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow span { display: inline-block; width: .72rem; height: .72rem; margin-right: .45rem; border: 2px solid var(--ink); border-radius: 50%; background: var(--yellow); vertical-align: -.06rem; }
.button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid var(--ink); border-radius: 999px; padding: .75rem 1.15rem; font-weight: 900; text-decoration: none; cursor: pointer; }
.button.dark { color: #fff; background: var(--ink); }
.button.dark:hover { background: var(--blue); }
.button.light { background: #fff; }
.button.light:hover { background: var(--yellow); }
.button.green { color: #fff; background: var(--green); }
.button.danger { color: #fff; background: var(--red); }
.button.full { width: 100%; }
.button:disabled { opacity: .45; cursor: not-allowed; }
.flash, .form-message { margin-bottom: 1rem; padding: 1rem 1.15rem; border: 2px solid var(--ink); border-radius: 14px; background: #fff; }
.flash.success { border-left: 8px solid var(--green); }
.form-message.error { border-left: 8px solid var(--red); background: #fff0f1; }
.form-message.notice { border-left: 8px solid var(--blue); background: var(--sky); }
.form-message ul { margin: .5rem 0 0; }

/* Public experience */
.public-header { position: sticky; top: 0; z-index: 50; min-height: 78px; padding: .65rem clamp(1rem, 4vw, 4.5rem); display: grid; grid-template-columns: 1fr auto auto auto; gap: 1.4rem; align-items: center; border-bottom: 1px solid var(--line); background: rgba(255,253,244,.96); backdrop-filter: blur(12px); }
.education-brand { display: flex; align-items: center; gap: .8rem; text-decoration: none; }
.education-brand .joytoy-logo { width: 104px; }
.education-brand span strong, .education-brand span small { display: block; }
.education-brand span strong { font-size: 1.15rem; letter-spacing: .08em; }
.education-brand span small { font-size: .58rem; font-weight: 900; letter-spacing: .1em; }
.public-header nav { display: flex; align-items: center; gap: 1.5rem; }
.public-header nav a { padding-block: .45rem; border-bottom: 2px solid transparent; font-size: .84rem; font-weight: 900; text-decoration: none; }
.public-header nav a:hover, .public-header nav a.active { border-color: var(--ink); }
.header-site { color: var(--blue); font-size: .82rem; font-weight: 900; text-decoration: none; }
.header-admin { padding: .62rem .95rem; border: 2px solid var(--ink); border-radius: 999px; color: var(--ink); background: #fff; font-size: .8rem; font-weight: 900; text-decoration: none; }
.header-login { padding: .7rem 1.1rem; border-radius: 999px; color: #fff; background: var(--ink); font-weight: 900; text-decoration: none; }
.education-levels { padding: clamp(3rem,6vw,6rem) clamp(1rem,4vw,4.5rem); border-bottom: 3px solid var(--ink); background: var(--yellow); }
.levels-intro { max-width: 1040px; margin-bottom: 2.4rem; }
.levels-intro h1 { margin: 0; font-size: clamp(3rem,6vw,6.2rem); line-height: .9; letter-spacing: -.06em; }
.levels-intro h1 em { color: var(--blue); font-style: normal; }
.levels-intro > p:last-child { max-width: 760px; font-size: 1.12rem; }
.level-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.level-card { min-height: 440px; padding: 1.4rem; position: relative; display: flex; flex-direction: column; border: 3px solid var(--ink); border-radius: 24px; background: #fff; box-shadow: 7px 7px 0 var(--ink); }
.level-card:nth-child(2) { background: var(--sky); }
.level-card:nth-child(3) { color: #fff; background: var(--blue); }
.level-number { position: absolute; top: 1.1rem; right: 1.1rem; width: 42px; height: 42px; display: grid; place-items: center; border: 2px solid currentColor; border-radius: 50%; font-weight: 900; }
.level-icon { width: 112px; height: 112px; margin-bottom: 1.1rem; display: grid; place-items: center; border: 3px solid currentColor; border-radius: 28px; background: var(--yellow); color: var(--ink); transform: rotate(-2deg); }
.level-card:nth-child(2) .level-icon { background: #fff; transform: rotate(2deg); }
.level-card:nth-child(3) .level-icon { background: var(--yellow); }
.level-icon svg { width: 82px; height: 82px; fill: none; stroke: currentColor; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.level-card > span { font-size: .7rem; font-weight: 900; letter-spacing: .12em; }
.level-card h2 { margin: .7rem 0; font-size: clamp(1.7rem,2.2vw,2.35rem); line-height: 1; }
.level-card p { margin: 0 0 1.5rem; }
.level-card a { margin-top: auto; padding-top: 1rem; border-top: 2px solid currentColor; font-size: .82rem; font-weight: 900; text-decoration: none; }
.school-hero { min-height: calc(100vh - 78px); padding: clamp(2.5rem,6vw,6rem) clamp(1rem,4vw,4.5rem); display: grid; grid-template-columns: 1.05fr .75fr; gap: clamp(2rem,6vw,6rem); align-items: center; background: radial-gradient(circle at 5% 5%,rgba(255,212,0,.36),transparent 27%),linear-gradient(180deg,#fffdf4,#fff8e8); }
.hero-copy h1, .parent-title h1, .children-heading h1, .registration-heading h1 { margin: 0; font-size: clamp(3.4rem,7vw,7rem); line-height: .86; letter-spacing: -.065em; }
.hero-copy h1 em, .parent-title h1 em, .children-heading h1 em, .registration-heading h1 em { color: var(--blue); font-style: normal; }
.lead { max-width: 730px; font-size: clamp(1.05rem,1.5vw,1.35rem); }
.hero-actions { margin: 2rem 0; display: flex; flex-wrap: wrap; gap: .7rem; }
.trust-row { display: flex; flex-wrap: wrap; gap: 1rem; font-size: .82rem; font-weight: 800; }
.members-card { overflow: hidden; border: 3px solid var(--ink); border-radius: 30px; background: #fff; box-shadow: 12px 12px 0 var(--ink); transform: rotate(1deg); }
.members-card-head { padding: .9rem 1.1rem; display: flex; justify-content: space-between; gap: 1rem; border-bottom: 2px solid var(--ink); background: var(--yellow); font-size: .72rem; font-weight: 900; }
.members-card-head strong { padding: .25rem .5rem; border-radius: 999px; color: #fff; background: var(--red); }
.members-preview { padding: 1.4rem; }
.preview-school { display: flex; align-items: center; gap: .8rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.sample-logo { width: 48px; height: 48px; flex: 0 0 auto; display: grid; place-items: center; border: 2px solid var(--ink); border-radius: 14px; background: var(--sky); font-weight: 900; }
.preview-school small, .preview-school strong { display: block; }
.preview-school small { font-size: .66rem; font-weight: 900; letter-spacing: .1em; }
.preview-grid { margin-top: 1.2rem; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.preview-grid span { min-height: 110px; padding: 1rem; display: flex; align-items: end; border: 2px solid var(--ink); border-radius: 18px; font-weight: 900; }
.preview-grid .yellow { background: var(--yellow); }.preview-grid .blue { color:#fff;background:var(--blue) }.preview-grid .green { color:#fff;background:var(--green) }.preview-grid .red { color:#fff;background:var(--red) }
.members-card footer { padding: .85rem 1.1rem; display: flex; justify-content: space-between; border-top: 2px solid var(--ink); font-size: .7rem; font-weight: 900; }
.how-members, .journey-section { padding: clamp(4rem,8vw,8rem) clamp(1rem,4vw,4.5rem); }
.how-members > h2 { max-width: 900px; margin: 0 0 2.5rem; font-size: clamp(2.6rem,5vw,5rem); line-height: .95; letter-spacing: -.055em; }
.steps { display: grid; grid-template-columns: repeat(3,1fr); border: 2px solid var(--ink); border-radius: 22px; overflow: hidden; }
.steps article { min-height: 260px; padding: 1.5rem; border-right: 2px solid var(--ink); }
.steps article:last-child { border-right: 0; }
.steps article:nth-child(1) { background: var(--yellow); }.steps article:nth-child(2) { background:var(--sky) }.steps article:nth-child(3) { color:#fff;background:var(--green) }
.steps span { font-size:.72rem;font-weight:900 }.steps h3 { margin-top:4rem;font-size:1.7rem }.steps p { max-width:320px }
.parent-presentation { padding: clamp(3rem,7vw,7rem) clamp(1rem,4vw,4.5rem); background: var(--sky); }
.parent-title { display:grid;grid-template-columns:1fr .7fr;gap:4rem;align-items:end }.parent-title .eyebrow { grid-column:1/-1 }.parent-title .lead { margin:0 }
.learning-outcomes { margin-top:3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem }
.learning-outcomes article { min-height:300px;padding:1.5rem;border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:6px 6px 0 var(--ink) }
.learning-outcomes article:nth-child(2){background:var(--yellow)}.learning-outcomes article:nth-child(3){color:#fff;background:var(--blue)}
.learning-outcomes span{font-size:.72rem;font-weight:900}.learning-outcomes h2{margin-top:5rem;font-size:2.2rem}.learning-outcomes p{font-size:1.05rem}
.journey-section{text-align:center}.journey{margin:2rem auto;display:flex;justify-content:center;align-items:center;gap:clamp(.7rem,3vw,3rem);font-size:clamp(1.5rem,4vw,4rem)}.journey i{font-style:normal;color:var(--red)}.journey-section>p:last-child{max-width:800px;margin:auto;font-size:1.1rem}
.children-library{padding:clamp(3rem,7vw,7rem) clamp(1rem,4vw,4.5rem);background:var(--yellow)}.children-heading{max-width:1050px}.children-heading p:last-child{max-width:760px;font-size:1.1rem}.grade-picker{margin:2rem 0;display:flex;gap:.8rem;align-items:center}.grade-picker label{font-weight:900}.grade-picker select{min-width:260px;padding:.75rem;border:2px solid var(--ink);border-radius:12px;background:#fff}
.public-lessons{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.public-lesson-card,.empty-card{min-height:250px;padding:1.4rem;border:3px solid var(--ink);border-radius:22px;background:#fff}.public-lesson-card>span{font-size:.72rem;font-weight:900;text-transform:uppercase}.public-lesson-card h2{font-size:1.7rem;line-height:1.1}.public-lesson-card small{display:block;color:var(--muted)}.public-lesson-card a{display:block;margin-top:1rem;font-weight:900}
.code-box{margin-top:1.2rem;padding:1.3rem;display:grid;grid-template-columns:1fr 220px auto;gap:1rem;align-items:center;border:3px solid var(--ink);border-radius:22px;background:var(--ink);color:#fff}.code-box span,.code-box strong{display:block}.code-box span{font-size:.7rem;letter-spacing:.1em}.code-box input{padding:.8rem;border:2px solid #fff;border-radius:12px;background:#fff;font-weight:900;text-transform:uppercase}.code-box button{padding:.8rem 1rem;border:2px solid #fff;border-radius:999px;background:var(--yellow);font-weight:900;cursor:pointer}
.public-footer{padding:1.8rem clamp(1rem,4vw,4.5rem);display:grid;grid-template-columns:1fr 1fr auto;gap:2rem;align-items:center;background:var(--ink);color:#fff}.public-footer>div{display:flex;align-items:center;gap:.8rem}.footer-logo{width:90px}.public-footer span{font-size:.7rem;font-weight:900}.public-footer p{margin:0}.public-footer a{font-weight:900}

/* Forms and authentication */
.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr .75fr}.auth-visual{padding:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:space-between;background:var(--yellow)}.auth-brand{display:flex;align-items:center;gap:1rem;text-decoration:none;font-weight:900;letter-spacing:.12em}.auth-visual h1{margin:0;font-size:clamp(3.4rem,6vw,6rem);line-height:.88;letter-spacing:-.06em}.auth-visual h1 em{color:var(--blue);font-style:normal}.auth-visual>div>p:last-child{max-width:650px;font-size:1.15rem}.auth-visual blockquote{margin:2rem 0 0;max-width:700px;padding-top:1.2rem;border-top:2px solid var(--ink);font-size:1.15rem;font-weight:900}.auth-panel{padding:2rem;display:grid;place-items:center}.auth-box{width:min(460px,100%)}.back-link{display:inline-block;margin-bottom:3rem;font-weight:900;text-decoration:none}.auth-box h2{margin:.3rem 0 1.5rem;font-size:2rem}.stack-form{display:grid;gap:1rem}.stack-form label,.panel-form>label,.registration-form label,.admin-editor label{display:grid;gap:.35rem;font-size:.82rem;font-weight:900}.stack-form input,.panel-form input,.panel-form select,.panel-form textarea,.registration-form input,.registration-form select,.registration-form textarea,.admin-editor input,.admin-editor select,.admin-editor textarea,.review-form input{width:100%;padding:.8rem;border:2px solid var(--ink);border-radius:11px;background:#fff}.auth-help{margin-top:1.5rem;padding-top:1rem;display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);font-size:.84rem}.auth-help a{font-weight:900}
.admin-auth-visual{color:#fff;background:var(--ink)}.admin-auth-visual h1 em{color:var(--yellow)}.admin-auth-visual .auth-brand,.admin-auth-visual blockquote{color:#fff}.admin-auth-visual blockquote{border-color:var(--yellow)}
.school-auth-visual{background:var(--sky)}.school-auth-visual h1 em{color:var(--green)}.teacher-auth-visual{background:#dff7e6}.teacher-auth-visual h1 em{color:var(--blue)}
.login-choice-page{background:var(--cream)}.login-choice-wrap{min-height:100vh;padding:clamp(1.2rem,4vw,4rem)}.login-choice-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.login-choice-header .back-link{margin:0}.login-choice-intro{max-width:850px;margin:clamp(3rem,7vw,7rem) 0 2rem}.login-choice-intro h1{margin:.35rem 0;font-size:clamp(3.7rem,8vw,7.4rem);line-height:.86;letter-spacing:-.065em}.login-choice-intro>p:last-child{font-size:1.1rem}.login-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.login-choice-card{min-height:420px;padding:1.5rem;display:flex;flex-direction:column;border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:7px 7px 0 var(--ink)}.login-choice-card>span{font-size:.7rem;font-weight:900;letter-spacing:.12em}.choice-icon{width:78px;height:78px;margin:2rem 0 1rem;display:grid;place-items:center;border:3px solid var(--ink);border-radius:22px;background:#fff;font-size:1.7rem;font-weight:900}.login-choice-card h2{margin:.2rem 0;font-size:clamp(2rem,3vw,3.4rem);letter-spacing:-.04em}.login-choice-card p{max-width:460px}.login-choice-card>a{margin-top:auto;padding-top:1.2rem;border-top:2px solid var(--ink);font-weight:900;text-decoration:none}.choice-admin{color:#fff;background:var(--ink);box-shadow:7px 7px 0 var(--yellow)}.choice-admin .choice-icon{color:var(--ink);background:var(--yellow)}.choice-admin>a{color:var(--yellow);border-color:#fff}.choice-school{background:var(--sky)}.choice-teacher{background:#dff7e6}.login-choice-footer{margin-top:2rem;padding:1.2rem;display:flex;justify-content:space-between;gap:1rem;border:2px solid var(--ink);border-radius:16px;background:var(--yellow);font-weight:900}.school-control-actions{margin-top:2rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.school-control-actions>a{min-height:220px;padding:1.4rem;display:flex;flex-direction:column;border:3px solid var(--ink);border-radius:20px;background:#fff;text-decoration:none;box-shadow:5px 5px 0 var(--ink)}.school-control-actions span{font-size:.72rem;font-weight:900;color:var(--blue)}.school-control-actions strong{margin-top:2rem;font-size:1.5rem}.school-control-actions small{margin-top:.5rem;color:var(--muted)}.school-control-actions b{margin-top:auto}
.registration-wrap{padding:clamp(3rem,7vw,7rem) clamp(1rem,7vw,9rem)}.registration-heading{max-width:1000px}.registration-heading>p:last-child{font-size:1.1rem}.registration-form{margin-top:2rem;display:grid;gap:1.2rem}.registration-form fieldset,.panel-form fieldset,.admin-editor fieldset{margin:0;padding:1.4rem;border:2px solid var(--ink);border-radius:20px;background:#fff}.registration-form legend,.panel-form legend,.admin-editor legend{padding:0 .5rem;font-weight:900}.registration-form legend span{display:inline-grid;width:30px;height:30px;place-items:center;border-radius:50%;background:var(--yellow);font-size:.7rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-grid .wide{grid-column:1/-1}.registration-form small{font-size:.68rem;color:var(--muted)}.grade-checks{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}.grade-checks label,.organization-checks label{position:relative}.grade-checks input,.organization-checks input{position:absolute;opacity:0;pointer-events:none}.grade-checks span,.organization-checks span{min-height:48px;padding:.65rem;display:flex;align-items:center;border:2px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.grade-checks input:checked+span,.organization-checks input:checked+span{border-color:var(--ink);background:var(--yellow);box-shadow:3px 3px 0 var(--ink)}.grade-checks.compact{grid-template-columns:repeat(3,1fr)}.registration-submit{padding:1rem 1.3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;border:2px solid var(--ink);border-radius:20px;background:var(--yellow)}.registration-submit p{margin:0;max-width:760px}.registration-success{max-width:760px;margin:5rem auto;padding:3rem;border:3px solid var(--ink);border-radius:26px;background:#fff;text-align:center;box-shadow:10px 10px 0 var(--green)}.registration-success>span{display:grid;width:76px;height:76px;margin:auto;place-items:center;border:3px solid var(--ink);border-radius:50%;background:var(--green);color:#fff;font-size:2.5rem;font-weight:900}.registration-success h1{font-size:3rem;line-height:1}

/* Member dashboard */
.app-shell{min-height:100vh;display:grid;grid-template-columns:270px minmax(0,1fr)}.app-sidebar{position:sticky;top:0;height:100vh;padding:1.2rem;display:flex;flex-direction:column;border-right:2px solid var(--ink);background:var(--ink);color:#fff}.dual-brand{min-height:80px;display:grid;grid-template-columns:1fr auto 62px;gap:.5rem;align-items:center}.sidebar-joytoy-logo{width:105px}.brand-divider{color:var(--yellow);font-size:1.5rem;font-weight:900}.school-logo{width:62px;height:62px;display:grid;place-items:center;border:2px solid #fff;border-radius:15px;background:#fff;overflow:hidden}.school-logo img{width:100%;height:100%;object-fit:contain}.school-initials{color:var(--ink);font-weight:900}.school-name{padding:1rem 0;border-block:1px solid #524b45}.school-name small,.school-name strong{display:block}.school-name small{color:var(--yellow);font-size:.62rem;letter-spacing:.12em}.school-name strong{margin-top:.25rem;font-size:.95rem}.app-nav{padding-top:1.2rem;display:grid;gap:.35rem}.app-nav a{padding:.7rem .8rem;display:flex;gap:.7rem;align-items:center;border-radius:10px;color:#ddd;text-decoration:none;font-size:.87rem;font-weight:900}.app-nav a span{width:8px;height:8px;border:1px solid currentColor;border-radius:50%}.app-nav a:hover,.app-nav a.active{color:var(--ink);background:var(--yellow)}.sidebar-footer{margin-top:auto;padding-top:1rem;border-top:1px solid #524b45}.sidebar-footer>a{display:block;margin-top:.8rem;color:#ccc;font-size:.75rem}.user-mini{display:flex;align-items:center;gap:.65rem}.user-mini>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--blue);font-size:.72rem;font-weight:900}.user-mini strong,.user-mini small{display:block}.user-mini strong{font-size:.78rem}.user-mini small{color:#bbb;font-size:.66rem}.app-main{min-width:0}.app-topbar{min-height:70px;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff}.app-topbar span{font-size:.7rem;font-weight:900;letter-spacing:.12em}.app-topbar a{font-size:.78rem;font-weight:900}.mobile-menu{display:none;border:0;background:transparent;font-size:1.5rem}.app-content{padding:clamp(1.5rem,4vw,4rem)}.app-page-heading,.welcome-row{margin-bottom:2rem;display:flex;align-items:end;justify-content:space-between;gap:2rem}.app-page-heading h1,.welcome-row h1{margin:.2rem 0;font-size:clamp(2.8rem,5vw,5rem);line-height:.95;letter-spacing:-.05em}.app-page-heading p,.welcome-row p{max-width:720px;margin:.5rem 0}.result-count{min-width:170px;padding:1rem;border:2px solid var(--ink);border-radius:17px;background:var(--yellow);text-align:center}.result-count strong,.result-count span{display:block}.result-count strong{font-size:2.5rem;line-height:1}.result-count span{font-size:.72rem;font-weight:900}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.stat-grid article{min-height:170px;padding:1.2rem;display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:18px;background:#fff}.stat-grid article:nth-child(1){background:var(--yellow)}.stat-grid article.attention{color:#fff;background:var(--blue)}.stat-grid span{font-size:.76rem;font-weight:900}.stat-grid strong{margin:auto 0;font-size:3.4rem;line-height:1}.stat-grid a{font-size:.76rem;font-weight:900}.dashboard-section,.classroom-admin-section{margin-top:2.5rem}.dashboard-section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem}.dashboard-section-head h2{margin:.2rem 0;font-size:2rem}.dashboard-section-head>a{font-weight:900}.featured-member-lessons{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.compact-lesson{min-height:190px;padding:1.2rem;position:relative;display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:18px;background:#fff;text-decoration:none;box-shadow:4px 4px 0 var(--ink)}.compact-lesson:nth-child(2){background:var(--sky)}.compact-lesson:nth-child(3){background:#dff7e6}.compact-lesson>span{font-size:.7rem;font-weight:900;text-transform:uppercase}.compact-lesson strong{margin-top:2.8rem;font-size:1.3rem}.compact-lesson small{margin-top:.35rem}.compact-lesson b{position:absolute;right:1rem;bottom:1rem}.classroom-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.classroom-row article{padding:1rem;border:2px solid var(--ink);border-radius:16px;background:#fff}.classroom-row span,.classroom-row strong,.classroom-row small,.classroom-row b{display:block}.classroom-row span{font-size:.68rem;font-weight:900;color:var(--blue)}.classroom-row strong{font-size:1.2rem}.classroom-row small{margin-top:.3rem}.classroom-row b{margin-top:.8rem;font-family:monospace;letter-spacing:.12em}.empty-inline{padding:1rem;border:2px dashed var(--line);border-radius:14px;color:var(--muted)}
.profile-form{display:grid;gap:1rem}.profile-card{padding:1.4rem;border:2px solid var(--ink);border-radius:20px;background:#fff}.profile-card small,.field-help{font-size:.72rem;color:var(--muted)}.profile-save{position:sticky;bottom:1rem;display:flex;justify-content:flex-end;padding:1rem;border:2px solid var(--ink);border-radius:18px;background:rgba(255,212,0,.95);box-shadow:5px 5px 0 var(--ink)}.teacher-edit-layout{margin-top:1.2rem;display:grid;grid-template-columns:1fr;gap:1rem}.teacher-edit-form{padding:1.4rem;display:grid;gap:1rem;border:3px solid var(--ink);border-radius:20px;background:#fff;box-shadow:6px 6px 0 var(--ink)}.table-actions{display:flex;gap:.7rem;align-items:center}.table-actions form{margin:0}
.lesson-filters{margin-bottom:1.4rem;padding:1rem;display:flex;align-items:end;gap:.8rem;border:2px solid var(--ink);border-radius:17px;background:#fff}.lesson-filters label{display:grid;gap:.25rem;font-size:.72rem;font-weight:900}.lesson-filters select{min-width:180px;padding:.65rem;border:1px solid var(--ink);border-radius:9px}.lesson-filters button{padding:.7rem 1rem;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);font-weight:900;cursor:pointer}.lesson-filters a{padding:.65rem;font-size:.8rem;font-weight:900}.member-lesson-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.member-lesson-card{overflow:hidden;border:2px solid var(--ink);border-radius:20px;background:#fff}.lesson-card-top{padding:.7rem 1rem;display:flex;justify-content:space-between;border-bottom:1px solid var(--ink);font-size:.7rem;font-weight:900;text-transform:uppercase}.lesson-card-visual{height:130px;display:grid;place-items:center;background:var(--yellow)}.type-quiz .lesson-card-visual{color:#fff;background:var(--green)}.type-printable .lesson-card-visual{color:#fff;background:var(--red)}.type-cards .lesson-card-visual{background:var(--sky)}.type-video .lesson-card-visual{color:#fff;background:var(--blue)}.lesson-card-visual b{font-size:4rem}.lesson-card-copy{padding:1rem}.lesson-card-copy small{color:var(--muted)}.lesson-card-copy h2{margin:.4rem 0;font-size:1.45rem;line-height:1.1}.lesson-card-copy p{font-size:.9rem}.lesson-card-copy a{display:block;padding-top:.7rem;border-top:1px solid var(--line);font-weight:900}.empty-state{grid-column:1/-1;padding:3rem;border:2px dashed var(--line);border-radius:20px;text-align:center}.empty-state>span{font-size:3rem}.back-to-library{display:inline-block;margin-bottom:1rem;font-weight:900}.lesson-reader{overflow:hidden;border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:8px 8px 0 var(--ink)}.lesson-reader>header{padding:clamp(1.5rem,4vw,4rem);display:flex;justify-content:space-between;gap:2rem;background:var(--yellow)}.lesson-reader>header span{font-size:.72rem;font-weight:900;text-transform:uppercase}.lesson-reader>header h1{margin:.4rem 0;font-size:clamp(2.5rem,5vw,5rem);line-height:.95}.lesson-time{width:100px;height:100px;flex:0 0 auto;display:grid;place-items:center;border:3px solid var(--ink);border-radius:50%;background:#fff;text-align:center}.lesson-time strong,.lesson-time span{display:block}.lesson-time strong{font-size:2.2rem;line-height:1}.lesson-reader-body{padding:clamp(1.5rem,4vw,4rem);font-size:1.06rem}.lesson-reader>.button{margin:0 2rem 2rem}.lesson-reader>footer{padding:1rem 2rem;border-top:2px solid var(--ink);background:var(--sky);text-align:right;font-weight:900}
.data-table-wrap{overflow-x:auto;border:2px solid var(--ink);border-radius:18px;background:#fff}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.9rem 1rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.data-table th{background:var(--cream);font-size:.7rem;text-transform:uppercase}.data-table td strong,.data-table td small{display:block}.data-table td small{font-size:.72rem;color:var(--muted)}.status{display:inline-block;padding:.3rem .5rem;border-radius:999px;background:#e8e3db;font-size:.65rem;font-weight:900;text-transform:uppercase}.status.active,.status.published{color:#fff;background:var(--green)}.status.pending,.status.draft{background:var(--yellow)}.status.suspended,.status.closed,.status.archived{color:#fff;background:var(--red)}.table-action{border:0;background:transparent;font-size:.75rem;font-weight:900;text-decoration:underline;cursor:pointer}.table-empty{text-align:center!important;color:var(--muted)}
.side-panel{width:min(620px,94vw);max-height:94vh;margin:0 0 0 auto;padding:0;border:0;border-left:3px solid var(--ink);background:var(--paper)}.side-panel::backdrop{background:rgba(32,24,18,.7)}.panel-close{position:sticky;top:0;z-index:2;text-align:right}.panel-close button{width:46px;height:46px;border:0;border-left:2px solid var(--ink);border-bottom:2px solid var(--ink);background:#fff;font-size:1.6rem;cursor:pointer}.panel-form{padding:0 2rem 2rem;display:grid;gap:1rem}.panel-form h2{margin:0 0 1rem;font-size:2.2rem}.organization-checks{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.assignment-filters{margin-bottom:1.2rem;padding:1rem;display:flex;align-items:end;gap:.8rem;border:2px solid var(--ink);border-radius:17px;background:#fff}.assignment-filters label{display:grid;gap:.3rem;min-width:190px;font-size:.7rem;font-weight:900}.assignment-filters select{width:100%;padding:.68rem;border:1px solid var(--ink);border-radius:9px;background:#fff;font-weight:800}.submission-filters .submission-assignment-filter{flex:1;min-width:280px}.assignment-filter-count{margin-left:auto;padding:.65rem .9rem;border-radius:999px;background:var(--yellow);font-size:.78rem;font-weight:800;white-space:nowrap}.assignment-filter-count strong{font-size:1rem}.assignment-filters>a{padding:.65rem;font-size:.76rem;font-weight:900}.assignment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.assignment-card{padding:1.2rem;border:2px solid var(--ink);border-radius:19px;background:#fff}.assignment-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.assignment-card h2{margin:1.3rem 0 .2rem}.assignment-card>p{margin:0}.assignment-code{margin:1.2rem 0;padding:1rem;border:2px solid var(--ink);border-radius:14px;background:var(--yellow);text-align:center}.assignment-code span,.assignment-code strong{display:block}.assignment-code span{font-size:.65rem;font-weight:900}.assignment-code strong{font-family:monospace;font-size:2rem;letter-spacing:.15em}.assignment-code button{border:0;background:transparent;font-size:.7rem;font-weight:900;text-decoration:underline;cursor:pointer}.assignment-card footer{display:flex;align-items:center;justify-content:space-between;padding-top:.8rem;border-top:1px solid var(--line);font-size:.75rem;font-weight:900}.assignment-card footer button{border:0;background:transparent;font-size:.75rem;font-weight:900;cursor:pointer}.assignment-responses{font-weight:900;text-decoration:none}.assignment-responses:hover{text-decoration:underline}.submission-list{display:grid;gap:.8rem}.submission-card{padding:1rem;display:grid;grid-template-columns:90px 1fr minmax(240px,.8fr);gap:1rem;align-items:center;border:2px solid var(--ink);border-radius:17px;background:#fff}.submission-card.reviewed{opacity:.72}.submission-score{width:76px;height:76px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--yellow);text-align:center}.submission-score strong,.submission-score span{display:block}.submission-score span{font-size:.6rem}.submission-card small{font-size:.7rem}.submission-card h2{margin:.2rem 0}.submission-card p{margin:0;font-size:.8rem}.review-form{display:flex;gap:.5rem}.review-form button{border:2px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;font-weight:900}

/* Child activity */
.activity-page{background:var(--yellow)}.activity-header{min-height:76px;padding:.6rem clamp(1rem,4vw,4rem);display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--ink);background:#fff}.activity-header>a{display:flex;align-items:center;gap:.8rem;text-decoration:none;font-weight:900;letter-spacing:.1em}.activity-header .joytoy-logo{width:100px}.activity-school{display:flex;align-items:center;gap:.7rem;font-weight:900}.activity-school img{width:44px;height:44px;object-fit:contain;border:1px solid var(--line);border-radius:9px}.activity-wrap{padding:clamp(2rem,6vw,6rem) clamp(1rem,8vw,10rem)}.code-entry{max-width:850px;margin:auto}.code-entry h1{margin:0;font-size:clamp(3rem,7vw,7rem);line-height:.88;letter-spacing:-.06em}.code-entry h1 em{color:var(--blue);font-style:normal}.code-entry form{margin-top:2rem;display:flex;gap:.7rem}.code-entry input{min-width:0;flex:1;padding:1rem;border:3px solid var(--ink);border-radius:14px;background:#fff;font-family:monospace;font-size:1.4rem;letter-spacing:.16em;text-transform:uppercase}.code-entry button{padding:1rem 1.4rem;border:3px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;font-weight:900}.activity-intro{max-width:900px}.activity-intro h1{margin:.3rem 0;font-size:clamp(2.8rem,6vw,6rem);line-height:.93}.student-quiz{max-width:980px;margin-top:2rem;display:grid;gap:1rem}.student-name{padding:1rem;display:grid;gap:.4rem;border:3px solid var(--ink);border-radius:17px;background:#fff;font-weight:900}.student-name input{padding:.8rem;border:2px solid var(--ink);border-radius:10px}.student-quiz fieldset{padding:1.3rem;border:3px solid var(--ink);border-radius:19px;background:#fff}.student-quiz legend{padding:0 .6rem;font-size:1.2rem;font-weight:900}.student-quiz legend span{display:inline-grid;width:34px;height:34px;margin-right:.6rem;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font-size:.75rem}.student-options{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.student-options label{position:relative}.student-options input{position:absolute;opacity:0}.student-options span{min-height:66px;padding:.8rem;display:flex;align-items:center;border:2px solid var(--ink);border-radius:12px;cursor:pointer}.student-options input:checked+span{background:var(--yellow);box-shadow:4px 4px 0 var(--ink)}.activity-result{max-width:760px;margin:auto;padding:3rem;border:3px solid var(--ink);border-radius:24px;background:#fff;text-align:center;box-shadow:10px 10px 0 var(--green)}.activity-result>span{display:grid;width:80px;height:80px;margin:auto;place-items:center;border:3px solid var(--ink);border-radius:50%;background:var(--green);color:#fff;font-size:2.8rem}.activity-result h1{font-size:3rem}.result-score strong,.result-score small{display:block}.result-score strong{font-size:5rem;line-height:1}.printable-action{max-width:700px;padding:2rem;border:3px solid var(--ink);border-radius:22px;background:#fff;box-shadow:8px 8px 0 var(--red)}

/* Platform admin */
.admin-shell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}.admin-sidebar{position:sticky;top:0;height:100vh;padding:1.2rem;display:flex;flex-direction:column;background:var(--yellow);border-right:3px solid var(--ink)}.admin-brand{display:flex;align-items:center;gap:.6rem;text-decoration:none}.admin-brand .joytoy-logo{width:94px}.admin-brand span{font-size:.65rem;line-height:1.2;letter-spacing:.1em}.admin-sidebar nav{margin-top:3rem;display:grid;gap:.4rem}.admin-sidebar nav a{padding:.75rem;border:2px solid transparent;border-radius:10px;font-weight:900;text-decoration:none}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{border-color:var(--ink);background:#fff}.admin-sidebar>div{margin-top:auto;padding-top:1rem;border-top:2px solid var(--ink)}.admin-sidebar>div strong,.admin-sidebar>div small,.admin-sidebar>div a{display:block}.admin-sidebar>div small{font-size:.7rem}.admin-sidebar>div a{margin-top:.7rem;font-size:.75rem}.admin-main{min-width:0}.admin-main>header{min-height:66px;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:#fff;font-size:.72rem;font-weight:900;letter-spacing:.1em}.admin-content{padding:clamp(1.5rem,4vw,4rem)}.school-admin-grid,.admin-lesson-layout{display:grid;grid-template-columns:minmax(350px,.75fr) minmax(420px,1.25fr);gap:1rem;align-items:start}.admin-list{display:grid;gap:.6rem}.school-admin-card,.admin-lesson-row{padding:1rem;display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;border:2px solid var(--ink);border-radius:15px;background:#fff;text-decoration:none}.school-admin-card.active,.school-admin-card:hover,.admin-lesson-row:hover{background:var(--cream)}.school-admin-card strong,.school-admin-card small,.admin-lesson-row strong,.admin-lesson-row small{display:block}.school-admin-card small,.admin-lesson-row small{font-size:.7rem;color:var(--muted)}.school-inspector,.admin-editor{padding:1.4rem;border:3px solid var(--ink);border-radius:20px;background:#fff;box-shadow:6px 6px 0 var(--ink)}.school-inspector h2,.admin-editor h2{margin:.2rem 0;font-size:2rem}.status-actions{display:flex;gap:.5rem;margin:1rem 0}.editor-placeholder{padding:3rem;border:2px dashed var(--line);border-radius:18px;color:var(--muted);text-align:center}.editor-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.admin-editor{display:grid;gap:1rem}.admin-lesson-row{grid-template-columns:auto 1fr auto}.admin-lesson-row>span:last-child{font-size:.7rem;font-weight:900}.inline-radio{display:inline-flex!important;grid-auto-flow:column!important;justify-content:start;align-items:center}.inline-radio input{width:auto}.organization-checks{max-height:220px;overflow-y:auto}.toggle-row{display:flex;gap:1rem;padding:1rem;border-radius:12px;background:var(--cream)}
.admin-account-content{max-width:980px}.admin-account-card{max-width:760px}.admin-account-card small{font-size:.7rem;color:var(--muted)}

/* Visual collaboration layer: Εκπαιδευτήρια Καλάνδρου × JoyToy */
h1, h2, h3 {
  font-family: "JoyToy Kids", "Trebuchet MS", Arial, sans-serif;
  font-weight: 500;
  letter-spacing: 0;
}
.education-levels,
.school-hero,
.how-members,
.parent-presentation,
.journey-section,
.children-library,
.login-choice-page,
.registration-wrap,
.auth-panel,
.app-content,
.admin-content,
.activity-wrap {
  background-image: url("kalandrou-pattern.png");
  background-position: top center;
  background-repeat: repeat-y;
  background-size: 1920px auto;
}
.education-levels { background-color: var(--yellow); }
.school-hero { background-color: var(--paper); }
.how-members, .journey-section, .registration-wrap, .auth-panel, .app-content, .admin-content { background-color: var(--paper); }
.parent-presentation { background-color: var(--sky); }
.children-library, .activity-wrap { background-color: var(--yellow); }
.login-choice-page { background-color: var(--cream); }
.public-footer {
  position: relative;
  isolation: isolate;
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
  border-top: 4px solid var(--ink);
  background-color: var(--red);
  background-image: url("kalandrou-pattern.png");
  background-position: center 42%;
  background-repeat: no-repeat;
  background-size: cover;
}
.public-footer::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -20px;
  left: 0;
  width: 100%;
  height: 22px;
  background: radial-gradient(circle at 22px -4px, transparent 24px, var(--red) 25px) 0 0 / 48px 24px repeat-x;
}
.public-footer p {
  font-family: "JoyToy Kids", "Trebuchet MS", Arial, sans-serif;
  font-size: 1.45rem;
  font-weight: 500;
}
.level-card,
.members-card,
.learning-outcomes article,
.public-lesson-card,
.empty-card,
.login-choice-card,
.registration-form fieldset,
.auth-box,
.stat-grid article,
.compact-lesson,
.classroom-row article,
.member-lesson-card,
.lesson-reader,
.assignment-card,
.submission-card,
.data-table-wrap,
.school-inspector,
.admin-editor,
.activity-result,
.student-quiz fieldset,
.student-name,
.printable-action {
  backdrop-filter: blur(1px);
}

@media(max-width:1100px){.public-header{grid-template-columns:1fr auto auto;gap:.8rem}.public-header nav{display:none}.level-cards{grid-template-columns:1fr}.level-card{min-height:330px}.school-hero{grid-template-columns:1fr}.members-card{max-width:680px;transform:none}.parent-title{grid-template-columns:1fr}.public-lessons,.member-lesson-grid,.assignment-grid{grid-template-columns:1fr 1fr}.stat-grid{grid-template-columns:1fr 1fr}.featured-member-lessons,.classroom-row{grid-template-columns:1fr 1fr}.grade-checks{grid-template-columns:repeat(3,1fr)}.admin-lesson-layout,.school-admin-grid{grid-template-columns:1fr}.submission-card{grid-template-columns:80px 1fr}.review-form{grid-column:1/-1}.app-shell{grid-template-columns:230px minmax(0,1fr)}.login-choice-grid{grid-template-columns:1fr}.login-choice-card{min-height:330px}.school-control-actions{grid-template-columns:1fr}}
@media(max-width:760px){.public-header{min-height:66px;gap:.45rem;padding:.5rem .7rem}.education-brand .joytoy-logo{width:76px}.education-brand span{display:none}.header-site{display:none}.header-login{padding:.52rem .66rem;font-size:.7rem}.school-hero{padding-top:3rem}.hero-copy h1,.parent-title h1,.children-heading h1,.registration-heading h1{font-size:clamp(3rem,15vw,5rem)}.members-preview{padding:1rem}.preview-grid{grid-template-columns:1fr 1fr}.steps,.learning-outcomes{grid-template-columns:1fr}.steps article{min-height:200px;border-right:0;border-bottom:2px solid var(--ink)}.steps article:last-child{border-bottom:0}.steps h3,.learning-outcomes h2{margin-top:2rem}.public-lessons,.member-lesson-grid,.assignment-grid,.featured-member-lessons,.classroom-row{grid-template-columns:1fr}.code-box{grid-template-columns:1fr}.public-footer{grid-template-columns:1fr}.auth-layout{grid-template-columns:1fr}.auth-visual{min-height:62vh}.auth-panel{padding:3rem 1rem}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.grade-checks,.grade-checks.compact{grid-template-columns:1fr 1fr}.registration-submit{align-items:stretch;flex-direction:column}.app-shell{display:block}.app-sidebar{position:fixed;left:-285px;z-index:100;width:270px;transition:left .2s}.sidebar-open .app-sidebar{left:0}.mobile-menu{display:block}.app-topbar{padding:0 1rem}.app-content{padding:1rem}.app-page-heading,.welcome-row{align-items:flex-start;flex-direction:column}.stat-grid{grid-template-columns:1fr 1fr}.lesson-filters,.assignment-filters{align-items:stretch;flex-direction:column}.lesson-filters select,.assignment-filters label{width:100%}.assignment-filter-count{margin-left:0;text-align:center}.lesson-reader>header{flex-direction:column}.data-table{min-width:850px}.submission-card{grid-template-columns:70px 1fr}.student-options{grid-template-columns:1fr}.code-entry form{flex-direction:column}.admin-shell{display:block}.admin-sidebar{position:static;height:auto}.admin-sidebar nav{margin-top:1rem;grid-template-columns:1fr 1fr}.admin-sidebar>div{display:none}.admin-content{padding:1rem}.admin-main>header{padding:0 1rem}.organization-checks{grid-template-columns:1fr}.status-actions{flex-direction:column}.login-choice-header{align-items:flex-start}.login-choice-header .back-link{font-size:.72rem}.login-choice-intro{margin-top:4rem}.login-choice-intro h1{font-size:clamp(3rem,16vw,5rem)}.login-choice-card{min-height:360px}.login-choice-footer{align-items:flex-start;flex-direction:column}}

/* v12: cleaner school profile, assignment controls and admin lesson filters */
.profile-form{gap:1.25rem}.profile-card{padding:clamp(1.25rem,3vw,2rem);border-radius:24px;box-shadow:5px 5px 0 rgba(32,24,18,.12)}.profile-card-head{margin-bottom:1.4rem;padding-bottom:1rem;display:flex;gap:1rem;align-items:center;border-bottom:1px solid var(--line)}.profile-card-head>span{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border:2px solid var(--ink);border-radius:15px;background:var(--yellow);font-weight:950}.profile-card-head p{margin:0}.profile-card-head h2{margin:.15rem 0 0;font-size:clamp(1.35rem,2vw,2rem)}.profile-fields{gap:1.1rem}.profile-fields label{display:grid;gap:.45rem;padding:.8rem;border:1px solid #d8d2c8;border-radius:14px;background:#fbfaf6;font-size:.72rem;font-weight:900;letter-spacing:.02em;transition:border-color .15s,box-shadow .15s,background .15s}.profile-fields label:focus-within{border-color:var(--ink);background:#fff;box-shadow:0 0 0 3px rgba(255,212,0,.35)}.profile-fields input{width:100%;min-height:46px;padding:.65rem .75rem;border:0;border-radius:9px;outline:0;background:#fff;font:inherit;font-size:1rem;font-weight:700;color:var(--ink)}.profile-fields input::placeholder{color:#aaa;font-weight:500}.profile-fields .file-field small{font-size:.72rem;color:var(--muted)}.profile-fields input[type=file]{padding:.45rem;font-size:.8rem}.profile-fields input[type=file]::file-selector-button{margin-right:.75rem;padding:.65rem .8rem;border:2px solid var(--ink);border-radius:9px;background:var(--yellow);font-weight:900;cursor:pointer}.profile-card .field-help{margin:-.4rem 0 1rem;padding:.8rem 1rem;border-left:4px solid var(--yellow);background:var(--cream);border-radius:0 10px 10px 0}.profile-save{z-index:4;backdrop-filter:blur(8px)}
.assignment-actions{display:flex;align-items:center;gap:.25rem}.assignment-actions form{margin:0}.assignment-actions .delete-link{color:#b42318}.submission-readonly{padding:.8rem;border-radius:12px;background:var(--cream)}.submission-readonly strong,.submission-readonly span{display:block}.submission-readonly span{margin-top:.2rem;font-size:.75rem;color:var(--muted)}
.admin-lesson-filters{margin:0 0 1rem;padding:1rem;display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:.7rem;align-items:end;border:2px solid var(--ink);border-radius:16px;background:#fff}.admin-lesson-filters label{display:grid;gap:.3rem;font-size:.68rem;font-weight:900}.admin-lesson-filters select{min-height:44px;padding:.6rem;border:1px solid var(--ink);border-radius:9px;background:#fff;font-weight:700}.admin-lesson-filters .button{min-height:44px}.admin-content-tools{grid-column:1/-1;margin-bottom:1rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:2px dashed var(--ink);border-radius:14px;background:var(--cream)}.admin-content-tools p{margin:0;font-size:.8rem}.admin-content-buttons{display:flex;gap:.6rem;flex-wrap:wrap}.button.secondary{background:#fff;color:var(--ink)}.admin-editor label:has(textarea[name="content_html"]),.admin-editor label:has(textarea[name="content_json"]){display:none}
@media(max-width:900px){.admin-lesson-filters{grid-template-columns:1fr 1fr}.admin-content-tools{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.admin-lesson-filters{grid-template-columns:1fr}.assignment-card footer{align-items:flex-start;flex-direction:column}.assignment-actions{width:100%;justify-content:space-between}}
@media(max-width:480px){.preview-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr}.grade-checks,.grade-checks.compact{grid-template-columns:1fr}.journey{align-items:stretch;flex-direction:column}.journey i{transform:rotate(90deg)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* v14: compact public headers and top-aligned children tools in the first viewport */
.education-levels{padding:clamp(2rem,4vw,3.8rem) clamp(1rem,4vw,4.5rem)}.levels-intro{max-width:980px;margin-bottom:1.6rem}.levels-intro h1{font-size:clamp(2.7rem,4.5vw,4.9rem);line-height:.92;letter-spacing:-.055em}.level-card{min-height:400px}
.login-choice-wrap{padding:clamp(1.2rem,3vw,3rem)}.login-choice-intro{margin:clamp(2rem,4vw,4rem) 0 1.5rem}.login-choice-intro h1{font-size:clamp(3rem,5.2vw,5.2rem);line-height:.9;letter-spacing:-.055em}.login-choice-card{min-height:360px}.choice-icon{margin:1.35rem 0 .8rem}
.children-library{padding-top:clamp(2rem,4vw,4rem)}.children-top{display:grid;grid-template-columns:minmax(380px,.9fr) minmax(520px,1.1fr);gap:clamp(1.5rem,4vw,4rem);align-items:start}.children-top .children-heading{max-width:720px}.children-top .children-heading h1{font-size:clamp(2.9rem,4.8vw,5rem);line-height:.9}.children-top .code-box{margin:0;grid-template-columns:minmax(170px,1fr) minmax(150px,210px) auto;padding:1rem}.children-filters{margin:1.5rem 0;align-items:end;flex-wrap:wrap}.children-filters label{display:grid;gap:.35rem;font-size:.72rem}.children-filters select{min-width:230px}.children-filters button{min-height:48px;padding:.7rem 1.1rem;border:2px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;font-weight:900;cursor:pointer}.children-filters a{padding:.7rem;font-size:.78rem;font-weight:900}
@media(max-width:1180px){.children-top{grid-template-columns:1fr}.children-top .code-box{max-width:none}.children-top .children-heading{max-width:900px}}
@media(max-width:760px){.levels-intro h1{font-size:clamp(2.7rem,12vw,4rem)}.login-choice-intro h1{font-size:clamp(2.8rem,13vw,4.4rem)}.children-top .children-heading h1{font-size:clamp(2.8rem,13vw,4.5rem)}.children-top .code-box{grid-template-columns:1fr}.children-filters{align-items:stretch}.children-filters label,.children-filters select,.children-filters button{width:100%}}

/* v15: lesson history by school year and JoyToy admin statistics */
.stat-grid article.success{background:#dff7e6}.lesson-card-history{margin:.9rem 0;padding:.7rem .8rem;display:flex;align-items:center;gap:.55rem;border:1px solid var(--line);border-radius:12px;background:var(--cream)}.lesson-card-history.has-history{border-color:#8ccf9f;background:#eaf9ee}.lesson-card-history strong{font-size:1.35rem;line-height:1}.lesson-card-history span{font-size:.7rem;font-weight:800;color:var(--muted)}
.history-year-filter,.admin-stats-filters{margin-bottom:1.3rem;padding:1rem;display:flex;align-items:end;gap:.8rem;flex-wrap:wrap;border:2px solid var(--ink);border-radius:17px;background:#fff}.history-year-filter label,.admin-stats-filters label{display:grid;gap:.3rem;font-size:.72rem;font-weight:900}.history-year-filter select,.admin-stats-filters select{min-width:220px;min-height:44px;padding:.65rem;border:1px solid var(--ink);border-radius:9px;background:#fff}.admin-stats-filters>a{padding:.7rem;font-size:.78rem;font-weight:900}
.history-stat-grid{margin-bottom:1.5rem}.lesson-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.lesson-history-card{padding:1.2rem;display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:18px;background:#fff}.lesson-history-card.not-started{border-style:dashed;color:#746d67;background:#f7f5ef}.history-card-status{display:flex;align-items:center;justify-content:space-between;gap:1rem}.history-card-status>span{padding:.35rem .55rem;border-radius:999px;background:var(--ink);color:#fff;font-size:.64rem;font-weight:950;letter-spacing:.06em}.lesson-history-card.has-history .history-card-status>span{color:var(--ink);background:var(--green)}.history-card-status small{font-size:.68rem;font-weight:900;text-transform:uppercase}.lesson-history-card h2{margin:1rem 0 .25rem;font-size:1.45rem;line-height:1.1}.lesson-history-card>p{margin:0;color:var(--muted);font-size:.82rem}.history-counts{margin:1rem 0;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.history-counts>div{padding:.7rem;border:1px solid var(--line);border-radius:11px;background:var(--cream)}.history-counts strong,.history-counts span{display:block}.history-counts strong{font-size:1.4rem}.history-counts span{font-size:.65rem;font-weight:800}.lesson-history-card>footer{margin-top:auto;padding-top:.8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);font-size:.72rem}.lesson-history-card>footer a{font-weight:900}
.lesson-run-history{margin-top:2rem;padding:clamp(1.2rem,3vw,2rem);border:2px solid var(--ink);border-radius:22px;background:#fff}.lesson-history-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.lesson-history-heading h2{margin:.2rem 0;font-size:2rem}.lesson-history-heading p{margin:.3rem 0}.lesson-history-heading form label{display:grid;gap:.3rem;font-size:.7rem;font-weight:900}.lesson-history-heading select{min-width:190px;padding:.65rem;border:1px solid var(--ink);border-radius:9px;background:#fff}.history-inline-stats{margin:1.2rem 0;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.history-inline-stats>div{padding:1rem;border-radius:14px;background:var(--cream)}.history-inline-stats>div:nth-child(2){background:#dff7e6}.history-inline-stats>div:nth-child(3){background:var(--sky)}.history-inline-stats strong,.history-inline-stats span{display:block}.history-inline-stats strong{font-size:2rem}.history-inline-stats span{font-size:.72rem;font-weight:900}.lesson-run-list{display:grid;gap:.7rem}.lesson-run-list article{padding:1rem;border:1px solid var(--line);border-radius:14px}.lesson-run-list article>div,.lesson-run-list article>footer{display:flex;align-items:center;justify-content:space-between;gap:1rem}.lesson-run-list h3{margin:.7rem 0 .2rem}.lesson-run-list p{margin:0;color:var(--muted)}.lesson-run-list article>footer{margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--line);font-size:.74rem;font-weight:900}
.admin-stats-summary{margin-bottom:1.5rem}.admin-stats-table-wrap{overflow:auto;border:2px solid var(--ink);border-radius:18px;background:#fff}.admin-stats-table{width:100%;min-width:900px;border-collapse:collapse}.admin-stats-table th,.admin-stats-table td{padding:1rem;border-bottom:1px solid var(--line);text-align:left}.admin-stats-table th{background:var(--ink);color:#fff;font-size:.68rem;letter-spacing:.05em;text-transform:uppercase}.admin-stats-table tbody tr:last-child td{border-bottom:0}.admin-stats-table td:first-child{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.admin-stats-table td>strong{font-size:1.15rem}.admin-stats-table .status{font-size:.58rem}
@media(max-width:900px){.lesson-history-grid{grid-template-columns:1fr}.lesson-history-heading{align-items:flex-start;flex-direction:column}.admin-stats-filters{align-items:stretch}.admin-stats-filters label,.admin-stats-filters select,.admin-stats-filters button{width:100%}}
@media(max-width:560px){.history-year-filter{align-items:stretch;flex-direction:column}.history-year-filter label,.history-year-filter select{width:100%}.history-inline-stats,.history-counts{grid-template-columns:1fr}.lesson-history-card>footer{align-items:flex-start;flex-direction:column}}
