:root{--wine:#6a4fb3;--wine-dark:#352ca4;--gold:#f7a033;--green:#3d8b5c;--ink:#261f3a;--muted:#6c6582;--cream:#f9f7ff;--paper:#fff;--line:#e5def7;--lavender:#c1b6e8;--sun:#f8c644;--lime:#c6f2a6;--shadow:0 18px 55px rgba(52,40,110,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Tahoma,"Arial",sans-serif;line-height:1.7}a{color:inherit;text-decoration:none}button,input{font:inherit}.skip-link{position:absolute;right:1rem;top:-5rem;background:var(--ink);color:#fff;padding:.7rem 1rem;border-radius:.5rem;z-index:10}.skip-link:focus{top:1rem}.site-header{min-height:84px;padding:14px clamp(20px,6vw,88px);display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(255,255,255,.88);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:48px;height:48px;color:var(--wine);background:#efeafd;border-radius:16px}.brand-mark svg{width:34px;height:34px}.brand strong{display:block;font-size:1.3rem;letter-spacing:.02em;color:var(--wine-dark)}.brand small{display:block;font-size:.72rem;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:20px;font-size:.9rem}.header-actions>a:not(.button){color:var(--muted)}.header-actions form{margin:0}.link-button{background:none;border:0;padding:0;color:var(--muted);cursor:pointer}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;background:var(--wine);color:white;border:1px solid var(--wine);border-radius:12px;font-weight:700;box-shadow:0 7px 18px #6a4fb324;transition:.18s ease}.button:hover{background:var(--wine-dark);transform:translateY(-1px)}.button-secondary{background:white;color:var(--wine);box-shadow:none}.button-small{padding:9px 15px;font-size:.85rem}.page-main{min-height:calc(100vh - 150px)}.site-footer{display:flex;justify-content:space-between;gap:16px;padding:24px clamp(20px,6vw,88px);border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.flash{max-width:1120px;margin:18px auto 0;padding:12px 16px;background:#eaf1ec;color:#365540;border-radius:10px}
.hero{max-width:1240px;margin:auto;padding:64px clamp(20px,6vw,88px) 54px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:50px}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--green);font-size:.85rem;font-weight:700}.eyebrow:before{content:"";width:8px;height:8px;background:var(--gold);border-radius:50%}.hero h1{margin:18px 0 14px;font-size:clamp(2.2rem,5vw,4.1rem);line-height:1.3;letter-spacing:-.04em;color:var(--wine-dark)}.hero h1 span{color:var(--green)}.hero-copy{max-width:580px;color:var(--muted);font-size:1.07rem}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero-art{min-height:390px;display:grid;place-items:center;position:relative}.book-scene{position:relative;width:min(100%,440px);height:340px;border-radius:38% 62% 60% 40%/52% 38% 62% 48%;background:radial-gradient(circle at 62% 33%,#ead7c1 0,transparent 44%),linear-gradient(145deg,#eee3db,#eadbdd);display:grid;place-items:center}.open-book{width:230px;height:160px;filter:drop-shadow(0 18px 18px #61364620);position:relative}.open-book:before,.open-book:after{content:"";position:absolute;top:8px;width:112px;height:142px;background:#fffdf9;border:1px solid #dfd0c7}.open-book:before{right:4px;border-radius:6px 22px 12px 4px;transform:skewY(5deg)}.open-book:after{left:4px;border-radius:22px 6px 4px 12px;transform:skewY(-5deg)}.book-line{position:absolute;z-index:1;height:3px;background:#d9c7bd;border-radius:3px;top:52px;right:25px;width:67px;box-shadow:0 16px #d9c7bd,0 32px #d9c7bd}.book-line.left{right:auto;left:25px}.step{position:absolute;border-radius:50%;background:#fffdf7;box-shadow:var(--shadow);display:grid;place-items:center;color:var(--wine);font-size:1.3rem}.step-one{width:58px;height:58px;top:45px;right:50px}.step-two{width:48px;height:48px;bottom:54px;left:50px;color:var(--green)}.art-note{position:absolute;bottom:25px;right:30px;background:#fffdf9;padding:12px 17px;border-radius:14px;color:var(--green);font-size:.84rem;box-shadow:var(--shadow)}
.section{max-width:1240px;margin:auto;padding:22px clamp(20px,6vw,88px) 72px}.section-heading{text-align:center;max-width:650px;margin:0 auto 28px}.section-heading h2{font-size:1.8rem;color:var(--wine-dark);margin:0 0 8px}.section-heading p{color:var(--muted);margin:0}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-card,.panel,.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:23px;box-shadow:0 5px 22px #34286e08}.feature-icon{width:44px;height:44px;border-radius:13px;background:#f1ecfb;color:var(--wine);display:grid;place-items:center;font-size:1.15rem}.feature-card h3{margin:14px 0 5px;font-size:1.05rem}.feature-card p{margin:0;color:var(--muted);font-size:.9rem}
.auth-wrap{min-height:calc(100vh - 180px);display:grid;place-items:center;padding:36px 20px}.auth-card{width:min(460px,100%);padding:clamp(24px,5vw,38px);background:var(--paper);border:1px solid var(--line);border-radius:23px;box-shadow:var(--shadow)}.auth-icon{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;background:#f1ecfb;color:var(--wine);font-size:1.45rem}.auth-card h1{color:var(--wine-dark);font-size:1.65rem;margin:19px 0 5px}.auth-card>p{margin:0 0 21px;color:var(--muted);font-size:.92rem}.field{margin:16px 0}.field label{display:block;font-weight:700;font-size:.86rem;margin-bottom:7px}.field input{width:100%;padding:13px 14px;border:1px solid #d8cfef;border-radius:11px;background:#fff;color:var(--ink);outline:none}.field input:focus{border-color:var(--wine);box-shadow:0 0 0 3px #6a4fb31a}.auth-card .button{width:100%;margin-top:8px}.auth-foot{margin-top:18px!important;text-align:center}.auth-foot a{color:var(--wine);font-weight:700}.error-list{padding:11px 14px;border-radius:10px;background:#fff1f0;color:#9a3942;font-size:.9rem;margin-bottom:15px}
.dashboard{max-width:1180px;margin:auto;padding:40px clamp(20px,5vw,64px) 64px}.dashboard-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:25px}.dashboard-head h1{margin:6px 0 0;color:var(--wine-dark);font-size:clamp(1.7rem,4vw,2.4rem)}.dashboard-head p{margin:4px 0 0;color:var(--muted)}.role-tag{display:inline-flex;padding:6px 12px;border-radius:99px;background:#efe5e5;color:var(--wine);font-size:.78rem;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat-card{padding:20px}.stat-label{color:var(--muted);font-size:.82rem}.stat-number{font-size:1.7rem;font-weight:700;color:var(--wine-dark);margin-top:7px}.dashboard-lower{display:grid;grid-template-columns:1.2fr .8fr;gap:17px;margin-top:18px}.panel h2{font-size:1.08rem;margin:0 0 7px;color:var(--wine-dark)}.panel p{color:var(--muted);margin:0}.panel-note{display:flex;align-items:flex-start;gap:12px}.panel-note .feature-icon{flex:none}.progress-track{height:10px;background:#efe9e4;border-radius:20px;margin:16px 0 8px;overflow:hidden}.progress-fill{height:100%;width:0;background:var(--green);border-radius:20px}.empty-state{text-align:center;padding:32px 16px;border:1px dashed #d8cfef;border-radius:14px;margin-top:17px;color:var(--muted)}.empty-state strong{display:block;color:var(--wine-dark);margin-bottom:5px}.empty-icon{font-size:1.8rem;margin-bottom:6px}
@media(max-width:800px){.hero{grid-template-columns:1fr;gap:16px;padding-top:45px}.hero-art{min-height:300px;order:-1}.book-scene{height:280px;max-width:380px}.open-book{transform:scale(.82)}.feature-grid{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-lower{grid-template-columns:1fr}}
@media(max-width:520px){.site-header{min-height:72px;padding:12px 16px}.brand small{display:none}.header-actions{gap:11px;font-size:.8rem}.header-actions .button{padding:8px 10px}.hero{padding:38px 20px 32px}.hero-art{min-height:230px}.book-scene{height:220px}.step-one{right:18px;top:18px}.step-two{left:18px;bottom:25px}.art-note{right:8px;bottom:3px}.dashboard{padding-top:29px}.dashboard-head{display:block}.role-tag{margin-top:12px}.dashboard-grid{grid-template-columns:1fr}.site-footer{padding:18px 20px;display:block}.site-footer span{display:block}.site-footer span+span{margin-top:5px}}

.library-page{padding-top:30px}.motion-toggle{border:1px solid var(--line);background:#fff;color:var(--wine);border-radius:10px;padding:9px 14px;cursor:pointer;font-size:.84rem}.motion-toggle:hover{border-color:var(--wine)}
.story-stage{height:440px;position:relative;overflow:hidden;border:1px solid #e5def7;border-radius:26px;background:linear-gradient(180deg,#f2e9e6 0%,#f5eee4 72%,#e6e2d3 100%);box-shadow:var(--shadow);isolation:isolate}.stage-sun{position:absolute;width:88px;height:88px;left:15%;top:46px;border-radius:50%;background:#e6c68d;box-shadow:0 0 0 16px #e6c68d25}.stage-cloud{position:absolute;width:90px;height:24px;top:78px;background:#fffaf3;border-radius:30px;opacity:.85}.stage-cloud:before,.stage-cloud:after{content:"";position:absolute;bottom:6px;background:inherit;border-radius:50%}.stage-cloud:before{width:36px;height:36px;right:18px}.stage-cloud:after{width:26px;height:26px;right:43px}.cloud-one{right:18%;top:82px}.cloud-two{right:48%;top:132px;transform:scale(.65);opacity:.58}.stage-hill{position:absolute;width:75%;height:190px;bottom:-106px;border-radius:50% 50% 0 0}.hill-back{right:-12%;background:#b9c3aa;transform:rotate(-6deg)}.hill-front{left:-12%;width:80%;bottom:-126px;background:#829578;transform:rotate(5deg)}.stage-bird{position:absolute;width:65px;top:102px;left:-90px;animation:bird-flight 13s linear infinite;z-index:1}.guide-character{position:absolute;width:210px;height:245px;right:19%;bottom:35px;padding:0;border:0;background:transparent;cursor:pointer;z-index:2;filter:drop-shadow(0 12px 8px #54314418);transition:filter .2s}.guide-character:hover,.guide-character:focus-visible{filter:drop-shadow(0 14px 12px #54314433);outline:0}.guide-character:focus-visible svg{outline:3px solid var(--gold);outline-offset:6px;border-radius:40%}.guide-character svg{width:100%;height:100%;overflow:visible}.guide-body{transform-box:fill-box;transform-origin:center;animation:guide-bob 2.8s ease-in-out infinite}.tiny-book{transform-box:fill-box;transform-origin:center;animation:book-wiggle 3.4s ease-in-out infinite}.character-speech{position:absolute;right:calc(19% + 170px);bottom:210px;max-width:300px;padding:13px 17px;border-radius:17px 17px 4px 17px;background:#fffdf9;color:var(--wine-dark);font-size:.92rem;box-shadow:var(--shadow);z-index:3}.character-speech:after{content:"";position:absolute;bottom:-9px;right:20px;border:10px solid transparent;border-bottom:0;border-top-color:#fffdf9}.stage-caption{position:absolute;left:30px;bottom:28px;color:#fffdf9;font-size:.95rem;font-weight:700;text-shadow:0 2px 5px #34433b88;z-index:2}.library-empty{display:flex;align-items:center;gap:15px;margin-top:20px}.library-empty h2{margin:0 0 3px;color:var(--wine-dark);font-size:1.05rem}.library-empty p{margin:0;color:var(--muted);font-size:.9rem}
@keyframes guide-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-12px) rotate(1deg)}}@keyframes book-wiggle{0%,100%{transform:rotate(0)}50%{transform:rotate(-5deg)}}@keyframes bird-flight{0%{transform:translateX(0) translateY(0)}45%{transform:translateX(48vw) translateY(-25px)}100%{transform:translateX(115vw) translateY(8px)}}.motion-paused .guide-body,.motion-paused .tiny-book,.motion-paused .stage-bird{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body:not(.motion-enabled) .guide-body,body:not(.motion-enabled) .tiny-book,body:not(.motion-enabled) .stage-bird{animation:none!important}.button{transition:none}}
@media(max-width:700px){.library-page{padding-top:24px}.story-stage{height:390px}.guide-character{width:165px;height:205px;right:13%;bottom:26px}.character-speech{right:8%;bottom:230px;max-width:240px}.stage-caption{left:17px;bottom:20px;font-size:.82rem}.stage-sun{width:64px;height:64px;top:42px}.library-empty{align-items:flex-start}}
@media(max-width:420px){.dashboard-head{position:relative;padding-bottom:46px}.motion-toggle{position:absolute;right:0;bottom:0}.story-stage{height:360px}.guide-character{width:145px;height:182px;right:10%;bottom:28px}.character-speech{right:6%;bottom:218px;max-width:205px;font-size:.83rem}.cloud-one{right:8%}}
.motion-paused *{scroll-behavior:auto}

.text-link{align-self:center;color:var(--wine);font-size:.9rem;font-weight:700;padding:8px 4px}.text-link:hover{text-decoration:underline}

.management-page{padding-top:30px}.management-grid{align-items:start}.management-page .field small{display:block;margin-top:6px;color:var(--muted);font-size:.78rem}.management-page .panel>.field:first-child{margin-top:12px}.person-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.person-row:last-child{border-bottom:0}.person-avatar{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:14px;background:#efeafd;color:var(--wine);font-weight:700}.student-avatar{background:#eaf0e8;color:var(--green)}.person-row>span:nth-child(2){min-width:0}.person-row strong,.person-row small{display:block}.person-row strong{font-size:.9rem}.person-row small{color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}.person-info{flex:1}.count-pill{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 7px;background:#efeafd;color:var(--wine);border-radius:20px;font-size:.75rem}.reset-code-button{border:1px solid var(--line);background:#fff;color:var(--wine);border-radius:9px;padding:7px 10px;font:inherit;font-size:.78rem;cursor:pointer}.reset-code-button:hover{border-color:var(--wine)}.new-code-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:18px;background:#f0f4ee;border:1px solid #dce8d9;border-radius:17px;padding:20px 22px;margin-bottom:18px}.new-code-card h2{margin:9px 0 3px;color:#365540;font-size:1.13rem}.new-code-card p{margin:0;color:var(--muted);font-size:.86rem}.student-code{display:inline-block;background:white;border:1px dashed #90a28b;padding:12px 15px;border-radius:10px;color:#354d3b;font-size:1.05rem;font-weight:700;letter-spacing:.08em}.new-code-card .button{box-shadow:none}@media(max-width:780px){.new-code-card{grid-template-columns:1fr}.student-code{width:max-content;max-width:100%}}@media(max-width:520px){.management-page .dashboard-head{padding-bottom:0}.person-row{gap:8px}.reset-code-button{padding:7px}.student-code{font-size:.9rem;letter-spacing:.04em}}

.management-page textarea,.management-page select{width:100%;padding:12px 14px;border:1px solid #d8cfef;border-radius:11px;background:#fff;color:var(--ink);font:inherit;line-height:1.8;resize:vertical}.management-page textarea:focus,.management-page select:focus{outline:2px solid #6a4fb333;border-color:var(--wine)}.student-picker{border:1px solid var(--line);border-radius:13px;padding:14px;margin:16px 0}.student-picker legend{font-size:.9rem;font-weight:700;color:var(--wine-dark);padding:0 5px}.student-picker p{margin:0 0 10px;color:var(--muted);font-size:.8rem}.student-picker option{padding:8px}.story-admin-card{display:flex;align-items:flex-start;gap:13px;padding:15px 0;border-bottom:1px solid var(--line)}.story-admin-card:last-child{border:0}.story-cover{width:48px;height:54px;display:grid;place-items:center;background:#f4ebdf;border-radius:12px;font-size:1.35rem;flex:none}.story-admin-copy h3{margin:0;color:var(--wine-dark);font-size:.98rem}.story-admin-copy p{margin:3px 0;color:var(--muted);font-size:.83rem}.story-admin-copy small{color:var(--green);font-size:.74rem}.story-management-grid{grid-template-columns:1.1fr .9fr}.assigned-story-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:20px}.assigned-story{display:block;background:white;border:1px solid var(--line);border-radius:17px;padding:19px;transition:transform .2s,box-shadow .2s}.assigned-story:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.assigned-story h2{margin:10px 0 4px;color:var(--wine-dark);font-size:1.05rem}.assigned-story p{margin:0;color:var(--muted);font-size:.84rem}.assigned-story-top{display:flex;align-items:center;justify-content:space-between}.assigned-story-icon{width:44px;height:44px;display:grid;place-items:center;background:#f4ebdf;border-radius:13px;font-size:1.2rem}.story-progress-label{display:flex;justify-content:space-between;margin-top:13px;color:var(--muted);font-size:.77rem}.story-progress{height:7px;background:#eee8e2;border-radius:9px;margin-top:6px;overflow:hidden}.story-progress span{display:block;height:100%;background:var(--green);border-radius:9px}.reader-page{max-width:850px;margin:0 auto;padding:34px 20px 60px}.reader-back{color:var(--wine);font-weight:700;font-size:.9rem}.reader-heading{text-align:center;padding:22px 0 12px}.reader-heading h1{margin:10px 0 4px;color:var(--wine-dark);font-size:clamp(1.7rem,5vw,2.5rem)}.reader-heading p{color:var(--muted);margin:0}.library-stories-heading{margin-top:32px}.library-stories-heading h2{color:var(--wine-dark);margin-bottom:3px}.library-stories-heading p{color:var(--muted);margin:0}.demo-note{margin-top:20px}.@media(max-width:780px){.story-management-grid{grid-template-columns:1fr}.assigned-story-grid{grid-template-columns:1fr}}@media(max-width:500px){.reader-page{padding:23px 16px 40px}}


/* Role dashboard refresh */
.dashboard-home{max-width:1120px;padding-top:48px}
.dashboard-welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px;padding:28px 32px;background:linear-gradient(115deg,#fff 0%,#f1ecfb 100%);border:1px solid var(--line);border-radius:22px;box-shadow:0 8px 28px #34286e08}
.dashboard-welcome h1{margin:10px 0 5px;color:var(--wine-dark);font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.3}
.dashboard-welcome p{margin:0;color:var(--muted)}
.dashboard-welcome>.button{flex:none}
.dashboard-shortcuts{gap:16px}
.shortcut-card{position:relative;display:flex;min-height:142px;flex-direction:column;align-items:flex-start;justify-content:center;padding:20px 22px;transition:transform .18s,border-color .18s,box-shadow .18s}
.shortcut-card:hover{transform:translateY(-3px);border-color:#cbbbef;box-shadow:var(--shadow)}
.shortcut-icon{position:absolute;top:19px;left:20px;width:42px;height:42px;display:grid;place-items:center;background:#f1ecfb;border-radius:14px;font-size:1.15rem}
.shortcut-card .stat-label{margin-bottom:5px}
.shortcut-card strong{font-size:1.2rem;color:var(--wine-dark)}
.shortcut-arrow{position:absolute;bottom:18px;left:22px;color:var(--wine);font-size:1.2rem;transition:transform .18s}
.shortcut-card:hover .shortcut-arrow{transform:translateX(-4px)}
.dashboard-owner-lower{grid-template-columns:1.65fr .75fr;gap:16px}
.dashboard-main-panel{padding:26px}
.panel-heading-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.panel-heading-row .eyebrow{margin-bottom:3px}
.panel-heading-row h2{font-size:1.3rem;margin:0}
.panel-heading-icon{width:42px;height:42px;display:grid;place-items:center;background:#f1ecfb;border-radius:14px}
.owner-workflow{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}
.owner-workflow a{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:16px 14px;background:#fcfaf8;border:1px solid var(--line);border-radius:14px;transition:border-color .18s,background .18s}
.owner-workflow a:hover{background:#fff;border-color:#cbbbef}
.owner-workflow a>span{display:grid;place-items:center;width:28px;height:28px;margin-bottom:6px;border-radius:50%;background:#f0e4e7;color:var(--wine);font-weight:700}
.owner-workflow b{font-size:.9rem;color:var(--wine-dark)}
.owner-workflow small{color:var(--muted);font-size:.76rem}
.privacy-panel{padding:24px}
.privacy-panel h2{margin:13px 0 6px}
.privacy-panel p{font-size:.88rem}
.dashboard-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.student-dashboard-card{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:24px;padding:26px 30px;background:linear-gradient(110deg,#fff 0%,#f3eee4 100%);border:1px solid var(--line);border-radius:22px;box-shadow:0 8px 28px #34286e08}
.student-dashboard-art{position:relative;display:grid;place-items:center;width:140px;height:140px;background:#efeafd;border-radius:42% 58% 60% 40%;font-size:4rem}
.student-dashboard-art span{position:absolute;right:0;bottom:3px;font-size:1.8rem}
.student-dashboard-card h2{margin:8px 0 5px;color:var(--wine-dark);font-size:1.35rem}
.student-dashboard-card p{max-width:600px;margin:0 0 17px;color:var(--muted)}
@media(max-width:800px){.dashboard-owner-lower{grid-template-columns:1fr}.privacy-panel{display:flex;align-items:flex-start;gap:14px}.privacy-panel h2{margin:3px 0 6px}.privacy-panel p{margin:0}.privacy-panel .feature-icon{flex:none}.owner-workflow{grid-template-columns:1fr}.owner-workflow a{display:grid;grid-template-columns:32px 1fr;align-items:center;column-gap:10px}.owner-workflow a>span{grid-row:span 2;margin:0}.student-dashboard-card{grid-template-columns:115px 1fr;gap:18px}.student-dashboard-art{width:110px;height:110px;font-size:3.2rem}}
@media(max-width:520px){.dashboard-home{padding-top:25px}.dashboard-welcome{display:block;padding:22px;margin-bottom:17px}.dashboard-welcome>.button{margin-top:17px}.dashboard-shortcuts{grid-template-columns:1fr}.shortcut-card{min-height:112px;padding:16px 18px}.shortcut-icon{top:15px;left:16px}.shortcut-arrow{bottom:14px;left:18px}.dashboard-main-panel{padding:20px}.owner-workflow{margin-top:15px}.privacy-panel{padding:19px}.student-dashboard-card{grid-template-columns:1fr;padding:21px}.student-dashboard-art{width:90px;height:90px;font-size:2.7rem}.student-dashboard-card h2{font-size:1.18rem}}
@media(prefers-reduced-motion:reduce){.shortcut-card,.shortcut-arrow,.owner-workflow a{transition:none}}

/* Keep navigation links grouped on the right beside the brand in RTL */
@media(min-width:801px){.site-header{justify-content:flex-start}.header-actions{margin-right:28px}}
@media(max-width:800px){.site-header{flex-wrap:wrap}.header-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--line)}}


/* Signed-in layout with a right-side navigation panel */
.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr);direction:rtl}
.site-sidebar{position:sticky;top:0;height:100vh;min-height:560px;display:flex;flex-direction:column;padding:24px 17px 16px;background:#fff;border-left:1px solid var(--line);box-shadow:-6px 0 25px #34286e06;z-index:5}
.sidebar-brand{padding:0 4px 22px;border-bottom:1px solid var(--line)}
.sidebar-caption{padding:22px 10px 10px;color:#a09297;font-size:.73rem;font-weight:700}
.sidebar-nav{display:grid;gap:5px}
.sidebar-nav a{display:flex;align-items:center;gap:11px;min-height:45px;padding:9px 11px;border-radius:11px;color:var(--muted);font-size:.88rem;font-weight:700;transition:background .16s,color .16s}
.sidebar-nav a>span{width:29px;height:29px;display:grid;place-items:center;flex:none;background:#f7f1ee;border-radius:9px;color:var(--wine);font-size:1.05rem}
.sidebar-nav a:hover,.sidebar-nav a.active{background:#efeafd;color:var(--wine-dark)}
.sidebar-nav a.active{box-shadow:inset -3px 0 var(--wine)}
.sidebar-account{display:flex;align-items:center;gap:10px;margin-top:auto;padding:13px 10px;border-top:1px solid var(--line)}
.account-avatar{width:38px;height:38px;display:grid;place-items:center;flex:none;background:#efeafd;color:var(--wine);border-radius:12px;font-weight:700}
.account-copy{min-width:0}
.account-copy strong,.account-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-copy strong{font-size:.82rem;color:var(--ink)}
.account-copy small{font-size:.73rem;color:var(--muted)}
.sidebar-logout{margin:0}
.sidebar-logout button{width:100%;display:flex;align-items:center;gap:11px;padding:10px;border:0;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:.84rem;text-align:right;cursor:pointer}
.sidebar-logout button:hover{background:#fbf1f0;color:#9a3942}
.app-content{min-width:0;display:flex;flex-direction:column}
.app-content>.page-main{flex:1}
.app-content>.flash{width:calc(100% - 48px)}
.app-content>.site-footer{margin-top:30px}
@media(max-width:800px){.app-shell{grid-template-columns:1fr}.site-sidebar{position:relative;height:auto;min-height:0;padding:13px 18px;border-left:0;border-bottom:1px solid var(--line);box-shadow:0 5px 20px #34286e08}.sidebar-brand{padding:0 0 12px;border-bottom:0}.sidebar-brand .brand-mark{width:40px;height:40px;border-radius:13px}.sidebar-brand .brand-mark svg{width:29px;height:29px}.sidebar-caption{display:none}.sidebar-nav{display:flex;gap:6px;overflow-x:auto;padding:5px 0 9px;border-top:1px solid var(--line)}.sidebar-nav a{min-height:40px;flex:none;padding:7px 10px;font-size:.8rem}.sidebar-nav a>span{width:25px;height:25px}.sidebar-nav a.active{box-shadow:inset 0 -3px var(--wine)}.sidebar-account{position:absolute;top:12px;left:18px;margin:0;padding:0;border:0}.account-avatar{width:36px;height:36px}.account-copy,.sidebar-logout{display:none}.app-content>.flash{width:calc(100% - 32px)}}
@media(max-width:520px){.site-sidebar{padding:11px 14px}.sidebar-brand small{display:block}.sidebar-account{left:14px}.sidebar-nav{margin-top:3px}.sidebar-nav a{gap:7px}.app-content>.site-footer{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.sidebar-nav a{transition:none}}


/* Reading journey map and three-question checkpoints */
.journey-heading{margin:34px 0 18px;text-align:center}
.journey-heading h2{margin:5px 0;color:var(--wine-dark);font-size:1.7rem}
.journey-heading>p{margin:0;color:var(--muted)}
.map-legend{display:flex;justify-content:center;gap:18px;margin-top:14px;color:var(--muted);font-size:.78rem}
.map-legend span{display:inline-flex;align-items:center;gap:6px}
.map-legend i{width:10px;height:10px;border-radius:50%;background:#9ba995}
.map-legend .legend-locked{background:#d4c9c9}.map-legend .legend-done{background:var(--green)}
.reading-map{position:relative;max-width:780px;margin:28px auto 50px}
.quiz-form-heading{margin:25px 0 4px;padding-top:20px;border-top:1px solid var(--line);color:var(--wine-dark)}
.quiz-form-intro{margin:0 0 13px!important;font-size:.84rem}
.question-editor{margin:13px 0;padding:14px 15px;border:1px solid var(--line);border-radius:14px}
.question-editor legend{padding:0 7px;color:var(--wine);font-weight:700;font-size:.9rem}
.question-editor .field{margin:10px 0}
.option-field{display:inline-block;width:calc(50% - 8px);vertical-align:top}
.option-field:nth-of-type(even){margin-left:12px}
.quiz-page form{margin-top:20px}
.quiz-question{margin:0 0 16px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 5px 18px #34286e06}
.quiz-question legend{width:100%;padding:0 0 12px}
.quiz-question legend span,.quiz-question legend strong{display:block}
.quiz-question legend span{margin-bottom:5px;color:var(--green);font-size:.78rem;font-weight:700}
.quiz-question legend strong{color:var(--wine-dark);font-size:1.08rem}
.quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.quiz-option{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 13px;border:1px solid var(--line);border-radius:11px;cursor:pointer;color:var(--ink);transition:background .15s,border-color .15s}
.quiz-option:has(input:checked){background:#f4ebed;border-color:#c79aa9}
.quiz-option input{accent-color:var(--wine);width:17px;height:17px;flex:none}
.quiz-option span{font-size:.9rem}
.quiz-submit-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 0 25px}
.quiz-submit-row>span{color:var(--muted);font-size:.83rem}
.quiz-feedback{margin:15px 0;padding:13px 16px;background:#fff5e7;border:1px solid #ead8b7;border-radius:11px;color:#775323}
@media(max-width:650px){.quiz-options{grid-template-columns:1fr}.quiz-submit-row{align-items:stretch;flex-direction:column}.quiz-submit-row .button{width:100%}.question-editor{padding:10px}.option-field{width:100%;display:block;margin-left:0!important}}
@media(prefers-reduced-motion:reduce){.quiz-option{transition:none}}






/* Treasure map: student reading journey */
.treasure-frame{--tm-ink:#6b4a35;max-width:880px;margin:8px auto 12px;filter:drop-shadow(0 14px 26px rgba(80,52,30,.18))}
.treasure-map{position:relative;display:flex;flex-direction:column-reverse;padding:48px 6% 58px;color:#4a3426;background:radial-gradient(ellipse at 18% 12%,rgba(196,150,90,.28) 0,transparent 32%),radial-gradient(ellipse at 84% 58%,rgba(196,150,90,.22) 0,transparent 30%),radial-gradient(ellipse at 30% 86%,rgba(170,120,70,.2) 0,transparent 26%),linear-gradient(180deg,#f5e8cb,#efdcb6);box-shadow:inset 0 0 70px rgba(140,95,50,.35);clip-path:polygon(0 2%,4% 0,9% 1.5%,15% 0,22% 1%,30% 0,37% 1.8%,45% .4%,53% 1.6%,61% 0,69% 1.2%,77% .2%,85% 1.7%,92% .3%,100% 1.4%,99% 8%,100% 16%,98.6% 25%,100% 34%,99% 43%,100% 52%,98.8% 61%,100% 70%,99.2% 79%,100% 88%,99% 95%,100% 99%,94% 100%,87% 98.6%,79% 100%,71% 98.8%,63% 100%,55% 98.5%,47% 100%,39% 98.9%,31% 100%,23% 98.6%,15% 100%,8% 98.8%,2% 100%,0 97%,1% 89%,0 80%,1.3% 71%,0 62%,1% 53%,0 44%,1.4% 35%,0 26%,1% 17%,0 9%)}
.tm-compass{position:absolute;bottom:20px;right:5%;width:92px;fill:none;stroke:var(--tm-ink);stroke-width:1.6}
.tm-compass text{fill:var(--tm-ink);stroke:none;font-size:11px;font-weight:700;font-family:Tahoma,Arial,sans-serif}
.tm-compass-star{fill:#f8eed8}.tm-compass-shade{fill:var(--tm-ink)}
.tm-stops{display:flex;flex-direction:column-reverse;list-style:none;margin:0;padding:0}
.tm-row{position:relative;padding-top:90px}
.tm-card,.tm-spot{position:relative;z-index:1;display:block;width:58%}
.is-right>.tm-card,.is-right>.tm-spot{margin-left:auto}.is-left>.tm-card,.is-left>.tm-spot{margin-right:auto}
.tm-link{position:absolute;left:0;top:6px;transform:scaleY(-1);width:100%;height:78px;overflow:visible;fill:none;stroke:#8a5a3c;stroke-width:3.5;stroke-dasharray:10 9;stroke-linecap:round}
.tm-link path{vector-effect:non-scaling-stroke}.tm-link.is-walked{stroke:var(--green)}.tm-link-narrow{display:none}
.tm-card{padding:28px 20px 16px;background:#fffaf0;border:2px solid #dcc59f;border-radius:18px;box-shadow:0 8px 20px rgba(90,60,30,.12);transition:transform .18s,border-color .18s}
a.tm-card:hover{transform:translateY(-3px) rotate(-.4deg);border-color:var(--gold)}
a.tm-card:focus-visible{outline:3px solid var(--wine);outline-offset:3px}
.tm-pin{position:absolute;top:-23px;left:50%;transform:translateX(-50%);width:44px;height:44px;display:grid;place-items:center;border:4px solid #f5e8cb;border-radius:50%;background:var(--wine);color:#fff;font-weight:700;box-shadow:0 0 0 2px #c9a87c}
.is-done .tm-pin{background:var(--green)}.is-locked .tm-pin{background:#d9cfc4;color:#6f6258;font-size:.85rem}
.is-current .tm-pin{animation:tm-pulse 1.8s ease-in-out infinite}
@keyframes tm-pulse{0%,100%{box-shadow:0 0 0 2px #c9a87c,0 0 0 0 rgba(106,79,179,.4)}50%{box-shadow:0 0 0 2px #c9a87c,0 0 0 13px rgba(106,79,179,0)}}
.tm-here{position:absolute;top:-13px;right:16px;padding:1px 11px;border-radius:999px;background:var(--gold);color:#3d2a1c;font-size:.72rem;font-weight:700}
.tm-card-body{display:flex;align-items:flex-start;gap:14px}
.tm-cover{width:62px;height:78px;flex:none;object-fit:cover;border:2px solid #e7d5b5;border-radius:10px;background:#f1ecfb}
.tm-book-icon{width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:14px;background:#f3e6cc;font-size:1.45rem}
.tm-copy{min-width:0;flex:1}
.tm-status{color:var(--green);font-size:.75rem;font-weight:700}
.tm-copy h3{margin:2px 0 4px;color:var(--wine-dark);font-size:1.08rem;line-height:1.5}
.tm-copy p{margin:0;color:#6d5d55;font-size:.84rem}
.tm-progress{display:inline-block;margin-top:6px;color:#8b7768;font-size:.76rem}
.tm-action{display:block;margin-top:12px;padding-top:10px;border-top:1px dashed #e0cba8;color:var(--wine);font-size:.85rem;font-weight:700;text-align:end}
.is-locked .tm-card{background:#f3ead8;border-style:dashed;box-shadow:none;filter:grayscale(.5)}.is-locked .tm-status{color:#867c7e}
.tm-landmark,.tm-ship,.tm-chest{fill:none;stroke:var(--tm-ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.tm-landmark{position:absolute;top:96px;width:min(30%,170px);opacity:.8}
.is-right>.tm-landmark{left:4%}.is-left>.tm-landmark{right:4%}
.tm-fill-light{fill:#fbf3e2}.tm-fill-wood{fill:#b07f55}.tm-fill-sand{fill:#ecd6a4}.tm-fill-gold{fill:#e8c26e}
.tm-spot{text-align:center;color:var(--tm-ink)}.tm-spot strong{display:block;font-size:.98rem}.tm-spot small{display:block;margin-top:2px;color:#8b7768;font-size:.8rem}
.tm-ship{display:block;width:120px;margin:0 auto}
.tm-treasure{padding-top:0}
.tm-x{display:block;color:#b2453a;font-size:2rem;font-weight:700;line-height:1}
.tm-chest{display:block;width:132px;margin:2px auto 4px}
.is-found .tm-chest{filter:drop-shadow(0 0 14px rgba(232,194,110,.95))}.is-found strong{color:var(--green)}
body.motion-paused .tm-pin{animation:none!important}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .tm-pin{animation:none!important}a.tm-card{transition:none}}
@media(max-width:600px){.treasure-map{padding:38px 4% 74px}.tm-compass{bottom:16px;width:58px}.tm-card,.tm-spot{width:82%}.tm-row{padding-top:72px}.tm-link{height:60px}.tm-link-wide{display:none}.tm-link-narrow{display:inline}.tm-landmark{display:none}.tm-card{padding:26px 14px 14px}.tm-cover{width:52px;height:66px}.tm-copy h3{font-size:.98rem}.tm-copy p{font-size:.8rem}}

/* Book reader (PDF picture books) */
.book-reader{position:relative;margin:22px 0 16px;padding:12px;background:radial-gradient(ellipse at 50% 0,#3d3180 0,#1f1a45 70%);border-radius:24px;box-shadow:0 24px 60px rgba(45,25,33,.28)}
.book-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 8px 12px;color:#f3e6dc}
.book-count{font-size:.92rem;color:#e7d6cb}.book-count b{color:#fff;font-variant-numeric:tabular-nums}
.book-tools{display:flex;gap:8px}
.book-tool{width:40px;height:40px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.07);color:#f3e6dc;cursor:pointer;transition:background .15s}
.book-tool:hover{background:rgba(255,255,255,.16)}.book-tool:focus-visible,.book-nav:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.book-tool svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.book-stage{position:relative;height:min(74vh,860px);min-height:460px;display:flex;align-items:center;justify-content:center;gap:10px;overflow:hidden;border-radius:16px;background:radial-gradient(ellipse at 50% 45%,rgba(255,240,225,.09) 0,transparent 65%)}
.book-nav{position:relative;z-index:2;flex:none;width:52px;height:52px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#fbf3ea;color:var(--wine-dark);box-shadow:0 8px 20px rgba(0,0,0,.3);cursor:pointer;transition:transform .15s,opacity .15s}
.book-nav:hover:not(:disabled){transform:scale(1.07)}
.book-nav:disabled{opacity:.25;cursor:default}
.book-nav svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.book-loading{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;color:#e7d6cb;font-size:.95rem}
.book-loading[hidden],.book-fallback[hidden]{display:none}
.book-spinner{width:38px;height:38px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--gold);border-radius:50%;animation:book-spin .9s linear infinite}
@keyframes book-spin{to{transform:rotate(360deg)}}
.book-fallback{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}
.book-progress{height:5px;margin:12px 8px 0;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.12)}
.book-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#e8c26e);transition:width .3s}
.book-hint{margin:9px 8px 2px;color:#bfa99f;font-size:.78rem;text-align:center}
.book-finish{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:16px;transition:border-color .2s,box-shadow .2s}
.book-finish p{margin:0;color:var(--muted);font-size:.9rem}
.book-finish .button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.book-finish.is-ready{border-color:#cdb07a;background:#fffaf0;box-shadow:0 10px 26px rgba(198,156,90,.18)}
.book-finish.is-ready p{color:var(--green);font-weight:700}
@media(prefers-reduced-motion:reduce){.book-spinner{animation-duration:2.5s}}
@media(max-width:600px){.book-reader{margin:16px -8px 14px;padding:8px;border-radius:18px}.book-toolbar{padding:2px 4px 8px}.book-stage{height:calc(100svh - 230px);min-height:380px;gap:0}.book-nav{position:absolute;bottom:8px;width:46px;height:46px}.book-prev{right:10px}.book-next{left:10px}.book-finish{flex-direction:column;align-items:stretch}.book-finish .button{width:100%}}
.reader-page.is-book{max-width:1180px;padding-top:20px}
.is-book .reader-heading{padding:8px 0 0}.is-book .reader-heading .role-tag{display:none}
.is-book .reader-heading h1{margin:4px 0 2px;font-size:clamp(1.35rem,3vw,1.85rem)}
.is-book .reader-heading p{font-size:.88rem}
.is-book .book-stage{height:max(460px,min(calc(100svh - 300px),880px))}
@media(max-width:600px){.is-book .reader-heading p{display:none}.is-book .book-stage{height:calc(100svh - 210px)}}

/* Flip book (picture + text pages) */
.flip-reader .book-stage.flip-stage{height:auto;min-height:0;padding:18px 0 24px;gap:clamp(10px,3vw,34px);perspective:2200px;overflow:visible}
.flipbook{--w:min(520px,calc(100vw - 420px),calc((100svh - 290px) / var(--ratio,1.42)));position:relative;flex:none;width:var(--w);aspect-ratio:1/var(--ratio,1.42);transform-style:preserve-3d;cursor:pointer;user-select:none;-webkit-user-select:none}
.flipbook:before{content:"";position:absolute;inset:0;border-radius:16px 4px 4px 16px;background:#eadcc6;transform:translate(-7px,7px);box-shadow:-3px 3px 0 #dccab0,0 22px 44px rgba(0,0,0,.38)}
.leaf{position:absolute;inset:0;transform-origin:right center;transform-style:preserve-3d}
.leaf.is-turned{visibility:hidden;transform:rotateY(180deg)}
.leaf-face{position:absolute;inset:0;overflow:hidden;border-radius:16px 4px 4px 16px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.leaf-front{display:flex;flex-direction:column;background:#fffaf2}
.leaf-front:after{content:"";position:absolute;top:0;right:0;bottom:0;width:7%;background:linear-gradient(270deg,rgba(80,50,30,.18),transparent);pointer-events:none}
.leaf-back{transform:rotateY(180deg);background:linear-gradient(90deg,#efe3d1,#fbf5ec 60%)}
.turning-next{visibility:visible;animation:leaf-next .8s cubic-bezier(.45,.05,.3,1) forwards}
.turning-prev{visibility:visible;animation:leaf-prev .8s cubic-bezier(.45,.05,.3,1) forwards}
@keyframes leaf-next{0%{transform:rotateY(0)}85%{opacity:1}100%{transform:rotateY(180deg);opacity:0}}
@keyframes leaf-prev{0%{transform:rotateY(180deg);opacity:0}15%{opacity:1}100%{transform:rotateY(0)}}
.leaf-art{flex:none;margin:0;aspect-ratio:1;overflow:hidden;background:#f1e6d6}
.leaf-art img{display:block;width:100%;height:100%;object-fit:cover}
.leaf-text{flex:1;display:grid;place-items:center;padding:3% 9% 8%;text-align:center;color:#3a2a30;font-family:"Noto Naskh Arabic",Tahoma,serif;font-weight:700;font-size:calc(var(--w) * .066);line-height:1.85}
.leaf-text p{margin:0}
.is-text-only .leaf-text{font-size:calc(var(--w) * .082)}
.leaf-number{position:absolute;bottom:2.2%;left:6%;color:#a08a7d;font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:calc(var(--w) * .042)}
.leaf-cover .leaf-front{background:var(--wine-dark)}
.cover-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cover-band{position:absolute;right:0;bottom:0;left:0;padding:16% 8% 8%;text-align:center;color:#fff;background:linear-gradient(transparent,rgba(60,25,40,.9) 42%)}
.cover-band span{font-size:calc(var(--w) * .034);opacity:.85}
.cover-band h2{margin:2px 0 4px;font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:calc(var(--w) * .09);line-height:1.45}
.cover-band small{font-size:calc(var(--w) * .032);opacity:.85}
.leaf-end .leaf-front{align-items:center;justify-content:center;gap:10px;padding:10%;text-align:center;background:radial-gradient(circle at 50% 32%,#fff3d2,#fffaf2 62%)}
.end-badge{font-size:calc(var(--w) * .15);line-height:1}
.leaf-end h2{margin:0;color:var(--wine-dark);font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:calc(var(--w) * .085)}
.leaf-end p{margin:0 0 8px;color:var(--muted)}
.flip-again{margin-top:4px;padding:6px;border:0;background:none;color:var(--wine);font:inherit;font-size:.9rem;text-decoration:underline;cursor:pointer}
.flip-reader:not(.is-flipping) .flipbook{aspect-ratio:auto}
.flip-reader:not(.is-flipping) .leaf{position:relative;height:calc(var(--w) * var(--ratio,1.42));margin-bottom:16px}
.flip-reader:not(.is-flipping) .leaf-back,.flip-reader:not(.is-flipping) .book-nav{display:none}
@media(prefers-reduced-motion:reduce){.turning-next,.turning-prev{animation:none}}
@media(max-width:600px){.flipbook{--w:min(calc(100vw - 44px),calc((100svh - 270px) / var(--ratio,1.42)))}.flip-reader .book-stage.flip-stage{padding:10px 0 68px}}

.leaf-pdf .leaf-front,.leaf-pdf.leaf-cover .leaf-front{background:#fff}
.leaf-pdf canvas{display:block;width:100%;height:100%}
.flipbook .book-loading{z-index:60;border-radius:16px 4px 4px 16px;background:#1f1a45}
.flip-reader .book-fallback{position:static;display:block;width:100%;height:72vh;border:0;border-radius:12px;background:#fff}
.flip-reader.is-fallback .book-progress,.flip-reader.is-fallback .book-hint,.flip-reader.is-fallback .book-toolbar{display:none}
.book-finish.leaf-front{position:static;flex-direction:row;margin-top:14px}
.flip-reader .book-fallback[hidden]{display:none}

/* Compact map stops + details sheet */
button.tm-node{display:block;color:inherit;font:inherit;text-align:start;cursor:pointer}
button.tm-node:hover{transform:translateY(-3px) rotate(-.4deg);border-color:var(--gold)}
button.tm-node:focus-visible{outline:3px solid var(--wine);outline-offset:3px}
.tm-node{padding:26px 16px 14px}
.tm-node .tm-card-body{align-items:center}
.tm-node .tm-cover{width:50px;height:62px}
.tm-node .tm-copy{display:block}
.tm-node .tm-status{display:block}
.tm-title{display:block;margin-top:2px;color:var(--wine-dark);font-size:1.05rem;font-weight:700;line-height:1.5}
.is-locked button.tm-node{cursor:pointer}
.tm-sheet{width:min(440px,calc(100vw - 32px));max-height:min(88vh,760px);padding:0;overflow:auto;border:0;border-radius:24px;background:#fffaf0;color:var(--ink);box-shadow:0 30px 80px rgba(40,20,28,.35)}
.tm-sheet::backdrop{background:rgba(31,26,69,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.tm-sheet[open]{animation:sheet-in .3s cubic-bezier(.2,.8,.3,1)}
@keyframes sheet-in{from{opacity:0;transform:translateY(26px) scale(.98)}to{opacity:1;transform:none}}
.tm-sheet-close-form{position:absolute;top:12px;left:12px;z-index:2;margin:0}
.tm-sheet-close{width:38px;height:38px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--wine-dark);font-size:1rem;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.tm-sheet-close:focus-visible{outline:3px solid var(--wine);outline-offset:2px}
.tm-sheet-cover{display:block;width:100%;aspect-ratio:1;max-height:46vh;object-fit:cover}
.tm-sheet-icon{display:grid;place-items:center;height:150px;background:#f3e6cc;font-size:3.4rem}
.tm-sheet.is-locked .tm-sheet-icon{background:#eee6dc}
.tm-sheet-body{padding:20px 22px 24px;text-align:center}
.tm-sheet-status{display:inline-block;padding:3px 12px;border-radius:999px;background:#eaf1ec;color:var(--green);font-size:.78rem;font-weight:700}
.tm-sheet.is-locked .tm-sheet-status{background:#eee8e6;color:#867c7e}
.tm-sheet h3{margin:10px 0 6px;color:var(--wine-dark);font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:1.6rem;line-height:1.5}
.tm-sheet p{margin:0 0 14px;color:#6d5d55}
.tm-sheet-progress{max-width:260px;height:8px;margin:0 auto 6px;overflow:hidden;border-radius:999px;background:#eee4d6}
.tm-sheet-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#e8c26e)}
.tm-sheet small{display:block;margin-bottom:16px;color:#8b7768;font-size:.8rem}
.tm-sheet-action{display:block;width:100%;text-align:center}
@media(max-width:600px){.tm-sheet{width:100%;max-width:100%;margin:auto 0 0;border-radius:24px 24px 0 0}.tm-sheet[open]{animation-name:sheet-up}@keyframes sheet-up{from{transform:translateY(100%)}to{transform:none}}.tm-sheet-cover{max-height:38vh}}
@media(prefers-reduced-motion:reduce){.tm-sheet[open]{animation:none}}
body.motion-paused .tm-sheet[open]{animation:none}

/* Treasure map scenery: sea with waves and a grid, the journey on an island */
.treasure-map{background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='90'%3E%3Cg fill='none' stroke='%235b6f73' stroke-opacity='.32' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 24q7-6 14 0t14 0'/%3E%3Cpath d='M84 66q7-6 14 0t14 0'/%3E%3C/g%3E%3C/svg%3E") 0 0/140px 90px repeat,
    repeating-linear-gradient(0deg,transparent 0 119px,rgba(91,111,115,.09) 119px 120px),
    repeating-linear-gradient(90deg,transparent 0 119px,rgba(91,111,115,.09) 119px 120px),
    radial-gradient(ellipse at 15% 10%,rgba(160,120,70,.22) 0,transparent 30%),
    radial-gradient(ellipse at 88% 92%,rgba(160,120,70,.2) 0,transparent 28%),
    linear-gradient(180deg,#dfe3cf,#d6dcc6 60%,#cfd8c4)}
.treasure-map:before{content:"";position:absolute;z-index:0;top:34px;right:8%;bottom:190px;left:8%;
    border:2px solid rgba(107,74,53,.55);border-radius:38% 62% 46% 54% / 7% 9% 6% 10%;
    background:radial-gradient(ellipse at 30% 18%,rgba(196,150,90,.28) 0,transparent 38%),radial-gradient(ellipse at 75% 70%,rgba(170,130,80,.2) 0,transparent 34%),linear-gradient(180deg,#f6e9cc,#efdcb4);
    box-shadow:0 0 0 7px rgba(239,236,214,.75),0 0 0 9px rgba(91,111,115,.28),0 0 0 20px rgba(239,236,214,.4),0 0 0 21px rgba(91,111,115,.16),inset 0 0 40px rgba(140,95,50,.18)}
.treasure-map>*{position:relative;z-index:1}
.treasure-map>.tm-compass{position:absolute}
.tm-start .tm-spot{padding-top:6px}
.tm-start .tm-spot strong{display:inline-block;padding:2px 12px;border-radius:999px;background:rgba(246,233,204,.85)}
@media(max-width:600px){.treasure-map:before{top:22px;right:2.5%;bottom:188px;left:2.5%;border-radius:30% 70% 40% 60% / 4% 6% 4% 7%}}

/* Quiz stars */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.quiz-result{margin:18px 0 26px;padding:26px 22px 22px;text-align:center;background:#fffaf0;border:2px solid #e3cf9f;border-radius:24px;box-shadow:0 14px 36px rgba(90,60,30,.12)}
.quiz-result.is-retry{border-color:#e6d6cf;background:#fffdf9}
.quiz-stars{display:flex;justify-content:center;align-items:flex-end;gap:10px;margin-bottom:6px}
.quiz-star{display:inline-block;font-size:3.6rem;line-height:1;color:#e4dbd2;text-shadow:0 2px 0 rgba(0,0,0,.05)}
.quiz-star:nth-child(2){font-size:4.4rem}
.quiz-star.is-earned{color:#f2b632;text-shadow:0 3px 0 #c98a17,0 0 18px rgba(242,182,50,.55);animation:star-pop .55s cubic-bezier(.2,1.6,.4,1) both;animation-delay:calc(var(--i) * .22s)}
@keyframes star-pop{0%{opacity:0;transform:scale(.2) rotate(-40deg)}100%{opacity:1;transform:none}}
.quiz-result h2{margin:6px 0 4px;color:var(--wine-dark);font-size:1.5rem}
.quiz-result>p{margin:0 0 16px;color:var(--muted)}
.quiz-review{max-width:440px;margin:0 auto 18px;padding:0;list-style:none;text-align:start}
.quiz-review li{display:flex;align-items:center;gap:10px;padding:9px 12px;margin-bottom:8px;border-radius:12px;background:#f7f1e8;font-size:.95rem}
.quiz-review li.is-right{background:#eaf3ec}
.quiz-review li.is-wrong{background:#fbeceb}
.quiz-mark{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;font-size:.85rem}
.is-right .quiz-mark{background:var(--green)}.is-wrong .quiz-mark{background:#c0574f}
.quiz-result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.quiz-best{margin:14px 0 18px;padding:12px 16px;text-align:center;border-radius:14px;background:#fff6dd;color:#7a5a1c;font-weight:700}
.quiz-best-stars{margin-left:8px;color:#f2b632;letter-spacing:2px}
.quiz-retry{scroll-margin-top:20px}
.quiz-retry-title{margin:4px 0 12px;color:var(--wine-dark);font-size:1.25rem;text-align:center}
.tm-stars{display:block;margin-top:2px;color:#f2b632;font-size:1rem;letter-spacing:2px;line-height:1}
.tm-stars .is-empty{color:#ddd2c6}
.tm-sheet-stars{margin:6px 0 2px;font-size:1.7rem;letter-spacing:4px;color:#f2b632}
.tm-sheet-stars .is-empty{color:#e2d8cc}
.tm-treasure .tm-total-stars{display:inline-block;margin-top:4px;padding:2px 12px;border-radius:999px;background:rgba(242,182,50,.18);color:#8a5e10;font-weight:700;font-size:.85rem}
@media(prefers-reduced-motion:reduce){.quiz-star.is-earned{animation:none}}
body.motion-paused .quiz-star.is-earned{animation:none}
.tm-sheet-secondary{display:block;margin-top:10px;color:var(--wine);font-size:.9rem;text-decoration:underline}

/* Illustrated treasure map (picture with stop overlays; sizes follow the map width via cqw) */
.picture-map{position:relative;width:100%;max-width:560px;margin:8px auto 14px;overflow:hidden;border-radius:22px;box-shadow:0 18px 40px rgba(60,40,20,.22);container-type:inline-size}
.picture-map picture{display:block;height:100%}
.pm-image{display:block;width:100%;height:100%;object-fit:cover}
.pm-stop{position:absolute;padding:0;border:0;border-radius:18px;background:transparent;cursor:pointer;transition:background .2s,box-shadow .2s}
.pm-stop:hover{background:rgba(255,255,255,.14);box-shadow:0 0 0 3px rgba(255,255,255,.6)}
.pm-stop:focus-visible{outline:3px solid var(--wine);outline-offset:2px}
.pm-stop.is-locked{background:rgba(90,80,70,.12);-webkit-backdrop-filter:grayscale(.85) brightness(.93);backdrop-filter:grayscale(.85) brightness(.93)}
.pm-badge{position:absolute;display:grid;place-items:center;width:8.6cqw;height:8.6cqw;border-radius:50%;transform:translate(-50%,-50%);color:#fff;font-size:4.2cqw;font-weight:700;pointer-events:none}
.pm-badge.is-done{background:rgba(82,107,93,.94);box-shadow:0 0 0 .6cqw #fff}
.pm-badge.is-locked{background:rgba(70,60,55,.78);box-shadow:0 0 0 .6cqw rgba(255,255,255,.85);font-size:3.6cqw}
.pm-badge.is-current{box-shadow:0 0 0 .7cqw #fff,0 0 0 1.4cqw rgba(242,182,50,.9);animation:pm-pulse 1.8s ease-in-out infinite}
@keyframes pm-pulse{0%,100%{box-shadow:0 0 0 .7cqw #fff,0 0 0 1.4cqw rgba(242,182,50,.9)}50%{box-shadow:0 0 0 .7cqw #fff,0 0 0 3.2cqw rgba(242,182,50,0)}}
.pm-here{position:absolute;bottom:100%;left:50%;padding:.4cqw 2cqw;transform:translate(-50%,-1.6cqw);border-radius:999px;background:var(--gold);color:#3d2a1c;font-size:2.8cqw;font-weight:700;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.pm-stars{position:absolute;padding:.3cqw 1.8cqw;transform:translate(-50%,-50%);border-radius:999px;background:rgba(255,250,240,.93);color:#f2b632;font-size:3.4cqw;letter-spacing:.4cqw;line-height:1.3;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.18);pointer-events:none}
.pm-stars .is-empty{color:#d9cfc2}
.pm-treasure{position:absolute;padding:.6cqw 2.4cqw;transform:translate(-50%,-50%);border-radius:999px;background:rgba(255,250,240,.94);color:#7a5a1c;font-size:2.8cqw;font-weight:700;white-space:nowrap;box-shadow:0 2px 10px rgba(0,0,0,.18);pointer-events:none}
.picture-map.is-found .pm-treasure{background:#f2b632;color:#3d2a1c}
@media(prefers-reduced-motion:reduce){.pm-badge.is-current{animation:none}}
body.motion-paused .pm-badge.is-current{animation:none}
.pm-stop{z-index:1}.pm-badge,.pm-stars,.pm-treasure{z-index:2}

/* Library banner (replaces the animated owl scene) */
.library-banner{display:block;margin-top:18px;overflow:hidden;border-radius:clamp(16px,3.4vw,34px);box-shadow:0 16px 40px rgba(60,40,20,.16);transition:transform .2s,box-shadow .2s}
.library-banner img{display:block;width:100%;height:auto}
.library-banner:hover{transform:translateY(-3px);box-shadow:0 22px 50px rgba(60,40,20,.22)}
.library-banner:focus-visible{outline:3px solid var(--wine);outline-offset:4px}
#treasure-map{scroll-margin-top:16px}
@media(prefers-reduced-motion:reduce){.library-banner{transition:none}}

/* Creative Teacher brand */
.brand-mark{background:#fff;box-shadow:0 2px 10px rgba(106,79,179,.15)}
.brand-mark img{display:block;width:88%;height:88%;object-fit:contain}
.brand strong{font-size:1.08rem;line-height:1.35;color:var(--wine-dark)}
.sidebar-brand strong{font-size:1.02rem}
.button:not(.button-secondary){background:linear-gradient(135deg,#7a5fc6,#6a4fb3)}
.eyebrow:before{background:var(--gold)}
.role-tag{background:#efeafd;color:var(--wine)}

/* Reading levels */
.level-heading{margin-top:42px}
.level-heading:first-of-type{margin-top:34px}
.picture-map.is-coming .pm-image{filter:grayscale(.55) brightness(.92)}
.pm-veil{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:4px;padding:20px;text-align:center;background:rgba(31,26,69,.38);color:#fff}
.pm-veil span{font-size:9cqw}
.pm-veil strong{font-size:7cqw;line-height:1.3}
.pm-veil small{font-size:3.6cqw;opacity:.92}
.pm-lock-note{position:absolute;top:2.4%;left:50%;z-index:3;transform:translateX(-50%);padding:1.4cqw 3.4cqw;border-radius:999px;background:rgba(31,26,69,.85);color:#fff;font-size:3.3cqw;font-weight:700;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.level-lock-note{margin:0 auto 12px;max-width:520px;padding:10px 14px;border-radius:14px;background:#efeafd;color:var(--wine-dark);font-weight:700;text-align:center}
.pm-veil{background:radial-gradient(circle at 50% 50%,rgba(31,26,69,.72) 0,rgba(31,26,69,.42) 60%,rgba(31,26,69,.3) 100%);text-shadow:0 2px 8px rgba(0,0,0,.55)}

/* Home page: logo hero + level cards */
.home-hero-art{min-height:0}
.home-logo-blob{display:grid;place-items:center;width:min(100%,420px);aspect-ratio:1;border-radius:46% 54% 52% 48%/48% 44% 56% 52%;background:radial-gradient(circle at 35% 30%,#fff 0,#f1ecfb 45%,#e4dcf8 100%);box-shadow:0 30px 70px rgba(106,79,179,.18),inset 0 0 0 10px rgba(255,255,255,.6)}
.home-logo-blob img{display:block;width:68%;height:auto}
.levels-section{padding-top:8px}
.level-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:980px;margin:0 auto}
.level-card{display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 14px 36px rgba(52,40,110,.08)}
.level-card-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#efeafd}
.level-card-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform .4s}
.level-card:hover .level-card-media img{transform:scale(1.04)}
.level-card.is-coming .level-card-media img{filter:grayscale(.45) brightness(.95)}
.level-number{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:46px;height:46px;border:3px solid #fff;border-radius:50%;background:var(--wine);color:#fff;font-size:1.25rem;font-weight:700;box-shadow:0 6px 16px rgba(0,0,0,.2)}
.level-state{position:absolute;bottom:12px;left:12px;padding:4px 12px;border-radius:999px;background:var(--green);color:#fff;font-size:.8rem;font-weight:700;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.is-coming .level-state{background:rgba(31,26,69,.82)}
.level-card-body{display:flex;flex:1;flex-direction:column;gap:8px;padding:20px 22px 22px}
.level-label{align-self:flex-start;padding:3px 12px;border-radius:999px;background:#efeafd;color:var(--wine);font-size:.8rem;font-weight:700}
.level-card h3{margin:2px 0 0;color:var(--wine-dark);font-size:1.4rem;line-height:1.45}
.level-card p{margin:0;color:var(--muted)}
.level-facts{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 0;padding:0;list-style:none}
.level-facts li{padding:4px 10px;border-radius:10px;background:#f6f3fd;color:var(--ink);font-size:.82rem}
.level-titles{margin:4px 0 0;padding:12px 16px 12px 12px;padding-inline-start:30px;border-radius:14px;background:#fffaf0;border:1px dashed #ecd7a6;color:var(--ink);font-size:.92rem;line-height:1.9}
.level-unlock{padding:8px 12px;border-radius:12px;background:#f6f3fd;color:var(--wine-dark)!important;font-size:.86rem;font-weight:700}
.level-card .button{margin-top:auto;align-self:stretch}
@media(max-width:800px){.level-grid{grid-template-columns:1fr}.home-logo-blob{width:min(78%,320px)}}
@media(prefers-reduced-motion:reduce){.level-card-media img{transition:none}}
.pm-badge.is-empty-spot{opacity:.85}

/* Treasure picker on «مكتبتي» */
.treasure-picker{margin-top:26px}
a.treasure-card{color:inherit;transition:transform .2s,box-shadow .2s}
a.treasure-card:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(52,40,110,.16)}
a.treasure-card:focus-visible{outline:3px solid var(--wine);outline-offset:4px}
.treasure-card .level-card-media{aspect-ratio:3/2}
.treasure-card .level-card-media img{object-position:center}
.treasure-progress{height:10px;margin:4px 0 2px;overflow:hidden;border-radius:999px;background:#efeafd}
.treasure-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#f8c644)}
.treasure-card .button{margin-top:auto;align-self:stretch;pointer-events:none}
.library-page .dashboard-head .reader-back{display:inline-block;margin-bottom:8px}
@media(prefers-reduced-motion:reduce){a.treasure-card{transition:none}}
.treasure-card .level-number{right:auto;left:12px}
.treasure-card .level-state{left:auto;right:12px}

/* Story editor */
.story-admin-card{align-items:center}
.story-cover-img{width:56px;height:56px;object-fit:cover;border-radius:12px;flex:none}
.story-edit-link{margin-inline-start:auto;flex:none;white-space:nowrap}
.story-edit-page .edit-section{margin-bottom:18px}
.edit-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:start}
.edit-image-field{display:flex;flex-direction:column;gap:8px}
.edit-label{font-weight:700;color:var(--wine-dark);font-size:.92rem}
.edit-thumb{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:#f6f3fd}
.edit-thumb.is-empty{display:grid;place-items:center;color:var(--muted);font-size:.85rem;text-align:center;padding:12px}
.file-pick{position:relative;display:block;padding:9px 12px;border:1px dashed #cbbbef;border-radius:12px;background:#faf8ff;color:var(--wine);font-size:.88rem;font-weight:700;text-align:center;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
.file-pick:focus-within{outline:3px solid var(--wine);outline-offset:2px}
.check-line{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--muted);cursor:pointer}
.check-line.danger{color:#b4443c}
.edit-hint{margin:0 0 14px;color:var(--muted)}
.edit-page{display:grid;grid-template-columns:200px minmax(0,1fr);gap:18px;padding:16px 0;border-top:1px solid var(--line)}
.edit-page.is-new{border-top:2px dashed #ddd3f3;background:#fcfbff}
.edit-page.is-deleting{opacity:.45}
.edit-page-text{display:flex;flex-direction:column;gap:8px}
.edit-page-text label:first-child{font-weight:700;color:var(--wine-dark);font-size:.92rem}
.edit-page-text textarea{width:100%;padding:12px 14px;border:1px solid #d8cfef;border-radius:12px;font:inherit;font-size:1.05rem;line-height:1.9;resize:vertical}
.edit-save-bar{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;gap:10px;padding:14px 0;margin-top:6px;background:linear-gradient(transparent,var(--cream) 30%)}
@media(max-width:700px){.edit-grid,.edit-page{grid-template-columns:1fr}.edit-thumb{max-width:260px}.story-admin-card{flex-wrap:wrap}.story-edit-link{width:100%;text-align:center}}
.app-content{min-width:0}
.story-edit-page select,.story-edit-page input:not([type=checkbox]):not([type=file]),.story-edit-page textarea{width:100%;max-width:100%;min-width:0}
.story-edit-page .edit-grid>div,.story-edit-page .edit-page>*{min-width:0}
@media(max-width:800px){.app-shell{grid-template-columns:minmax(0,1fr)}.site-sidebar{min-width:0}.sidebar-nav{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-nav a{flex:none}}

/* Sign-in: Google, owner, blocked device */
.auth-logo{display:block;width:64px;height:64px;margin:0 auto 6px;object-fit:contain}
.google-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#fff!important;color:#1f1f1f!important;border:1px solid #dadce0!important;box-shadow:0 2px 8px rgba(60,64,67,.12)!important}
.google-button svg{width:22px;height:22px}
.google-button:hover{background:#f8f9fa!important}
.auth-note{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#f6f3fd;color:var(--muted);font-size:.86rem}
.auth-note.is-warning{background:#fff6dd;color:#7a5a1c}
.blocked-steps{margin:8px 0 0;padding-inline-start:20px;line-height:1.9}

/* Students: link, devices, teacher */
.new-code-actions{display:flex;flex-wrap:wrap;gap:8px}
.button-whatsapp{background:#25d366!important;border-color:#25d366!important;color:#fff!important}
.student-card{padding:14px 0;border-bottom:1px solid var(--line)}
.student-card:last-child{border-bottom:0}
.student-card.has-pending{background:linear-gradient(90deg,transparent,#fff8e6);border-radius:12px}
.student-card-head{display:flex;align-items:center;gap:12px}
.student-card-head .person-info{flex:1;min-width:0}
.device-list{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:#faf8ff}
.device-title{display:block;margin-bottom:4px;color:var(--wine-dark);font-size:.82rem;font-weight:700}
.device-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;font-size:.88rem;border-top:1px dashed #e5def7}
.device-row:first-of-type{border-top:0}
.device-row small{color:var(--muted);margin-inline-start:6px}
.device-row.is-pending{color:#7a5a1c}
.device-row.muted{color:var(--muted)}
.device-actions{display:flex;align-items:center;gap:8px}
.link-button{padding:4px 6px;border:0;background:none;color:var(--wine);font:inherit;font-size:.85rem;text-decoration:underline;cursor:pointer}
.danger-button{color:#b4443c!important;border-color:#f0c9c5!important}
.teacher-switch{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.85rem;color:var(--muted)}
.teacher-switch select{flex:1;max-width:240px;padding:6px 10px;border:1px solid #d8cfef;border-radius:10px;font:inherit;background:#fff}
.pending-banner{display:block;margin:0 0 16px;padding:12px 16px;border-radius:14px;background:#fff6dd;color:#7a5a1c;font-weight:700}

/* Progress: teacher list and student/parent page */
.progress-row{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.progress-row:last-child{border-bottom:0}
.progress-row-main{flex:1;min-width:0}
.progress-row-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;margin-bottom:6px}
.progress-row-head span{color:var(--muted);font-size:.86rem}
.level-bars{display:grid;gap:6px;margin-bottom:4px}
.level-bar{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:10px;font-size:.82rem}
.level-bar.big{grid-template-columns:minmax(0,1fr) auto;margin:6px 0 12px}
.level-bar-label{color:var(--muted)}
.level-bar-track{height:10px;overflow:hidden;border-radius:999px;background:#efeafd}
.level-bar-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#f8c644)}
.level-bar-count{color:var(--wine-dark);font-weight:700;white-space:nowrap}
.muted{color:var(--muted)}
.progress-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.progress-totals strong{display:block;margin-top:4px;color:var(--wine-dark);font-size:1.5rem}
.progress-totals strong small{color:var(--muted);font-size:.85rem;font-weight:400}
.progress-totals strong.small{font-size:1rem}
.progress-level{margin-bottom:16px}
.progress-level-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.progress-level-head h2{margin:2px 0 0}
.progress-stories{margin:0;padding:0;list-style:none}
.progress-stories li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 12px;margin-bottom:6px;border-radius:12px;background:#faf8ff}
.progress-stories li.is-done{background:#eef7f0}
.progress-stories li.is-quiz{background:#fff6dd}
.progress-story-title{font-weight:700;color:var(--wine-dark)}
.progress-story-state{color:var(--muted);font-size:.82rem}
.progress-story-stars{color:#f2b632;letter-spacing:1px}
@media(max-width:600px){.progress-totals{grid-template-columns:1fr}.level-bar{grid-template-columns:86px minmax(0,1fr) auto}.progress-stories li{grid-template-columns:minmax(0,1fr) auto}.progress-story-state{grid-column:1/-1;order:3}}

/* Story list by level, create page */
.head-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.story-level-group{margin-bottom:18px}
.story-level-group h2 .eyebrow{display:block;font-size:.8rem}
.story-card-actions{margin-inline-start:auto;display:flex;gap:8px;flex:none}
.logo-option{margin-top:14px;padding:12px 14px;border-radius:14px;background:#fff7e6;border:1px dashed #f0b44c;font-weight:700}
.story-create-page #add-page{margin-top:6px}
.pdf-option{margin-top:18px}
.pdf-option summary{cursor:pointer;font-weight:700;color:var(--muted,#6b6b6b)}
.student-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 14px;margin-top:10px;padding:12px;border-radius:14px;background:rgba(0,0,0,.03)}
.link-button.danger{color:#b42318}
@media(max-width:700px){.story-card-actions{width:100%}.story-card-actions .button{flex:1;text-align:center}}
@media(max-width:600px){.level-bar:not(.big){grid-template-columns:minmax(0,1fr) auto;row-gap:2px}.level-bar:not(.big) .level-bar-label{grid-column:1/-1;line-height:1.4}}
@media(max-width:600px){.progress-page .dashboard-head{margin-bottom:14px}.progress-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.progress-totals .stat-card{padding:12px 10px;min-height:0}.progress-totals .stat-label{font-size:.72rem}.progress-totals strong{font-size:1.25rem}.progress-totals strong small{display:block;font-size:.7rem}.progress-totals strong.small{font-size:.85rem}}

/* Treasure chest and games */
.treasure-chest-card{display:flex;align-items:center;gap:18px;margin:22px 0;padding:20px 22px;border-radius:24px;background:linear-gradient(135deg,#fff7e6,#fdeccc);border:2px dashed #e7b552}
.treasure-chest-card.is-open{border-style:solid;border-color:#f0b44c;box-shadow:0 12px 30px #f0b44c40}
.chest-emoji{font-size:3rem;line-height:1;flex:none}
.treasure-chest-card.is-open .chest-emoji{animation:chest-bounce 1.6s ease-in-out infinite}
.chest-copy{flex:1;min-width:0}.chest-copy h2{margin:0 0 4px;color:var(--wine-dark);font-size:1.2rem}.chest-copy p{margin:0;color:var(--muted)}
.chest-button{flex:none}
@keyframes chest-bounce{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-6px) rotate(-6deg)}60%{transform:translateY(-6px) rotate(6deg)}}
.game-menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:18px}
.game-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 16px;border:2px solid #efeafd;border-radius:22px;background:#fff;font:inherit;text-align:center;cursor:pointer;transition:.18s ease}
.game-card:hover,.game-card:focus-visible{border-color:var(--wine);transform:translateY(-3px);box-shadow:0 12px 24px #6a4fb31f}
.game-icon{font-size:2.6rem;line-height:1.2}.game-card strong{color:var(--wine-dark);font-size:1.1rem}.game-card small{color:var(--muted);line-height:1.5}
.game-done{position:absolute;top:10px;inset-inline-start:10px;padding:2px 8px;border-radius:999px;background:#e5f4ea;color:#2f7a4a;font-size:.75rem;font-weight:700}
.game-stage{margin-top:18px}
.game-stage-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.game-stage-head h2{margin:0}
.game-hint{color:var(--muted);margin:8px 0 16px}
.game-empty{padding:20px;text-align:center;color:var(--muted)}
.game-win{margin-top:18px;padding:22px;border-radius:20px;background:#fff7e6;text-align:center}
.game-win-emoji{display:block;font-size:3rem}.game-win strong{display:block;font-size:1.25rem;color:var(--wine-dark);margin:6px 0 14px}
.game-win-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:560px;margin:0 auto}
.memory-card{position:relative;aspect-ratio:1;padding:0;border:0;border-radius:14px;background:none;cursor:pointer;perspective:600px}
.memory-back,.memory-front{position:absolute;inset:0;display:grid;place-items:center;border-radius:14px;backface-visibility:hidden;transition:transform .35s ease;overflow:hidden}
.memory-back{background:linear-gradient(135deg,var(--wine),#8f74d6);color:#ffd36b;font-size:1.6rem}
.memory-front{transform:rotateY(180deg);background:#fff;border:2px solid #efeafd;font-weight:700;color:var(--wine-dark);padding:4px}
.memory-front img{width:100%;height:100%;object-fit:cover}
.memory-card.is-open .memory-back{transform:rotateY(180deg)}.memory-card.is-open .memory-front{transform:rotateY(0)}
.memory-card.is-matched .memory-front{border-color:#5bbf7d;box-shadow:0 0 0 3px #5bbf7d55}
.order-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:520px;margin:0 auto 10px}
.order-card{position:relative;padding:0;border:3px solid transparent;border-radius:16px;overflow:hidden;background:#fff;cursor:pointer}
.order-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.order-card.is-picked{border-color:var(--wine)}.order-card.is-wrong{border-color:#d9534f}
.order-number{position:absolute;top:8px;inset-inline-start:8px;display:grid;place-items:center;min-width:34px;height:34px;border-radius:50%;background:var(--wine);color:#fff;font-weight:700;font-size:1.1rem}
.order-number:empty{display:none}
.puzzle-wrap{display:flex;gap:16px;align-items:flex-start;justify-content:center;flex-wrap:wrap}
.puzzle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;width:min(420px,100%);aspect-ratio:1;padding:3px;border-radius:14px;background:#efeafd}
.puzzle-grid.is-solved{gap:0;padding:0;overflow:hidden}
.puzzle-tile{border:0;padding:0;border-radius:6px;background-size:300% 300%;cursor:pointer;outline:3px solid transparent;outline-offset:-3px}
.puzzle-grid.is-solved .puzzle-tile{border-radius:0}
.puzzle-tile.is-selected{outline-color:#f0b44c;transform:scale(.94)}
.puzzle-preview{width:110px;border-radius:10px;border:2px solid #efeafd}
.word-answer{min-height:64px;margin:0 auto 16px;max-width:360px;display:grid;place-items:center;border-radius:16px;border:2px dashed #cfc4f2;font-size:2rem;font-weight:700;color:var(--wine-dark)}
.word-answer.is-right{border-style:solid;border-color:#5bbf7d;background:#e9f7ee}.word-answer.is-wrong{border-color:#d9534f;animation:shake .4s}
.word-tray{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:10px}
.word-tile{width:58px;height:58px;border:0;border-radius:14px;background:#f8c644;color:#4a3300;font:inherit;font-size:1.7rem;font-weight:700;cursor:pointer;box-shadow:0 4px 0 #d9a520}
.word-tile:disabled{opacity:.3;cursor:default;box-shadow:none}
.sentence-line{font-size:1.35rem;line-height:2.2;text-align:center;font-family:"Noto Naskh Arabic",Tahoma,serif}
.sentence-gap{display:inline-block;min-width:80px;padding:0 10px;border-bottom:3px dashed var(--wine);color:var(--wine);font-weight:700}
.sentence-gap.is-right{border-bottom-style:solid;border-color:#5bbf7d;color:#2f7a4a}
.sentence-choices{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.sentence-choice{font-size:1.15rem}.sentence-choice.is-wrong{border-color:#d9534f;color:#d9534f;opacity:.6}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
@media(max-width:600px){.treasure-chest-card{flex-wrap:wrap;text-align:center;justify-content:center}.chest-button{width:100%}.game-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-card{padding:16px 10px}.game-card small{font-size:.75rem}.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.puzzle-preview{width:80px}.word-tile{width:48px;height:48px;font-size:1.4rem}.sentence-line{font-size:1.15rem}}
@media(prefers-reduced-motion:reduce){.treasure-chest-card.is-open .chest-emoji,.word-answer.is-wrong{animation:none}.memory-back,.memory-front{transition:none}}
.game-menu[hidden],.game-stage[hidden],.game-win[hidden]{display:none}
.order-text{display:block;padding:8px 10px;font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:.95rem;line-height:1.7;color:var(--ink);text-align:right}

/* Student grade and section */
.field-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:10px}
.field-row .field{min-width:0}.field-row select,.field-row input{width:100%}
.class-tag{display:inline-block;margin-top:2px;padding:1px 8px;border-radius:999px;background:#efeafd;color:var(--wine-dark);font-size:.75rem;font-weight:700}
.class-tag.is-missing{background:#fff1e0;color:#9a5b00}
.list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.list-head h2{margin:0}
.grade-filter select{padding:7px 10px;border-radius:10px;border:1px solid var(--line);font:inherit;background:#fff}
.student-edit{margin-top:8px}.student-edit summary{cursor:pointer;color:var(--wine);font-size:.85rem;font-weight:700}
.student-edit form{margin-top:8px;padding:12px;border-radius:12px;background:rgba(0,0,0,.03)}
/* Privacy and terms pages */
.legal-page{max-width:760px;margin:0 auto;padding:40px 20px 56px}.legal-page h1{margin:0 0 4px;color:var(--wine-dark);font-size:1.8rem}.legal-page h2{margin:30px 0 8px;color:var(--wine-dark);font-size:1.15rem}.legal-page ul{padding-inline-start:22px}.legal-page li{margin-bottom:6px}.legal-page a{color:var(--wine);text-decoration:underline}.legal-updated{color:var(--muted);font-size:.85rem;margin:0 0 20px}.legal-links{margin-top:36px;font-size:.9rem}.footer-links a{text-decoration:underline}
/* Home page: story showcase with teaser guesses */
.showcase-hero{max-width:820px;margin:0 auto;padding:54px 20px 26px;text-align:center}.showcase-hero h1{margin:12px 0 10px;font-size:clamp(2rem,5vw,3.4rem);line-height:1.3;color:var(--wine-dark)}.showcase-hero h1 span{color:var(--green)}.showcase-hero p{color:var(--muted);font-size:1.06rem;margin:0 auto 22px;max-width:620px}
.story-shelf{max-width:1240px;margin:0 auto;padding:22px clamp(16px,5vw,64px)}.shelf-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}.shelf-head h2{margin:0;font-size:1.35rem;color:var(--wine-dark)}.shelf-head p{margin:0;color:var(--muted);font-size:.9rem}.shelf-number{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:14px;background:var(--wine);color:#fff;font-weight:700;font-size:1.2rem}
.showcase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}.showcase-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);transition:transform .18s ease}.showcase-card:hover{transform:translateY(-3px)}.showcase-cover{aspect-ratio:1;background:#efeafd}.showcase-cover img{display:block;width:100%;height:100%;object-fit:cover}.showcase-body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:8px;flex:1}.showcase-body h3{margin:0;font-size:1.12rem;color:var(--wine-dark);line-height:1.6}
.teaser-question{margin:0;font-weight:700;color:var(--ink);font-size:.98rem}.teaser-options{display:flex;flex-direction:column;gap:7px;margin-top:2px}.teaser-option{text-align:start;padding:9px 13px;border:1.5px solid var(--line);border-radius:12px;background:var(--cream);color:var(--ink);cursor:pointer;font-size:.92rem;transition:.15s ease}.teaser-option:hover:not(:disabled){border-color:var(--wine);background:#efeafd}.teaser-option:disabled{cursor:default;opacity:.55}.teaser-option.is-chosen{opacity:1;border-color:var(--gold);background:#fff4e2;font-weight:700}.teaser-reveal{margin-top:6px;padding:11px 13px;border-radius:14px;background:#eaf6ee;color:#2f5b40;animation:teaser-pop .3s ease}.teaser-reveal p{margin:0 0 9px;font-size:.92rem}.teaser-reveal[hidden]{display:none}@keyframes teaser-pop{from{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}.showcase-empty{text-align:center;color:var(--muted)}
.showcase-steps{max-width:820px;margin:26px auto 40px;padding:28px 22px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow)}.showcase-steps h2{margin:0 0 12px;color:var(--wine-dark)}.showcase-steps ol{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:9px;text-align:start;max-width:520px;margin-inline:auto}.showcase-steps li{display:flex;gap:10px;align-items:center}
/* /start: choose student or staff sign-in */
.start-page{max-width:820px;margin:0 auto;padding:48px 20px 56px;text-align:center}.start-page h1{margin:0 0 6px;color:var(--wine-dark);font-size:2rem}.start-lead{color:var(--muted);margin:0 0 26px}.start-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.start-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 22px;background:var(--paper);border:1.5px solid var(--line);border-radius:24px;box-shadow:var(--shadow);transition:.18s ease}.start-card:hover{border-color:var(--wine);transform:translateY(-2px)}.start-card strong{font-size:1.25rem;color:var(--wine-dark)}.start-card span{color:var(--muted);font-size:.93rem}.start-card .button{margin-top:auto;color:#fff}.start-card .button-secondary{color:var(--wine)}.start-icon{font-size:2.6rem}.start-student{border-color:var(--lavender)}.start-note{margin-top:24px;color:var(--muted);font-size:.88rem}.start-back{margin-top:6px}
@media(max-width:600px){.showcase-hero{padding-top:34px}.showcase-grid{grid-template-columns:1fr 1fr;gap:12px}.showcase-body{padding:10px 11px 14px}.showcase-body h3{font-size:.98rem}.teaser-option{padding:8px 10px;font-size:.85rem}.start-grid{grid-template-columns:1fr}}
@media(max-width:359px){.showcase-grid{grid-template-columns:1fr}}
.teaser-option-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:700px){.teaser-option-fields{grid-template-columns:1fr}}
.showcase-logo img{display:block;width:min(340px,78vw);height:auto;margin:0 auto -6px}.showcase-hero{padding-top:30px}
