@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); }
.flash.error { border-left: 8px solid var(--red); background: #fff0f1; }
.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}
.parent-schoolyard{margin:clamp(2.5rem,5vw,5rem) 0 0;overflow:hidden;border:3px solid var(--ink);border-radius:28px;background:#fff;box-shadow:9px 9px 0 var(--ink)}
.parent-schoolyard img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.parent-schoolyard figcaption{padding:1.15rem 1.35rem;display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;border-top:3px solid var(--ink)}
.parent-schoolyard figcaption strong{font-size:1.2rem}.parent-schoolyard figcaption span{max-width:760px;font-size:.95rem}
.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;overflow:hidden;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}.dual-brand,.school-name,.sidebar-footer{flex:0 0 auto}.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{min-height:0;flex:1 1 auto;padding:1.2rem .25rem 1.2rem 0;display:grid;grid-auto-rows:max-content;align-content:start;gap:.35rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--yellow) #38312c}.app-nav::-webkit-scrollbar{width:7px}.app-nav::-webkit-scrollbar-track{background:#38312c;border-radius:99px}.app-nav::-webkit-scrollbar-thumb{background:var(--yellow);border-radius:99px}.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:0;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)}
.classroom-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.classroom-roster-card{border:2px solid var(--ink);border-radius:18px;background:#fff;box-shadow:4px 4px 0 rgba(32,24,18,.13)}.classroom-roster-card>summary{padding:1.05rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none}.classroom-roster-card>summary::-webkit-details-marker,.student-parent-details>summary::-webkit-details-marker{display:none}.classroom-roster-card>summary div span,.classroom-roster-card>summary div strong,.classroom-roster-card>summary div small{display:block}.classroom-roster-card>summary div span{color:var(--blue);font-size:.67rem;font-weight:950}.classroom-roster-card>summary div strong{margin-top:.2rem;font-size:1.3rem}.classroom-roster-card>summary div small{margin-top:.25rem;color:var(--muted)}.classroom-roster-card>summary>b{padding:.45rem .65rem;border-radius:999px;background:var(--yellow);white-space:nowrap;font-size:.7rem}.classroom-roster-card>summary i{margin-left:.3rem;font-style:normal}.classroom-roster-card[open]>summary{border-bottom:2px solid var(--ink)}.classroom-roster-card[open]>summary i{display:inline-block;transform:rotate(180deg)}.classroom-student-list{padding:.75rem;display:grid;gap:.6rem}.classroom-student{position:relative;padding:.8rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid var(--line);border-radius:12px;background:#fbfaf6}.classroom-student-main>strong{display:block}.student-counters{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.35rem}.student-counters span{padding:.3rem .48rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.65rem;font-weight:850}.student-counters b{color:var(--blue)}.classroom-student-actions{display:flex;align-items:center;gap:.45rem}.classroom-student-actions>a{font-size:.7rem;font-weight:950}.student-parent-details{position:relative}.student-parent-details>summary{width:34px;height:34px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--yellow);cursor:pointer;font-size:1.2rem;font-weight:950;list-style:none}.student-parent-details[open]>summary{color:#fff;background:var(--ink);transform:rotate(45deg)}.student-parent-details>div{position:absolute;right:0;top:43px;z-index:8;width:min(340px,78vw);padding:1rem;display:grid;gap:.75rem;border:2px solid var(--ink);border-radius:14px;background:#fff;box-shadow:6px 6px 0 var(--ink)}.student-parent-details h3{margin:0;font-size:1rem}.student-parent-details section{padding:.7rem;border-radius:10px;background:var(--cream)}.student-parent-details section strong,.student-parent-details section a,.student-parent-details section span{display:block}.student-parent-details section a,.student-parent-details section span{margin-top:.25rem;font-size:.72rem;overflow-wrap:anywhere}.student-parent-details section a{font-weight:850}
.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}.parent-schoolyard{border-radius:20px;box-shadow:6px 6px 0 var(--ink)}.parent-schoolyard figcaption{align-items:flex-start;flex-direction:column;gap:.4rem}.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;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;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(4,minmax(140px,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}}

/* v16: school-year registry, yearly classrooms and student records */
.school-registry-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.school-year-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:1.25rem}.school-year-list{display:grid;align-content:start;gap:.65rem}.school-year-card{padding:1rem;display:grid;gap:.25rem;border:2px solid var(--ink);border-radius:16px;background:#fff;box-shadow:3px 3px 0 rgba(32,24,18,.12)}.school-year-card.active{background:var(--yellow);box-shadow:5px 5px 0 var(--ink)}.school-year-card span{font-size:.6rem;font-weight:950;letter-spacing:.08em}.school-year-card strong{font-size:1.35rem}.school-year-card small{font-size:.7rem;color:var(--muted);font-weight:800}.school-year-workspace{min-width:0}.year-summary{margin-bottom:1rem;padding:1.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:2px solid var(--ink);border-radius:18px;background:#fff}.year-summary h2{margin:.45rem 0 .2rem;font-size:2.2rem}.year-summary p{margin:0;color:var(--muted)}.year-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.year-actions form{margin:0}.registry-classroom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.registry-classroom-grid>article{padding:1.15rem;display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:18px;background:#fff}.registry-classroom-grid article>div,.registry-classroom-grid article>footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.registry-classroom-grid article>div span{font-size:.68rem;font-weight:950;text-transform:uppercase}.registry-classroom-grid article>div small{padding:.25rem .45rem;border-radius:999px;background:var(--cream);font-size:.62rem;font-weight:900}.registry-classroom-grid h3{margin:1rem 0 .2rem;font-size:1.7rem}.registry-classroom-grid p{margin:0 0 1rem;color:var(--muted)}.registry-classroom-grid footer{margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line);font-size:.73rem}.registry-classroom-grid footer a{font-weight:900}.registry-edit-card,.student-edit-summary{margin-top:1.4rem;padding:clamp(1.1rem,3vw,1.8rem);border:2px solid var(--ink);border-radius:20px;background:#fff}.registry-form{display:grid;gap:1rem}.registry-form label,.student-form label{display:grid;gap:.4rem;font-size:.72rem;font-weight:900}.registry-form input,.registry-form select,.student-form input,.student-form select,.student-registry-filters input,.student-registry-filters select{width:100%;min-height:44px;padding:.65rem .75rem;border:1px solid var(--ink);border-radius:9px;background:#fff;color:var(--ink);font:inherit}.check-field{display:flex!important;align-items:center!important;grid-auto-flow:column;justify-content:start}.check-field input{width:auto!important;min-height:auto!important}.student-registry-filters{margin-bottom:1rem;padding:1rem;display:grid;grid-template-columns:repeat(3,minmax(150px,.75fr)) minmax(220px,1.2fr) auto;gap:.7rem;align-items:end;border:2px solid var(--ink);border-radius:17px;background:#fff}.student-registry-filters label{display:grid;gap:.3rem;font-size:.68rem;font-weight:900}.registry-count{margin:0 0 .8rem;display:flex;align-items:baseline;gap:.45rem}.registry-count strong{font-size:1.8rem}.registry-count span{font-size:.72rem;color:var(--muted);font-weight:900}.student-table{min-width:1180px}.student-table td small{max-width:300px}.student-edit-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem}.student-edit-summary h2{margin:.2rem 0;font-size:2rem}.student-edit-summary p{margin:.2rem 0;color:var(--muted)}.student-panel{width:min(820px,94vw)}.student-form fieldset{margin:.8rem 0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#fbfaf6}.student-form legend{padding:0 .45rem;font-size:.75rem;font-weight:950}.student-form .field-help{margin:.8rem 0 0;padding:.7rem;border-left:4px solid var(--yellow);background:#fff;font-size:.72rem;color:var(--muted)}
@media(max-width:1100px){.school-year-layout{grid-template-columns:1fr}.school-year-list{grid-template-columns:repeat(3,minmax(0,1fr))}.student-registry-filters{grid-template-columns:1fr 1fr}.student-registry-filters .student-search{grid-column:1/-1}.student-registry-filters .button{width:max-content}}
@media(max-width:760px){.school-registry-actions,.school-year-list,.registry-classroom-grid{grid-template-columns:1fr}.year-summary,.student-edit-summary{align-items:flex-start;flex-direction:column}.year-actions{width:100%}.student-registry-filters{grid-template-columns:1fr}.student-registry-filters .student-search{grid-column:auto}.student-registry-filters .button{width:100%}}

/* v17: school SMTP account and automatic parent assignment notifications */
.mail-settings-layout{display:grid;grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr);gap:1.25rem;align-items:start}.mail-flow-card{position:sticky;top:92px;padding:1.5rem;border:3px solid var(--ink);border-radius:24px;background:var(--yellow);box-shadow:7px 7px 0 var(--ink)}.mail-flow-card>span{font-size:.66rem;font-weight:950;letter-spacing:.12em}.mail-flow-card h2{margin:.7rem 0 1.4rem;font-size:clamp(1.8rem,3vw,2.65rem);line-height:1}.mail-flow-card ol{margin:0;padding:0;display:grid;gap:.75rem;list-style:none;counter-reset:mail-step}.mail-flow-card li{padding:.85rem;display:grid;grid-template-columns:36px 1fr;column-gap:.7rem;border:2px solid var(--ink);border-radius:13px;background:#fff;counter-increment:mail-step}.mail-flow-card li:before{content:counter(mail-step);width:32px;height:32px;grid-row:1/3;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font-size:.75rem;font-weight:950}.mail-flow-card li strong,.mail-flow-card li small{grid-column:2}.mail-flow-card li small{margin-top:.15rem;color:var(--muted)}.mail-flow-card>p{margin:1.2rem 0 0;font-size:.78rem;font-weight:800}.mail-settings-form{display:grid;gap:1rem}.mail-settings-form .profile-card{margin:0}.mail-settings-form .profile-fields select{width:100%;min-height:46px;padding:.65rem .75rem;border:0;border-radius:9px;outline:0;background:#fff;color:var(--ink);font:inherit;font-weight:700}.mail-switches>label{padding:1rem;display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;border:1px solid var(--line);border-radius:14px;background:#fbfaf6;cursor:pointer}.mail-switches>label+label{margin-top:.7rem}.mail-switches input{width:22px;height:22px;accent-color:var(--green)}.mail-switches strong,.mail-switches small{display:block}.mail-switches small{margin-top:.25rem;color:var(--muted)}.mail-status{padding:.55rem .85rem;border:2px solid var(--ink);border-radius:999px;font-size:.7rem;font-weight:950}.mail-status.active{background:#dff7e6}.mail-status.inactive{background:#eee}.assignment-mail-status{margin-top:.7rem;padding:.6rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;border-radius:10px;background:#dff7e6;font-size:.7rem;font-weight:900}.assignment-mail-status strong{color:#b42318}.school-registry-actions>a:last-child{grid-column:1/-1;background:var(--sky)}
@media(max-width:980px){.mail-settings-layout{grid-template-columns:1fr}.mail-flow-card{position:static}.school-registry-actions>a:last-child{grid-column:auto}}
@media(max-width:600px){.mail-settings-form .form-grid{grid-template-columns:1fr}.assignment-mail-status{align-items:flex-start;flex-direction:column}}

/* v18: SMTP test and assignment email resend */
.mail-test-card{display:grid;gap:1rem}.mail-test-card .profile-card-head{margin-bottom:0}.mail-test-card>label{display:grid;gap:.4rem;font-size:.72rem;font-weight:900}.mail-test-card>label input{width:100%;min-height:46px;padding:.7rem .8rem;border:1px solid var(--ink);border-radius:10px;background:#fff;font:inherit}.mail-test-card>.button{width:max-content}.assignment-actions{flex-wrap:wrap;justify-content:flex-end}.assignment-actions .resend-mail{padding:.42rem .62rem;border-radius:8px;background:var(--sky);color:var(--ink);font-weight:900}.assignment-actions .resend-mail:hover{background:var(--yellow)}
@media(max-width:560px){.mail-test-card>.button{width:100%}.assignment-actions{justify-content:flex-start}}

/* v19: personalized student links and locked identity */
.locked-student-name>div{position:relative}.locked-student-name input{padding-right:2.8rem!important;background:#eef8f0!important;border-color:#4d9b65!important;color:var(--ink);font-weight:950}.locked-student-name>div:after{content:'🔒';position:absolute;right:1rem;top:.8rem}.locked-student-name span{display:block;margin-top:.45rem;color:#386a47;font-size:.72rem;font-weight:850}

/* v20: classroom roster inside assignments and student-centered answer history */
.submission-filters{flex-wrap:wrap}.submission-filters label{min-width:170px}.submission-filters .submission-student-filter{min-width:260px;flex:1}.submission-main{min-width:0}.answer-details{margin-top:.75rem;border:1px solid var(--line);border-radius:12px;background:#fbfaf6}.answer-details summary{padding:.7rem .85rem;cursor:pointer;font-size:.74rem;font-weight:950}.answer-details ol{margin:0;padding:0 .9rem .9rem 2.2rem;display:grid;gap:.55rem}.answer-details li{padding:.7rem;border-radius:9px;background:#fff}.answer-details li.correct{border-left:5px solid var(--green)}.answer-details li.wrong{border-left:5px solid var(--red)}.answer-details li strong,.answer-details li span,.answer-details li small{display:block}.answer-details li strong{font-size:.78rem}.answer-details li span,.answer-details li small{margin-top:.2rem;font-size:.7rem}.answer-details li small{color:#a1261d;font-weight:850}
.assignment-card:has(.assignment-roster[open]){grid-column:1/-1}.assignment-roster{margin:1rem 0;border:2px solid var(--ink);border-radius:14px;background:var(--cream)}.assignment-roster>summary{padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none}.assignment-roster>summary::-webkit-details-marker{display:none}.assignment-roster>summary span{font-size:.75rem;font-weight:950}.assignment-roster>summary strong{padding:.35rem .55rem;border-radius:999px;background:var(--yellow);font-size:.72rem}.assignment-roster[open]>summary{border-bottom:2px solid var(--ink);background:#fff}.assignment-roster-list{padding:.8rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.assignment-student-row{padding:.85rem;border:1px solid var(--line);border-radius:12px;background:#fff}.assignment-student-row.answered{border-color:#78b98b;background:#f0fbf3}.assignment-student-row.unanswered{border-style:dashed;background:#f4f2ed}.assignment-student-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.assignment-student-head>div:first-child>strong,.assignment-student-head>div:first-child>span,.student-result strong,.student-result small{display:block}.student-answer-status{margin-top:.2rem;font-size:.66rem;font-weight:950;color:#8a342c}.answered .student-answer-status{color:#287641}.student-result{text-align:right}.student-result strong{font-size:1.25rem}.student-result small{font-size:.64rem;color:var(--muted)}.student-history-link{display:block;margin-top:.65rem;padding-top:.55rem;border-top:1px solid var(--line);font-size:.7rem;font-weight:950}.assignment-card footer>.assignment-responses{font-size:.72rem}.assignment-grid{align-items:start}
@media(max-width:900px){.assignment-roster-list{grid-template-columns:1fr}.submission-filters label,.submission-filters .submission-student-filter{width:calc(50% - .4rem);min-width:220px}}
@media(max-width:600px){.submission-filters label,.submission-filters .submission-student-filter{width:100%;min-width:0}.assignment-student-head{align-items:flex-start;flex-direction:column}.student-result{text-align:left}.assignment-roster>summary{align-items:flex-start;flex-direction:column}}

/* v21: public cardboard traffic-light activity, shown only in "Για Παιδιά" */
.construction-activity-card{position:relative;display:flex;flex-direction:column}.construction-activity-card .activity-card-image{position:relative;margin:-1.25rem -1.25rem 1rem;aspect-ratio:16/9;overflow:hidden;border-bottom:2px solid var(--ink);background:#fff}.construction-activity-card .activity-card-image img{width:100%;height:100%;display:block;object-fit:cover}.construction-activity-card .activity-card-image b{position:absolute;top:.75rem;right:.75rem;padding:.4rem .65rem;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);font-size:.68rem}.construction-activity-card>a{margin-top:auto}.construction-page{background:var(--cream)}.construction-back{padding:.65rem 1rem;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);font-size:.78rem;letter-spacing:0!important}.construction-wrap{overflow:hidden}.construction-hero{padding:clamp(2rem,6vw,6rem) clamp(1rem,6vw,6rem);display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:clamp(2rem,5vw,5rem);align-items:center;background:var(--yellow)}.construction-hero h1{margin:.5rem 0 1rem;font-size:clamp(3.1rem,6vw,6.5rem);line-height:.88;letter-spacing:-.055em}.construction-hero h1 em{color:var(--blue);font-style:normal}.construction-hero .lead{max-width:720px;font-size:1.08rem}.construction-actions{margin-top:1.6rem;display:flex;gap:.7rem;flex-wrap:wrap}.construction-hero figure{margin:0;padding:.7rem;border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:10px 10px 0 var(--ink);transform:rotate(1deg)}.construction-hero figure img{width:100%;display:block;border-radius:15px}.construction-hero figcaption{padding:.6rem .4rem .2rem;font-size:.74rem;font-weight:900}.construction-materials{padding:clamp(3rem,6vw,6rem) clamp(1rem,6vw,6rem);display:grid;grid-template-columns:.75fr 1fr .7fr;gap:2rem;align-items:start;background:#fff}.construction-materials h2,.construction-section-title h2,.construction-guide h2,.construction-play h2{margin:.4rem 0;font-size:clamp(2.2rem,4vw,4.2rem);line-height:.95}.construction-materials ul{margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.75rem;list-style:none}.construction-materials li{padding:.9rem;border:2px solid var(--ink);border-radius:13px;background:var(--cream);font-weight:800}.construction-materials aside{padding:1.25rem;border:3px solid var(--ink);border-radius:18px;background:var(--red);color:#fff;box-shadow:6px 6px 0 var(--ink)}.construction-materials aside strong{font-size:1.25rem}.construction-materials aside p{margin:.5rem 0 0}.construction-steps{padding:clamp(3rem,6vw,6rem) clamp(1rem,6vw,6rem);background:var(--cream)}.construction-section-title{max-width:850px}.construction-steps ol{margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;list-style:none;counter-reset:none}.construction-steps li{min-height:220px;padding:1.25rem;display:flex;gap:1rem;border:3px solid var(--ink);border-radius:20px;background:#fff;box-shadow:6px 6px 0 var(--ink)}.construction-steps li>span{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border:2px solid var(--ink);border-radius:50%;background:var(--yellow);font-weight:950}.construction-steps h3{margin:.25rem 0 .6rem;font-size:1.45rem;line-height:1}.construction-steps p{margin:0;font-size:.92rem}.construction-guide{padding:clamp(3rem,6vw,6rem) clamp(1rem,6vw,6rem);display:grid;grid-template-columns:.55fr 1.45fr;gap:clamp(2rem,5vw,5rem);align-items:center;background:var(--blue);color:#fff}.construction-guide .section-label{color:#fff}.construction-guide img{width:100%;display:block;border:3px solid var(--ink);border-radius:22px;background:#fff;box-shadow:10px 10px 0 var(--ink)}.construction-play{padding:clamp(3rem,6vw,6rem) clamp(1rem,6vw,6rem);text-align:center;background:#fff}.construction-play>div{max-width:980px;margin:2rem auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.construction-play article{min-height:170px;padding:1.5rem;display:grid;place-items:center;border:3px solid var(--ink);border-radius:50%;color:#fff;box-shadow:7px 7px 0 var(--ink)}.construction-play article strong,.construction-play article span{display:block}.construction-play article strong{font-size:1.4rem}.construction-play article.red{background:#ef272f}.construction-play article.amber{background:#f5b700;color:var(--ink)}.construction-play article.green{background:#008f5b}
@media(max-width:1050px){.construction-hero,.construction-materials,.construction-guide{grid-template-columns:1fr}.construction-hero figure{max-width:780px}.construction-steps ol{grid-template-columns:1fr 1fr}.construction-materials aside{max-width:520px}}
@media(max-width:680px){.construction-back{padding:.5rem .65rem;font-size:.68rem}.construction-hero h1{font-size:clamp(2.8rem,15vw,4.7rem)}.construction-actions{align-items:stretch;flex-direction:column}.construction-actions .button{width:100%;text-align:center}.construction-materials ul,.construction-steps ol,.construction-play>div{grid-template-columns:1fr}.construction-steps li{min-height:0}.construction-play article{width:190px;height:190px;margin:auto}.construction-guide{padding-bottom:4rem}}

/* v22: reusable pole and seven separate road-sign craft lessons */
.sign-activity-card .activity-card-image{background:var(--cream)}.sign-activity-card .activity-card-image img{padding:.8rem;object-fit:contain}.pole-activity-card .activity-card-image img{object-fit:cover}.sign-craft-page{background:var(--cream)}.sign-craft-wrap{overflow:hidden}.sign-craft-hero{min-height:680px;padding:clamp(2.5rem,6vw,6rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);gap:clamp(2rem,6vw,7rem);align-items:center;background:var(--yellow)}.sign-craft-copy h1,.pole-hero h1{max-width:900px;margin:.5rem 0 1rem;font-size:clamp(3rem,6vw,6rem);line-height:.9;letter-spacing:-.055em}.sign-craft-copy .lead,.pole-hero .lead{max-width:760px;font-size:1.08rem}.print-craft{font:inherit;cursor:pointer}.mounted-sign{min-height:570px;position:relative;display:flex;align-items:center;flex-direction:column}.mounted-sign img{position:relative;z-index:3;width:min(300px,72vw);height:300px;object-fit:contain;filter:drop-shadow(0 7px 5px rgba(32,24,18,.2))}.mounted-sign i{width:34px;height:240px;margin-top:-14px;z-index:2;border:2px solid #8b603b;border-radius:4px;background:linear-gradient(90deg,#b98558,#e5bd8c 48%,#9d6c43);box-shadow:7px 5px 0 rgba(32,24,18,.16)}.mounted-sign b{width:210px;height:37px;margin-top:-4px;border:3px solid var(--ink);border-radius:50%;background:var(--yellow);box-shadow:inset 0 0 0 9px #b98558,6px 6px 0 var(--ink)}.mounted-sign small{margin-top:1rem;padding:.45rem .7rem;border:2px solid var(--ink);border-radius:999px;background:#fff;font-size:.63rem;font-weight:950}.sign-meaning{padding:clamp(3rem,6vw,6rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:1fr 300px;gap:3rem;align-items:center;background:#fff}.sign-meaning h2{max-width:1050px;margin:.5rem 0;font-size:clamp(2rem,4vw,4rem);line-height:1}.sign-meaning aside{min-height:190px;padding:1.5rem;display:grid;place-items:center;border:3px solid var(--ink);border-radius:22px;background:var(--sky);text-align:center;box-shadow:7px 7px 0 var(--ink)}.sign-meaning aside strong,.sign-meaning aside span{display:block}.sign-meaning aside strong{font-size:2rem}.sign-shape-lab{padding:clamp(3rem,6vw,6rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:1fr minmax(260px,430px) .6fr;gap:3rem;align-items:center;background:var(--cream)}.sign-shape-lab h2,.sign-craft-steps h2,.sign-mini-mission h2,.sign-next h2,.pole-rules h2{margin:.4rem 0;font-size:clamp(2.2rem,4vw,4.2rem);line-height:.95}.sign-shape-lab>img{width:100%;max-height:400px;object-fit:contain;filter:drop-shadow(0 8px 7px rgba(32,24,18,.18))}.color-swatches{display:grid;gap:.75rem}.color-swatches span{padding:.7rem;display:flex;align-items:center;gap:.75rem;border:2px solid var(--ink);border-radius:13px;background:#fff}.color-swatches i{width:42px;height:42px;display:block;border:2px solid var(--ink);border-radius:50%;background:var(--swatch)}.color-swatches b{font-size:.9rem}.sign-craft-steps{padding:clamp(3rem,6vw,6rem) clamp(1rem,7vw,8rem);background:#fff}.sign-craft-steps ol{margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;list-style:none}.sign-craft-steps li{min-height:210px;padding:1.2rem;display:flex;gap:1rem;border:3px solid var(--ink);border-radius:20px;background:var(--cream);box-shadow:5px 5px 0 var(--ink)}.sign-craft-steps li>span{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border:2px solid var(--ink);border-radius:50%;background:var(--yellow);font-weight:950}.sign-craft-steps h3{margin:.2rem 0 .55rem;font-size:1.35rem}.sign-craft-steps p{margin:0;font-size:.9rem}.shared-pole-link{margin-top:2rem;padding:1.1rem 1.3rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:3px solid var(--ink);border-radius:17px;background:var(--yellow);text-decoration:none;box-shadow:5px 5px 0 var(--ink)}.shared-pole-link strong,.shared-pole-link span{display:block}.sign-mini-mission{padding:clamp(3rem,6vw,6rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,7rem);align-items:center;background:var(--blue);color:#fff}.sign-mini-mission .section-label{color:#fff}.sign-mini-mission ol{margin:0;padding:0;display:grid;gap:.8rem;list-style:none;counter-reset:question}.sign-mini-mission li{padding:1rem 1rem 1rem 4rem;position:relative;border:2px solid #fff;border-radius:14px;background:rgba(255,255,255,.12);counter-increment:question}.sign-mini-mission li:before{content:counter(question);position:absolute;left:1rem;top:50%;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--yellow);color:var(--ink);font-weight:950;transform:translateY(-50%)}.sign-next{padding:clamp(3rem,6vw,6rem) clamp(1rem,7vw,8rem);background:var(--cream)}.sign-next>div{margin-top:2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.sign-next a{min-height:210px;padding:1rem;display:grid;grid-template-columns:84px 1fr;grid-template-rows:auto 1fr;gap:.4rem 1rem;align-items:center;border:2px solid var(--ink);border-radius:17px;background:#fff;text-decoration:none;box-shadow:4px 4px 0 var(--ink)}.sign-next img{width:84px;height:84px;grid-row:1/3;object-fit:contain}.sign-next span{font-size:.68rem;font-weight:950;color:var(--blue)}.sign-next strong{align-self:start;line-height:1.05}.pole-hero{padding:clamp(2.5rem,6vw,6rem) clamp(1rem,6vw,6rem);display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(2rem,5vw,5rem);align-items:center;background:var(--yellow)}.pole-hero h1 em{color:var(--blue);font-style:normal}.pole-hero>img{width:100%;display:block;border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:10px 10px 0 var(--ink)}.pole-materials{grid-template-columns:.8fr 1fr .7fr}.sign-craft-steps .four-steps{grid-template-columns:repeat(4,1fr)}.pole-rules{padding:clamp(3rem,6vw,6rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:1fr .8fr;gap:3rem;align-items:center;background:var(--sky)}.pole-rule-diagram{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:.5rem;align-items:center}.pole-rule-diagram span{min-height:84px;padding:.7rem;display:grid;place-items:center;border:3px solid var(--ink);border-radius:15px;background:#fff;text-align:center;font-size:.75rem;font-weight:950}.pole-rule-diagram b{font-size:2rem;transform:rotate(-90deg)}
@media(max-width:1100px){.sign-craft-hero,.sign-meaning,.sign-shape-lab,.sign-mini-mission,.pole-hero,.pole-rules{grid-template-columns:1fr}.mounted-sign{min-height:540px}.sign-craft-steps ol,.sign-craft-steps .four-steps{grid-template-columns:1fr 1fr}.sign-next>div{grid-template-columns:1fr 1fr}.sign-shape-lab>img{max-width:430px}.pole-materials{grid-template-columns:1fr}}
@media(max-width:650px){.sign-craft-hero{min-height:0}.sign-craft-copy h1,.pole-hero h1{font-size:clamp(2.7rem,14vw,4.5rem)}.mounted-sign{min-height:500px}.mounted-sign img{height:250px}.sign-craft-steps ol,.sign-craft-steps .four-steps,.sign-next>div{grid-template-columns:1fr}.sign-craft-steps li{min-height:0}.shared-pole-link{align-items:flex-start;flex-direction:column}.sign-next a{min-height:150px}.pole-rule-diagram{grid-template-columns:1fr}.pole-rule-diagram b{transform:none;text-align:center}.color-swatches{grid-template-columns:1fr 1fr}}
@media print{.activity-header,.public-footer,.construction-actions,.shared-pole-link,.sign-next{display:none!important}.sign-craft-hero,.sign-meaning,.sign-shape-lab,.sign-craft-steps,.sign-mini-mission,.pole-hero,.construction-materials,.pole-rules{padding:18px!important;break-inside:avoid}.sign-craft-hero,.pole-hero{min-height:auto;grid-template-columns:1fr 260px}.mounted-sign{min-height:420px}.mounted-sign img{width:210px;height:210px}.mounted-sign i{height:160px}.sign-craft-steps ol,.sign-craft-steps .four-steps{grid-template-columns:1fr 1fr}.sign-craft-steps li{min-height:150px;box-shadow:none}.sign-mini-mission{color:#000;background:#fff}.sign-mini-mission .section-label{color:#000}.sign-mini-mission li{border-color:#000;background:#fff}.pole-hero>img{box-shadow:none}}
.sign-template-download{display:grid;gap:.8rem;justify-items:center}.sign-template-download img{width:100%;max-height:400px;object-fit:contain;filter:drop-shadow(0 8px 7px rgba(32,24,18,.18))}.sign-template-download a{padding:.65rem .9rem;border:2px solid var(--ink);border-radius:999px;background:#fff;font-size:.75rem;font-weight:900}
@media(max-width:1100px){.sign-template-download{max-width:430px}}
@media print{.sign-template-download a{display:none}}

/* v23: all 196 road-sign crafts, coloring sheets and three-child teamwork */
.featured-team-card .activity-card-image{aspect-ratio:3/2}.teamwork-roles{padding:clamp(3rem,6vw,6rem) clamp(1rem,6vw,6rem);display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,5vw,5rem);align-items:start;background:var(--sky)}.teamwork-roles h2{margin:.4rem 0;font-size:clamp(2.2rem,4vw,4.2rem);line-height:.95}.teamwork-roles ol{margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;list-style:none}.teamwork-roles li{padding:1.2rem;border:3px solid var(--ink);border-radius:20px;background:#fff;box-shadow:5px 5px 0 var(--ink)}.teamwork-roles li>span{width:42px;height:42px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--yellow);font-weight:950}.teamwork-roles li strong{display:block;margin:.9rem 0 .35rem;font-size:1.2rem}.teamwork-roles li p{margin:0;font-size:.85rem}
.traffic-sign-library{margin-top:clamp(3rem,6vw,6rem);padding:clamp(2rem,5vw,5rem);border:3px solid var(--ink);border-radius:30px;background:var(--cream);box-shadow:10px 10px 0 var(--ink)}.traffic-sign-library>header{display:grid;grid-template-columns:1fr minmax(280px,420px);gap:2rem;align-items:end}.traffic-sign-library h2{margin:.35rem 0;font-size:clamp(2.6rem,5vw,5.3rem);line-height:.9;letter-spacing:-.05em}.traffic-sign-library h2 em{color:var(--blue);font-style:normal}.traffic-sign-library>header p{max-width:820px}.sign-search{padding:1rem;display:grid;gap:.45rem;border:2px solid var(--ink);border-radius:16px;background:#fff}.sign-search span{font-size:.7rem;font-weight:950}.sign-search input{width:100%;min-height:48px;padding:.75rem;border:2px solid var(--ink);border-radius:10px;background:var(--cream);font:inherit}.sign-search small{color:var(--muted);font-size:.7rem;font-weight:900}.sign-category-nav{margin:2rem 0;display:flex;gap:.65rem;flex-wrap:wrap}.sign-category-nav a{padding:.7rem 1rem;display:flex;align-items:center;gap:.7rem;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);font-size:.78rem;font-weight:950;text-decoration:none}.sign-category-nav small{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff}.sign-category-group{padding-top:2rem;scroll-margin-top:1rem}.sign-category-group+ .sign-category-group{margin-top:3rem;border-top:3px solid var(--ink)}.sign-category-heading{margin-bottom:1.25rem;display:flex;align-items:end;justify-content:space-between;gap:2rem}.sign-category-heading span{color:var(--blue);font-size:.7rem;font-weight:950;letter-spacing:.08em}.sign-category-heading h3{margin:.25rem 0;font-size:clamp(2rem,3.5vw,3.6rem);line-height:1}.sign-category-heading p{max-width:780px;margin:.4rem 0}.sign-category-heading>a{padding:.7rem 1rem;flex:0 0 auto;border:2px solid var(--ink);border-radius:999px;background:#fff;font-size:.75rem;font-weight:950;text-decoration:none}.traffic-sign-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.traffic-sign-card{min-width:0;overflow:hidden;display:grid;grid-template-rows:210px 1fr;border:2px solid var(--ink);border-radius:18px;background:#fff;box-shadow:4px 4px 0 rgba(32,24,18,.14)}.traffic-sign-image{position:relative;padding:1rem;display:grid;place-items:center;border-bottom:2px solid var(--ink);background:#fff9dc}.traffic-sign-image img{width:100%;height:170px;object-fit:contain;filter:drop-shadow(0 5px 4px rgba(32,24,18,.15))}.traffic-sign-image b{position:absolute;right:.6rem;top:.6rem;padding:.3rem .48rem;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);font-size:.65rem}.traffic-sign-card>div{padding:1rem;display:flex;flex-direction:column}.traffic-sign-card>div>span{color:var(--blue);font-size:.62rem;font-weight:950;text-transform:uppercase}.traffic-sign-card h4{margin:.45rem 0 1rem;font-size:.88rem;line-height:1.25}.traffic-sign-actions{margin-top:auto;display:flex;justify-content:space-between;gap:.5rem}.traffic-sign-actions a{font-size:.69rem;font-weight:950}.sign-search-empty{padding:2rem;display:grid;gap:.35rem;border:2px dashed var(--ink);border-radius:18px;background:#fff;text-align:center}.sign-search-empty[hidden]{display:none}.sign-search-empty strong{font-size:1.3rem}
.dynamic-sign-hero{padding:clamp(2.5rem,6vw,6rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.75fr);gap:clamp(2rem,6vw,7rem);align-items:center;background:var(--yellow)}.dynamic-sign-copy h1{margin:.5rem 0 1rem;font-size:clamp(3rem,6vw,6rem);line-height:.9;letter-spacing:-.055em}.dynamic-sign-copy h1 em{color:var(--blue);font-style:normal}.dynamic-sign-copy .lead{max-width:820px;font-size:1.05rem}.sign-pair{padding:clamp(3rem,6vw,6rem) clamp(1rem,7vw,8rem);background:var(--cream)}.sign-pair-grid{margin-top:2rem;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.sign-pair-grid article{padding:1.5rem;border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:7px 7px 0 var(--ink)}.sign-pair-grid article>span{display:block;font-size:.72rem;font-weight:950;letter-spacing:.06em}.sign-pair-grid img{width:100%;height:min(45vw,520px);padding:1rem;object-fit:contain}.sign-pair-grid p{margin:.5rem 0 0}.six-steps{grid-template-columns:repeat(3,1fr)!important}.pole-reminder,.download-workbook{padding:clamp(3rem,6vw,6rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:1fr minmax(300px,.75fr);gap:3rem;align-items:center}.pole-reminder{background:var(--sky)}.pole-reminder img{width:100%;border:3px solid var(--ink);border-radius:20px;background:#fff;box-shadow:7px 7px 0 var(--ink)}.pole-reminder h2,.download-workbook h2{margin:.4rem 0;font-size:clamp(2.2rem,4vw,4rem);line-height:.95}.download-workbook{background:#fff}.download-workbook>a{justify-self:end}.sign-craft-nav{padding:1.5rem clamp(1rem,7vw,8rem);display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;border-top:3px solid var(--ink);background:var(--cream)}.sign-craft-nav>a:not(.all-signs-link){padding:1rem;border:2px solid var(--ink);border-radius:14px;background:#fff;text-decoration:none}.sign-craft-nav>a span,.sign-craft-nav>a strong{display:block}.sign-craft-nav>a span{font-size:.62rem;font-weight:950;color:var(--blue)}.sign-craft-nav .next{text-align:right}.all-signs-link{font-size:.75rem;font-weight:950}
.sign-printable-page{background:#ddd}.print-toolbar{position:sticky;z-index:5;top:0;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--ink);color:#fff}.print-toolbar a{color:#fff;font-weight:900}.print-toolbar button{padding:.7rem 1rem;border:0;border-radius:999px;background:var(--yellow);font-weight:950;cursor:pointer}.individual-printable{display:grid;gap:2rem;justify-content:center;padding:2rem}.printable-sheet{width:210mm;min-height:297mm;padding:15mm;display:grid;grid-template-rows:auto 1fr auto;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.22)}.printable-sheet header{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:2px solid #201812}.printable-logo{width:42mm}.printable-sheet header div{text-align:right}.printable-sheet header small{font-size:9pt;font-weight:900}.printable-sheet h1{margin:0;font-size:30pt}.printable-sign-image{display:grid;place-items:center}.printable-sign-image img{width:165mm;height:205mm;object-fit:contain}.printable-sheet footer{border-top:2px solid #201812}.printable-sheet footer p{margin:.35rem 0}
@media(max-width:1100px){.traffic-sign-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.teamwork-roles,.dynamic-sign-hero,.pole-reminder,.download-workbook{grid-template-columns:1fr}.sign-pair-grid{grid-template-columns:1fr}.download-workbook>a{justify-self:start}}
@media(max-width:760px){.traffic-sign-library{padding:1.2rem;border-radius:20px}.traffic-sign-library>header{grid-template-columns:1fr}.sign-category-heading{align-items:flex-start;flex-direction:column}.traffic-sign-grid{grid-template-columns:1fr 1fr}.traffic-sign-card{grid-template-rows:170px 1fr}.traffic-sign-image img{height:135px}.teamwork-roles ol{grid-template-columns:1fr}.dynamic-sign-copy h1{font-size:clamp(2.8rem,14vw,4.5rem)}.six-steps{grid-template-columns:1fr!important}.sign-craft-nav{grid-template-columns:1fr 1fr}.all-signs-link{grid-column:1/-1;grid-row:1;text-align:center}.individual-printable{padding:.5rem;overflow:auto}.printable-sheet{transform-origin:top left}.print-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:480px){.traffic-sign-grid{grid-template-columns:1fr}.traffic-sign-card{grid-template-rows:210px 1fr}.traffic-sign-image img{height:170px}}
@media print{.print-toolbar{display:none!important}.sign-printable-page{background:#fff}.individual-printable{display:block;padding:0}.printable-sheet{width:210mm;height:297mm;min-height:297mm;padding:15mm;box-shadow:none;break-after:page;page-break-after:always}.printable-sheet:last-child{break-after:auto;page-break-after:auto}.sign-pair,.pole-reminder,.download-workbook,.sign-craft-nav{break-inside:avoid}.teamwork-roles{padding:18px!important}.teamwork-roles ol{grid-template-columns:repeat(3,1fr)}}

/* Traffic-light team: Αγγελική + Γιώργος + Ιουλία */
.teamwork-roles ol{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.teamwork-roles ol{grid-template-columns:1fr}}
@media print{.teamwork-roles ol{grid-template-columns:repeat(3,minmax(0,1fr))}}

.sign-team-library{padding:clamp(3rem,6vw,6rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:clamp(2rem,5vw,5rem);align-items:center;background:var(--sky)}.sign-team-library>img{width:100%;display:block;border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:9px 9px 0 var(--ink)}.sign-team-library h2{margin:.4rem 0;font-size:clamp(2.2rem,4vw,4.2rem);line-height:.95}.sign-team-library ul{margin:1rem 0 0;padding:0;display:grid;gap:.6rem;list-style:none}.sign-team-library li{padding:.65rem .8rem;border-left:5px solid var(--yellow);border-radius:0 10px 10px 0;background:#fff;font-weight:800}
@media(max-width:1000px){.sign-team-library{grid-template-columns:1fr}}
@media print{.sign-team-library{padding:18px!important;grid-template-columns:1.2fr .8fr;break-inside:avoid}.sign-team-library>img{box-shadow:none}}

/* v23.5: one approved team photo for all four sign-shape choices. */
.shape-activity-card .activity-card-image{aspect-ratio:3/2}
.sign-next>a.button{min-height:0;width:max-content;margin-top:1.5rem;padding:.9rem 1.25rem;display:inline-flex;grid-template-columns:none;grid-template-rows:none;border-radius:999px;background:var(--ink);color:#fff;box-shadow:none}
@media(max-width:650px){.sign-next>a.button{width:100%;justify-content:center}}

/* v23.8: responsive public menu, compact construction cards and protected Printables. */
.public-menu{display:none;position:relative}
.public-menu summary{min-height:44px;padding:.55rem .75rem;display:grid;grid-template-columns:18px auto;grid-template-rows:repeat(3,3px);gap:3px .5rem;align-content:center;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);cursor:pointer;list-style:none}
.public-menu summary::-webkit-details-marker{display:none}
.public-menu summary span{width:18px;height:3px;display:block;border-radius:2px;background:var(--ink)}
.public-menu summary b{grid-column:2;grid-row:1/4;align-self:center;font-size:.72rem}
.public-menu-panel{position:absolute;right:0;top:calc(100% + .65rem);width:min(330px,calc(100vw - 1.4rem));padding:.55rem;display:grid;gap:.25rem;border:3px solid var(--ink);border-radius:18px;background:#fff;box-shadow:7px 7px 0 var(--ink)}
.public-menu-panel a{padding:.8rem .9rem;border-radius:11px;font-size:.84rem;font-weight:900;text-decoration:none}
.public-menu-panel a:hover,.public-menu-panel a.active{background:var(--yellow)}
.public-lessons{align-items:start}
.construction-activity-card{min-height:0;padding:1.15rem}
.construction-activity-card .activity-card-image,.featured-team-card .activity-card-image,.shape-activity-card .activity-card-image{margin:-1.15rem -1.15rem .8rem;aspect-ratio:16/9}
.construction-activity-card h2{margin:.55rem 0;font-size:1.42rem}
.construction-activity-card p{margin:.45rem 0 .75rem;font-size:.9rem}
.construction-activity-card>a{margin-top:.75rem}
@media(max-width:1100px){.public-header{grid-template-columns:minmax(0,1fr) auto auto}.public-header>.header-site{display:none}.public-menu{display:block}.education-brand{min-width:0}.education-brand span{min-width:0}.education-brand small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:560px){.public-menu summary{width:44px;padding:.55rem;grid-template-columns:1fr}.public-menu summary b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.public-menu summary span{grid-column:1}.public-menu-panel{right:-4.8rem}.header-login{padding:.55rem .7rem}}

/* v23.9: the three-level JoyToy traffic-education experience. */
.experience-page{background:var(--cream)}
.experience-hero{padding:clamp(2.5rem,6vw,6rem) clamp(1rem,5vw,5rem);display:grid;grid-template-columns:minmax(0,.82fr) minmax(480px,1.18fr);gap:clamp(2rem,5vw,5rem);align-items:center;background:var(--yellow)}
.experience-hero-copy h1,.park-hero h1{margin:.55rem 0 1.2rem;font-size:clamp(3.3rem,6.5vw,7rem);line-height:.86;letter-spacing:-.065em}
.experience-hero-copy h1 em,.park-hero h1 em{color:var(--blue);font-style:normal}
.experience-hero-copy .lead{max-width:780px;font-size:clamp(1rem,1.4vw,1.2rem)}
.experience-hero-media{margin:0;overflow:hidden;border:3px solid var(--ink);border-radius:26px;background:#fff;box-shadow:10px 10px 0 var(--ink)}
.experience-hero-media img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.experience-hero-media figcaption{padding:.9rem 1.1rem;border-top:3px solid var(--ink);font-size:.8rem;font-weight:900}
.experience-intro,.park-intro{padding:clamp(3rem,7vw,7rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,8rem);align-items:start;background:#fff}
.experience-intro h2,.scenario-section h2,.experience-kit h2,.experience-cta h2,.park-intro h2,.park-features h2,.park-flow h2{margin:.45rem 0;font-size:clamp(2.5rem,5vw,5.5rem);line-height:.91;letter-spacing:-.055em}
.experience-intro-copy,.park-intro>div:last-child{font-size:clamp(1rem,1.3vw,1.15rem)}
.experience-intro-copy p:first-child,.park-intro>div:last-child p:first-child{margin-top:0}
.scenario-section{padding:clamp(3rem,7vw,7rem) clamp(1rem,4vw,4.5rem);background:var(--yellow)}
.scenario-section>header{max-width:1050px;margin-bottom:2rem}
.scenario-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.scenario-card{overflow:hidden;border:3px solid var(--ink);border-radius:24px;background:#fff;box-shadow:7px 7px 0 var(--ink)}
.scenario-card img{width:100%;display:block;aspect-ratio:16/10;object-fit:cover;border-bottom:3px solid var(--ink)}
.scenario-card>div{padding:1.3rem}
.scenario-card span{font-size:.68rem;font-weight:950;color:var(--blue);letter-spacing:.08em}
.scenario-card h3{margin:.45rem 0;font-size:clamp(1.5rem,2.1vw,2.25rem);line-height:1}
.scenario-card p{margin:.7rem 0 0;font-size:.93rem}
.experience-kit{padding:clamp(3rem,7vw,7rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,7vw,8rem);background:var(--sky)}
.experience-kit ul{margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.8rem;list-style:none}
.experience-kit li{padding:1rem;border:2px solid var(--ink);border-radius:15px;background:#fff;box-shadow:4px 4px 0 var(--ink)}
.experience-kit li b,.experience-kit li span{display:block}.experience-kit li b{font-size:1rem}.experience-kit li span{margin-top:.25rem;font-size:.8rem;color:var(--muted)}
.experience-cta{padding:clamp(3.5rem,7vw,7rem) clamp(1rem,8vw,9rem);display:grid;justify-items:start;background:var(--yellow)}
.experience-cta p:not(.section-label){max-width:850px;font-size:1.1rem}.experience-cta>.button{margin-top:1rem}
.park-hero{min-height:min(79vw,850px);position:relative;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
.park-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.park-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,16,12,.9) 0%,rgba(20,16,12,.48) 47%,rgba(20,16,12,.04) 76%),linear-gradient(0deg,rgba(20,16,12,.5),transparent 45%)}
.park-hero-overlay{position:relative;z-index:1;width:min(780px,92%);margin:clamp(1rem,5vw,5rem);padding:clamp(1.5rem,4vw,3.2rem);border:2px solid rgba(255,255,255,.45);border-radius:28px;background:rgba(25,20,16,.76);color:#fff;backdrop-filter:blur(8px)}
.park-hero h1{font-size:clamp(3.1rem,6.2vw,6.8rem)}
.park-hero h1 em{color:var(--yellow)}
.park-hero-overlay>p:last-of-type{max-width:650px;font-size:1.1rem}
.park-primary{color:var(--ink);background:var(--yellow);border-color:var(--yellow)}
.park-secondary{color:#fff;background:transparent;border-color:#fff}
.park-primary:hover,.park-secondary:hover{color:var(--ink);background:#fff;border-color:#fff}
.park-features{padding:clamp(3rem,7vw,7rem) clamp(1rem,6vw,7rem);background:var(--yellow)}
.park-features>header{max-width:1150px;margin-bottom:2rem}
.park-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.park-feature-grid article{min-height:250px;padding:1.25rem;display:flex;flex-direction:column;border:3px solid var(--ink);border-radius:20px;background:#fff;box-shadow:5px 5px 0 var(--ink)}
.park-feature-grid span{width:44px;height:44px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--yellow);font-size:.72rem;font-weight:950}
.park-feature-grid h3{margin:auto 0 .5rem;font-size:1.55rem;line-height:1.05}.park-feature-grid p{margin:0;font-size:.88rem}
.park-flow{padding:clamp(3rem,7vw,7rem) clamp(1rem,7vw,8rem);display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,7vw,8rem);background:var(--blue);color:#fff}
.park-flow .section-label{color:#fff}.park-flow ol{margin:0;padding:0;display:grid;gap:.8rem;list-style:none}
.park-flow li{padding:1rem;display:grid;grid-template-columns:54px 1fr;gap:1rem;align-items:start;border:2px solid #fff;border-radius:16px;background:rgba(255,255,255,.1)}
.park-flow li>span{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--yellow);color:var(--ink);font-weight:950}
.park-flow li b{font-size:1.1rem}.park-flow li p{margin:.25rem 0 0;font-size:.85rem}
.park-cta{background:var(--cream)}
@media(max-width:1050px){.experience-hero{grid-template-columns:1fr}.experience-hero-media{max-width:900px}.scenario-grid,.park-feature-grid{grid-template-columns:1fr 1fr}.experience-kit,.park-flow{grid-template-columns:1fr}.park-hero{min-height:780px}.park-hero:after{background:linear-gradient(0deg,rgba(20,16,12,.9) 0%,rgba(20,16,12,.32) 75%,rgba(20,16,12,.08))}}
@media(max-width:700px){.experience-intro,.park-intro{grid-template-columns:1fr}.scenario-grid,.park-feature-grid,.experience-kit ul{grid-template-columns:1fr}.scenario-card{box-shadow:5px 5px 0 var(--ink)}.park-hero{min-height:740px;align-items:flex-end}.park-hero-overlay{margin:.7rem;width:calc(100% - 1.4rem);padding:1.2rem;border-radius:20px}.park-hero h1{font-size:clamp(2.8rem,14vw,4.7rem)}.park-hero-overlay .hero-actions{align-items:stretch;flex-direction:column}.park-hero-overlay .button{width:100%}.experience-cta .hero-actions{align-items:stretch;flex-direction:column;width:100%}.experience-cta .button{width:100%}.park-feature-grid article{min-height:210px}}

/* Compact Windows-style information route to the public presentation. */
.education-info-card{width:min(570px,52vw);min-height:86px;padding:.8rem .9rem;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:.8rem;align-items:center;border:2px solid #1769aa;border-radius:14px;background:#eaf5ff;color:#123f68;box-shadow:4px 4px 0 #b8daf6;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.education-info-card:hover,.education-info-card:focus-visible{transform:translate(-1px,-1px);box-shadow:6px 6px 0 #9bc9ef;background:#f6fbff}
.education-info-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#1769aa;color:#fff;font-family:Georgia,serif;font-size:1.45rem;font-weight:900}
.education-info-copy{min-width:0;display:grid;gap:.2rem}.education-info-copy strong{font-size:1rem}.education-info-copy small{font-size:.72rem;line-height:1.35;color:#315c7e}.education-info-card>b{padding:.52rem .7rem;border-radius:8px;background:#1769aa;color:#fff;font-size:.7rem;white-space:nowrap}
.login-choice-intro h1{font-size:clamp(1.8rem,5.2vw,5.2rem);white-space:nowrap}
@media(max-width:760px){.login-choice-header{align-items:stretch;flex-direction:column}.education-info-card{width:100%;min-height:82px;grid-template-columns:40px minmax(0,1fr)}.education-info-icon{width:38px;height:38px}.education-info-card>b{grid-column:2;justify-self:start}.login-choice-intro h1{font-size:clamp(1.25rem,6.2vw,3rem)}}

/* Login choices: two primary columns and one compact JoyToy admin bar. */
.login-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.login-choice-card{min-height:350px}
.choice-school>a{display:none}
.school-choice-actions{margin-top:auto;padding-top:1.05rem;display:grid;grid-template-columns:1fr 1fr;gap:.7rem;border-top:2px solid var(--ink)}
.school-choice-actions a{min-height:48px;padding:.65rem .75rem;display:flex;align-items:center;border:2px solid var(--ink);border-radius:12px;background:#fff;font-size:.78rem;font-weight:900;text-decoration:none}
.school-choice-actions .school-register-link{background:var(--yellow)}
.login-admin-bar{margin-top:1rem;padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:3px solid var(--ink);border-radius:16px;background:var(--ink);color:#fff;box-shadow:5px 5px 0 var(--yellow)}
.login-admin-bar div{display:flex;align-items:center;gap:1rem}.login-admin-bar span{color:var(--yellow);font-size:.66rem;font-weight:900;letter-spacing:.12em}.login-admin-bar strong{font-size:.9rem}.login-admin-bar>a{padding:.55rem .85rem;border:2px solid var(--yellow);border-radius:999px;color:var(--yellow);font-size:.74rem;font-weight:900;text-decoration:none}.login-admin-bar>a:hover,.login-admin-bar>a:focus-visible{background:var(--yellow);color:var(--ink)}
@media(max-width:760px){.login-choice-grid{grid-template-columns:1fr}.school-choice-actions{grid-template-columns:1fr}.login-admin-bar{align-items:flex-start;flex-direction:column}.login-admin-bar div{align-items:flex-start;flex-direction:column;gap:.2rem}}

/* Subject-aware lesson filters. */
.lesson-filters{flex-wrap:wrap}
@media(max-width:1180px){.admin-lesson-filters{grid-template-columns:1fr 1fr 1fr}.admin-lesson-filters .button{width:100%}}
@media(max-width:900px){.admin-lesson-filters{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.admin-lesson-filters{grid-template-columns:1fr}}

/* v24.2: teacher classroom roster, counters and parent contact card. */
.app-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.return-admin-form{margin:0}.return-admin-form button{padding:.55rem .75rem;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);font-size:.72rem;font-weight:950;cursor:pointer}.admin-organization-actions{margin:1rem 0;display:grid;gap:.65rem}.admin-organization-actions .status-actions{margin:0}.impersonate-school-form{padding:.75rem;display:flex;align-items:center;justify-content:space-between;gap:.7rem;border:2px solid #1769aa;border-radius:13px;background:#eaf5ff}.impersonate-school{color:#fff;background:#1769aa;border-color:#1769aa}.impersonate-school-form small{color:#315c7e;font-size:.66rem;font-weight:850}
@media(max-width:1100px){.classroom-roster-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app-topbar-actions>a{display:none}.return-admin-form button{font-size:.64rem}.impersonate-school-form{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.classroom-roster-card>summary,.classroom-student{align-items:flex-start;flex-direction:column}.classroom-roster-card>summary>b{white-space:normal}.classroom-student-actions{width:100%;justify-content:space-between}.student-parent-details{position:static}.student-parent-details>div{position:static;width:100%;margin-top:.6rem;box-shadow:4px 4px 0 var(--ink)}.student-parent-details[open]{width:100%}}

/* v25: contacts, activities, excursions and global JoyToy supervision. */
.crm-filters,.admin-activity-filters{margin:0 0 1.2rem;padding:1rem;display:grid;grid-template-columns:repeat(5,minmax(135px,1fr)) auto;gap:.75rem;align-items:end;border:2px solid var(--ink);border-radius:18px;background:#fff}
.crm-filters label,.admin-activity-filters label{display:grid;gap:.3rem;font-size:.72rem;font-weight:900}.crm-filters input,.crm-filters select,.admin-activity-filters input,.admin-activity-filters select{width:100%;min-height:44px;padding:.62rem;border:2px solid var(--ink);border-radius:10px;background:#fff}.crm-filters .search-field{grid-column:span 2}.crm-filters .button,.admin-activity-filters .button{min-height:44px}.admin-activity-filters>a{padding:.7rem;font-size:.72rem;font-weight:900;text-align:center}
.registry-count,.result-count{display:flex;align-items:baseline;gap:.45rem}.registry-count{margin-bottom:1rem}.registry-count strong,.result-count strong{font-size:2rem}.registry-count span,.result-count span{font-size:.75rem;font-weight:900;text-transform:uppercase}
.contact-card-grid,.activity-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.contact-record-card,.activity-record-card{min-width:0;padding:1.2rem;display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:18px;background:#fff;box-shadow:4px 4px 0 var(--line)}.contact-record-card.status-inactive{opacity:.68}.contact-record-card header,.activity-record-card header,.contact-record-card footer,.activity-record-card footer{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.contact-record-card h2,.activity-record-card h2{margin:.8rem 0 .35rem;font-size:1.3rem;line-height:1.1}.contact-record-card p,.activity-record-card p{margin:.2rem 0;color:var(--muted)}.contact-record-card dl{margin:1rem 0;display:grid;grid-template-columns:auto 1fr;gap:.25rem .6rem;font-size:.82rem}.contact-record-card dt{font-weight:900}.contact-record-card dd{margin:0;overflow-wrap:anywhere}.contact-record-card footer,.activity-record-card footer{margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line);font-size:.75rem;font-weight:900}.contact-record-card footer a,.activity-record-card footer a{color:var(--blue)}
.contact-quick{margin:.8rem 0;display:grid;gap:.35rem}.contact-quick a{overflow-wrap:anywhere;color:var(--blue);font-size:.78rem;font-weight:900;text-decoration:none}.contact-quick a:hover{text-decoration:underline}.status.inactive{background:#e8e3db;color:var(--muted)}
.activity-record-card{border-top-width:8px}.activity-record-card.status-pending{border-top-color:var(--yellow)}.activity-record-card.status-confirmed{border-top-color:var(--blue)}.activity-record-card.status-completed{border-top-color:var(--green)}.activity-record-card.status-cancelled{border-top-color:var(--red)}.activity-record-card>small{margin:.65rem 0;overflow-wrap:anywhere;color:var(--muted)}.activity-record-meta{margin:.8rem 0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.activity-record-meta span{padding:.55rem;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:.68rem}.activity-record-meta b{display:block;font-size:.95rem}
.status.confirmed{color:#fff;background:var(--blue)}.status.cancelled{color:#fff;background:var(--red)}.status.pending{background:var(--yellow)}.status.completed{color:#fff;background:var(--green)}
.crm-panel{width:min(920px,94vw);max-height:94vh;padding:0;border:3px solid var(--ink);border-radius:22px;background:var(--paper);box-shadow:12px 12px 0 rgba(32,24,18,.32)}.crm-panel::backdrop{background:rgba(17,31,51,.62)}.crm-panel .panel-close{position:sticky;top:0;z-index:3;height:0;display:flex;justify-content:flex-end}.crm-panel .panel-close button{width:42px;height:42px;margin:.75rem;border:2px solid var(--ink);border-radius:50%;background:var(--yellow);font-size:1.4rem;font-weight:900;cursor:pointer}.crm-form{padding:clamp(1.2rem,4vw,2.5rem)}.crm-form>h2{margin:.2rem 0 1.3rem;font-size:2rem}.crm-form fieldset{margin-bottom:1rem}.crm-form fieldset>label{display:grid;gap:.35rem;font-size:.82rem;font-weight:900}.crm-form input,.crm-form select,.crm-form textarea{width:100%;padding:.72rem;border:2px solid var(--ink);border-radius:10px;background:#fff}.address-search-block{background:var(--sky)!important}.address-search-block>[data-other-location][hidden],.crm-form [hidden]{display:none!important}.address-search-block>[data-other-location]{display:grid;gap:.8rem}.address-search-block [data-address-search]{border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,86,217,.12)}
.participant-groups{display:grid;gap:.55rem}.participant-group-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 44px;gap:.55rem;align-items:end}.participant-group-row label{display:grid;gap:.3rem;font-size:.76rem;font-weight:900}.participant-group-row button{height:44px;border:2px solid var(--ink);border-radius:10px;background:#fff0f1;color:var(--red);font-size:1.3rem;font-weight:900;cursor:pointer}.add-participant{margin-top:.7rem}.participant-total-preview{margin:.8rem 0;padding:.75rem;border-radius:12px;background:var(--yellow);font-weight:900}.participant-total-preview strong{font-size:1.35rem}
.admin-activity-filters{grid-template-columns:repeat(4,minmax(150px,1fr))}.admin-activity-summary{grid-template-columns:repeat(4,1fr)}.admin-activity-summary article.success{background:#dff7e6}.admin-activity-summary article.attention{background:var(--yellow)}.admin-activity-value{margin:1rem 0;padding:1rem 1.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:2px solid var(--ink);border-radius:16px;background:var(--blue);color:#fff}.admin-activity-value span{font-size:.78rem;font-weight:900}.admin-activity-value strong{font-size:1.7rem}.inactive-organizations{margin:1rem 0;border:2px solid var(--ink);border-radius:16px;background:#fff}.inactive-organizations summary{padding:1rem;display:flex;justify-content:space-between;gap:1rem;cursor:pointer;font-weight:900}.inactive-organizations summary strong{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--yellow)}.inactive-organizations>div{padding:0 1rem 1rem;display:flex;flex-wrap:wrap;gap:.5rem}.inactive-organizations>div span{padding:.45rem .65rem;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:.76rem}.activity-admin-table small{display:block;color:var(--muted)}.activity-admin-table th,.activity-admin-table td{vertical-align:top}
@media(max-width:1280px){.contact-card-grid,.activity-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-filters{grid-template-columns:repeat(3,minmax(135px,1fr))}.admin-activity-filters{grid-template-columns:repeat(3,minmax(145px,1fr))}}
@media(max-width:900px){.contact-card-grid,.activity-card-grid{grid-template-columns:1fr}.crm-filters,.admin-activity-filters{grid-template-columns:1fr 1fr}.crm-filters .search-field{grid-column:1/-1}.admin-activity-summary{grid-template-columns:1fr 1fr}.activity-admin-table{min-width:1120px}}
@media(max-width:620px){.crm-filters,.admin-activity-filters,.admin-activity-summary{grid-template-columns:1fr}.crm-filters .search-field{grid-column:auto}.participant-group-row{grid-template-columns:minmax(0,1fr) 88px 42px}.activity-record-meta{grid-template-columns:1fr}.crm-panel{width:100vw;max-width:none;max-height:100vh;border-radius:0}.crm-form{padding:1rem}.crm-form .form-grid{grid-template-columns:1fr}.crm-form .form-grid .wide{grid-column:auto}.admin-activity-value{align-items:flex-start;flex-direction:column}}
