
:root{
  --sky:#7bd8ff;--sky2:#c9f2ff;--ink:#15355d;--muted:#5b7290;--blue:#3f8cff;
  --pink:#ff72b6;--purple:#8a6dff;--green:#49c98b;--yellow:#ffd75e;--orange:#ff9d50;
  --turq:#32c9c6;--white:#fff;--shadow:0 12px 30px rgba(25,76,115,.16);
  --r:28px;--navh:78px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-rounded,"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--ink);background:linear-gradient(180deg,var(--sky) 0%,var(--sky2) 34%,#f2e8ff 68%,#ffd4eb 100%);scroll-behavior:smooth}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
body{overflow-x:hidden}
.sky-decor{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.cloud{position:absolute;width:130px;height:46px;background:rgba(255,255,255,.65);border-radius:50px;filter:blur(.1px);animation:drift 22s linear infinite}
.cloud:before,.cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}
.cloud:before{width:60px;height:60px;left:18px;top:-25px}.cloud:after{width:76px;height:76px;right:10px;top:-39px}
.c1{top:7%;left:-10%}.c2{top:32%;left:64%;animation-duration:29s;transform:scale(.7)}.c3{top:66%;left:12%;animation-duration:34s;transform:scale(.55)}
.star{position:absolute;color:#fff7ad;animation:twinkle 2.2s infinite}.s1{top:17%;left:82%}.s2{top:44%;left:9%;animation-delay:.7s}.s3{top:74%;left:88%;animation-delay:1.1s}
@keyframes drift{0%{translate:-15vw 0}100%{translate:120vw 8px}}
@keyframes twinkle{50%{opacity:.28;transform:scale(.7)}}
@keyframes bob{50%{transform:translateY(-7px) rotate(1deg)}}
@keyframes pop{0%{transform:scale(.7);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}
@keyframes pawwalk{0%{opacity:0;transform:translate(-10px,10px) rotate(-12deg)}50%{opacity:1}100%{opacity:0;transform:translate(30px,-10px) rotate(12deg)}}

.app-shell{position:relative;z-index:1;max-width:760px;margin:0 auto;min-height:100vh;padding-bottom:calc(var(--navh) + 18px)}
.topbar{position:sticky;top:0;z-index:30;height:64px;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;background:rgba(120,217,255,.72);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.55)}
.brand{border:0;background:transparent;color:var(--ink);font-weight:900;font-size:21px;display:flex;align-items:center;gap:8px}
.brandmark{display:grid;place-items:center;width:38px;height:38px;border-radius:14px;background:#fff7d1;box-shadow:0 5px 12px rgba(39,80,120,.14)}
.top-stats{display:flex;gap:7px}.chip{background:rgba(255,255,255,.9);padding:8px 10px;border-radius:999px;font-size:12px;font-weight:900;box-shadow:0 4px 12px rgba(44,81,111,.09)}.chip.fire{background:#fff1d7}.chip.xp{background:#eef2ff}
.view{padding:16px 14px 26px;min-height:calc(100vh - 150px)}
.bottom-nav{position:fixed;z-index:40;left:50%;bottom:0;translate:-50% 0;width:min(760px,100%);height:var(--navh);display:flex;justify-content:space-around;align-items:center;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.93);backdrop-filter:blur(16px);border-radius:28px 28px 0 0;box-shadow:0 -10px 30px rgba(31,86,119,.14)}
.nav-item{border:0;background:transparent;min-width:60px;color:#55718e;border-radius:18px;padding:5px 8px;transition:.2s}.nav-item span{display:block;font-size:23px;line-height:1}.nav-item small{font-size:10px;font-weight:800}.nav-item.active{background:#e8f5ff;color:#1a5ab7;transform:translateY(-3px)}
.fab-write{position:fixed;z-index:50;right:max(18px,calc((100vw - 720px)/2));bottom:94px;width:58px;height:58px;border:0;border-radius:21px;background:linear-gradient(145deg,var(--pink),#ff9ccc);color:white;font-size:25px;box-shadow:0 12px 24px rgba(222,68,141,.30);transition:.2s}.fab-write:active{transform:scale(.94)}

.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff7c7,#ffe8f4 48%,#dcf5ff);border-radius:34px;padding:18px 18px 16px;box-shadow:var(--shadow);min-height:210px}
.hero:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-65px;top:-78px;background:rgba(255,255,255,.45)}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:10px;align-items:center}.eyebrow{font-weight:900;color:#3d6a86;font-size:12px;text-transform:uppercase;letter-spacing:.8px}.hero h1{font-size:28px;line-height:1.05;margin:5px 0 8px}.hero p{margin:0;color:#59708b;font-size:13px;max-width:420px}
.mascot-wrap{text-align:center;position:relative}.mascot{width:145px;max-width:100%;filter:drop-shadow(0 12px 11px rgba(43,75,112,.18));animation:bob 3.2s ease-in-out infinite}.speech{position:absolute;right:0;top:-8px;background:#fff;padding:8px 10px;border-radius:16px 16px 6px 16px;font-weight:800;font-size:10px;max-width:125px;box-shadow:0 6px 15px rgba(61,93,125,.12)}
.primary,.secondary,.ghost,.danger{border:0;border-radius:18px;font-weight:900;padding:12px 16px;transition:.18s}.primary{background:linear-gradient(135deg,var(--blue),#6c7dff);color:#fff;box-shadow:0 8px 16px rgba(63,140,255,.22)}.secondary{background:#fff;color:#225b9c;box-shadow:0 7px 15px rgba(44,83,120,.12)}.ghost{background:rgba(255,255,255,.55);color:var(--ink)}.danger{background:#ffe2e5;color:#a3293d}.primary:active,.secondary:active,.ghost:active{transform:scale(.97)}
.cta-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}

.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.stat-bubble{background:rgba(255,255,255,.78);border:2px solid rgba(255,255,255,.7);border-radius:22px;padding:10px 7px;text-align:center;box-shadow:0 7px 16px rgba(42,86,116,.08)}.stat-bubble b{display:block;font-size:17px}.stat-bubble small{font-size:9px;font-weight:800;color:var(--muted)}
.section-head{display:flex;align-items:end;justify-content:space-between;margin:22px 3px 10px}.section-head h2{margin:0;font-size:20px}.section-head p{margin:2px 0 0;color:var(--muted);font-size:12px}.linkbtn{border:0;background:transparent;color:#266cc3;font-weight:900;font-size:12px}

.progress-card{background:rgba(255,255,255,.88);border-radius:26px;padding:14px;box-shadow:var(--shadow)}.progress-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.progress-track{height:11px;background:#e8eef6;border-radius:20px;overflow:hidden;margin:10px 0}.progress-fill{height:100%;border-radius:20px;background:linear-gradient(90deg,var(--turq),var(--blue));transition:width .5s ease}.tiny{font-size:11px;color:var(--muted)}
.missions-mini{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mission-cloud{background:#fff;border-radius:28px 28px 28px 12px;padding:14px;box-shadow:0 8px 18px rgba(44,84,119,.1);position:relative}.mission-cloud:nth-child(2){background:#fff4d7}.mission-cloud b{font-size:13px}.mission-cloud .mprog{height:7px;background:#e8eef5;border-radius:10px;margin-top:8px;overflow:hidden}.mission-cloud .mprog i{height:100%;display:block;background:var(--green);border-radius:10px}
.friend-pick{background:linear-gradient(120deg,#efe8ff,#fff);border-radius:28px;padding:14px;display:grid;grid-template-columns:55px 1fr auto;gap:10px;align-items:center}.book-mini{height:62px;width:50px;border-radius:8px 14px 14px 8px;background:linear-gradient(160deg,var(--purple),#bdafff);display:grid;place-items:center;font-size:26px;box-shadow:inset 5px 0 rgba(255,255,255,.25),0 7px 13px rgba(70,67,130,.14)}

.concept-map{position:relative;min-height:490px;border-radius:38px;background:radial-gradient(circle at 50% 45%,#eaffd8 0 17%,transparent 18%),linear-gradient(180deg,#e7f9ff,#d9f7ed);overflow:hidden;padding:16px;box-shadow:var(--shadow)}.concept-map:before{content:"";position:absolute;inset:45% 0 auto;height:7px;background:linear-gradient(90deg,transparent,#7fd1be,transparent);transform:rotate(-5deg);opacity:.45}.concept-center{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:190px;min-height:115px;border-radius:46% 54% 45% 55%/57% 42% 58% 43%;background:linear-gradient(135deg,#fff06e,#ffc95e);display:grid;place-items:center;text-align:center;padding:16px;font-weight:950;box-shadow:0 12px 20px rgba(165,123,39,.18);z-index:2}
.concept-node{position:absolute;width:145px;min-height:74px;border:0;border-radius:46% 54% 55% 45%/44% 47% 53% 56%;padding:10px;color:#173658;font-size:10px;font-weight:850;box-shadow:0 8px 15px rgba(43,81,111,.11);z-index:3;transition:.2s}.concept-node:hover{transform:scale(1.04)}.n1{left:5%;top:7%;background:#ffd6e7}.n2{right:4%;top:9%;background:#d9d0ff}.n3{right:2%;top:34%;background:#d7f7e1}.n4{right:7%;bottom:8%;background:#ffe0c6}.n5{left:6%;bottom:6%;background:#d9f5ff}.n6{left:1%;top:34%;background:#fff2b8}.n7{left:37%;bottom:3%;background:#e8dbff}
.concept-map svg{position:absolute;inset:0;width:100%;height:100%;z-index:1}.concept-map path{stroke:#63aeb1;stroke-width:3;stroke-dasharray:5 7;fill:none;opacity:.6}

.adventure{position:relative;min-height:780px;border-radius:40px;background:linear-gradient(180deg,#c8f1ff 0 24%,#b7efce 24% 100%);overflow:hidden;padding:24px 12px 60px;box-shadow:var(--shadow)}.adventure:before{content:"";position:absolute;left:-30%;top:45%;width:160%;height:120px;background:#86dcff;border-radius:50%;transform:rotate(-8deg);box-shadow:inset 0 9px rgba(255,255,255,.25)}.path-line{position:absolute;left:50%;top:65px;bottom:60px;width:12px;background:#e6bf83;border-radius:20px;transform:translateX(-50%) rotate(2deg);box-shadow:inset 0 0 0 3px rgba(255,255,255,.3)}
.level-node{position:relative;z-index:2;width:62%;min-height:115px;margin:0 auto 16px;border:0;border-radius:45% 55% 48% 52%/56% 48% 52% 44%;padding:15px;box-shadow:0 12px 20px rgba(42,89,89,.17);color:var(--ink);text-align:left;transition:.2s}.level-node:nth-of-type(even){margin-left:6%}.level-node:nth-of-type(odd){margin-right:6%}.level-node b{display:block;font-size:15px}.level-node small{font-weight:700}.level-node .lvl-icon{font-size:28px;float:right;margin-left:8px}.level-node.locked{filter:grayscale(.75);opacity:.64}.level-node.complete:after{content:"✓";position:absolute;right:-5px;top:-5px;width:28px;height:28px;border-radius:50%;background:#35bd7f;color:#fff;display:grid;place-items:center;font-weight:950;border:3px solid #fff}.island1{background:#fff0af}.island2{background:#e5d8ff}.island3{background:#baf4d7}.island4{background:#ffd6e8}.island5{background:#ffd2ac}.island6{background:#d8efff}.island7{background:#ffe8a8}

.tabbar{display:flex;gap:8px;overflow:auto;padding:2px 2px 9px;scrollbar-width:none}.tabbar button{flex:0 0 auto;border:0;border-radius:16px;padding:9px 12px;background:rgba(255,255,255,.62);color:var(--ink);font-weight:850;font-size:11px}.tabbar button.active{background:var(--ink);color:white}
.lesson-hero{border-radius:34px;padding:18px;background:linear-gradient(135deg,#fff5c1,#fbe6ff);box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 110px;gap:10px;align-items:center}.lesson-hero h1{margin:4px 0 5px;font-size:23px}.lesson-hero p{font-size:12px;color:var(--muted)}
.reading-sheet{background:#fffdf7;border-radius:34px;padding:18px;box-shadow:var(--shadow);line-height:1.67;font-family:Georgia,"Times New Roman",serif}.reading-sheet h3,.reading-sheet h4{font-family:Inter,ui-rounded,sans-serif}.keypill{display:inline-block;border-radius:999px;padding:6px 9px;margin:3px;background:#eef7ff;font-family:Inter,ui-rounded,sans-serif;font-size:11px;font-weight:850}
.note-box{background:#fff4bf;border-radius:24px;padding:14px;border-left:7px solid #ffca43;margin:12px 0}
.infographic{position:relative;background:linear-gradient(145deg,#fff,#f8f3ff);border-radius:34px;padding:18px;box-shadow:var(--shadow);overflow:hidden}.info-orbit{display:grid;grid-template-columns:1fr 1fr;gap:9px}.info-item{border-radius:22px;padding:12px;font-size:12px;font-weight:750;min-height:85px;position:relative;overflow:hidden}.info-item b{display:block;font-size:13px;margin-bottom:4px}.info-item:nth-child(7n+1){background:#ffe0ec}.info-item:nth-child(7n+2){background:#e0ddff}.info-item:nth-child(7n+3){background:#d7f5e4}.info-item:nth-child(7n+4){background:#fff0bb}.info-item:nth-child(7n+5){background:#d9f3ff}.info-item:nth-child(7n+6){background:#ffe0c8}.info-item:nth-child(7n+7){background:#ddf7f5}
.alur-arrow{display:flex;gap:6px;overflow:auto;padding-bottom:4px}.alur-arrow div{min-width:120px;background:#fff;border-radius:23px;padding:12px;font-size:11px;font-weight:800;position:relative}.alur-arrow div:not(:last-child):after{content:"➜";position:absolute;right:-13px;top:38%;z-index:3}

.anim-video{background:linear-gradient(180deg,#b9ecff,#e8f9ff 65%,#bdebbd 65%);border-radius:34px;min-height:310px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.anim-stage{height:250px;position:relative;padding:16px}.anim-hill{position:absolute;left:-10%;right:-10%;bottom:-45px;height:150px;background:#78d79c;border-radius:50%}.anim-cat{position:absolute;left:10%;bottom:42px;width:110px;transition:all 1.2s ease;animation:bob 2.6s infinite}.anim-object{position:absolute;right:12%;top:40px;font-size:66px;filter:drop-shadow(0 8px 8px rgba(30,72,103,.14));transition:.7s}.anim-caption{position:absolute;left:16px;right:16px;bottom:8px;background:rgba(255,255,255,.93);border-radius:18px;padding:10px 12px;font-weight:850;font-size:12px;min-height:46px}.video-controls{display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:12px 14px;background:rgba(255,255,255,.7);align-items:center}.video-controls button{border:0;border-radius:50%;width:38px;height:38px;background:var(--ink);color:white}.video-controls input{width:100%}
.video-note{background:#fff;border-radius:30px;padding:16px;box-shadow:var(--shadow);margin-top:12px}

.game-hub{display:grid;grid-template-columns:1fr 1fr;gap:10px}.game-card{border:0;border-radius:28px;padding:15px;min-height:130px;text-align:left;box-shadow:0 9px 18px rgba(42,79,111,.12);color:var(--ink);position:relative;overflow:hidden}.game-card:nth-child(6n+1){background:#fff0b8}.game-card:nth-child(6n+2){background:#ffdceb}.game-card:nth-child(6n+3){background:#dcd5ff}.game-card:nth-child(6n+4){background:#d7f5e2}.game-card:nth-child(6n+5){background:#d8f1ff}.game-card:nth-child(6n+6){background:#ffe0c6}.game-card .emoji{font-size:30px;display:block;margin-bottom:8px}.game-card b{font-size:13px}.game-card small{display:block;margin-top:5px;color:#5e7184}
.game-stage{background:rgba(255,255,255,.88);border-radius:34px;padding:16px;box-shadow:var(--shadow);min-height:360px}.scorebar{display:flex;align-items:center;justify-content:space-between;background:#edf7ff;border-radius:18px;padding:9px 12px;font-weight:850;font-size:12px;margin-bottom:12px}
.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.memory-card{aspect-ratio:1;border:0;border-radius:18px;background:linear-gradient(145deg,#7988ff,#9a6fff);color:white;font-size:11px;font-weight:850;padding:5px;display:grid;place-items:center}.memory-card.flipped,.memory-card.matched{background:#fff4bd;color:var(--ink)}.memory-card.matched{outline:3px solid #4ccf91}
.drag-zone{display:flex;gap:8px;flex-wrap:wrap;min-height:54px;padding:10px;border:2px dashed #9bc4d7;border-radius:20px;background:#f6fcff;margin:8px 0}.drag-token{background:#fff;border-radius:999px;padding:8px 11px;box-shadow:0 5px 10px rgba(42,77,107,.12);font-size:11px;font-weight:850;cursor:grab}.drop-columns{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dropbox{min-height:120px;border-radius:24px;padding:10px;background:#f5f0ff;border:2px dashed #ad9ae8}.dropbox:nth-child(2){background:#e9faef;border-color:#7bcf9d}
.sequence-list{display:grid;gap:7px}.seq-item{display:grid;grid-template-columns:1fr auto;gap:8px;background:#fff;border-radius:18px;padding:10px 12px;box-shadow:0 5px 12px rgba(44,81,111,.08)}.seq-item button{border:0;border-radius:10px;background:#e9f3ff;padding:4px 8px}
.word-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-width:400px;margin:auto}.letter{aspect-ratio:1;border:0;border-radius:8px;background:#fff;color:var(--ink);font-weight:900}.letter.selected{background:#ffe587}.wordlist{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.wordlist span{background:#eaf7ff;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:800}.wordlist span.found{text-decoration:line-through;background:#d7f7e4}
.catch-area{height:280px;position:relative;overflow:hidden;border-radius:26px;background:linear-gradient(#d7f3ff,#ecfbff);border:2px solid #fff}.catch-token{position:absolute;border:0;border-radius:999px;padding:9px 12px;font-weight:900;animation:fall 5s linear forwards;box-shadow:0 6px 12px rgba(42,80,111,.15)}@keyframes fall{from{top:-45px}to{top:300px}}
.shadow-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.shadow-target{min-height:90px;border:2px dashed #8eabc1;border-radius:22px;display:grid;place-items:center;font-size:34px;filter:grayscale(1);opacity:.55}.icon-choice{border:0;border-radius:18px;background:white;padding:12px;font-size:32px}
.crew-map{position:relative;height:310px;border-radius:28px;background:linear-gradient(#d9f0ff,#c6efd3);overflow:hidden}.crew-room{position:absolute;border:0;border-radius:24px;padding:12px;font-size:11px;font-weight:900;box-shadow:0 8px 15px rgba(42,80,111,.13)}.crew-avatar{position:absolute;left:48%;top:44%;font-size:40px;transition:.5s}.room1{left:7%;top:12%;background:#fff0b5}.room2{right:7%;top:12%;background:#ffdce9}.room3{left:12%;bottom:12%;background:#dcd8ff}.room4{right:12%;bottom:12%;background:#d7f6e2}

.quiz-card{background:#fff;border-radius:34px;padding:18px;box-shadow:var(--shadow)}.quiz-meta{display:flex;justify-content:space-between;font-size:11px;font-weight:900;color:var(--muted)}.quiz-q{font-size:18px;font-weight:900;margin:14px 0}.answers{display:grid;gap:9px}.answer{border:2px solid #e1ebf4;background:#f9fcff;border-radius:19px;padding:12px;text-align:left;font-weight:750;color:var(--ink)}.answer.correct{border-color:#4ecb8c;background:#ddf7e8}.answer.wrong{border-color:#ff7f92;background:#ffe8eb}.feedback{margin-top:12px;border-radius:20px;padding:12px;background:#eef6ff;font-size:12px;line-height:1.45}.quiz-lock{background:#fff4c6;border-radius:28px;padding:18px;text-align:center}.quiz-list{display:grid;gap:9px}.quiz-entry{border:0;border-radius:24px;background:#fff;padding:14px;text-align:left;box-shadow:0 7px 15px rgba(41,77,106,.1)}.quiz-entry.locked{opacity:.55;filter:grayscale(.4)}

.form-sheet{background:rgba(255,255,255,.9);border-radius:34px;padding:17px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:900;color:#4d6c88}.field input,.field textarea,.field select{border:2px solid #dcecf4;border-radius:17px;padding:11px 12px;background:#fff;color:var(--ink);outline:none}.field textarea{min-height:96px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:#79b9ff}.wizard-dots{display:flex;gap:6px;justify-content:center;margin:10px}.wizard-dots i{width:9px;height:9px;border-radius:50%;background:#d5e2ec}.wizard-dots i.on{background:var(--blue);width:24px;border-radius:8px}.editor-toolbar{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}.editor-area{width:100%;min-height:380px;border:0;border-radius:24px;background:#fffdf8;padding:18px;line-height:1.7;font-family:Georgia,serif;box-shadow:inset 0 0 0 2px #ece6df;resize:vertical}.prompt-cat{display:grid;grid-template-columns:58px 1fr;gap:9px;align-items:center;background:#eef7ff;border-radius:24px;padding:10px;margin-top:10px}.prompt-cat img{width:58px}.checklist{display:grid;gap:7px}.checkline{display:flex;gap:8px;align-items:start;background:#f7fbff;border-radius:15px;padding:8px 10px;font-size:11px}

.library-hero{background:linear-gradient(135deg,#ffe7b6,#e7dfff);border-radius:34px;padding:17px;box-shadow:var(--shadow)}.filters{display:flex;gap:7px;overflow:auto;padding:9px 1px;scrollbar-width:none}.filters button{border:0;border-radius:999px;background:rgba(255,255,255,.82);padding:8px 11px;font-size:10px;font-weight:900;white-space:nowrap}.filters button.on{background:var(--ink);color:#fff}.searchbox{width:100%;border:0;background:#fff;border-radius:20px;padding:12px 14px;box-shadow:0 6px 13px rgba(42,80,111,.1)}
.bookshelf{margin-top:14px;padding:18px 10px 14px;border-radius:30px;background:linear-gradient(#f2cf9a 0 10px,#c98f52 10px 17px,#f2cf9a 17px 100%);display:grid;grid-template-columns:repeat(3,1fr);gap:17px 10px;position:relative}.book{border:0;min-height:165px;border-radius:8px 16px 16px 8px;padding:12px 8px;color:#fff;text-align:left;box-shadow:inset 6px 0 rgba(255,255,255,.17),4px 8px 10px rgba(81,61,40,.18);position:relative}.book:nth-child(5n+1){background:#7c68e8}.book:nth-child(5n+2){background:#e7699f}.book:nth-child(5n+3){background:#3dad89}.book:nth-child(5n+4){background:#e98a48}.book:nth-child(5n+5){background:#3c8ec5}.book b{display:block;font-size:12px;line-height:1.15}.book small{font-size:8px;opacity:.9}.book:after{content:"";position:absolute;left:-3px;right:-3px;bottom:-15px;height:8px;background:#9d673b;border-radius:8px}
.reader{background:#fffdf8;border-radius:34px;padding:20px;box-shadow:var(--shadow);font-family:Georgia,serif;line-height:1.8}.reader h1,.reader .meta{font-family:Inter,ui-rounded,sans-serif}.reader .meta{color:var(--muted);font-size:11px}.reader p{text-indent:1.5em}.reader-actions{position:sticky;bottom:85px;background:rgba(255,255,255,.9);border-radius:22px;padding:9px;box-shadow:var(--shadow);display:flex;gap:8px;margin-top:12px}

.profile-hero{background:linear-gradient(135deg,#e9dcff,#d7f4ff);border-radius:34px;padding:18px;display:grid;grid-template-columns:90px 1fr;gap:14px;align-items:center;box-shadow:var(--shadow)}.avatar-ring{width:88px;height:88px;border-radius:50%;background:#fff;border:5px solid #ffc950;display:grid;place-items:center;overflow:hidden}.avatar-ring img{width:88px}.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.badge{background:rgba(255,255,255,.84);border-radius:24px;padding:10px;text-align:center;min-height:100px;box-shadow:0 6px 12px rgba(45,83,111,.09)}.badge.locked{filter:grayscale(1);opacity:.5}.badge .medal{font-size:31px}.badge b{font-size:10px;display:block}.badge small{font-size:8px;color:var(--muted)}
.league{background:#fff;border-radius:30px;padding:14px;box-shadow:var(--shadow)}.rank-row{display:grid;grid-template-columns:34px 40px 1fr auto;gap:8px;align-items:center;padding:9px;border-bottom:1px dashed #e4ecf2}.rank-row:last-child{border-bottom:0}.rank-pos{font-weight:950}.rank-avatar{width:36px;height:36px;border-radius:50%;background:#edf5ff;display:grid;place-items:center}.rank-score{font-weight:950;font-size:12px}
.teacher-table{width:100%;border-collapse:collapse;font-size:10px}.teacher-table th,.teacher-table td{padding:8px 5px;border-bottom:1px solid #e5edf3;text-align:left}.status{display:inline-block;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:900}.status.pending{background:#fff0be}.status.approved{background:#d9f7e4}.status.revise{background:#ffe0e4}
.reflection{display:grid;gap:8px}.reflect-row{background:#fff;border-radius:20px;padding:11px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.reflect-row select{border:0;background:#edf6ff;border-radius:12px;padding:7px}
.summary-banner{background:linear-gradient(135deg,#fff2a8,#ffd7ec,#dcd6ff);border-radius:34px;padding:18px;box-shadow:var(--shadow)}.summary-list{display:grid;gap:8px}.summary-item{background:rgba(255,255,255,.72);border-radius:20px;padding:11px}

.toast{position:fixed;z-index:80;left:50%;bottom:100px;transform:translate(-50%,30px);opacity:0;background:#173859;color:#fff;padding:11px 15px;border-radius:999px;font-size:12px;font-weight:850;transition:.25s;pointer-events:none;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}
.modal{position:fixed;z-index:70;inset:0;background:rgba(18,47,70,.46);backdrop-filter:blur(4px);display:grid;place-items:center;padding:18px}.modal.hidden{display:none}.modal-card{width:min(560px,100%);max-height:86vh;overflow:auto;background:linear-gradient(180deg,#fff,#f4fbff);border-radius:34px;padding:18px;box-shadow:0 30px 60px rgba(24,50,73,.28);animation:pop .22s ease}.modal-close{float:right;border:0;border-radius:50%;width:34px;height:34px;background:#eaf3fa}
.confetti-layer{position:fixed;z-index:90;inset:0;pointer-events:none;overflow:hidden}.confetti{position:absolute;top:-20px;width:10px;height:18px;border-radius:3px;animation:confetti 1.9s ease-in forwards}@keyframes confetti{to{transform:translateY(110vh) rotate(720deg);opacity:.4}}
.empty{text-align:center;padding:30px;background:rgba(255,255,255,.75);border-radius:28px}.pawhint{position:relative}.pawhint:after{content:"🐾";position:absolute;right:5px;bottom:-16px;animation:pawwalk 2s infinite}
.hide{display:none!important}
hr.soft{border:0;border-top:1px dashed #c8dbe6;margin:14px 0}

@media (max-width:500px){
  .hero-grid{grid-template-columns:1.35fr .65fr}.mascot{width:112px}.speech{display:none}.hero h1{font-size:24px}
  .stat-strip{grid-template-columns:repeat(4,1fr);gap:5px}.stat-bubble{padding:8px 4px}.stat-bubble b{font-size:15px}
  .concept-map{min-height:530px}.concept-node{width:128px;font-size:9px}.n7{left:32%}
  .level-node{width:72%}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.bookshelf{grid-template-columns:repeat(3,1fr);gap:17px 7px}.book{min-height:145px}
}
@media (min-width:700px){
  .view{padding-left:22px;padding-right:22px}.hero h1{font-size:32px}.game-hub{grid-template-columns:repeat(3,1fr)}.bookshelf{grid-template-columns:repeat(4,1fr)}
}


/* Media belajar Level 1–5: video dan poster materi */
.material-video-view,.material-poster-view{display:grid;gap:12px}
.material-media-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;background:rgba(255,255,255,.88);border-radius:26px;padding:14px 15px;box-shadow:var(--shadow)}
.material-media-head h2{font-size:18px;line-height:1.2;margin:4px 0 0}
.media-badge{flex:0 0 auto;border-radius:999px;background:#eef6ff;padding:7px 9px;font-size:10px;font-weight:900;color:#25547f}
.native-video-shell{background:#102b43;border-radius:28px;padding:8px;box-shadow:var(--shadow);overflow:hidden}
.native-video-shell video{display:block;width:100%;max-height:72vh;border-radius:21px;background:#000;object-fit:contain}
.poster-frame{background:#f4eadc;border-radius:28px;padding:8px;box-shadow:var(--shadow);overflow:hidden}
.poster-frame img{display:block;width:100%;height:auto;border-radius:21px;background:#fff}
.poster-actions{display:flex;justify-content:center}
.media-link{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:480px){
  .material-media-head{align-items:center}
  .material-media-head h2{font-size:15px}
  .native-video-shell{padding:5px;border-radius:22px}
  .native-video-shell video,.poster-frame img{border-radius:17px}
  .poster-frame{padding:5px;border-radius:22px}
}


/* Materi lengkap & ringkasan Level 1–5 */
.learning-doc{display:grid;gap:12px}
.learning-doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:linear-gradient(135deg,#fff7d2,#edf8ff);border-radius:28px;padding:16px;box-shadow:var(--shadow)}
.learning-doc-head.summary-head{background:linear-gradient(135deg,#eaf8ef,#f3edff)}
.learning-doc-head h2{font-size:20px;line-height:1.2;margin:4px 0 5px}
.learning-doc-head p{font-size:11px;color:var(--muted);margin:0}
.doc-type-badge{flex:0 0 auto;background:#fff;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900;color:#315c7b;box-shadow:0 5px 12px rgba(39,77,106,.08)}
.learning-doc-paper{background:#fffdf7;border-radius:32px;padding:18px;box-shadow:var(--shadow);line-height:1.65;overflow:hidden}
.summary-paper{background:linear-gradient(180deg,#fffef8,#f8fcfa)}
.doc-cover-title{font:900 24px/1.15 Georgia,"Times New Roman",serif;color:#173b58;text-align:center;margin:3px 0 8px}
.doc-h1{font:900 21px/1.25 Georgia,"Times New Roman",serif;color:#173b58;margin:22px 0 9px;padding-bottom:8px;border-bottom:2px solid #dbe8e7}
.doc-h2{font:900 16px/1.3 Georgia,"Times New Roman",serif;color:#244e65;margin:20px 0 8px}
.doc-paragraph{font:400 13px/1.72 Georgia,"Times New Roman",serif;color:#2a4357;margin:8px 0;text-align:justify}
.doc-meta{text-align:center;font-size:10px;font-weight:800;color:#6b7e8e;margin:3px 0}
.doc-source{font-size:9px;line-height:1.45;color:#778796;background:#f4f8fa;border-radius:15px;padding:9px 11px;margin:18px 0 2px}
.doc-bullet{display:grid;grid-template-columns:18px 1fr;gap:3px;align-items:start;background:#f9fcff;border-radius:14px;padding:6px 9px;margin:5px 0}
.doc-bullet>span{font-weight:900;color:#3b82b6}.doc-bullet p{margin:0;font-size:12px;line-height:1.5}
.doc-step{display:grid;grid-template-columns:29px 1fr;gap:8px;align-items:start;margin:7px 0;background:#f5fafc;border-radius:17px;padding:8px 10px}
.doc-step>span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#397da5;color:#fff;font-size:10px;font-weight:900}.doc-step p{margin:3px 0 0;font-size:12px;line-height:1.45}
.doc-table-wrap{overflow-x:auto;margin:12px 0;border-radius:18px;box-shadow:inset 0 0 0 1px #dae6e8}
.doc-table{width:100%;border-collapse:collapse;min-width:390px;background:#fff;font-size:11px}
.doc-table th{background:#214d69;color:#fff;font-weight:900;text-align:left;padding:9px}
.doc-table td{padding:9px;border-top:1px solid #e0e9ec;vertical-align:top;line-height:1.45}.doc-table tr:nth-child(even) td{background:#f8fbfc}
.doc-callout{margin:12px 0;background:linear-gradient(135deg,#fff0b9,#e8f6ef);border-left:6px solid #d49d36;border-radius:17px;padding:11px 13px;text-align:center;font-size:12px;font-weight:900;line-height:1.5;color:#31505f}
.doc-end-note{display:grid;grid-template-columns:42px 1fr;gap:9px;align-items:center;background:#eef8ff;border-radius:23px;padding:11px 13px}.doc-end-note>span{font-size:30px}.doc-end-note b{font-size:12px}.doc-end-note p{font-size:10px;color:var(--muted);margin:3px 0 0}
@media(max-width:480px){
  .learning-doc-head{align-items:center}.learning-doc-head h2{font-size:17px}.doc-type-badge{font-size:9px}
  .learning-doc-paper{padding:14px}.doc-cover-title{font-size:21px}.doc-h1{font-size:18px}.doc-h2{font-size:15px}.doc-paragraph{font-size:12px}
}


/* ===== Arcade Cerpenia: game terasa seperti mini-game sungguhan ===== */
.bottom-nav .nav-item{flex:1;min-width:0;padding-left:4px;padding-right:4px}
.bottom-nav .nav-item small{font-size:9px}

/* Hub */
.arcade-hero{position:relative;overflow:hidden;min-height:245px;border-radius:36px;padding:20px;background:linear-gradient(145deg,#6c7cff 0%,#8f76ff 38%,#ff82bf 72%,#ffd56b 100%);box-shadow:0 18px 34px rgba(70,66,155,.22);display:grid;grid-template-columns:1.18fr .82fr;align-items:center;color:#fff}
.arcade-hero:before{content:"";position:absolute;inset:auto -8% -85px -8%;height:170px;background:#61d5a0;border-radius:50% 50% 0 0/45% 45% 0 0;opacity:.95}
.arcade-hero:after{content:"";position:absolute;width:115px;height:115px;border-radius:50%;right:13%;top:18px;background:rgba(255,238,125,.8);box-shadow:0 0 0 12px rgba(255,255,255,.08)}
.arcade-hero-copy,.arcade-mascot-zone{position:relative;z-index:3}.arcade-hero .eyebrow{color:#fff9c7}.arcade-hero h1{font-size:28px;line-height:1.05;margin:5px 0 8px;text-shadow:0 4px 0 rgba(63,48,120,.12)}.arcade-hero p{font-size:12px;line-height:1.5;margin:0;max-width:390px;color:rgba(255,255,255,.92)}
.arcade-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.arcade-stats span{background:rgba(255,255,255,.19);border:1px solid rgba(255,255,255,.28);padding:7px 9px;border-radius:999px;font-size:10px;font-weight:900;backdrop-filter:blur(5px)}
.arcade-mascot-zone{text-align:center;align-self:end}.arcade-mascot-zone img{width:142px;max-width:100%;filter:drop-shadow(0 14px 12px rgba(45,41,91,.24));animation:arcadeMascot 2.8s ease-in-out infinite}.arcade-speech{position:absolute;right:0;top:-15px;background:#fff;color:#294768;border-radius:18px 18px 5px 18px;padding:9px 10px;max-width:135px;font-size:9px;font-weight:900;box-shadow:0 8px 16px rgba(50,50,100,.17)}
@keyframes arcadeMascot{50%{transform:translateY(-9px) rotate(2deg)}}
.arcade-cloud{position:absolute;z-index:1;width:90px;height:28px;background:rgba(255,255,255,.34);border-radius:999px}.arcade-cloud:before,.arcade-cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.arcade-cloud:before{width:35px;height:35px;left:15px;top:-15px}.arcade-cloud:after{width:45px;height:45px;right:10px;top:-23px}.cloud-a{left:-15px;top:28px;animation:arcadeCloud 8s ease-in-out infinite}.cloud-b{right:28%;top:84px;transform:scale(.6);animation:arcadeCloud 10s -3s ease-in-out infinite}
@keyframes arcadeCloud{50%{translate:24px 4px}}

.arcade-passport{margin-top:12px;background:linear-gradient(145deg,#fff9df,#fff);border:2px solid rgba(255,255,255,.8);border-radius:27px;padding:13px 14px;box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.arcade-passport b{display:block;font-size:12px}.arcade-passport small{font-size:9px;color:var(--muted)}.passport-stamps{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:5px}.passport-stamps span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef3f7;color:#8191a0;font-size:9px;font-weight:950;border:2px dashed #b9c8d2}.passport-stamps span.stamped{background:#ffe78f;color:#8a6115;border-style:solid;border-color:#efbd3d;transform:rotate(-7deg);box-shadow:0 4px 8px rgba(152,105,20,.16)}

.arcade-world-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.arcade-world-card{position:relative;overflow:hidden;min-height:225px;border:0;border-radius:30px;padding:0;text-align:left;color:#173859;box-shadow:0 12px 22px rgba(42,73,106,.13);transition:.22s;isolation:isolate}.arcade-world-card:active{transform:scale(.97)}.arcade-world-card:hover{transform:translateY(-3px)}
.arcade-world-card.forest{background:linear-gradient(#bfeaff 0 42%,#8ce0a8 42%)}.arcade-world-card.tower{background:linear-gradient(#dad3ff 0 45%,#f5d9ff 45%)}.arcade-world-card.bridge{background:linear-gradient(#c8eeff 0 48%,#74d6f4 48%)}.arcade-world-card.temple{background:linear-gradient(#ffe5a7 0 46%,#f7c66e 46%)}.arcade-world-card.lab{background:linear-gradient(#dff7ff 0 45%,#b7e5ff 45%)}.arcade-world-card.sky{background:linear-gradient(#c3ecff 0 58%,#f3fbff 58%)}.arcade-world-card.gallery{background:linear-gradient(#ffd9e9,#f1dfff)}.arcade-world-card.island{background:linear-gradient(#c8efff 0 45%,#76dfb1 45%)}.arcade-world-card.museum{background:linear-gradient(#f5e0bb,#e7cf9e)}.arcade-world-card.space{background:linear-gradient(150deg,#2e386f,#6655ad 60%,#f17bb3);color:#fff}
.arcade-world-card.completed{outline:3px solid #45c889;outline-offset:-3px}.arcade-world-card.completed:after{content:"✓";position:absolute;right:10px;top:10px;z-index:8;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#3dc786;color:white;border:3px solid white;font-weight:950}
.world-sky{position:absolute;inset:0;z-index:-1;opacity:.7}.world-sky i{position:absolute;width:58px;height:17px;background:rgba(255,255,255,.62);border-radius:999px;animation:miniCloud 8s ease-in-out infinite}.world-sky i:nth-child(1){left:8%;top:26px}.world-sky i:nth-child(2){right:7%;top:58px;transform:scale(.65);animation-delay:-3s}.world-sky i:nth-child(3){left:38%;top:11px;transform:scale(.4);animation-delay:-5s}@keyframes miniCloud{50%{translate:14px 0}}
.world-number{position:absolute;top:10px;left:11px;background:rgba(255,255,255,.72);padding:5px 8px;border-radius:999px;font-size:8px;font-weight:950;letter-spacing:.7px;color:#35516c}.space .world-number{background:rgba(255,255,255,.16);color:#fff}.world-character{position:absolute;right:12px;top:38px;font-size:62px;filter:drop-shadow(0 8px 7px rgba(36,63,90,.17));animation:worldChar 2.8s ease-in-out infinite}.arcade-world-card:nth-child(even) .world-character{animation-delay:-1.2s}@keyframes worldChar{50%{transform:translateY(-7px) rotate(3deg)}}
.world-body{position:absolute;left:10px;right:10px;bottom:10px;background:rgba(255,255,255,.91);border-radius:22px;padding:11px;backdrop-filter:blur(7px);box-shadow:0 7px 15px rgba(30,63,87,.09)}.space .world-body{background:rgba(20,31,70,.72);color:#fff}.world-tag{display:inline-block;background:#1f5678;color:#fff;border-radius:999px;padding:4px 7px;font-size:7px;font-weight:950;letter-spacing:.8px}.space .world-tag{background:#ffd35f;color:#543e12}.world-body h3{font-size:15px;margin:4px 0 1px}.world-body>b{font-size:10px}.world-body p{font-size:8.5px;line-height:1.35;margin:4px 0 8px;color:#536b7d}.space .world-body p{color:#e8edff}.world-footer{display:flex;justify-content:space-between;font-size:8.5px;font-weight:950}.world-footer span:last-child{background:#eef7ff;padding:4px 7px;border-radius:999px;color:#2665a7}.space .world-footer span:last-child{background:#fff;color:#5f4a9d}
.arcade-tip{display:grid;grid-template-columns:42px 1fr;gap:9px;align-items:center;margin-top:13px;background:#fff4c8;border-radius:24px;padding:11px 13px}.arcade-tip>span{font-size:28px}.arcade-tip b{font-size:11px}.arcade-tip p{font-size:9px;line-height:1.4;margin:2px 0;color:#6a6c69}

/* Full arcade modal */
.arcade-modal-card{width:min(720px,100%);max-height:92vh;padding:0;background:transparent;box-shadow:none;overflow:auto;border-radius:32px}.arcade-modal-card>.modal-close{display:none}.arcade-stage{position:relative;padding:0;background:transparent;box-shadow:none;min-height:0}.arcade-game-shell{position:relative;overflow:hidden;border-radius:32px;padding:12px;background:linear-gradient(180deg,#dff4ff,#f8fcff);box-shadow:0 26px 60px rgba(13,38,64,.34)}.arcade-game-shell:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-70px;top:50px;background:rgba(255,255,255,.38)}
.theme-forest{background:linear-gradient(180deg,#c8efff 0 35%,#d8f5d7 100%)}.theme-tower{background:linear-gradient(180deg,#e1dbff,#f8e7ff)}.theme-bridge{background:linear-gradient(180deg,#c9efff,#d9f8f4)}.theme-temple{background:linear-gradient(180deg,#ffe9b5,#fff8df)}.theme-lab{background:linear-gradient(180deg,#d9f5ff,#e8e3ff)}.theme-sky{background:linear-gradient(180deg,#bfeeff,#effbff)}.theme-gallery{background:linear-gradient(180deg,#ffe1ed,#eee2ff)}.theme-island{background:linear-gradient(180deg,#c6eeff,#d9f4dc)}.theme-museum{background:linear-gradient(180deg,#f1dfbe,#fff6df)}.theme-space{background:linear-gradient(145deg,#28356c,#554799 58%,#9b5cab);color:#fff}
.arcade-game-top{position:relative;z-index:2;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;background:rgba(255,255,255,.82);border-radius:22px;padding:8px 10px;backdrop-filter:blur(7px)}.theme-space .arcade-game-top{background:rgba(255,255,255,.12)}.arcade-back{border:0;background:#e8f3fb;color:#315a76;border-radius:13px;padding:8px 9px;font-size:9px;font-weight:900}.theme-space .arcade-back{background:rgba(255,255,255,.18);color:#fff}.arcade-game-title{text-align:center;display:grid}.arcade-game-title small{font-size:7px;font-weight:900;letter-spacing:.8px;color:#6c7f8e}.theme-space .arcade-game-title small{color:#dcdfff}.arcade-game-title b{font-size:13px}.arcade-reward{background:#fff0b0;padding:7px 9px;border-radius:999px;font-size:9px;font-weight:950;color:#765612}
.game-guide{position:relative;z-index:2;display:grid;grid-template-columns:55px 1fr;gap:8px;align-items:center;margin:10px 5px}.guide-character{font-size:46px;text-align:center;filter:drop-shadow(0 7px 6px rgba(40,64,85,.14));animation:guideBob 2.6s ease-in-out infinite}@keyframes guideBob{50%{transform:translateY(-5px) rotate(-2deg)}}.guide-bubble{position:relative;background:#fff;border-radius:18px 18px 18px 5px;padding:9px 11px;color:#294760;box-shadow:0 7px 15px rgba(40,68,90,.1)}.guide-bubble:before{content:"";position:absolute;left:-7px;bottom:7px;border:8px solid transparent;border-right-color:#fff}.guide-bubble small{display:block;font-size:7px;color:#728495;font-weight:900;text-transform:uppercase;letter-spacing:.7px}.guide-bubble b{font-size:10px;line-height:1.35}
.quest-board{position:relative;z-index:2;background:rgba(255,255,255,.84);border:2px solid rgba(255,255,255,.7);border-radius:26px;padding:12px;box-shadow:0 10px 20px rgba(38,67,88,.09);color:#173859;backdrop-filter:blur(5px)}.quest-instruction{display:grid;grid-template-columns:38px 1fr;gap:8px;align-items:center;background:#f4f9ff;border-radius:18px;padding:8px 10px;margin-bottom:10px}.quest-instruction>span{font-size:29px}.quest-instruction b{font-size:11px}.quest-instruction p{font-size:9px;line-height:1.4;margin:2px 0;color:#5d7486}.game-live-status{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:9px;background:#173e5d;color:#fff;border-radius:15px;padding:8px 10px;font-size:8.5px;font-weight:850}.arcade-action{display:block;width:100%;border:0;border-radius:16px;background:linear-gradient(135deg,#4c84ff,#7a66ee);color:#fff;padding:11px 13px;margin-top:9px;font-weight:950;font-size:10px;box-shadow:0 7px 13px rgba(73,106,215,.24)}.arcade-action:active{transform:scale(.98)}

/* Game 1 */
.arcade-memory{grid-template-columns:repeat(4,1fr);gap:7px}.arcade-memory-card{position:relative;aspect-ratio:1;background:linear-gradient(145deg,#546de8,#866fe9);border:3px solid rgba(255,255,255,.62);font-size:10px;line-height:1.15;box-shadow:0 7px 13px rgba(53,62,135,.22);transform-style:preserve-3d}.arcade-memory-card>span{font-size:22px}.arcade-memory-card.flipped{background:linear-gradient(145deg,#fff7c4,#fff);color:#23435c;animation:cardFlip .28s ease}.arcade-memory-card.matched{background:linear-gradient(145deg,#c7f7d9,#fff);outline:3px solid #49c98b;animation:matchedGlow .7s ease}@keyframes cardFlip{50%{transform:rotateY(90deg)}}@keyframes matchedGlow{50%{transform:scale(1.08);box-shadow:0 0 0 8px rgba(73,201,139,.15)}}

/* Game 2 & 9 */
.crystal-tray,.artifact-tray{background:linear-gradient(145deg,#eff7ff,#fff);border-color:#a9c9df;min-height:78px}.crystal-token,.artifact-token{border:0;display:inline-grid;grid-template-columns:auto 1fr;gap:5px;align-items:center;border-radius:16px;background:linear-gradient(145deg,#fff,#e9f3ff);padding:8px 9px;color:#23445f;box-shadow:0 6px 12px rgba(40,76,105,.12);font-size:8.5px}.crystal-token>span,.artifact-token>span{font-size:18px}.selected-token{outline:3px solid #5b86ff!important;transform:scale(1.04)}.tower-drops,.museum-wings{margin-top:8px}.magic-tower,.museum-room{min-height:145px;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:flex-start;text-align:center;padding-top:12px}.magic-tower .tower-icon,.museum-room>span{font-size:35px}.magic-tower small,.museum-room small{font-size:7px;color:#6d8090}.intrinsic-tower{background:linear-gradient(#e5e1ff,#f6f2ff);border-color:#927ee3}.extrinsic-tower{background:linear-gradient(#def7e7,#f4fff7);border-color:#64c58d}.fact-room{background:#fff0c8;border-color:#d3a84a}.fiction-room{background:#eedfff;border-color:#997bd4}.drop-success{animation:towerWin .8s ease;box-shadow:0 0 0 5px rgba(72,201,137,.18)}@keyframes towerWin{50%{transform:translateY(-7px) scale(1.03)}}

/* Game 3 */
.story-river{height:45px;background:linear-gradient(180deg,#7bd7ff,#4cbce7);border-radius:18px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;color:#fff;font-size:8px;font-weight:950;overflow:hidden}.story-river i{flex:1;border-top:3px dashed rgba(255,255,255,.85);margin:0 8px}.stepping-stones{margin-top:8px}.story-stone{background:linear-gradient(145deg,#fff5c9,#fff);border:2px solid #ead28c;grid-template-columns:30px 1fr auto}.stone-num{width:27px;height:27px;border-radius:50%;background:#d7a84c;color:white;display:grid;place-items:center;font-weight:950}.stone-move{animation:stoneMove .25s ease}.sequence-correct{background:#dff8e8!important;border-color:#58c98b!important}@keyframes stoneMove{50%{transform:scale(1.04)}}

/* Game 4 */
.rune-frame{background:linear-gradient(145deg,#6d5434,#a27a42);border-radius:23px;padding:10px;box-shadow:inset 0 0 0 3px rgba(255,230,165,.3)}.arcade-word-grid{max-width:440px}.rune-letter{background:#fff2bd;border:2px solid #e0bd68;color:#5f4927;box-shadow:inset 0 -3px rgba(166,121,48,.14)}.rune-letter.selected{background:#ffe16a}.rune-letter.rune-found{background:#c8f6da;border-color:#54c989;color:#225842;animation:runeFlash .55s ease}@keyframes runeFlash{50%{transform:scale(1.16);filter:brightness(1.2)}}.rune-list span{background:#2e4662;color:#fff}.rune-list span.found{background:#4dc888;text-decoration:none}

/* Game 5 */
.cable-board{display:grid;grid-template-columns:1fr 54px 1fr;gap:7px;align-items:center}.cable-column{display:grid;gap:7px}.cable-node{border:2px solid #bdd0e0;border-radius:16px;background:#fff;padding:9px 8px;color:#27475f;font-size:8px;font-weight:850;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:4px}.term-node span{color:#5d7cff}.def-node span{color:#ff79aa}.cable-node.cable-selected{border-color:#5d7cff;background:#ebefff;transform:translateX(4px)}.cable-node.connected{background:#d9f7e5;border-color:#4bc986;color:#226146;box-shadow:0 0 0 4px rgba(75,201,134,.12)}.cable-error{animation:cableShake .4s ease;border-color:#ef7184}@keyframes cableShake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.cable-core{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#243e67;color:#ffe878;font-size:23px;box-shadow:0 0 0 7px #e9f0ff,0 0 22px rgba(102,126,255,.35)}.cable-core small{display:block;font-size:5px;color:#fff}.power-meter{height:10px;border-radius:999px;background:#e4ecf5;overflow:hidden;margin-top:10px}.power-meter i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#52cb8d,#ffe16a,#ff7cae);transition:width .5s ease}

/* Game 6 */
.catch-hud{display:flex;justify-content:space-between;background:#1f5880;color:#fff;border-radius:14px;padding:7px 10px;font-size:10px;font-weight:950;margin-bottom:7px}.arcade-catch{height:300px;background:linear-gradient(#89dfff,#e8f9ff 70%,#b7efc9 70%);border:3px solid #fff;box-shadow:inset 0 0 30px rgba(55,137,188,.15)}.catch-clouds{position:absolute;top:13px;left:0;right:0;text-align:center;font-size:28px;opacity:.8;animation:catchClouds 5s ease-in-out infinite}@keyframes catchClouds{50%{transform:translateX(25px)}}.catcher-character{position:absolute;bottom:8px;left:43%;font-size:42px;z-index:2;animation:catcher 1.4s ease-in-out infinite}.catcher-character small{display:block;font-size:7px;background:#fff;border-radius:999px;padding:3px 6px}@keyframes catcher{50%{transform:translateX(15px)}}.gem-token{display:grid;place-items:center;min-width:80px;max-width:120px;border:2px solid #fff!important;color:#23445f!important}.gem-token>span{font-size:20px}.gem-token small{font-size:7px}.social-gem{background:linear-gradient(145deg,#c7f9d9,#fff)!important}.decoy-gem{background:linear-gradient(145deg,#ffe5b5,#fff)!important}.caught{animation:caught .18s ease forwards}.bad-catch{animation:badCatch .18s ease forwards}@keyframes caught{to{transform:scale(1.7);opacity:0}}@keyframes badCatch{to{transform:rotate(18deg) scale(.6);opacity:0}}

/* Game 7 */
.gallery-shelf{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:linear-gradient(#e8c68a 0 8px,#a56f3b 8px 13px,#fff5df 13px);padding:18px 8px 8px;border-radius:18px}.art-icon{display:grid;place-items:center;gap:3px;font-size:32px;border:2px solid #fff;box-shadow:0 6px 12px rgba(96,62,36,.14)}.art-icon small{font-size:7px;font-weight:900}.art-selected{outline:4px solid #8275ff;transform:translateY(-5px)}.gallery-shadows{margin-top:9px}.gallery-shadows .shadow-target{background:#d9d3df}.matched-art{filter:none!important;opacity:1!important;background:#dff8e8!important;outline:3px solid #4bc989}.shadow-error{animation:cableShake .4s ease}

/* Game 8 */
.scroll-pieces{gap:9px}.scroll-piece{background:linear-gradient(90deg,#f8e6b8,#fff7da,#f8e6b8);border:2px solid #d5b16c;border-radius:10px 22px 22px 10px;grid-template-columns:28px 1fr auto;box-shadow:inset 8px 0 rgba(139,97,43,.08),0 6px 12px rgba(84,62,40,.1)}.scroll-piece>span:first-child{font-size:20px}

/* Game 9 */
.artifact-token{max-width:100%;white-space:normal;text-align:left}

/* Game 10 */
.arcade-crew-map{height:330px;background:radial-gradient(circle at 50% 50%,#5a4b9c,#2b326a 60%,#18244d);border:3px solid rgba(255,255,255,.45);box-shadow:inset 0 0 30px rgba(13,19,58,.45)}.space-stars{position:absolute;inset:0;color:#fff9b4;font-size:18px;letter-spacing:9px;opacity:.75;animation:twinkle 2s infinite}.arcade-crew-map .crew-avatar{z-index:5;filter:drop-shadow(0 5px 6px rgba(0,0,0,.3))}.arcade-crew-map .crew-room{display:grid;place-items:center;min-width:95px;color:#29405a}.arcade-crew-map .crew-room>span{font-size:24px}.arcade-crew-map .crew-room>b{font-size:9px}.arcade-crew-map .crew-room small{font-size:6px}.station-active{background:#d9f9e7!important;outline:4px solid #52d195;box-shadow:0 0 26px rgba(91,255,176,.55)!important}.ship-energy{margin-top:9px;background:rgba(255,255,255,.9);color:#25425c;border-radius:16px;padding:8px}.ship-energy>span{font-size:7px;font-weight:950;letter-spacing:.8px}

/* Victory */
.victory-screen{position:absolute;z-index:20;inset:0;background:rgba(28,48,78,.70);backdrop-filter:blur(8px);display:grid;place-items:center;align-content:center;text-align:center;padding:22px;color:#fff;animation:victoryIn .28s ease}.victory-screen:before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,#fff6a6 0,rgba(255,246,166,.16) 45%,transparent 70%);animation:victoryPulse 1.6s ease-in-out infinite}.victory-screen>*{position:relative;z-index:2}.victory-stars{font-size:28px;letter-spacing:6px;color:#ffe16a;animation:starDance 1s ease-in-out infinite}.victory-character{font-size:74px;filter:drop-shadow(0 10px 8px rgba(0,0,0,.22));animation:victoryChar .8s ease infinite alternate}.victory-screen h2{font-size:28px;margin:4px 0}.victory-screen p{font-size:11px;margin:2px 0}.victory-reward{margin:10px 0;background:#fff2a7;color:#755717;border-radius:999px;padding:8px 14px;font-weight:950;font-size:11px}.victory-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}@keyframes victoryIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes victoryPulse{50%{transform:scale(1.12);opacity:.7}}@keyframes starDance{50%{transform:translateY(-7px) rotate(4deg)}}@keyframes victoryChar{to{transform:translateY(-7px) rotate(3deg)}}

@media(max-width:520px){
  .arcade-hero{grid-template-columns:1.25fr .75fr;min-height:230px;padding:16px}.arcade-hero h1{font-size:23px}.arcade-mascot-zone img{width:105px}.arcade-speech{display:none}
  .arcade-world-grid{grid-template-columns:1fr 1fr;gap:8px}.arcade-world-card{min-height:215px}.world-character{font-size:50px}.world-body h3{font-size:13px}.world-body p{font-size:8px}
  .arcade-passport{grid-template-columns:1fr}.passport-stamps{justify-content:flex-start}
  .arcade-modal-card{max-height:94vh}.arcade-game-shell{border-radius:26px;padding:9px}.arcade-game-top{grid-template-columns:auto 1fr auto}.arcade-game-title b{font-size:11px}.arcade-reward{padding:6px 7px;font-size:8px}
  .guide-character{font-size:39px}.arcade-memory{gap:5px}.arcade-memory-card{font-size:8px}
  .cable-board{grid-template-columns:1fr 42px 1fr}.cable-core{width:40px;height:40px;font-size:18px}.cable-node{font-size:7px;padding:7px 5px}
  .arcade-catch{height:280px}
}
@media(max-width:390px){
  .arcade-world-grid{grid-template-columns:1fr}.arcade-world-card{min-height:205px}
  .bottom-nav .nav-item span{font-size:20px}.bottom-nav .nav-item small{font-size:8px}
  .game-live-status{flex-direction:column;align-items:flex-start}
}


/* ===== Cerpenia Role & Teacher Monitoring ===== */
.role-gate{display:grid;gap:14px;padding:4px 0 20px}
.role-brand{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff5bd,#f6e8ff 52%,#dff5ff);border-radius:34px;padding:20px;display:grid;grid-template-columns:120px 1fr;gap:15px;align-items:center;box-shadow:var(--shadow)}
.role-brand:after{content:"";position:absolute;right:-70px;top:-85px;width:190px;height:190px;border-radius:50%;background:rgba(255,255,255,.45)}
.role-brand img{width:118px;position:relative;z-index:2;filter:drop-shadow(0 10px 10px rgba(43,77,107,.16))}
.role-brand h1{margin:4px 0 7px;font-size:29px;line-height:1.05}.role-brand p{margin:0;font-size:12px;line-height:1.5;color:#587188}
.role-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.role-choice{border:0;border-radius:29px;padding:17px;text-align:left;color:#183a58;box-shadow:var(--shadow);transition:.2s;min-height:138px}.role-choice:hover{transform:translateY(-3px)}.role-choice>span{font-size:38px;display:block}.role-choice b{font-size:17px;display:block;margin:4px 0}.role-choice small{font-size:10px;line-height:1.4;color:#5e7487}.student-choice{background:linear-gradient(145deg,#dff4ff,#e2f8ea)}.teacher-choice{background:linear-gradient(145deg,#ffe6bd,#f4e3ff)}
.role-panel{background:rgba(255,255,255,.9);border-radius:30px;padding:16px;box-shadow:var(--shadow);animation:pop .2s ease}.role-panel-head{display:grid;grid-template-columns:45px 1fr;gap:8px;align-items:center;margin-bottom:12px}.role-panel-head>span{font-size:34px}.role-panel-head b{display:block}.role-panel-head small{font-size:10px;color:var(--muted)}
.role-form{display:grid;grid-template-columns:1fr 1fr;gap:9px}.role-form label{display:grid;gap:5px;font-size:10px;font-weight:900;color:#4f6d84}.role-form label:nth-child(3),.role-form button{grid-column:1/-1}.role-form input{border:2px solid #dce9f1;border-radius:16px;padding:11px;background:#fff;outline:none;color:#183a58}.role-form input:focus{border-color:#6daeff}
.role-local-note{display:grid;grid-template-columns:35px 1fr;gap:8px;align-items:start;background:#fff4c5;border-radius:22px;padding:11px 13px}.role-local-note>span{font-size:24px}.role-local-note b{font-size:10px}.role-local-note p{font-size:9px;line-height:1.45;margin:2px 0;color:#6d6b5e}

.student-class-card{display:grid;grid-template-columns:45px 1fr auto;gap:10px;align-items:center;background:linear-gradient(135deg,#e8f6ff,#effaf3);border-radius:25px;padding:13px;box-shadow:0 8px 18px rgba(42,79,108,.09)}.student-class-card>span{font-size:30px}.student-class-card b,.student-class-card small,.student-class-card strong{display:block}.student-class-card b{font-size:12px}.student-class-card small{font-size:8px;color:var(--muted);margin-top:3px}.student-class-card strong{font-size:11px;color:#2b72ae;margin-top:2px}

/* Teacher shell */
.teacher-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#214b6d,#32779a 58%,#62b49c);color:#fff;border-radius:34px;padding:18px;display:grid;grid-template-columns:1fr 120px;gap:10px;align-items:center;box-shadow:var(--shadow)}
.teacher-hero:after{content:"";position:absolute;right:-50px;top:-70px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.11)}.teacher-hero-copy,.teacher-hero-mascot{position:relative;z-index:2}.teacher-hero .eyebrow{color:#dff7e8}.teacher-hero h1{margin:5px 0;font-size:27px}.teacher-hero p{font-size:11px;line-height:1.45;margin:0;color:#e7f5fb}.teacher-hero-mascot img{width:112px;filter:drop-shadow(0 10px 9px rgba(19,54,69,.23));animation:bob 3s ease-in-out infinite}.teacher-sync-pill{display:inline-block;margin-top:10px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:6px 9px;font-size:8px;font-weight:850}
.class-code-banner{margin-top:11px;background:linear-gradient(135deg,#fff4c2,#fff);border-radius:27px;padding:14px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;box-shadow:var(--shadow)}.class-code-banner small{display:block;font-size:8px;font-weight:900;color:#7a6b43;letter-spacing:1px}.class-code-banner strong{display:block;font-size:21px;letter-spacing:1px;margin:2px 0;color:#244963}.class-code-banner p{font-size:9px;margin:0;color:#6d7b82}
.teacher-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:11px 0}.teacher-kpis>div{background:rgba(255,255,255,.9);border-radius:22px;padding:10px 5px;text-align:center;box-shadow:0 7px 14px rgba(40,76,103,.08)}.teacher-kpis span{font-size:20px;display:block}.teacher-kpis b{font-size:16px;display:block;margin:2px 0}.teacher-kpis small{font-size:7px;color:var(--muted);font-weight:850}

.teacher-student-list{display:grid;gap:7px}.teacher-student-row{border:0;width:100%;display:grid;grid-template-columns:43px 1fr 54px 54px 15px;gap:7px;align-items:center;background:#fff;border-radius:22px;padding:9px 10px;text-align:left;color:#193a57;box-shadow:0 6px 14px rgba(40,77,105,.08);transition:.16s}.teacher-student-row:hover{transform:translateY(-2px);box-shadow:0 10px 18px rgba(40,77,105,.12)}.student-monitor-avatar{position:relative;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#eef6ff;font-size:23px}.student-monitor-avatar i{position:absolute;right:0;bottom:1px;width:10px;height:10px;border-radius:50%;background:#c5d0d7;border:2px solid #fff}.student-monitor-avatar i.online{background:#48cb89}.student-monitor-main{display:grid}.student-monitor-main b{font-size:11px}.student-monitor-main small{font-size:8px;color:#6b8091}.monitor-progress{height:5px;background:#e7eef3;border-radius:999px;margin-top:5px;overflow:hidden}.monitor-progress i{display:block;height:100%;background:linear-gradient(90deg,#4bc98a,#4f91ef);border-radius:999px}.student-monitor-metric{text-align:center}.student-monitor-metric b{font-size:11px;display:block}.student-monitor-metric small{font-size:7px;color:#788a98}.student-chevron{font-size:22px;color:#8ca0ae}
.teacher-activity{display:grid;gap:7px}.activity-item{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center;background:rgba(255,255,255,.83);border-radius:20px;padding:9px}.activity-avatar{width:36px;height:36px;border-radius:50%;background:#edf5ff;display:grid;place-items:center;font-size:21px}.activity-item b{font-size:10px}.activity-item p{font-size:8px;color:#6b7e8e;margin:2px 0}.activity-item time{font-size:7px;color:#7d8c98;white-space:nowrap}
.teacher-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.teacher-quick-grid button{border:0;border-radius:22px;background:#fff;padding:12px;text-align:left;color:#24455e;box-shadow:0 6px 13px rgba(42,79,105,.08)}.teacher-quick-grid span{font-size:27px;display:block}.teacher-quick-grid b{font-size:10px;display:block;margin-top:4px}.teacher-quick-grid small{font-size:8px;color:var(--muted)}
.teacher-empty{text-align:center;background:rgba(255,255,255,.86);border-radius:28px;padding:27px 18px;box-shadow:var(--shadow)}.teacher-empty>div{font-size:48px}.teacher-empty h3{margin:6px 0}.teacher-empty p{font-size:10px;color:var(--muted);line-height:1.5}

/* Teacher class */
.teacher-page-head{background:linear-gradient(135deg,#edf7ff,#f3ecff);border-radius:30px;padding:16px;display:flex;justify-content:space-between;align-items:center;gap:10px;box-shadow:var(--shadow)}.teacher-page-head h1{margin:4px 0;font-size:24px}.teacher-page-head p{margin:0;font-size:10px;color:var(--muted)}
.teacher-class-toolbar{margin:12px 0 8px;display:flex;justify-content:space-between;align-items:center;gap:8px}.teacher-class-toolbar b{display:block;font-size:14px}.teacher-class-toolbar small{font-size:9px;color:var(--muted)}
.teacher-table-card{background:#fff;border-radius:26px;padding:8px;box-shadow:var(--shadow)}.teacher-table-scroll{overflow:auto}.teacher-monitor-table{width:100%;border-collapse:collapse;min-width:620px;font-size:9px}.teacher-monitor-table th{padding:9px 7px;text-align:left;color:#637989;border-bottom:2px solid #e4edf2;font-size:8px}.teacher-monitor-table td{padding:10px 7px;border-bottom:1px solid #edf2f5}.teacher-monitor-table tbody tr{cursor:pointer;transition:.15s}.teacher-monitor-table tbody tr:hover{background:#eff8ff}

/* Student detail */
.teacher-back{border:0;background:rgba(255,255,255,.8);border-radius:999px;padding:8px 11px;color:#315b78;font-size:9px;font-weight:900;margin-bottom:8px}.student-detail-hero{background:linear-gradient(135deg,#fff4c6,#e9f7ff);border-radius:30px;padding:16px;display:grid;grid-template-columns:75px 1fr;gap:12px;align-items:center;box-shadow:var(--shadow)}.student-detail-avatar{width:72px;height:72px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:42px;border:4px solid #ffd469}.student-detail-hero h1{font-size:24px;margin:3px 0}.student-detail-hero p{font-size:9px;color:var(--muted);margin:0}.student-kpis{grid-template-columns:repeat(5,1fr)}
.student-level-monitor{display:grid;grid-template-columns:1fr 1fr;gap:7px}.student-level-monitor>div{display:grid;grid-template-columns:32px 1fr auto;gap:7px;align-items:center;background:#fff;border-radius:18px;padding:9px;opacity:.66}.student-level-monitor>div.done{opacity:1;background:#eaf9f0}.student-level-monitor>div>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e8eef3;font-size:9px;font-weight:900}.student-level-monitor>div.done>span{background:#4bc98a;color:#fff}.student-level-monitor b{font-size:9px}.student-level-monitor small{font-size:7px;color:#6e8190}
.quiz-monitor-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.quiz-monitor-grid>div{background:#fff;border-radius:18px;padding:9px 5px;text-align:center;box-shadow:0 5px 11px rgba(40,76,102,.07)}.quiz-monitor-grid .final{background:#fff2bd}.quiz-monitor-grid small,.quiz-monitor-grid span{display:block;font-size:7px;color:#738696}.quiz-monitor-grid b{font-size:16px}.student-activity-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.student-activity-cards>div{background:#fff;border-radius:20px;text-align:center;padding:10px}.student-activity-cards span{font-size:24px;display:block}.student-activity-cards b{font-size:16px;display:block}.student-activity-cards small{font-size:7px;color:var(--muted)}

/* Teacher works & settings */
.teacher-work-count{width:48px;height:48px;border-radius:50%;background:#ffdb75;display:grid;place-items:center;font-size:18px;font-weight:950;color:#765717}.teacher-work-list{display:grid;gap:8px}.teacher-work-card{background:#fff;border-radius:20px;padding:10px;display:grid;grid-template-columns:35px 1fr auto;gap:8px;align-items:center;box-shadow:0 6px 13px rgba(42,79,105,.08)}.teacher-work-card.large{grid-template-columns:42px 1fr auto;padding:12px}.teacher-work-card>span:first-child,.work-book{font-size:28px}.teacher-work-card b{font-size:10px}.teacher-work-card small{display:block;font-size:8px;color:var(--muted);margin:2px 0}.work-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.work-actions button{padding:7px 8px;font-size:8px;border-radius:12px}
.teacher-account-avatar{font-size:43px}.teacher-setting-card{background:#fff;border-radius:25px;padding:12px;box-shadow:var(--shadow);display:grid;gap:8px}.setting-row{display:grid;grid-template-columns:35px 1fr auto;gap:8px;align-items:center;padding:7px;border-bottom:1px dashed #e3ebf0}.setting-row:last-child{border-bottom:0}.setting-row>span:first-child{font-size:24px}.setting-row small,.setting-row b{display:block}.setting-row small{font-size:8px;color:var(--muted)}.setting-row b{font-size:10px;margin-top:2px}.local-badge{font-size:7px;font-weight:950;background:#fff0bd;color:#826017;border-radius:999px;padding:5px 8px}.cloud-ready-card{margin-top:12px;background:linear-gradient(135deg,#dff5ff,#e6f8ed);border-radius:25px;padding:13px;display:grid;grid-template-columns:39px 1fr;gap:8px;align-items:start}.cloud-ready-card>span{font-size:29px}.cloud-ready-card b{font-size:10px}.cloud-ready-card p{font-size:8.5px;line-height:1.45;color:#597184;margin:3px 0}

@media(max-width:560px){
  .role-brand{grid-template-columns:85px 1fr;padding:16px}.role-brand img{width:82px}.role-brand h1{font-size:23px}.role-choice-grid{grid-template-columns:1fr 1fr}.role-form{grid-template-columns:1fr}.role-form label,.role-form label:nth-child(3),.role-form button{grid-column:auto}
  .teacher-hero{grid-template-columns:1fr 90px}.teacher-hero-mascot img{width:85px}.teacher-kpis{grid-template-columns:repeat(5,1fr);gap:4px}.teacher-kpis>div{padding:8px 2px}.teacher-kpis span{font-size:17px}.teacher-kpis b{font-size:13px}.teacher-kpis small{font-size:6px}
  .teacher-student-row{grid-template-columns:40px 1fr 45px 45px 11px;padding:8px 7px}.student-monitor-main small{font-size:7px}
  .teacher-quick-grid{grid-template-columns:repeat(3,1fr);gap:5px}.teacher-quick-grid button{padding:9px}
  .student-level-monitor{grid-template-columns:1fr}.quiz-monitor-grid{grid-template-columns:repeat(3,1fr)}.student-activity-cards{grid-template-columns:repeat(4,1fr);gap:4px}.student-activity-cards>div{padding:8px 3px}
  .teacher-work-card.large{grid-template-columns:35px 1fr}.work-actions{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:390px){
  .role-choice-grid{grid-template-columns:1fr}.teacher-kpis{grid-template-columns:repeat(3,1fr)}.teacher-student-row{grid-template-columns:38px 1fr 40px 11px}.teacher-student-row .student-monitor-metric:nth-of-type(2){display:none}.class-code-banner{grid-template-columns:1fr}.teacher-quick-grid{grid-template-columns:1fr 1fr}
}


/* Musik latar + tombol kembali */
.music-toggle{
  width:36px;height:36px;border:0;border-radius:50%;
  display:grid;place-items:center;background:#fff;color:#315a78;
  box-shadow:0 5px 12px rgba(40,76,105,.10);
  cursor:pointer;font-size:16px;
}
.music-toggle:active{transform:scale(.96)}
.page-back{
  display:flex;align-items:center;gap:8px;margin:0 0 11px;
}
.page-back button{
  border:0;border-radius:999px;padding:8px 12px;
  background:#fff;color:#315d7c;font-size:10px;font-weight:900;
  box-shadow:0 6px 14px rgba(39,76,105,.10);cursor:pointer;
}
.page-back button:hover{background:#eef8ff}
.page-back small{font-size:8px;color:#718696;font-weight:800}
@media(max-width:480px){
  .music-toggle{width:32px;height:32px;font-size:14px}
  .page-back{margin-bottom:9px}
}


/* Peta konsep gambar interaktif — revisi beranda */
.concept-image-card{
  background:linear-gradient(180deg,rgba(195,236,255,.88) 0%,rgba(220,244,255,.86) 26%,rgba(240,233,255,.84) 62%,rgba(255,216,236,.86) 100%);
  border:1px solid rgba(255,255,255,.65);
  backdrop-filter:blur(4px);
  border-radius:30px;
  padding:12px;
  box-shadow:0 14px 28px rgba(53,93,125,.15);
  overflow:hidden;
}
.concept-image-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:4px 4px 11px;
}
.concept-image-head>div{display:grid;gap:4px}
.concept-image-head b{
  font-size:10px;
  line-height:1.4;
  color:#536c7e;
}
.concept-tap-hint{
  flex:0 0 auto;
  background:#fff1a9;
  color:#745916;
  border-radius:999px;
  padding:7px 10px;
  font-size:9px;
  font-weight:900;
}
.concept-image-wrap{
  position:relative;
  width:min(100%,467px);
  margin:0 auto;
  aspect-ratio:467/624;
  border-radius:23px;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(225,244,252,.96),rgba(251,233,244,.92));
  box-shadow:0 12px 24px rgba(43,77,101,.11);
}
.concept-image-wrap>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.concept-hotspot{
  position:absolute;
  z-index:3;
  border:0;
  background:transparent;
  border-radius:45%;
  cursor:pointer;
  transition:background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.concept-hotspot>span{
  position:absolute;
  right:8px;
  bottom:8px;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.93);
  color:#315b78;
  font-size:11px;
  font-weight:950;
  box-shadow:0 5px 10px rgba(35,63,83,.16);
  opacity:.86;
}
.concept-hotspot:hover,
.concept-hotspot:focus-visible{
  background:rgba(255,255,255,.16);
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.95),0 0 0 4px rgba(65,146,204,.20);
  transform:scale(1.025);
  outline:none;
}
.concept-hotspot:active{transform:scale(.99)}
/* Hotspot positions follow the cloud layout in the supplied concept-map image. */
.concept-hotspot.hs-a{left:8%;top:14%;width:42%;height:25%}
.concept-hotspot.hs-b{left:44%;top:10%;width:40%;height:22%}
.concept-hotspot.hs-c{left:66%;top:29%;width:31%;height:22%}
.concept-hotspot.hs-d{left:61%;top:54%;width:35%;height:25%}
.concept-hotspot.hs-e{left:44%;top:74%;width:42%;height:24%}
.concept-hotspot.hs-f{left:7%;top:81%;width:40%;height:17%}
.concept-hotspot.hs-g{left:7%;top:59%;width:38%;height:23%}
.concept-image-legend{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px;
  margin-top:10px;
}
.concept-image-legend span{
  background:#eef7fb;
  border-radius:999px;
  padding:5px 8px;
  font-size:7.5px;
  font-weight:850;
  color:#587084;
}
@media(max-width:480px){
  .concept-image-card{padding:8px;border-radius:25px}
  .concept-image-head{align-items:flex-start}
  .concept-image-head b{font-size:9px}
  .concept-tap-hint{font-size:8px}
  .concept-hotspot>span{width:21px;height:21px;right:5px;bottom:5px;font-size:10px}
}


/* Level 6–7 document source bars */
.source-file-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  background:linear-gradient(135deg,#eef8ff,#fff8df);
  border-radius:20px;
  padding:10px 12px;
  box-shadow:0 6px 13px rgba(42,79,105,.07);
}
.source-file-bar span{
  font-size:9px;
  font-weight:900;
  color:#4f6d84;
}
.source-file-bar .media-link{
  flex:0 0 auto;
  font-size:9px;
  padding:8px 10px;
}
@media(max-width:480px){
  .source-file-bar{align-items:flex-start;flex-direction:column}
}


/* ===== Pustaka: Bacaan Pembelajaran Disematkan ===== */
.library-learning-head{align-items:center}
.required-pill{
  flex:0 0 auto;background:#fff0b8;color:#735714;border-radius:999px;
  padding:7px 10px;font-size:8px;font-weight:950;letter-spacing:.6px;
}
.learning-story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px}
.learning-story-card{
  position:relative;overflow:hidden;border:0;border-radius:27px;padding:13px;text-align:left;color:#20405e;
  min-height:230px;box-shadow:0 11px 22px rgba(41,76,104,.11);cursor:pointer;
  display:grid;grid-template-rows:auto auto 1fr;gap:7px;transition:.17s ease;
}
.learning-story-card:hover{transform:translateY(-3px);box-shadow:0 15px 26px rgba(41,76,104,.15)}
.learning-story-card.level-1{background:linear-gradient(145deg,#dff4ff,#fff7d5)}
.learning-story-card.level-2{background:linear-gradient(145deg,#f1e7ff,#e8f6ff)}
.learning-story-card.level-3{background:linear-gradient(145deg,#e1f8e8,#fff0dd)}
.learning-pin{
  justify-self:start;background:#fff;color:#2f5c7a;border-radius:999px;padding:5px 8px;
  font-size:7px;font-weight:950;box-shadow:0 5px 10px rgba(44,76,102,.08)
}
.learning-story-icon{
  width:54px;height:54px;border-radius:19px;display:grid;place-items:center;
  background:rgba(255,255,255,.83);font-size:28px;box-shadow:0 7px 14px rgba(44,76,102,.09)
}
.learning-story-copy small{display:block;color:#668197;font-size:8px;font-weight:900;letter-spacing:.4px}
.learning-story-copy h3{font-size:18px;margin:3px 0 2px}.learning-story-copy>b{font-size:10px}
.learning-story-copy p{font-size:8.5px;line-height:1.45;color:#5b7487;margin:7px 0}
.read-now-pill{
  display:inline-block;background:rgba(255,255,255,.86);border-radius:999px;
  padding:6px 9px;font-size:8px;font-weight:900;color:#315f83
}
.book-featured{position:relative;border:2px solid #ffd66e!important}
.mini-pin{
  position:absolute;right:7px;top:7px;width:25px;height:25px;border-radius:50%;
  display:grid;place-items:center;background:#fff4bd;font-size:12px
}
.learning-reader-banner{
  display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:center;
  background:linear-gradient(135deg,#eaf7ff,#fff5c9);border-radius:24px;padding:12px;margin-bottom:10px;
  box-shadow:0 8px 17px rgba(42,77,104,.09)
}
.learning-reader-banner>span{font-size:28px}
.learning-reader-banner b{font-size:10px}.learning-reader-banner p{font-size:8.5px;line-height:1.4;color:#60798c;margin:3px 0}
.learning-reader{border:2px solid rgba(255,209,93,.55)}
.reader-intro{font-family:Inter,sans-serif!important;text-indent:0!important;color:#617489!important}
.reader-source{
  margin-top:24px;padding:13px 14px;border-radius:20px;background:#f0f6f8;
  font-family:Inter,ui-rounded,sans-serif;text-indent:0
}
.reader-source b{font-size:10px}.reader-source p{font-size:9px!important;line-height:1.5!important;color:#647b8c!important;margin:5px 0 0!important;text-indent:0!important}
@media(max-width:620px){
  .learning-story-grid{grid-template-columns:1fr}
  .learning-story-card{min-height:0;grid-template-columns:62px 1fr;grid-template-rows:auto 1fr}
  .learning-story-card .learning-pin{grid-column:1/-1}
  .learning-story-icon{grid-column:1;grid-row:2}
  .learning-story-copy{grid-column:2;grid-row:2}
  .learning-reader-banner{grid-template-columns:34px 1fr}
  .learning-reader-banner button{grid-column:1/-1}
}


/* ===== Peta Belajar Bergambar Interaktif ===== */
.learn-map-picture-card{
  background:linear-gradient(180deg,rgba(194,236,255,.88) 0%,rgba(221,245,255,.85) 24%,rgba(241,233,255,.83) 62%,rgba(255,214,236,.86) 100%);
  border:1px solid rgba(255,255,255,.68);
  backdrop-filter:blur(4px);
  border-radius:30px;
  padding:12px;
  box-shadow:0 14px 28px rgba(53,93,125,.15);
  overflow:hidden;
}
.learn-map-status{
  display:flex;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap;
  padding:0 0 10px;
}
.learn-map-status span{
  background:#eef8ff;
  color:#315d7c;
  border-radius:999px;
  padding:6px 9px;
  font-size:8px;
  font-weight:900;
}
.learn-map-picture{
  position:relative;
  width:min(100%,680px);
  margin:0 auto;
  aspect-ratio:896/1200;
  overflow:hidden;
  border-radius:25px;
  background:linear-gradient(180deg,rgba(219,242,255,.97),rgba(255,228,242,.92));
  box-shadow:0 13px 26px rgba(40,75,104,.14);
}
.learn-map-picture>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.learn-map-hotspot{
  position:absolute;
  z-index:3;
  border:0;
  background:transparent;
  border-radius:28px;
  cursor:pointer;
  transition:background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.learn-map-hotspot:hover,
.learn-map-hotspot:focus-visible{
  background:rgba(255,255,255,.13);
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.95),0 0 0 5px rgba(68,156,219,.23);
  transform:scale(1.018);
  outline:none;
}
.learn-map-hotspot:active{transform:scale(.99)}
.learn-map-hotspot.locked{cursor:pointer}
.map-state-badge{
  position:absolute;
  right:6px;
  top:6px;
  min-width:28px;
  height:28px;
  padding:0 5px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.94);
  color:#2e5a78;
  font-size:11px;
  font-weight:950;
  box-shadow:0 6px 12px rgba(39,70,95,.18);
}
.learn-map-hotspot.complete .map-state-badge{
  background:#4cc98a;
  color:#fff;
}
.learn-map-hotspot.locked .map-state-badge{
  background:rgba(255,255,255,.94);
  color:#6f7f8b;
}
/* Hotspot positions follow the supplied game-map artwork. */
.learn-map-hotspot.map-level-1{left:24%;top:7%;width:48%;height:16%}
.learn-map-hotspot.map-level-2{left:58%;top:20%;width:38%;height:17%}
.learn-map-hotspot.map-level-3{left:4%;top:33%;width:46%;height:17%}
.learn-map-hotspot.map-level-4{left:38%;top:46%;width:33%;height:17%}
.learn-map-hotspot.map-level-5{left:61%;top:61%;width:36%;height:18%}
.learn-map-hotspot.map-level-6{left:14%;top:67%;width:36%;height:18%}
.learn-map-hotspot.map-level-7{left:31%;top:82%;width:46%;height:17%}
.learn-map-note{
  display:grid;
  grid-template-columns:32px 1fr;
  gap:8px;
  align-items:start;
  margin-top:10px;
  padding:10px 12px;
  border-radius:20px;
  background:#fff6c9;
}
.learn-map-note>span{font-size:23px}
.learn-map-note p{
  margin:0;
  color:#647480;
  font-size:8.5px;
  line-height:1.45;
}
@media(max-width:480px){
  .learn-map-picture-card{padding:8px;border-radius:25px}
  .learn-map-picture{border-radius:20px}
  .map-state-badge{
    right:3px;top:3px;min-width:24px;height:24px;font-size:10px
  }
  .learn-map-note{grid-template-columns:27px 1fr;padding:9px 10px}
}


/* ===== Gradasi Biru–Pink & Foto Profil ===== */
.profile-photo-block{
  display:grid;
  justify-items:center;
  gap:7px;
}
.profile-photo-ring{
  overflow:hidden;
  background:#fff;
}
.profile-photo-ring img,
.profile-photo-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.profile-photo-change{
  border:0;
  border-radius:999px;
  padding:7px 10px;
  background:#fff;
  color:#315d7c;
  font-size:8px;
  font-weight:900;
  box-shadow:0 5px 11px rgba(38,72,99,.10);
}
.profile-photo-card{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:12px;
  align-items:center;
  background:linear-gradient(135deg,#eef9ff,#fff1f8);
  border-radius:26px;
  padding:13px;
  box-shadow:var(--shadow);
}
.profile-photo-preview{
  width:88px;
  height:88px;
  border-radius:50%;
  overflow:hidden;
  background:#fff;
  border:4px solid rgba(255,255,255,.95);
  box-shadow:0 8px 17px rgba(40,75,103,.12);
}
.profile-photo-copy b{display:block;font-size:11px}
.profile-photo-copy small{
  display:block;
  margin:4px 0 8px;
  color:#657d8f;
  font-size:8.5px;
  line-height:1.45;
}
@media(max-width:480px){
  .profile-photo-card{grid-template-columns:72px 1fr}
  .profile-photo-preview{width:70px;height:70px}
  .profile-photo-change{font-size:7.5px}
}


/* ===== Tim Cerpenia interaktif & pendamping beranda ===== */
.team-cerpenia-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:13px;
}
.team-cerpenia-card{
  position:relative;
  border:0;
  text-align:left;
  border-radius:30px;
  padding:18px 18px 16px;
  min-height:168px;
  box-shadow:0 12px 22px rgba(48,84,116,.10);
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, outline .16s ease;
  color:#1e3b5d;
}
.team-cerpenia-card:hover,
.team-cerpenia-card:focus-visible{
  transform:translateY(-3px);
  box-shadow:0 16px 26px rgba(48,84,116,.14);
  outline:none;
}
.team-cerpenia-card.active{
  box-shadow:0 0 0 3px rgba(255,255,255,.95), 0 16px 28px rgba(48,84,116,.16);
}
.team-cerpenia-card .team-emoji{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:16px;
  background:rgba(255,255,255,.65);
  font-size:26px;
  margin-bottom:10px;
}
.team-cerpenia-card b{
  display:block;
  font-size:16px;
  margin-bottom:6px;
}
.team-cerpenia-card small{
  display:block;
  color:#5f7688;
  font-size:8.8px;
  line-height:1.45;
}
.team-chip{
  position:absolute;
  right:12px;
  top:12px;
  background:rgba(255,255,255,.86);
  border-radius:999px;
  padding:6px 8px;
  font-size:7px;
  font-weight:950;
  color:#325b79;
}
.theme-rabbit{background:linear-gradient(135deg,#f5e7a7,#efeabf)}
.theme-bear{background:linear-gradient(135deg,#f4dbe6,#e7c5d8)}
.theme-chick{background:linear-gradient(135deg,#ddd1fb,#d6cdf3)}
.theme-fox{background:linear-gradient(135deg,#d7efdb,#c8e6ce)}
.theme-owl{background:linear-gradient(135deg,#dff0ff,#cee4fb)}
.theme-panda{background:linear-gradient(135deg,#ffe4ee,#efdff8)}
.theme-cat{background:linear-gradient(135deg,#e9f3ff,#f4e5f1)}

.companion-hero{
  width:168px;
  min-height:160px;
  border-radius:30px;
  position:relative;
  display:grid;
  justify-items:center;
  align-content:center;
  gap:8px;
  padding:14px 10px 18px;
  box-shadow:0 8px 18px rgba(40,75,104,.10);
  overflow:hidden;
}
.companion-hero .mascot{
  width:108px;
  height:auto;
  display:block;
}
.companion-name-pill{
  border-radius:999px;
  background:rgba(255,255,255,.86);
  padding:7px 10px;
  font-size:8px;
  font-weight:900;
  color:#355b79;
}
.companion-emoji-plain{
  display:block;
  line-height:1;
  font-size:86px;
  filter:drop-shadow(0 8px 10px rgba(52,84,110,.10));
  margin-top:4px;
}
.companion-caption{
  text-align:center;
  max-width:145px;
}
.companion-caption b{
  display:block;
  font-size:12px;
  margin-bottom:2px;
}
.companion-caption small{
  display:block;
  color:#5e7587;
  font-size:8px;
  line-height:1.35;
}

@media(max-width:560px){
  .team-cerpenia-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:430px){
  .team-cerpenia-grid{grid-template-columns:1fr}
  .team-cerpenia-card{min-height:142px}
  .companion-hero{width:138px;min-height:138px;border-radius:26px}
  .companion-hero .mascot{width:92px}
  .companion-emoji-plain{font-size:70px}
}


/* ===== Game Hub: karakter dibuat lebih terlihat ===== */
.arcade-world-card .world-character{
  top:14px !important;
  right:12px !important;
  z-index:2;
  font-size:76px !important;
  line-height:1;
  filter:drop-shadow(0 9px 8px rgba(36,63,90,.18));
}
.arcade-world-card .world-body{
  z-index:3;
}
@media(max-width:520px){
  .arcade-world-card .world-character{
    top:8px !important;
    right:9px !important;
    font-size:68px !important;
  }
}
@media(max-width:390px){
  .arcade-world-card .world-character{
    top:6px !important;
    font-size:64px !important;
  }
}


/* ===== PIN Guru ===== */
.form-optional{
  color:#7b8c98;
  font-size:8px;
  font-weight:700;
}
.pin-security-note{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:9px;
  align-items:start;
  padding:10px 11px;
  border-radius:18px;
  background:linear-gradient(135deg,#e9f7ff,#f3ecff);
  border:1px solid rgba(91,139,190,.16);
  color:#294a65;
}
.pin-security-note>span{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#fff;
  font-size:19px;
}
.pin-security-note b{
  display:block;
  font-size:9px;
  margin-bottom:2px;
}
.pin-security-note small{
  display:block;
  font-size:7.5px;
  line-height:1.45;
  color:#657c8f;
}


/* ===== Guru: unduh nilai & cetak hasil belajar ===== */
.teacher-report-panel{
  margin:12px 0 10px;background:linear-gradient(135deg,#f0f3ff,#eefbff);
  border:1px solid #dbe4ff;border-radius:26px;padding:12px;
  display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;
  box-shadow:0 8px 18px rgba(57,74,120,.08)
}
.teacher-report-icon{
  width:45px;height:45px;border-radius:16px;background:#fff;display:grid;place-items:center;
  font-size:25px;box-shadow:0 5px 12px rgba(52,77,112,.09)
}
.teacher-report-copy b{display:block;font-size:11px;color:#324f69}
.teacher-report-copy small{display:block;margin-top:3px;font-size:8px;line-height:1.45;color:#667d8d}
.teacher-report-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.teacher-report-actions button{white-space:nowrap}
.teacher-student-report-actions{display:flex;justify-content:flex-end;margin:0 0 8px}
.teacher-student-report-actions button{font-size:9px}
@media(max-width:700px){
  .teacher-report-panel{grid-template-columns:42px 1fr}
  .teacher-report-actions{grid-column:1/-1;justify-content:stretch}
  .teacher-report-actions button{flex:1;min-width:130px}
}
@media(max-width:420px){
  .teacher-report-panel{border-radius:20px;padding:10px}
  .teacher-report-actions{display:grid;grid-template-columns:1fr}
  .teacher-report-actions button{width:100%}
}


/* ===== Guru: multi-kelas / Kelas Saya ===== */
.teacher-classes-hero{
  margin:0 0 12px;
  background:linear-gradient(135deg,#214b6d,#32779a 58%,#62b49c);
  color:#fff;border-radius:34px;padding:18px;
  display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;
  box-shadow:var(--shadow);position:relative;overflow:hidden
}
.teacher-classes-hero:after{
  content:"";position:absolute;right:-55px;top:-65px;width:190px;height:190px;border-radius:50%;
  background:rgba(255,255,255,.11)
}
.teacher-classes-hero>div{position:relative;z-index:2}
.teacher-classes-hero .eyebrow{color:#dff7e8}
.teacher-classes-hero h1{margin:5px 0 4px;font-size:27px}
.teacher-classes-hero p{margin:0;max-width:520px;font-size:10.5px;line-height:1.5;color:#e7f5fb}
.teacher-classes-hero-art{font-size:54px;letter-spacing:3px;filter:drop-shadow(0 8px 8px rgba(14,47,67,.2))}

.teacher-classes-summary{
  display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:stretch;margin-bottom:12px
}
.teacher-classes-summary>div{
  background:#fff;border-radius:22px;padding:10px 12px;display:grid;
  grid-template-columns:31px 1fr;grid-template-rows:auto auto;column-gap:8px;
  align-items:center;box-shadow:0 6px 14px rgba(40,77,105,.08)
}
.teacher-classes-summary>div>span{grid-row:1/3;font-size:24px}
.teacher-classes-summary b{font-size:17px}
.teacher-classes-summary small{font-size:7.5px;color:var(--muted);font-weight:850}
.teacher-classes-summary>button{align-self:stretch;white-space:nowrap}

.teacher-class-picker-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px
}
.teacher-class-picker-card{
  border:1px solid rgba(49,91,120,.09);background:#fff;border-radius:28px;padding:13px;
  box-shadow:0 8px 17px rgba(40,77,105,.09);cursor:pointer;text-align:left;color:#193a57;
  transition:.18s;position:relative;overflow:hidden
}
.teacher-class-picker-card:hover{transform:translateY(-2px);box-shadow:0 12px 22px rgba(40,77,105,.13)}
.teacher-class-picker-card.active{background:linear-gradient(135deg,#eef9f2,#edf7ff);border-color:#76caa2}
.teacher-class-picker-top{display:grid;grid-template-columns:46px 1fr auto;gap:9px;align-items:center}
.teacher-class-picker-icon{
  width:44px;height:44px;border-radius:16px;background:#eef6ff;display:grid;place-items:center;font-size:24px
}
.teacher-class-picker-top small{display:block;font-size:7px;font-weight:950;letter-spacing:.7px;color:#698092}
.teacher-class-picker-top h3{margin:2px 0 1px;font-size:15px}
.teacher-class-picker-top p{margin:0;font-size:8px;color:var(--muted)}
.teacher-active-badge{
  background:#dff6e9;color:#2b7b57;border-radius:999px;padding:5px 8px;font-size:7px;font-weight:950
}
.teacher-class-picker-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:11px 0 10px
}
.teacher-class-picker-stats span{
  display:block;background:#f6f9fb;border-radius:14px;padding:7px 4px;text-align:center
}
.teacher-class-picker-stats b,.teacher-class-picker-stats small{display:block}
.teacher-class-picker-stats b{font-size:12px}
.teacher-class-picker-stats small{font-size:6.5px;color:var(--muted);margin-top:1px}
.teacher-class-picker-card>button{width:100%;pointer-events:none}

.teacher-class-help{
  margin-top:12px;background:linear-gradient(135deg,#fff5cb,#fff);border-radius:24px;padding:12px;
  display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:start
}
.teacher-class-help>span{font-size:25px}
.teacher-class-help b{font-size:9px}
.teacher-class-help p{margin:2px 0 0;font-size:8px;line-height:1.45;color:#6d7b82}

.teacher-hero-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:10px}
.teacher-hero-actions .teacher-sync-pill{margin-top:0}
.teacher-switch-class-btn{
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.14);color:#fff;
  border-radius:999px;padding:6px 9px;font-size:8px;font-weight:900;cursor:pointer
}
.teacher-switch-class-btn:hover{background:rgba(255,255,255,.22)}
.teacher-page-head-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.teacher-quick-grid{grid-template-columns:repeat(4,1fr)}

.teacher-account-classes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.teacher-account-classes button{
  border:1px solid #e3ebf0;background:#fff;border-radius:20px;padding:10px;
  display:grid;grid-template-columns:30px 1fr auto;gap:7px;align-items:center;text-align:left;color:#24455e;
  box-shadow:0 5px 11px rgba(40,76,102,.06)
}
.teacher-account-classes button.active{background:#eaf9f0;border-color:#8ed3ae}
.teacher-account-classes button>span{font-size:22px}
.teacher-account-classes b,.teacher-account-classes small{display:block}
.teacher-account-classes b{font-size:9px}
.teacher-account-classes small{font-size:7px;color:var(--muted);margin-top:2px}
.teacher-account-classes i{
  font-style:normal;border-radius:999px;padding:4px 7px;background:#eef4f8;font-size:6.5px;font-weight:950
}
.teacher-account-classes button.active i{background:#cfeedd;color:#24704e}

.teacher-add-class-modal{min-width:min(720px,82vw)}
.teacher-modal-lead{font-size:9px;line-height:1.5;color:var(--muted);margin:3px 0 12px}
.teacher-add-class-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.teacher-add-class-form{
  background:#f7fafc;border:1px solid #e4ecf1;border-radius:22px;padding:12px;display:grid;gap:8px
}
.teacher-add-class-form h3{margin:0;font-size:12px}
.teacher-add-class-icon{
  width:38px;height:38px;border-radius:14px;background:#fff;display:grid;place-items:center;font-size:22px;
  box-shadow:0 4px 10px rgba(40,76,102,.08)
}
.teacher-add-class-form label{display:grid;gap:4px;font-size:8px;font-weight:850;color:#496579}
.teacher-add-class-form input{
  width:100%;box-sizing:border-box;border:1px solid #dce6ec;border-radius:13px;background:#fff;
  padding:9px 10px;font:inherit;color:#24455e;outline:none
}
.teacher-add-class-form input:focus{border-color:#68b99a;box-shadow:0 0 0 3px rgba(104,185,154,.12)}

@media(max-width:700px){
  .teacher-class-picker-grid,.teacher-account-classes{grid-template-columns:1fr}
  .teacher-add-class-grid{grid-template-columns:1fr}
  .teacher-quick-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .teacher-classes-hero{grid-template-columns:1fr}.teacher-classes-hero-art{display:none}
  .teacher-classes-summary{grid-template-columns:1fr 1fr}
  .teacher-classes-summary>button{grid-column:1/-1}
  .teacher-class-picker-stats{grid-template-columns:repeat(2,1fr)}
  .teacher-page-head-actions{width:100%;justify-content:flex-start}
}


/* ===== CERPENIA • Kelola Materi Guru + Katalog Belajar ===== */
.student-cloud-pill,.cloud-status-badge,.material-status,.material-kind,.material-type-chip,.locked-chip,.template-safe-badge{
  display:inline-flex;align-items:center;gap:5px;border-radius:999px;font-weight:850;letter-spacing:.01em
}
.student-cloud-pill{margin-top:8px;padding:6px 10px;font-size:8px;background:#eaf8f3;color:#26775e;border:1px solid #cdeadd}
.student-cloud-pill.local{background:#f2f4f8;color:#667787;border-color:#e0e5ea}

.learning-catalog-hero{position:relative;overflow:hidden}
.learning-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0 16px}
.learning-choice-card{
  appearance:none;border:1px solid color-mix(in srgb,var(--material-accent,#6f7cff) 25%,#dfe8ef);
  border-radius:24px;background:#fff;padding:0;text-align:left;overflow:hidden;cursor:pointer;
  box-shadow:0 12px 30px rgba(49,79,105,.09);transition:.18s ease;display:grid;grid-template-columns:150px 1fr;min-height:170px
}
.learning-choice-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(49,79,105,.13)}
.learning-choice-card:focus-visible{outline:3px solid color-mix(in srgb,var(--material-accent,#6f7cff) 45%,transparent);outline-offset:3px}
.learning-choice-cover{position:relative;min-height:150px;background:linear-gradient(145deg,color-mix(in srgb,var(--material-accent,#6f7cff) 18%,#fff),#f7fbff);overflow:hidden}
.learning-choice-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.learning-choice-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(15,35,55,.26))}
.learning-choice-cover>span{position:absolute;left:12px;bottom:11px;z-index:2;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.92);font-size:24px;box-shadow:0 8px 18px rgba(24,45,64,.14)}
.learning-choice-body{padding:14px 14px 12px;display:flex;flex-direction:column;align-items:flex-start}
.learning-choice-body h3{font-size:17px;margin:7px 0 6px;color:#253f56}
.learning-choice-body p{font-size:9px;line-height:1.55;color:#687b8b;margin:0 0 11px}
.material-type-chip{padding:4px 8px;font-size:7px;background:#eef0ff;color:#535ec7}
.material-type-chip.teacher{background:#eaf8f3;color:#2b7d64}
.learning-choice-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.learning-choice-meta span{font-size:7px;padding:5px 7px;border-radius:9px;background:#f3f6f9;color:#607487}
.learning-choice-action{font-size:8px;color:var(--material-accent,#6f7cff);margin-top:10px}
.teacher-material-note{display:flex;gap:10px;align-items:flex-start;background:#eef8f4;border:1px solid #d9eee5;border-radius:18px;padding:11px 12px;margin:8px 0 18px;color:#436c5d}
.teacher-material-note>span{font-size:24px}.teacher-material-note b{display:block;font-size:10px}.teacher-material-note p{font-size:8px;line-height:1.45;margin:2px 0 0}
.teacher-material-note.empty-note{background:#f6f7fb;border-color:#e5e9f0;color:#677889}
.learning-catalog-back,.teacher-back{appearance:none;border:0;background:transparent;color:#506b7f;font-weight:800;font-size:9px;cursor:pointer;margin:0 0 8px;padding:5px 0}

.custom-material-hero{
  --accent:var(--material-accent,#6f7cff);display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:center;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 13%,#fff),#fff);border:1px solid color-mix(in srgb,var(--accent) 24%,#dbe5ec);
  border-radius:26px;padding:16px;box-shadow:0 12px 28px rgba(45,73,94,.08)
}
.custom-material-hero .learning-choice-cover{height:135px;border-radius:19px}
.custom-material-hero h1{font-size:24px;margin:4px 0 5px}.custom-material-hero p{font-size:9px;color:#66798a;line-height:1.5}
.custom-material-progress{height:8px;background:#e8eef2;border-radius:99px;overflow:hidden;margin:10px 0 4px}
.custom-material-progress i{display:block;height:100%;background:var(--accent);border-radius:inherit}
.custom-material-hero small{font-size:7px;color:#6b7d8b}

.custom-unit-grid{display:grid;gap:9px;margin:8px 0 18px}
.custom-unit-card{
  width:100%;appearance:none;border:1px solid #dfe8ee;background:#fff;border-radius:18px;padding:12px;display:grid;
  grid-template-columns:48px 1fr 20px;gap:11px;align-items:center;text-align:left;cursor:pointer;box-shadow:0 7px 18px rgba(49,76,96,.05)
}
.custom-unit-card:hover{border-color:#bacbd7;transform:translateY(-1px)}
.custom-unit-card.done{background:#f2fbf6;border-color:#cde9d8}
.custom-unit-number{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#eef1ff;color:#5a63cb;font-weight:900}
.custom-unit-card.done .custom-unit-number{background:#daf2e4;color:#257452}
.custom-unit-card small{display:block;font-size:7px;color:#8795a0;font-weight:850}.custom-unit-card b{display:block;font-size:11px;color:#2d475c;margin:2px 0}
.custom-unit-card p{font-size:8px;color:#6c7d8c;margin:0;line-height:1.4}.custom-unit-card>span:last-child{font-size:22px;color:#9aabb7}

.custom-unit-hero{
  --accent:var(--material-accent,#6f7cff);display:flex;justify-content:space-between;gap:14px;align-items:center;
  border-radius:24px;padding:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 15%,white),#fff);border:1px solid color-mix(in srgb,var(--accent) 25%,#dfe8ee)
}
.custom-unit-hero h1{font-size:23px;margin:4px 0}.custom-unit-hero p{font-size:9px;color:#637888;margin:0}.custom-unit-hero>span{font-size:50px}
.custom-unit-section{margin-top:14px}.custom-unit-poster{margin-top:13px;border-radius:22px;background:#fff;border:1px solid #e1e8ed;padding:9px;overflow:hidden}
.custom-unit-poster img{display:block;width:100%;max-height:560px;object-fit:contain;border-radius:15px}
.custom-material-paper{background:#fff;border:1px solid #e0e8ed;border-radius:20px;padding:16px;color:#344d60;box-shadow:0 8px 22px rgba(45,75,96,.05)}
.custom-material-paper p,.custom-material-paper li{font-size:9.5px;line-height:1.7}.custom-material-paper p:first-child{margin-top:0}.custom-material-paper p:last-child{margin-bottom:0}
.custom-material-paper ul{padding-left:19px}.empty-learning-text{color:#8a99a5;font-style:italic}
.custom-summary-box{display:flex;gap:12px;background:#fff8df;border:1px solid #f1dfa3;border-radius:19px;padding:13px;color:#685930}
.custom-summary-box>span{font-size:26px}.custom-summary-box b{display:block;font-size:11px;margin-bottom:3px}.custom-summary-box .custom-material-paper{padding:0;border:0;box-shadow:none;background:transparent}
.custom-resource-link{display:flex;align-items:center;justify-content:space-between;margin:12px 0;background:#eef4ff;border:1px solid #dce7fa;padding:11px 13px;border-radius:16px;text-decoration:none;color:#405a8c;font-weight:800;font-size:9px}
.custom-unit-footer{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 24px}
.custom-video-frame{position:relative;padding-top:56.25%;border-radius:20px;overflow:hidden;background:#0b1520;box-shadow:0 10px 25px rgba(0,0,0,.13)}
.custom-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.native-video-shell.custom video{width:100%}

.teacher-class-material-panel{border-radius:22px;background:#fff;border:1px solid color-mix(in srgb,var(--material-accent,#6f7cff) 28%,#e1e8ed);padding:16px}
.class-material-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eaf8f3;color:#2c7c65;font-size:7px;font-weight:850}
.teacher-class-material-panel h2{font-size:18px;margin:8px 0 10px}.teacher-material-source-note{font-size:7px;line-height:1.5;color:#778a98;margin-top:9px;padding-top:9px;border-top:1px dashed #d8e1e7}
.teacher-summary-override{border-left:4px solid var(--material-accent,#6f7cff)}.teacher-media-override .media-badge{background:#eaf8f3;color:#27765e}

.cloud-status-badge{padding:6px 9px;font-size:7px;background:#eef1f5;color:#657887;border:1px solid #e0e6eb}
.cloud-status-badge.connected{background:#e9f8f1;color:#25755b;border-color:#ccebdc}
.material-manager-head{align-items:flex-start}
.material-manager-info,.cloud-activation-banner{
  display:flex;align-items:center;gap:12px;border-radius:20px;padding:13px 14px;margin:10px 0;background:#f7f9fc;border:1px solid #e2e8ee
}
.material-manager-icon{width:42px;height:42px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:22px;box-shadow:0 5px 14px rgba(39,70,92,.08)}
.material-manager-info>div:nth-child(2){flex:1}.material-manager-info b,.cloud-activation-banner b{display:block;font-size:10px}.material-manager-info p,.cloud-activation-banner p{font-size:8px;line-height:1.5;color:#6d7f8d;margin:2px 0}
.template-safe-badge{padding:5px 8px;background:#e7f7ef;color:#287458;font-size:7px}
.cloud-activation-banner{background:#fff8e6;border-color:#f1dfae}.cloud-activation-banner>span{font-size:26px}.cloud-activation-banner>div{flex:1}
.cloud-activation-banner.connected{background:#edf9f3;border-color:#d1ecde}

.locked-template-card{
  display:grid;grid-template-columns:160px 1fr 190px;gap:14px;align-items:center;background:#fff;border:1px solid #dfe8ee;border-radius:24px;padding:12px;
  box-shadow:0 10px 24px rgba(45,73,94,.06)
}
.locked-template-cover{height:112px;border-radius:17px;overflow:hidden;position:relative;background:#eef3f7}.locked-template-cover img{width:100%;height:100%;object-fit:cover}
.locked-template-cover>span{position:absolute;right:8px;top:8px;width:30px;height:30px;border-radius:10px;background:#fff;display:grid;place-items:center;box-shadow:0 4px 10px rgba(31,57,75,.1)}
.locked-chip{width:max-content;padding:4px 7px;font-size:6.5px;background:#edf0f4;color:#657783}.locked-template-copy h3{font-size:15px;margin:6px 0 4px}.locked-template-copy p{font-size:8px;line-height:1.45;color:#6f808e;margin:0}
.teacher-material-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.teacher-material-meta span{font-size:7px;padding:4px 6px;border-radius:8px;background:#f4f7f9;color:#667987}
.locked-template-action{display:flex;justify-content:flex-end}.template-copy-ready{display:grid;justify-items:end;gap:4px}.template-copy-ready>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#dcf2e5;color:#2a7858;font-weight:900}
.template-copy-ready small{font-size:7px;color:#6c7d89}

.material-list-head{align-items:flex-end}.teacher-material-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:9px 0 18px}
.teacher-material-card{display:grid;grid-template-columns:128px 1fr;min-height:200px;border-radius:22px;background:#fff;border:1px solid color-mix(in srgb,var(--material-accent,#6f7cff) 24%,#e0e7ec);overflow:hidden;box-shadow:0 9px 23px rgba(45,74,94,.06)}
.teacher-material-card-cover{position:relative;background:linear-gradient(145deg,color-mix(in srgb,var(--material-accent,#6f7cff) 18%,white),#f6fbff);min-height:180px}
.teacher-material-card-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.teacher-material-card-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(25,44,62,.22))}
.teacher-material-card-cover>span{position:absolute;left:10px;bottom:10px;z-index:2;width:40px;height:40px;border-radius:13px;background:#fff;display:grid;place-items:center;font-size:22px}
.teacher-material-card-body{padding:12px;display:flex;flex-direction:column}.teacher-material-card-top{display:flex;justify-content:space-between;gap:5px;flex-wrap:wrap}
.material-status{padding:4px 7px;font-size:6.5px}.material-status.published{background:#e5f7ed;color:#247253}.material-status.draft{background:#f1f3f6;color:#74818c}
.material-kind{padding:4px 7px;font-size:6.5px;background:#f0efff;color:#625cc4}.teacher-material-card h3{font-size:14px;margin:7px 0 4px}.teacher-material-card p{font-size:8px;line-height:1.45;color:#6e7f8d;margin:0 0 6px}
.teacher-material-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:auto;padding-top:9px}.teacher-material-actions button{padding:7px 8px;font-size:7px}
.teacher-material-delete{border:0;background:transparent;color:#c05252;font-weight:800;cursor:pointer}.teacher-material-delete.reset{color:#7a6b55}
.material-workflow{display:grid;grid-template-columns:1fr 24px 1fr 24px 1fr;gap:7px;align-items:center;background:#f5f8fb;border:1px solid #e2e9ef;border-radius:22px;padding:13px;margin:10px 0 22px}
.material-workflow>div{display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:center}.material-workflow span{grid-row:1/3;width:30px;height:30px;border-radius:10px;background:#e9ecff;color:#5962c4;display:grid;place-items:center;font-weight:900}
.material-workflow b{font-size:9px}.material-workflow small{font-size:7px;color:#768794}.material-workflow>i{text-align:center;color:#9baab5}.material-empty{margin-bottom:16px}

.material-editor-page-head{align-items:flex-start}.material-editor-form{padding-bottom:78px}
.material-editor-appearance{display:grid;grid-template-columns:250px 1fr;gap:14px;margin:10px 0 16px}
.material-editor-preview{border-radius:22px;border:1px solid color-mix(in srgb,var(--material-accent,#6f7cff) 24%,#dfe7ed);background:#fff;padding:10px}
.material-editor-preview .learning-choice-cover{height:138px;border-radius:16px}.material-editor-preview>div:last-child{padding:9px 4px 3px}.material-editor-preview>div:last-child>span{font-size:22px}.material-editor-preview b{display:block;font-size:12px;margin-top:3px}.material-editor-preview small{font-size:7px;color:#7c8b96}
.material-editor-fields{background:#fff;border:1px solid #e0e8ed;border-radius:22px;padding:13px}
.material-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.material-editor-grid label{display:grid;gap:4px;font-size:7.5px;font-weight:850;color:#4d687b}.material-editor-grid label.full{grid-column:1/-1}
.material-editor-grid input,.material-editor-grid textarea{
  width:100%;box-sizing:border-box;border:1px solid #dbe5eb;border-radius:12px;background:#fbfdfe;color:#28485f;padding:8px 9px;font:inherit;outline:none;resize:vertical
}
.material-editor-grid input:focus,.material-editor-grid textarea:focus{border-color:#7d8af0;box-shadow:0 0 0 3px rgba(105,117,227,.1)}
.material-editor-grid label>small,.inline-upload small{font-size:6.5px;font-weight:600;color:#8795a0}
.inline-upload{display:flex;gap:7px;align-items:center;margin-top:2px;flex-wrap:wrap}.inline-upload input[type=file]{max-width:260px;background:#fff}
.material-units-head{align-items:flex-end}.material-units-editor{display:grid;gap:10px}
.material-unit-editor{background:#fff;border:1px solid #e0e8ed;border-radius:22px;padding:12px;box-shadow:0 7px 18px rgba(48,76,96,.04)}
.material-unit-editor-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}
.material-unit-editor-head>div:first-child{display:flex;gap:9px;align-items:center}.unit-index{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#eef0ff;color:#5b64c9;font-weight:900}
.material-unit-editor-head small{display:block;font-size:6.5px;color:#8b98a3;font-weight:900}.material-unit-editor-head b{display:block;font-size:10px;color:#314d60}
.unit-editor-actions{display:flex;gap:4px}.unit-editor-actions .mini{padding:5px 7px;font-size:7px}
.material-editor-stickybar{
  position:sticky;bottom:74px;z-index:10;display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);
  border:1px solid #dce5eb;border-radius:20px;padding:10px 11px;box-shadow:0 12px 30px rgba(40,67,86,.15);margin-top:14px
}
.material-editor-stickybar>div{flex:1}.material-editor-stickybar b{display:block;font-size:9px}.material-editor-stickybar small{font-size:6.8px;color:#7b8a96}
.material-preview-modal{--accent:var(--material-accent,#6f7cff)}.preview-material-top{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center}
.preview-material-top .learning-choice-cover{height:110px;border-radius:16px}.preview-material-top h2{font-size:16px;margin:6px 0 4px}.preview-material-top p{font-size:8px;color:#6e7f8d;line-height:1.5}
.preview-unit-list{display:grid;gap:6px;margin-top:12px}.preview-unit-list>div{display:grid;grid-template-columns:28px 1fr auto;gap:7px;align-items:center;border:1px solid #e2e9ee;border-radius:13px;padding:8px}
.preview-unit-list>div>span{width:25px;height:25px;border-radius:8px;background:#eef0ff;color:#5d65c7;display:grid;place-items:center;font-weight:900;font-size:7px}
.preview-unit-list b{display:block;font-size:8.5px}.preview-unit-list small{display:block;font-size:6.8px;color:#85939e}
.preview-note{font-size:7px;line-height:1.5;background:#fff8e6;border:1px solid #f0e0af;border-radius:12px;padding:8px;margin-top:9px;color:#71623f}
.cloud-config-modal p{font-size:8px;line-height:1.5;color:#6c7e8c}.cloud-config-modal form{display:grid;gap:9px}.cloud-config-modal label{display:grid;gap:4px;font-size:8px;font-weight:850;color:#506a7c}
.cloud-config-modal input,.cloud-config-modal textarea{width:100%;box-sizing:border-box;border:1px solid #dbe5eb;border-radius:12px;padding:8px 9px;font:inherit}
.cloud-config-warning{display:flex;gap:8px;background:#fff8e5;border:1px solid #f0dfac;border-radius:14px;padding:8px}.cloud-config-warning span{font-size:20px}.cloud-config-warning p{margin:0;color:#725f37}.cloud-ready-card.connected{background:#edf9f3;border-color:#d4ecdf}
.teacher-sync-pill.cloud{background:#e6f7ee!important;color:#28745a!important}

@media(max-width:860px){
  .learning-choice-grid,.teacher-material-grid{grid-template-columns:1fr}
  .locked-template-card{grid-template-columns:130px 1fr}.locked-template-action{grid-column:1/-1;justify-content:flex-start}
  .material-editor-appearance{grid-template-columns:210px 1fr}
}
@media(max-width:650px){
  .learning-choice-card{grid-template-columns:110px 1fr}.custom-material-hero{grid-template-columns:1fr}.custom-material-hero .learning-choice-cover{height:120px}
  .material-manager-info,.cloud-activation-banner{align-items:flex-start;flex-wrap:wrap}.cloud-activation-banner button{margin-left:auto}
  .material-editor-appearance{grid-template-columns:1fr}.material-editor-preview{display:none}
  .material-editor-grid{grid-template-columns:1fr}.material-editor-grid label.full{grid-column:auto}
  .material-editor-stickybar{bottom:68px;flex-wrap:wrap}.material-editor-stickybar>div{flex-basis:100%}
  .material-workflow{grid-template-columns:1fr}.material-workflow>i{transform:rotate(90deg)}
}
@media(max-width:460px){
  .learning-choice-card{grid-template-columns:1fr}.learning-choice-cover{min-height:115px}
  .locked-template-card{grid-template-columns:1fr}.locked-template-cover{height:130px}
  .teacher-material-card{grid-template-columns:96px 1fr}.teacher-material-actions button{flex:1}
  .teacher-material-card-cover{min-height:220px}
  .custom-unit-card{grid-template-columns:42px 1fr 16px}.custom-unit-number{width:36px;height:36px}
}


/* ===== Revisi Guru: Peringkat, Apresiasi, Presentasi & Rubrik Cerpen ===== */
.teacher-ranking-card{
  margin:14px 0 16px;padding:15px;border-radius:30px;
  background:
    radial-gradient(circle at 90% 0%,rgba(255,221,103,.34),transparent 26%),
    linear-gradient(135deg,#fff9df,#eef9ff 52%,#f6efff);
  box-shadow:0 12px 28px rgba(45,76,104,.12);
  border:1px solid rgba(255,255,255,.9);
}
.ranking-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ranking-head h2{margin:3px 0 2px;font-size:20px;color:#284960}
.ranking-head p{margin:0;font-size:9px;color:#6b8091}
.ranking-head-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.party-btn{background:linear-gradient(135deg,#8a6dff,#ff72b6)!important;color:#fff!important;box-shadow:0 8px 16px rgba(138,109,255,.2)}

.ranking-podium{
  display:flex;justify-content:center;align-items:flex-end;gap:12px;
  min-height:260px;padding:28px 8px 8px;overflow:hidden
}
.ranking-podium.compact{min-height:215px;padding-top:20px;gap:8px}
.podium-person{
  width:min(28%,170px);text-align:center;position:relative;display:flex;
  flex-direction:column;align-items:center;z-index:1
}
.podium-avatar{
  width:74px;height:74px;border-radius:50%;display:grid;place-items:center;
  font-size:38px;background:#fff;border:5px solid #fff;box-shadow:0 10px 20px rgba(38,69,91,.15);
  overflow:hidden
}
.podium-avatar img{width:100%;height:100%;object-fit:cover}
.podium-person.place-1 .podium-avatar{width:94px;height:94px;font-size:48px;border-color:#ffe27b}
.podium-person.place-2 .podium-avatar{border-color:#dfe7ee}
.podium-person.place-3 .podium-avatar{border-color:#e9b57e}
.podium-person>b{font-size:11px;margin-top:6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podium-person>strong{font-size:18px;color:#2c5170;line-height:1.1;margin-top:2px}
.podium-person>small{font-size:7px;color:#7b8d9c}
.podium-trophy{font-size:26px;height:30px;animation:trophyFloat 1.7s ease-in-out infinite}
.podium-person.place-1 .podium-trophy{font-size:42px;height:45px}
.podium-block{
  width:100%;margin-top:7px;border-radius:14px 14px 5px 5px;
  display:grid;place-items:center;color:#fff;font-weight:950;box-shadow:inset 0 -9px 0 rgba(0,0,0,.06)
}
.podium-block span{font-size:26px;text-shadow:0 2px 0 rgba(0,0,0,.12)}
.place-1 .podium-block{height:92px;background:linear-gradient(180deg,#ffd760,#e8ad33)}
.place-2 .podium-block{height:68px;background:linear-gradient(180deg,#9daebd,#748899)}
.place-3 .podium-block{height:52px;background:linear-gradient(180deg,#cf8c55,#ab663a)}
.ranking-podium.compact .podium-avatar{width:58px;height:58px;font-size:30px}
.ranking-podium.compact .place-1 .podium-avatar{width:72px;height:72px;font-size:37px}
.ranking-podium.compact .place-1 .podium-block{height:68px}
.ranking-podium.compact .place-2 .podium-block{height:50px}
.ranking-podium.compact .place-3 .podium-block{height:40px}
.ranking-podium.compact .podium-trophy{font-size:22px;height:24px}
.ranking-podium.compact .place-1 .podium-trophy{font-size:32px;height:34px}
.ranking-podium.compact .podium-person>strong{font-size:14px}
.ranking-empty{text-align:center;padding:28px;color:#708392;font-size:10px}

@keyframes trophyFloat{
  0%,100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-7px) rotate(3deg)}
}

.special-awards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.special-award{
  min-height:78px;padding:10px;border-radius:21px;background:#fff;display:grid;
  grid-template-columns:38px 1fr;gap:7px;align-items:center;box-shadow:0 7px 14px rgba(43,77,100,.08)
}
.special-award>span{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff7cc;font-size:21px}
.special-award small,.special-award b,.special-award em{display:block}
.special-award small{font-size:7px;color:#758897;font-weight:850;text-transform:uppercase}
.special-award b{font-size:10px;color:#294b63;margin:2px 0}
.special-award em{font-size:7.5px;color:#7d6a47;font-style:normal}
.special-award.muted{opacity:.7}
.compact-awards{margin-top:8px}
.compact-awards .special-award{min-height:68px}
.ranking-formula-card{
  margin:12px 0;padding:13px 15px;border-radius:25px;background:linear-gradient(135deg,#e9f9ef,#eff5ff);
  box-shadow:var(--shadow);display:grid;gap:5px
}
.ranking-formula-card b{font-size:12px}.ranking-formula-card p{font-size:10px;margin:3px 0;color:#31536b}
.ranking-formula-card small{font-size:8px;line-height:1.45;color:#667d8d}
.ranking-page-title{background:linear-gradient(135deg,#fff7cf,#eef6ff,#f7edff)}
.ranking-table td:last-child strong{font-size:12px;color:#7357dd}

/* Mode presentasi kelas */
.ranking-presentation-overlay{
  position:fixed;inset:0;z-index:9999;overflow:auto;color:#fff;
  background:
    radial-gradient(circle at 18% 12%,rgba(255,226,107,.3),transparent 18%),
    radial-gradient(circle at 82% 15%,rgba(255,114,182,.28),transparent 20%),
    radial-gradient(circle at 70% 85%,rgba(73,201,139,.22),transparent 20%),
    linear-gradient(145deg,#4f3a9a,#2d5e9b 54%,#1f7c80);
  animation:presentationIn .35s ease
}
.presentation-content{width:min(1040px,94vw);margin:0 auto;padding:38px 14px 34px;text-align:center;position:relative;z-index:3}
.presentation-kicker{display:inline-block;padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.16);font-size:12px;font-weight:900;letter-spacing:.08em}
.presentation-content>h1{font-size:clamp(30px,5vw,64px);margin:10px 0 2px;text-shadow:0 7px 18px rgba(0,0,0,.2)}
.presentation-sub{margin:0;color:rgba(255,255,255,.82);font-size:clamp(12px,2vw,20px)}
.ranking-presentation-overlay .ranking-podium{min-height:390px;padding-top:45px}
.ranking-presentation-overlay .podium-person{width:min(27%,230px)}
.ranking-presentation-overlay .podium-avatar{width:110px;height:110px;font-size:58px}
.ranking-presentation-overlay .place-1 .podium-avatar{width:140px;height:140px;font-size:72px}
.ranking-presentation-overlay .podium-person>b{font-size:clamp(14px,2vw,24px);color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.25)}
.ranking-presentation-overlay .podium-person>strong{font-size:clamp(22px,3vw,38px);color:#fff}
.ranking-presentation-overlay .podium-person>small{font-size:11px;color:rgba(255,255,255,.78)}
.ranking-presentation-overlay .place-1 .podium-block{height:150px}
.ranking-presentation-overlay .place-2 .podium-block{height:110px}
.ranking-presentation-overlay .place-3 .podium-block{height:86px}
.ranking-presentation-overlay .podium-block span{font-size:44px}
.ranking-presentation-overlay .podium-trophy{font-size:46px;height:50px}
.ranking-presentation-overlay .place-1 .podium-trophy{font-size:72px;height:76px}
.presentation-awards{margin-top:18px}
.ranking-presentation-overlay .special-award{background:rgba(255,255,255,.94);text-align:left;min-height:88px}
.presentation-close{
  position:fixed;right:18px;top:16px;z-index:6;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.18);color:#fff;font-size:19px;cursor:pointer
}
.celebration-controls{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin-top:18px;font-size:10px}
.celebration-controls button{border:0;border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.16);color:#fff;cursor:pointer}
.celebration-controls button.active{background:#fff;color:#45388e;font-weight:900}
.presentation-confetti,.presentation-fireworks,.presentation-balloons{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.presentation-confetti i{position:absolute;top:-30px;width:10px;height:18px;border-radius:2px;animation:rankConfetti linear infinite}
@keyframes rankConfetti{to{transform:translateY(115vh) rotate(900deg);opacity:.5}}
.presentation-balloons i{position:absolute;bottom:-70px;font-style:normal;font-size:44px;animation:balloonUp 7s ease-in infinite}
.presentation-balloons i:nth-child(1){left:4%;animation-delay:.1s}.presentation-balloons i:nth-child(2){left:18%;animation-delay:2s}
.presentation-balloons i:nth-child(3){right:5%;animation-delay:1.1s}.presentation-balloons i:nth-child(4){right:19%;animation-delay:3s}
.presentation-balloons i:nth-child(5){left:50%;animation-delay:4.5s}
@keyframes balloonUp{0%{transform:translateY(0) rotate(-5deg);opacity:0}12%{opacity:1}100%{transform:translateY(-120vh) rotate(8deg);opacity:.25}}
.presentation-fireworks i{position:absolute;width:12px;height:12px;border-radius:50%;box-shadow:0 -55px #ffd75e,39px -39px #ff72b6,55px 0 #49c98b,39px 39px #8a6dff,0 55px #32c9c6,-39px 39px #ff9d50,-55px 0 #fff,-39px -39px #ffd75e;animation:fireworkBurst 2.3s ease-out infinite}
.presentation-fireworks i:nth-child(1){left:12%;top:23%;animation-delay:.3s}
.presentation-fireworks i:nth-child(2){right:13%;top:18%;animation-delay:1.1s}
.presentation-fireworks i:nth-child(3){right:25%;top:45%;animation-delay:1.8s}
@keyframes fireworkBurst{0%{transform:scale(.1);opacity:0}18%{opacity:1}60%{transform:scale(1);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.celebration-light .presentation-fireworks,.celebration-light .presentation-balloons{display:none}
.celebration-off .presentation-fireworks,.celebration-off .presentation-balloons,.celebration-off .presentation-confetti{display:none}
.celebration-off .podium-trophy{animation:none}
@keyframes presentationIn{from{opacity:0;transform:scale(1.02)}to{opacity:1;transform:none}}

/* Penilaian cerpen */
.rubric-editor{width:min(900px,calc(94vw - 36px));display:grid;gap:12px}
.modal:has(.rubric-editor) .modal-card{width:min(960px,96vw);max-height:92vh}
.rubric-editor-head h2{margin:3px 0;font-size:22px;color:#244a63}
.rubric-editor-head p{margin:0;color:#708392;font-size:9px}
.rubric-reading-pane{background:#fff9ed;border:1px solid #f0dfbd;border-radius:22px;padding:12px}
.rubric-reading-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.rubric-reading-head b{font-size:11px}.rubric-reading-head small{font-size:8px;color:#7c7569}
.rubric-synopsis{font-size:9px;color:#665f55;line-height:1.5}
.rubric-story{max-height:250px;overflow:auto;background:#fff;border-radius:16px;padding:12px;font-size:10px;line-height:1.7;color:#344f61}
.rubric-story p{margin:0 0 8px}
.rubric-scale-note{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:7px}
.rubric-scale-note span{font-size:7px;text-align:center;padding:6px 4px;border-radius:10px;background:#edf5fb;color:#526d80}
.rubric-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.rubric-row{display:grid;grid-template-columns:1fr 150px;gap:8px;align-items:center;background:#fff;border-radius:17px;padding:9px 10px;box-shadow:0 5px 11px rgba(43,77,100,.06)}
.rubric-label b,.rubric-label small{display:block}.rubric-label b{font-size:9px;color:#294b62}.rubric-label small{font-size:7px;color:#82919d;margin-top:2px}
.rubric-row select{width:100%;border:1px solid #d7e5ee;border-radius:12px;padding:7px;background:#f9fcff;color:#34546a;font-size:8px}
.rubric-feedback-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.rubric-feedback-grid label{font-size:8px;font-weight:900;color:#3a5a70}
.rubric-feedback-grid textarea{display:block;width:100%;min-height:90px;margin-top:5px;border:1px solid #d9e5eb;border-radius:16px;padding:9px;resize:vertical;font:inherit;font-size:9px;line-height:1.5}
.rubric-total-box{margin-top:10px;background:linear-gradient(135deg,#5847c8,#8f6df1);color:#fff;border-radius:22px;padding:12px 16px;display:grid;grid-template-columns:1fr auto;align-items:center}
.rubric-total-box span{font-size:10px;font-weight:900}.rubric-total-box strong{font-size:30px;grid-row:span 2}.rubric-total-box small{font-size:8px;color:#e8e4ff}
.rubric-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px;flex-wrap:wrap}
.rubric-publish-state{text-align:right}
.work-status-line{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.assessment-badge{display:inline-block!important;background:#fff1c9;color:#80601e;border-radius:999px;padding:4px 7px;font-size:7px!important;font-weight:900}
.assessment-badge.published{background:#dcf7e8;color:#25714b}
.mini-grade{color:#6b5bc4!important;font-weight:900}
.student-feedback-list{display:grid;gap:9px}
.student-teacher-feedback{background:linear-gradient(135deg,#fff8dc,#eff8ff);border-radius:24px;padding:12px;display:grid;grid-template-columns:100px 1fr;gap:12px;align-items:center;box-shadow:var(--shadow)}
.feedback-score{border-radius:18px;background:#fff;padding:10px;text-align:center}.feedback-score span,.feedback-score strong,.feedback-score small{display:block}
.feedback-score span{font-size:7px;color:#748695;font-weight:900}.feedback-score strong{font-size:27px;color:#6a55cf}.feedback-score small{font-size:7px;color:#6e7e88}
.student-teacher-feedback>b{font-size:10px}.student-teacher-feedback p{font-size:8.5px;line-height:1.5;color:#587083;margin:5px 0}

/* Empat shortcut pada dashboard guru */
.teacher-quick-grid{grid-template-columns:repeat(3,1fr)}

@media(max-width:760px){
  .special-awards-grid{grid-template-columns:1fr 1fr}
  .ranking-podium{gap:5px}.podium-person{width:31%}
  .ranking-presentation-overlay .podium-avatar{width:82px;height:82px;font-size:43px}
  .ranking-presentation-overlay .place-1 .podium-avatar{width:105px;height:105px;font-size:56px}
  .ranking-presentation-overlay .ranking-podium{min-height:330px}
  .ranking-presentation-overlay .place-1 .podium-block{height:120px}
  .ranking-presentation-overlay .place-2 .podium-block{height:92px}
  .ranking-presentation-overlay .place-3 .podium-block{height:74px}
  .rubric-grid{grid-template-columns:1fr}
  .rubric-feedback-grid{grid-template-columns:1fr}
  .teacher-quick-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  .ranking-head{display:grid}.ranking-head-actions{justify-content:flex-start}
  .teacher-ranking-card{padding:11px;border-radius:24px}
  .ranking-podium{min-height:205px;padding-left:0;padding-right:0}
  .podium-avatar{width:52px;height:52px;font-size:27px}
  .podium-person.place-1 .podium-avatar{width:66px;height:66px;font-size:34px}
  .podium-person>b{font-size:9px}.podium-person>strong{font-size:14px}
  .podium-trophy{font-size:21px;height:22px}.podium-person.place-1 .podium-trophy{font-size:30px;height:32px}
  .place-1 .podium-block{height:68px}.place-2 .podium-block{height:51px}.place-3 .podium-block{height:41px}
  .special-awards-grid{grid-template-columns:1fr}
  .ranking-presentation-overlay .ranking-podium{min-height:270px;gap:2px}
  .ranking-presentation-overlay .podium-avatar{width:62px;height:62px;font-size:32px}
  .ranking-presentation-overlay .place-1 .podium-avatar{width:78px;height:78px;font-size:41px}
  .ranking-presentation-overlay .podium-person>b{font-size:11px}
  .ranking-presentation-overlay .podium-person>strong{font-size:19px}
  .ranking-presentation-overlay .place-1 .podium-block{height:90px}
  .ranking-presentation-overlay .place-2 .podium-block{height:68px}
  .ranking-presentation-overlay .place-3 .podium-block{height:55px}
  .ranking-presentation-overlay .podium-block span{font-size:28px}
  .presentation-awards{grid-template-columns:1fr 1fr}
  .presentation-awards .special-award{min-height:65px}
  .rubric-editor{width:calc(94vw - 36px)}
  .rubric-row{grid-template-columns:1fr}
  .rubric-scale-note{grid-template-columns:1fr 1fr}
  .student-teacher-feedback{grid-template-columns:80px 1fr}
  .teacher-work-card.large{grid-template-columns:35px 1fr}.teacher-work-card.large .work-actions{grid-column:1/-1;justify-content:flex-start}
}

@media(prefers-reduced-motion:reduce){
  .podium-trophy,.presentation-balloons i,.presentation-fireworks i,.presentation-confetti i{animation:none!important}
}

.rubric-modal-card{width:min(960px,96vw)!important;max-height:92vh!important}
.rubric-label p{margin:4px 0 0;font-size:7px;line-height:1.35;color:#738797;font-weight:500}


/* ===== Revisi Guru: Hapus Materi & Sampah Kelas ===== */
.toast.action-toast{
  pointer-events:auto;display:flex;align-items:center;gap:10px;border-radius:18px;
  padding:10px 11px 10px 15px;max-width:min(92vw,620px)
}
.toast.action-toast span{line-height:1.35}
.toast.action-toast button{
  border:0;background:#fff;color:#173859;border-radius:999px;padding:7px 11px;
  font:inherit;font-size:10px;font-weight:950;cursor:pointer;white-space:nowrap
}

/* Kartu Kelas Saya */
.teacher-class-picker-card{cursor:default}
.teacher-class-card-actions{display:grid;grid-template-columns:1fr 42px;gap:7px;align-items:stretch}
.teacher-class-card-actions>button:first-child{width:100%}
.class-trash-button,.account-class-trash{
  border:1px solid #f1caca!important;background:#fff4f4!important;color:#b74747!important;
  border-radius:13px!important;display:grid!important;place-items:center!important;
  min-width:40px;cursor:pointer!important;box-shadow:none!important;font-size:16px!important;
  padding:7px!important
}
.class-trash-button:hover,.account-class-trash:hover{background:#ffe4e4!important;border-color:#e9abab!important}
.teacher-classes-summary{grid-template-columns:1fr 1fr 1fr auto}

/* Sampah Kelas */
.teacher-class-trash-section{
  margin-top:18px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e1e8ed;
  border-radius:28px;padding:14px;box-shadow:0 8px 18px rgba(42,76,100,.07)
}
.teacher-class-trash-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.teacher-class-trash-head h2{font-size:17px;margin:3px 0}
.teacher-class-trash-head p{font-size:8.5px;color:var(--muted);margin:0;line-height:1.45}
.trash-count-badge{
  min-width:34px;height:34px;padding:0 10px;border-radius:999px;background:#f3e9e9;color:#9a5555;
  display:grid;place-items:center;font-size:12px;font-weight:950
}
.teacher-class-trash-list{display:grid;gap:8px;margin-top:11px}
.teacher-class-trash-card{
  display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:center;
  background:#fff;border:1px solid #e7ecef;border-radius:20px;padding:10px
}
.trash-card-icon{
  width:40px;height:40px;border-radius:14px;background:#f7eeee;display:grid;place-items:center;font-size:20px
}
.trash-card-copy small,.trash-card-copy b,.trash-card-copy p{display:block}
.trash-card-copy small{font-size:6.5px;font-weight:950;letter-spacing:.5px;color:#9c6d6d}
.trash-card-copy b{font-size:11px;margin:2px 0;color:#344f61}
.trash-card-copy p{font-size:7.5px;margin:0;color:#7a8c99}
.trash-card-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.trash-card-actions button{font-size:8px;padding:7px 9px;border-radius:12px}
.class-trash-empty{
  margin-top:10px;border:1px dashed #d7e1e7;background:#fbfcfd;border-radius:20px;padding:12px;
  display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center
}
.class-trash-empty>span{font-size:25px}.class-trash-empty b{font-size:9px}.class-trash-empty p{font-size:7.5px;color:var(--muted);margin:2px 0}

/* Daftar kelas di Pengaturan */
.teacher-account-class-row{
  border:1px solid #e3ebf0;background:#fff;border-radius:20px;padding:4px;
  display:grid;grid-template-columns:1fr 40px;gap:4px;align-items:center;
  box-shadow:0 5px 11px rgba(40,76,102,.06)
}
.teacher-account-class-row.active{background:#eaf9f0;border-color:#8ed3ae}
.teacher-account-class-row>button:first-child{
  border:0!important;background:transparent!important;box-shadow:none!important;border-radius:16px!important;
  padding:7px!important;display:grid!important;grid-template-columns:30px 1fr auto!important;
  width:100%;color:#24455e;text-align:left;gap:7px;align-items:center;cursor:pointer
}
.teacher-account-class-row>button:first-child>span{font-size:22px}
.teacher-account-class-row b,.teacher-account-class-row small{display:block}
.teacher-account-class-row b{font-size:9px}.teacher-account-class-row small{font-size:7px;color:var(--muted);margin-top:2px}
.teacher-account-class-row i{
  font-style:normal;border-radius:999px;padding:4px 7px;background:#eef4f8;font-size:6.5px;font-weight:950
}
.teacher-account-class-row.active i{background:#cfeedd;color:#24704e}

/* Modal penghapusan */
.danger-confirm-modal{text-align:center;padding:8px 5px 4px}
.danger-confirm-icon{
  width:62px;height:62px;margin:2px auto 9px;border-radius:22px;background:#fff0f0;
  display:grid;place-items:center;font-size:31px
}
.danger-confirm-icon.permanent{background:#ffe8e8;animation:deleteWarnPulse 1.4s ease-in-out infinite}
@keyframes deleteWarnPulse{50%{transform:scale(1.06);box-shadow:0 0 0 9px rgba(215,80,80,.08)}}
.danger-confirm-modal h2{font-size:22px;margin:4px 0 5px;color:#28485f}
.danger-confirm-modal>p{font-size:9.5px;color:#607686;line-height:1.5}
.danger-confirm-note{
  margin:12px 0;padding:11px;border-radius:18px;background:#fff0f0;border:1px solid #f0caca;
  display:grid;grid-template-columns:30px 1fr;gap:7px;text-align:left;align-items:start
}
.danger-confirm-note.safe-trash{background:#eff9f3;border-color:#cfeada}
.danger-confirm-note>span{font-size:22px}
.danger-confirm-note p{margin:0;font-size:8.5px;line-height:1.5;color:#5c6e78}
.danger-confirm-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.danger-confirm-actions button{min-width:120px}
.class-delete-impact{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}
.class-delete-impact span{background:#f7fafc;border-radius:15px;padding:8px;display:block}
.class-delete-impact b,.class-delete-impact small{display:block}
.class-delete-impact b{font-size:17px;color:#34516a}.class-delete-impact small{font-size:7px;color:#82909a}
.permanent-warning{background:#fff2f2;border-radius:14px;padding:9px;color:#a13f3f!important}
.permanent-delete-list{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0;text-align:left
}
.permanent-delete-list span{background:#f7f9fb;border-radius:13px;padding:8px;font-size:8px;color:#536b7c}
.permanent-delete-modal form{text-align:left;display:grid;gap:8px;margin-top:10px}
.permanent-delete-modal form label{display:grid;gap:5px;font-size:8px;font-weight:900;color:#4b6577}
.permanent-delete-modal form input{
  width:100%;box-sizing:border-box;border:1px solid #dfc8c8;border-radius:13px;padding:9px 10px;
  font:inherit;background:#fff
}
.cloud-delete-note{font-size:7.5px;line-height:1.45;color:#6a7f8c;background:#f3f7fa;border-radius:12px;padding:8px}
.strong-danger{background:#bd3434!important;color:#fff!important;border-color:#bd3434!important}

/* Tombol hapus materi lebih jelas namun tidak dominan */
.teacher-material-delete{
  border:1px solid #f0cccc!important;background:#fff7f7!important;color:#b44c4c!important;
  border-radius:12px!important;padding:7px 9px!important;font-size:8px!important
}
.teacher-material-delete:hover{background:#ffe8e8!important}
.locked-template-card .teacher-material-delete{display:none!important}

@media(max-width:700px){
  .teacher-classes-summary{grid-template-columns:1fr 1fr}
  .teacher-classes-summary>button{grid-column:1/-1}
  .teacher-class-trash-card{grid-template-columns:38px 1fr}
  .trash-card-actions{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:520px){
  .teacher-class-card-actions{grid-template-columns:1fr 40px}
  .permanent-delete-list{grid-template-columns:1fr}
  .danger-confirm-actions{display:grid;grid-template-columns:1fr}
  .danger-confirm-actions button{width:100%}
  .toast.action-toast{width:calc(100vw - 28px);box-sizing:border-box;justify-content:space-between}
}
@media(prefers-reduced-motion:reduce){
  .danger-confirm-icon.permanent{animation:none}
}


/* ===== Revisi Identitas Kreator pada Halaman Masuk ===== */
.role-brand small{display:inline-block;font-weight:800;letter-spacing:.08em;color:#4a6d8f}
.creator-badge{
  position:relative;
  display:inline-flex;
  flex-direction:column;
  gap:6px;
  margin-top:10px;
  padding:14px 18px;
  border-radius:24px;
  background:rgba(255,255,255,.34);
  border:1px solid rgba(255,255,255,.48);
  box-shadow:0 14px 32px rgba(63,87,127,.16);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  overflow:hidden;
}
.creator-badge::before{
  content:"";
  position:absolute;
  inset:-18px auto auto -12px;
  width:130px;
  height:78px;
  border-radius:999px;
  background:rgba(255,255,255,.38);
  filter:blur(16px);
}
.creator-badge::after{
  content:"";
  position:absolute;
  right:-8px;
  bottom:-10px;
  width:120px;
  height:68px;
  border-radius:999px;
  background:rgba(255,246,193,.44);
  filter:blur(16px);
}
.creator-badge > *{position:relative;z-index:1}
.creator-title{
  font-size:12px;
  font-weight:900;
  color:#35567c;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.creator-name{
  font-size:18px;
  line-height:1.15;
  font-weight:900;
  color:#183a58;
}
.creator-meta{
  font-size:13px;
  line-height:1.3;
  font-weight:800;
  color:#284b6d;
}
@media (max-width: 720px){
  .creator-badge{padding:12px 14px;border-radius:20px;gap:4px}
  .creator-title{font-size:11px}
  .creator-name{font-size:16px}
  .creator-meta{font-size:12px}
}


/* ===== Sahabat Cerpenia ===== */
.companion-home-status{
  margin:12px 0 14px;
  padding:14px;
  border-radius:26px;
  background:linear-gradient(135deg,rgba(255,255,255,.93),rgba(241,248,255,.92));
  border:1px solid rgba(89,126,156,.12);
  box-shadow:0 9px 20px rgba(42,76,104,.08);
}
.companion-status-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.companion-status-head>b,
.companion-status-head>div>b{
  display:block;
  font-size:15px;
  color:#244b68;
  margin-top:2px;
}
.companion-status-head small{
  display:block;
  margin-top:3px;
  font-size:9px;
  font-weight:850;
  color:#627b8f;
}
.companion-status-head .secondary.mini{
  padding:8px 10px;
  border-radius:13px;
  font-size:8px;
  white-space:nowrap;
}
.companion-home-meters{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:11px;
}
.companion-meter{
  min-width:0;
}
.companion-meter>div:first-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:8.5px;
  font-weight:900;
  color:#3d5d72;
}
.companion-meter>div:first-child b{font-size:9px}
.companion-meter-track{
  height:9px;
  border-radius:999px;
  background:#e9eff3;
  overflow:hidden;
  margin-top:5px;
}
.companion-meter-track i{
  display:block;
  height:100%;
  width:0;
  border-radius:inherit;
  background:linear-gradient(90deg,#75c8ff,#7f8cff);
  transition:width .45s ease;
}
.companion-meter.happiness .companion-meter-track i{background:linear-gradient(90deg,#ff9ac8,#ff74a8)}
.companion-meter.strength .companion-meter-track i{background:linear-gradient(90deg,#ffd36f,#f6a84f)}
.companion-meter.bond .companion-meter-track i{background:linear-gradient(90deg,#9ce1b7,#55bf89)}
.companion-status-note{
  margin-top:9px;
  font-size:7.5px;
  font-weight:800;
  color:#738795;
}
.companion-home-status.companion-tired{background:linear-gradient(135deg,#fffdf5,#f3f6fa)}
.companion-home-status.companion-sluggish,
.companion-home-status.companion-sleeping{background:linear-gradient(135deg,#f5f6fb,#edf0f6)}

/* Kondisi visual avatar */
.companion-hero{
  transition:filter .25s ease,transform .25s ease,box-shadow .25s ease;
}
.companion-mood-badge{
  position:absolute;
  top:9px;
  right:10px;
  width:31px;
  height:31px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.90);
  box-shadow:0 6px 14px rgba(45,76,102,.14);
  font-size:17px;
  z-index:4;
}
.companion-hero-accessory{
  position:absolute;
  left:10px;
  top:10px;
  z-index:4;
  font-size:23px;
  filter:drop-shadow(0 4px 5px rgba(48,71,92,.16));
}
.companion-zzz{
  position:absolute;
  right:10px;
  top:44px;
  z-index:4;
  font-size:12px;
  font-weight:950;
  color:#66728d;
  animation:companionZzz 1.8s ease-in-out infinite;
}
.companion-state-very-happy .companion-emoji-plain,
.companion-state-very-happy .mascot,
.companion-state-cheerful .companion-emoji-plain,
.companion-state-cheerful .mascot{
  animation:companionHappy 2.4s ease-in-out infinite;
}
.companion-state-tired{filter:saturate(.84)}
.companion-state-sluggish{filter:saturate(.68) brightness(.96)}
.companion-state-sleeping{filter:saturate(.45) brightness(.92)}
.companion-state-sleeping .companion-emoji-plain,
.companion-state-sleeping .mascot{transform:rotate(-5deg) translateY(3px)}
.companion-strong{
  box-shadow:0 0 0 3px rgba(255,213,103,.25),0 12px 24px rgba(74,102,130,.15);
}
@keyframes companionHappy{
  0%,100%{transform:translateY(0) rotate(-1deg)}
  50%{transform:translateY(-5px) rotate(2deg)}
}
@keyframes companionZzz{
  0%,100%{transform:translateY(3px);opacity:.55}
  50%{transform:translateY(-3px);opacity:1}
}

/* Tim Cerpenia */
.team-select-hint{
  position:absolute;
  right:12px;
  bottom:11px;
  padding:5px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.60);
  color:#587084;
  font-size:6.5px;
  font-weight:900;
}
.team-cerpenia-card.active .team-chip{
  max-width:76%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Detail Sahabat */
.companion-profile-modal{padding:3px 1px}
.companion-profile-hero{
  display:grid;
  grid-template-columns:104px 1fr;
  gap:13px;
  align-items:center;
  padding:10px;
  border-radius:24px;
  background:linear-gradient(135deg,#eef7ff,#fff4fb);
}
.companion-profile-avatar{
  position:relative;
  width:96px;
  height:96px;
  border-radius:29px;
  background:rgba(255,255,255,.82);
  display:grid;
  place-items:center;
  font-size:58px;
  box-shadow:0 8px 18px rgba(47,80,106,.10);
}
.companion-profile-avatar>span{
  position:absolute;
  right:5px;
  bottom:5px;
  width:28px;
  height:28px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#fff;
  font-size:16px;
  box-shadow:0 3px 8px rgba(48,78,102,.12);
}
.companion-profile-avatar>i{
  position:absolute;
  left:4px;
  top:3px;
  font-style:normal;
  font-size:24px;
}
.companion-profile-hero h2{margin:3px 0;font-size:21px;color:#284b67}
.companion-profile-hero p{margin:0;font-size:8.5px;line-height:1.45;color:#637b8e}
.companion-profile-state{
  display:inline-block;
  margin-top:7px;
  border-radius:999px;
  padding:5px 8px;
  background:rgba(255,255,255,.84);
  font-size:7.5px;
  font-weight:950;
  color:#3d5c75;
}
.companion-dialog-card{
  margin:10px 0;
  padding:11px 13px;
  border-radius:20px 20px 20px 7px;
  background:#fff7cc;
  color:#5d5e55;
  font-size:9px;
  line-height:1.5;
  font-weight:800;
}
.companion-profile-meters{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:11px;
  border:1px solid #e4ebf0;
  background:#fff;
  border-radius:21px;
}
.companion-level-card{
  margin-top:10px;
  padding:11px;
  border-radius:20px;
  background:linear-gradient(135deg,#eef0ff,#f5f9ff);
}
.companion-level-card>div:first-child{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}
.companion-level-card b{font-size:9px;color:#43537b}
.companion-level-card small{font-size:7px;color:#74849b}
.companion-level-card .companion-meter-track i{background:linear-gradient(90deg,#8a7cff,#63a4ff)}
.companion-accessory-title{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:10px;
  margin:13px 2px 7px;
}
.companion-accessory-title b{font-size:10px}
.companion-accessory-title small{font-size:6.8px;color:#7a8b98;text-align:right}
.companion-accessory-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
}
.companion-accessory-grid>div{
  min-height:72px;
  padding:8px 5px;
  border-radius:17px;
  text-align:center;
  background:#f6f8fa;
  border:1px solid #e5eaee;
}
.companion-accessory-grid>div.unlocked{background:linear-gradient(145deg,#fff8d7,#fff)}
.companion-accessory-grid>div.locked{opacity:.62;filter:saturate(.55)}
.companion-accessory-grid span{display:block;font-size:24px}
.companion-accessory-grid b{display:block;font-size:7px;margin-top:3px}
.companion-accessory-grid small{display:block;font-size:6.3px;color:#8a969e;margin-top:2px}
.companion-care-note{
  margin-top:10px;
  padding:10px 11px;
  border-radius:18px;
  background:#eff9f3;
  border:1px solid #d7eddf;
}
.companion-care-note b{font-size:8px}
.companion-care-note p{margin:3px 0 0;font-size:7.3px;line-height:1.5;color:#61776b}

@media(max-width:560px){
  .companion-home-meters,
  .companion-profile-meters{grid-template-columns:1fr}
  .companion-status-head{align-items:center}
  .companion-profile-hero{grid-template-columns:82px 1fr}
  .companion-profile-avatar{width:76px;height:76px;border-radius:23px;font-size:46px}
  .companion-accessory-grid{grid-template-columns:repeat(2,1fr)}
  .companion-accessory-title{display:block}
  .companion-accessory-title small{display:block;text-align:left;margin-top:2px}
}
@media(max-width:430px){
  .companion-home-status{padding:12px;border-radius:22px}
  .companion-status-head{display:grid;grid-template-columns:1fr}
  .companion-status-head .secondary.mini{justify-self:start}
  .companion-profile-hero{grid-template-columns:1fr;text-align:center}
  .companion-profile-avatar{margin:auto}
}
@media(prefers-reduced-motion:reduce){
  .companion-state-very-happy .companion-emoji-plain,
  .companion-state-very-happy .mascot,
  .companion-state-cheerful .companion-emoji-plain,
  .companion-state-cheerful .mascot,
  .companion-zzz{animation:none!important}
}


/* ===== Revisi dialog Sahabat Cerpenia v2 =====
   Susunan desktop: [emot kondisi] [avatar] [dialog teks].
   Emot tidak menumpuk pada avatar/dialog; dialog berada di lapisan teratas
   tetapi memakai kolom sendiri sehingga tidak menutupi avatar. */
.hero:after{
  z-index:0;
  pointer-events:none;
}
.hero .hero-grid{
  position:relative;
  z-index:2;
  grid-template-columns:1fr 1fr;
}
.hero .companion-home-layout{
  position:relative;
  z-index:5;
  overflow:visible;
  display:grid;
  grid-template-columns:34px 138px minmax(138px,156px);
  align-items:center;
  justify-content:center;
  gap:8px;
  width:max-content;
  max-width:none;
  margin-left:auto;
  margin-right:0;
  text-align:left;
}
.hero .companion-home-layout .companion-hero{
  position:relative;
  z-index:4;
  width:138px;
  min-height:150px;
  box-sizing:border-box;
  overflow:hidden;
}
.hero .companion-home-layout .companion-emoji-plain{
  font-size:74px;
}
.hero .companion-home-layout .companion-hero .mascot{
  width:98px;
}
.hero .companion-side-emote{
  position:relative;
  z-index:21;
  width:32px;
  height:32px;
  align-self:center;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#fff8cf,#fff);
  border:1px solid rgba(255,255,255,.95);
  box-shadow:0 6px 14px rgba(48,78,105,.14);
  font-size:18px;
  line-height:1;
}
.hero .speech.companion-home-speech{
  position:relative;
  z-index:22;
  inset:auto;
  display:block;
  box-sizing:border-box;
  width:156px;
  max-width:156px;
  min-width:138px;
  padding:11px 12px;
  margin:0;
  text-align:left;
  color:#365268;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(255,255,255,.96);
  border-radius:18px 18px 18px 7px;
  box-shadow:0 9px 22px rgba(48,78,105,.17);
  font-size:9.5px;
  line-height:1.45;
  font-weight:850;
  isolation:isolate;
}
.hero .speech.companion-home-speech:before{
  content:"";
  position:absolute;
  z-index:-1;
  left:-6px;
  top:50%;
  width:13px;
  height:13px;
  background:rgba(255,255,255,.98);
  transform:translateY(-50%) rotate(45deg);
  border-radius:2px;
}
.hero .speech-text{
  display:block;
  min-width:0;
  overflow-wrap:anywhere;
}

/* Layar menengah: ukuran dipadatkan tetapi susunan tetap
   emot kiri — avatar tengah — dialog kanan. */
@media(max-width:760px){
  .hero .hero-grid{
    grid-template-columns:.95fr 1.05fr;
  }
  .hero .companion-home-layout{
    grid-template-columns:30px 120px minmax(122px,140px);
    gap:6px;
  }
  .hero .companion-home-layout .companion-hero{
    width:120px;
    min-height:140px;
    padding-left:8px;
    padding-right:8px;
  }
  .hero .companion-home-layout .companion-emoji-plain{font-size:66px}
  .hero .companion-home-layout .companion-hero .mascot{width:88px}
  .hero .companion-side-emote{
    width:29px;
    height:29px;
    font-size:16px;
  }
  .hero .speech.companion-home-speech{
    width:140px;
    max-width:140px;
    min-width:122px;
    padding:9px 10px;
    font-size:8.8px;
  }
}

/* HP: beri seluruh lebar kartu untuk Sahabat agar avatar tidak tertutup.
   Urutan tetap emot kiri, avatar tengah, dialog kanan. */
@media(max-width:500px){
  .hero .hero-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .hero .companion-home-layout{
    grid-template-columns:28px 108px minmax(0,1fr);
    gap:6px;
    width:100%;
    max-width:100%;
    margin:0;
    justify-content:stretch;
  }
  .hero .companion-home-layout .companion-hero{
    width:108px;
    min-height:128px;
    justify-self:center;
  }
  .hero .companion-home-layout .companion-emoji-plain{font-size:60px}
  .hero .companion-home-layout .companion-hero .mascot{width:80px}
  .hero .companion-side-emote{
    width:27px;
    height:27px;
    font-size:15px;
  }
  .hero .speech.companion-home-speech{
    display:block; /* override aturan lama .speech{display:none} */
    width:100%;
    max-width:none;
    min-width:0;
    padding:9px;
    font-size:8.3px;
    line-height:1.4;
  }
}


/* ===== Aksesori Avatar Sahabat Cerpenia ===== */
.companion-hero{
  position:relative;
  overflow:visible;
}
.companion-hero .mascot,
.companion-hero .companion-emoji-plain,
.companion-profile-emoji{
  position:relative;
  z-index:4;
}
.companion-profile-avatar{
  overflow:visible;
  position:relative;
}
.companion-profile-emoji{
  display:block;
  line-height:1;
  font-size:58px;
  filter:drop-shadow(0 8px 10px rgba(52,84,110,.10));
}
.companion-wear{
  position:absolute;
  line-height:1;
  filter:drop-shadow(0 4px 7px rgba(48,71,92,.18));
  user-select:none;
}
.companion-hero .companion-wear{font-size:24px}
.companion-profile-avatar .companion-wear{font-size:18px}

/* posisi umum aksesori di beranda */
.companion-hero .companion-wear-bag{
  left:-6px;
  top:42px;
  z-index:1;
  transform:rotate(-10deg);
  font-size:27px;
}
.companion-hero .companion-wear-ribbon{
  left:20px;
  top:-8px;
  z-index:7;
  font-size:22px;
}
.companion-hero .companion-wear-pin{
  left:31px;
  top:67px;
  z-index:6;
  font-size:18px;
}
.companion-hero .companion-wear-book{
  left:-12px;
  bottom:42px;
  z-index:6;
  transform:rotate(-10deg);
  font-size:24px;
}
.companion-hero .companion-wear-pen{
  right:-11px;
  bottom:54px;
  z-index:6;
  transform:rotate(10deg);
  font-size:24px;
}
.companion-hero .companion-wear-medal{
  left:50%;
  top:78px;
  z-index:6;
  transform:translateX(-50%);
  font-size:22px;
}
.companion-hero .companion-wear-crown{
  left:50%;
  top:-18px;
  z-index:8;
  transform:translateX(-50%);
  font-size:24px;
}

/* avatar profil: versi lebih kecil */
.companion-profile-avatar .companion-wear-bag{
  left:-3px;
  top:30px;
  z-index:1;
  transform:rotate(-10deg);
  font-size:20px;
}
.companion-profile-avatar .companion-wear-ribbon{
  left:15px;
  top:-6px;
  z-index:7;
  font-size:16px;
}
.companion-profile-avatar .companion-wear-pin{
  left:27px;
  top:42px;
  z-index:6;
  font-size:14px;
}
.companion-profile-avatar .companion-wear-book{
  left:-8px;
  bottom:19px;
  z-index:6;
  transform:rotate(-10deg);
  font-size:18px;
}
.companion-profile-avatar .companion-wear-pen{
  right:-6px;
  bottom:22px;
  z-index:6;
  transform:rotate(10deg);
  font-size:18px;
}
.companion-profile-avatar .companion-wear-medal{
  left:50%;
  top:49px;
  z-index:6;
  transform:translateX(-50%);
  font-size:16px;
}
.companion-profile-avatar .companion-wear-crown{
  left:50%;
  top:-14px;
  z-index:8;
  transform:translateX(-50%);
  font-size:18px;
}

/* Kucing (SVG) butuh sedikit penyesuaian agar aksesori pas pada badan */
.companion-hero.theme-cat .companion-wear-bag{left:-2px;top:45px}
.companion-hero.theme-cat .companion-wear-pin{left:34px;top:76px}
.companion-hero.theme-cat .companion-wear-book{left:-10px;bottom:50px}
.companion-hero.theme-cat .companion-wear-pen{right:-9px;bottom:61px}
.companion-hero.theme-cat .companion-wear-medal{top:86px}
.companion-hero.theme-cat .companion-wear-ribbon{left:18px;top:-7px}
.companion-hero.theme-cat .companion-wear-crown{top:-20px}

.companion-profile-avatar.theme-cat .companion-wear-pin{left:28px;top:43px}
.companion-profile-avatar.theme-cat .companion-wear-book{left:-6px;bottom:22px}
.companion-profile-avatar.theme-cat .companion-wear-pen{right:-6px;bottom:24px}
.companion-profile-avatar.theme-cat .companion-wear-medal{top:50px}

/* Di layar sempit, aksesori sedikit dipadatkan agar tidak keluar terlalu jauh */
@media(max-width:700px){
  .companion-hero .companion-wear{font-size:21px}
  .companion-hero .companion-wear-bag{left:-4px;top:39px;font-size:24px}
  .companion-hero .companion-wear-book{left:-9px;bottom:39px;font-size:21px}
  .companion-hero .companion-wear-pen{right:-9px;bottom:48px;font-size:21px}
  .companion-hero .companion-wear-crown{top:-15px;font-size:22px}
  .companion-hero .companion-wear-ribbon{top:-5px;font-size:20px}
  .companion-hero .companion-wear-medal{top:72px;font-size:19px}
  .companion-hero .companion-wear-pin{top:61px;font-size:16px}
}
@media(max-width:500px){
  .companion-hero .companion-wear{font-size:19px}
  .companion-hero .companion-wear-bag{left:-2px;top:36px;font-size:22px}
  .companion-hero .companion-wear-book{left:-7px;bottom:36px;font-size:19px}
  .companion-hero .companion-wear-pen{right:-7px;bottom:44px;font-size:19px}
  .companion-hero .companion-wear-pin{left:28px;top:57px;font-size:15px}
  .companion-hero .companion-wear-medal{top:66px;font-size:18px}
}


/* ===== Patch revisi tampilan aksesori avatar (12 Okt) ===== */
/* 1) Avatar di modal profil dibuat lebih besar dan menempati area kiri dengan jelas */
.companion-profile-hero{
  grid-template-columns: 154px 1fr !important;
  gap: 16px !important;
  align-items: center !important;
  padding: 14px !important;
}
.companion-profile-avatar{
  width: 138px !important;
  height: 138px !important;
  border-radius: 36px !important;
  font-size: 86px !important;
  box-shadow: 0 14px 28px rgba(47,80,106,.14) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(244,248,255,.92)) !important;
}
.companion-profile-emoji{
  font-size: 88px !important;
}
.companion-profile-avatar .companion-wear{
  filter: drop-shadow(0 5px 8px rgba(48,71,92,.22)) !important;
}
/* posisi aksesori di modal profil */
.companion-profile-avatar .companion-wear-ribbon{
  left: 50% !important;
  top: 5px !important;
  transform: translateX(-50%) !important;
  z-index: 8 !important;
  font-size: 24px !important;
}
.companion-profile-avatar .companion-wear-pin{
  left: 50% !important;
  top: 78px !important;
  transform: translateX(-50%) !important;
  z-index: 7 !important;
  font-size: 18px !important;
}
.companion-profile-avatar .companion-wear-medal{
  left: 50% !important;
  top: 82px !important;
  transform: translateX(-50%) !important;
  z-index: 7 !important;
  font-size: 24px !important;
}
.companion-profile-avatar .companion-wear-bag{
  left: 6px !important;
  top: 62px !important;
  transform: rotate(-8deg) !important;
  z-index: 2 !important;
  font-size: 28px !important;
}
.companion-profile-avatar .companion-wear-book{
  left: -10px !important;
  bottom: 22px !important;
  transform: rotate(-10deg) !important;
  z-index: 7 !important;
  font-size: 24px !important;
}
.companion-profile-avatar .companion-wear-pen{
  right: -8px !important;
  bottom: 24px !important;
  transform: rotate(10deg) !important;
  z-index: 7 !important;
  font-size: 24px !important;
}
.companion-profile-avatar .companion-wear-crown{
  left: 50% !important;
  top: -18px !important;
  transform: translateX(-50%) !important;
  z-index: 9 !important;
  font-size: 28px !important;
}

/* 2) Pita pada avatar beranda dibuat lebih jelas terlihat, terutama untuk Burung Hantu */
.companion-hero .companion-wear-ribbon{
  left: 50% !important;
  top: -8px !important;
  transform: translateX(-50%) !important;
  z-index: 10 !important;
  font-size: 25px !important;
}
.companion-hero.theme-owl .companion-wear-ribbon{
  left: 50% !important;
  top: -6px !important;
  transform: translateX(-50%) !important;
  z-index: 12 !important;
  font-size: 28px !important;
  filter: drop-shadow(0 5px 8px rgba(48,71,92,.26)) !important;
}
.companion-hero.theme-owl .companion-emoji-plain{
  margin-top: 12px !important;
}

/* sedikit rapikan area kartu avatar beranda agar aksesori tidak terpotong */
.companion-hero{
  overflow: visible !important;
}
.companion-hero .companion-name-pill,
.companion-hero .companion-caption{
  position: relative;
  z-index: 5;
}

/* versi layar kecil */
@media(max-width:700px){
  .companion-profile-hero{
    grid-template-columns: 128px 1fr !important;
    gap: 12px !important;
  }
  .companion-profile-avatar{
    width: 116px !important;
    height: 116px !important;
    font-size: 74px !important;
    border-radius: 32px !important;
  }
  .companion-profile-emoji{
    font-size: 74px !important;
  }
  .companion-profile-avatar .companion-wear-ribbon{
    top: 3px !important;
    font-size: 20px !important;
  }
  .companion-profile-avatar .companion-wear-pin{
    top: 66px !important;
    font-size: 16px !important;
  }
  .companion-profile-avatar .companion-wear-medal{
    top: 69px !important;
    font-size: 20px !important;
  }
  .companion-profile-avatar .companion-wear-bag{
    top: 52px !important;
    font-size: 24px !important;
  }
  .companion-profile-avatar .companion-wear-book{
    left: -8px !important;
    bottom: 18px !important;
    font-size: 20px !important;
  }
  .companion-profile-avatar .companion-wear-pen{
    right: -6px !important;
    bottom: 18px !important;
    font-size: 20px !important;
  }
  .companion-profile-avatar .companion-wear-crown{
    top: -15px !important;
    font-size: 23px !important;
  }
}


/* ===== Patch: avatar modal harus berada di dalam kotak pita ===== */
.companion-profile-avatar{
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.companion-profile-avatar > .companion-profile-emoji{
  position:relative !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;
  top:auto !important;
  width:auto !important;
  height:auto !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  display:block !important;
  line-height:1 !important;
  z-index:3 !important;
  margin-top:14px !important;
  font-size:88px !important;
}
.companion-profile-avatar.theme-owl > .companion-profile-emoji{
  margin-top:18px !important;
  font-size:90px !important;
}
.companion-profile-avatar.theme-chick > .companion-profile-emoji{
  margin-top:16px !important;
}
.companion-profile-avatar.theme-rabbit > .companion-profile-emoji{
  margin-top:12px !important;
}
.companion-profile-avatar.theme-bear > .companion-profile-emoji,
.companion-profile-avatar.theme-fox > .companion-profile-emoji,
.companion-profile-avatar.theme-panda > .companion-profile-emoji,
.companion-profile-avatar.theme-cat > .companion-profile-emoji{
  margin-top:14px !important;
}
/* pastikan pita tetap terlihat di atas avatar */
.companion-profile-avatar .companion-wear-ribbon{
  z-index:8 !important;
}


/* ===== Pusat Notifikasi Cerpenia ===== */
.notification-toggle{
  position:relative;width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.82);
  display:grid;place-items:center;font-size:17px;box-shadow:0 6px 14px rgba(45,76,102,.10);cursor:pointer;color:#244b69
}
.notification-toggle.hide{display:none!important}
.notification-badge{
  position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;
  display:grid;place-items:center;background:#ff5f86;color:#fff;font-size:8px;font-style:normal;font-weight:950;
  border:2px solid #fff;box-shadow:0 3px 8px rgba(91,45,70,.18)
}
.notification-badge.hide{display:none}
.notification-hero{
  background:linear-gradient(135deg,#e9f5ff,#f8ecff 54%,#fff2c9);border-radius:32px;padding:18px;
  display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;box-shadow:var(--shadow)
}
.notification-hero h1{margin:4px 0 5px;font-size:26px;color:#244963}.notification-hero p{margin:0;font-size:11px;line-height:1.5;color:#62798b}
.notification-hero-count{width:82px;height:82px;border-radius:25px;background:rgba(255,255,255,.86);display:grid;place-items:center;align-content:center;box-shadow:0 8px 18px rgba(55,82,112,.10)}
.notification-hero-count b{font-size:26px}.notification-hero-count small{font-size:7px;color:#708397;font-weight:850}
.notification-tabs{display:flex;gap:6px;overflow:auto;padding:12px 2px 7px;scrollbar-width:none}
.notification-tabs::-webkit-scrollbar{display:none}.notification-tabs button{white-space:nowrap;border:1px solid #e2eaf0;background:rgba(255,255,255,.83);color:#547086;border-radius:999px;padding:8px 10px;font-size:8px;font-weight:900}
.notification-tabs button.active{background:#375fff;color:#fff;border-color:#375fff;box-shadow:0 6px 13px rgba(55,95,255,.18)}
.notification-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 2px 7px;color:#718391;font-size:8px}
.notification-list{display:grid;gap:8px}.notification-card{position:relative;display:grid;grid-template-columns:43px 1fr;gap:10px;padding:12px;border-radius:23px;background:#fff;border:1px solid #e6edf2;box-shadow:0 7px 16px rgba(47,77,104,.07)}
.notification-card.unread{background:linear-gradient(135deg,#fff,#f7fbff);border-color:#d9e9ff}.notification-card.pinned{box-shadow:inset 4px 0 #ffd35b,0 7px 16px rgba(47,77,104,.07)}
.notification-icon{width:43px;height:43px;border-radius:15px;background:#f0f5ff;display:grid;place-items:center;font-size:24px}
.notification-meta{display:flex;justify-content:space-between;gap:9px;color:#7a8c99;font-size:7px;font-weight:850}.notification-meta time{white-space:nowrap}
.notification-copy h3{font-size:11px;margin:4px 0 3px;color:#274963}.notification-copy p{font-size:8.5px;line-height:1.5;margin:0;color:#607788}
.notification-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.notification-actions .mini{padding:7px 9px;border-radius:13px;font-size:7.5px}
.notification-dot{position:absolute;right:10px;top:10px;width:8px;height:8px;border-radius:50%;background:#3f8cff;box-shadow:0 0 0 3px rgba(63,140,255,.12)}
.notification-empty{padding:24px;text-align:center}.notification-settings-card{margin-top:14px;padding:14px;background:rgba(255,255,255,.90);border-radius:28px;box-shadow:var(--shadow)}
.notification-settings-card .section-head{margin-top:0}.notification-master{display:flex;gap:9px;align-items:flex-start;background:#f2f7ff;border-radius:18px;padding:10px}
.notification-master input{margin-top:2px}.notification-master span{display:grid;gap:2px}.notification-master b{font-size:9px}.notification-master small{font-size:7px;color:#708494}
.notification-settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.notification-settings-grid label{display:grid;gap:5px;font-size:7.5px;font-weight:900;color:#577086}
.notification-settings-grid input{width:100%;box-sizing:border-box;border:1px solid #dbe6ee;border-radius:14px;padding:9px;background:#fff;color:#2d4c64}
.notification-days{margin-top:11px}.notification-days>b{display:block;font-size:8px;margin-bottom:6px}.notification-days>div{display:flex;flex-wrap:wrap;gap:5px}.notification-days label input{position:absolute;opacity:0;pointer-events:none}
.notification-days label span{display:block;border:1px solid #dce6ee;background:#fff;border-radius:999px;padding:7px 9px;font-size:7px;font-weight:900;color:#60798b}
.notification-days label input:checked+span{background:#e8edff;color:#4657c9;border-color:#aeb8ff}
.notification-types{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:11px}.notification-types label{background:#fff9e7;border:1px solid #eee6cf;border-radius:14px;padding:9px;font-size:7.5px;font-weight:850}
.notification-settings-actions{margin-top:11px}.notification-settings-actions .primary{font-size:8px}
.notification-tech-note{display:grid;grid-template-columns:36px 1fr;gap:9px;align-items:start;margin-top:12px;padding:10px;border-radius:18px;background:#eef9f3;border:1px solid #d9ede0}
.notification-tech-note>span{font-size:24px}.notification-tech-note b{font-size:8px}.notification-tech-note p{margin:3px 0 0;font-size:7.3px;line-height:1.5;color:#647a6b}
.next-step-card{margin-top:12px;display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:center;padding:12px 13px;border-radius:24px;background:linear-gradient(135deg,#eef5ff,#fff6d9);box-shadow:0 8px 18px rgba(50,80,108,.09);border:1px solid rgba(255,255,255,.9)}
.next-step-icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#fff;font-size:25px;box-shadow:0 5px 12px rgba(55,80,105,.08)}
.next-step-card b{font-size:10px;color:#2d4d66}.next-step-card p{font-size:8px;line-height:1.45;color:#637a8b;margin:3px 0 0}.next-step-card .mini{font-size:7.5px;padding:8px 10px;white-space:nowrap}
@media(max-width:600px){
  .notification-hero{grid-template-columns:1fr}.notification-hero-count{width:auto;height:auto;padding:9px;border-radius:18px;display:flex;gap:6px;justify-content:center}
  .notification-settings-grid{grid-template-columns:1fr}.notification-types{grid-template-columns:1fr 1fr}
  .next-step-card{grid-template-columns:42px 1fr}.next-step-card>button{grid-column:1/-1;width:100%}
}
@media(max-width:430px){
  .notification-card{grid-template-columns:36px 1fr;padding:10px}.notification-icon{width:36px;height:36px;font-size:20px}.notification-meta{display:grid;gap:2px}
}


/* ===== Pesan Guru + Notifikasi Guru ===== */
.teacher-message-panel{
  background:linear-gradient(135deg,#f5f8ff,#fff8ed);border:1px solid #e4eaf2;border-radius:27px;padding:14px;
  box-shadow:0 9px 20px rgba(47,76,105,.08)
}
.teacher-message-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:9px}
.teacher-message-grid label{display:grid;gap:5px;font-size:8px;font-weight:900;color:#506b80}
.teacher-message-grid label.full{grid-column:1/-1}
.teacher-message-grid select,.teacher-message-grid input,.teacher-message-grid textarea{
  width:100%;box-sizing:border-box;border:1px solid #dce6ee;border-radius:15px;background:#fff;padding:10px;color:#2b4a63;outline:none
}
.teacher-message-grid textarea{resize:vertical;min-height:88px;line-height:1.45}
.teacher-message-grid select:focus,.teacher-message-grid input:focus,.teacher-message-grid textarea:focus{border-color:#8297ff;box-shadow:0 0 0 3px rgba(93,111,255,.08)}
.teacher-message-preview{margin-top:10px;display:grid;grid-template-columns:40px 1fr;gap:9px;align-items:start;padding:10px;border-radius:18px;background:#fff;border:1px dashed #d9e2eb}
.teacher-message-preview>span{width:40px;height:40px;border-radius:14px;background:#eef3ff;display:grid;place-items:center;font-size:22px}
.teacher-message-preview small{display:block;font-size:6.6px;font-weight:950;color:#7b8a9a}.teacher-message-preview b{display:block;margin:2px 0 3px;font-size:9px;color:#304d66}
.teacher-message-preview p{margin:0;font-size:7.5px;line-height:1.45;color:#65798a}
.teacher-message-actions{display:flex;gap:10px;align-items:center;margin-top:10px}.teacher-message-actions small{font-size:6.8px;line-height:1.45;color:#788793;max-width:520px}
.teacher-message-history{display:grid;gap:7px}.teacher-message-history article{display:grid;grid-template-columns:38px 1fr;gap:9px;padding:10px 11px;border-radius:19px;background:#fff;border:1px solid #e7edf1;box-shadow:0 5px 12px rgba(48,76,102,.05)}
.teacher-message-history article>span{width:38px;height:38px;border-radius:13px;background:#f4f1ff;display:grid;place-items:center;font-size:20px}
.teacher-message-history b{font-size:9px;color:#2f4e67}.teacher-message-history p{margin:3px 0;font-size:7.6px;line-height:1.45;color:#607788}.teacher-message-history small{font-size:6.5px;color:#8896a2}
.teacher-empty.compact{padding:14px}.teacher-empty.compact>div{font-size:26px}.teacher-empty.compact h3{font-size:10px;margin:4px 0}.teacher-empty.compact p{font-size:7px}
.teacher-notification-head{background:linear-gradient(135deg,#eef6ff,#fff4ec)}
.teacher-notification-note{margin-top:12px;display:grid;grid-template-columns:40px 1fr;gap:9px;padding:11px;border-radius:20px;background:#eef9f4;border:1px solid #d8ece0}
.teacher-notification-note>span{font-size:25px}.teacher-notification-note b{font-size:8.5px}.teacher-notification-note p{margin:3px 0 0;font-size:7.3px;line-height:1.5;color:#61786c}
@media(max-width:600px){
  .teacher-message-grid{grid-template-columns:1fr}.teacher-message-grid label.full{grid-column:auto}
  .teacher-message-actions{display:grid}.teacher-message-actions .primary{width:100%}
}

/* Hanya bagian Peringkat Lengkap pada halaman peringkat guru */
.teacher-rank-chart-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;background:#fff;border-radius:24px;padding:22px 18px 18px;box-shadow:0 9px 25px rgba(30,47,90,.09);scrollbar-width:thin;overscroll-behavior-x:contain}
.teacher-rank-chart-scroll:focus-visible{outline:3px solid #5795e3;outline-offset:3px}
.teacher-rank-chart{display:flex;gap:12px;align-items:flex-end;width:max(100%,calc(var(--rank-count) * 82px));min-height:375px;padding:0 10px}
.teacher-rank-column{width:70px;min-width:70px;flex:1 0 70px;padding:0;border:0;background:transparent;display:flex;flex-direction:column;align-items:stretch;cursor:pointer;min-height:370px;font:inherit;color:#35465e;position:relative}
.teacher-rank-bar-area{height:255px;position:relative;display:flex;align-items:flex-end;justify-content:center;border-bottom:2px solid #cedbe8;background:repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),#edf2f8 calc(25% - 1px),#edf2f8 25%)}
.teacher-rank-bar{width:66%;display:block;border-radius:9px 9px 0 0;background:linear-gradient(180deg,#82c8ff,#4389d9);min-height:0;box-shadow:inset 0 2px 0 rgba(255,255,255,.28);transition:filter .2s}
.teacher-rank-bar-score{position:absolute;left:-8px;right:-8px;font-size:12px;line-height:1.3;font-weight:900;white-space:nowrap;text-align:center;color:#294560;z-index:1}
.teacher-rank-name{display:block;position:relative;margin:15px auto 0;height:95px;width:100%;font-size:12px;font-weight:750;white-space:nowrap;transform:rotate(-43deg);transform-origin:top center;text-align:right}
.teacher-rank-top-1 .teacher-rank-bar{background:linear-gradient(180deg,#ffe784,#e8aa29)}
.teacher-rank-top-2 .teacher-rank-bar{background:linear-gradient(180deg,#dbe5f0,#829ab3)}
.teacher-rank-top-3 .teacher-rank-bar{background:linear-gradient(180deg,#f6cc9c,#bb7b43)}
.teacher-rank-top .teacher-rank-bar-score{font-size:14px;color:#744c1a}
.teacher-rank-top .teacher-rank-name{font-weight:950;color:#7a5222}
.teacher-rank-column:hover .teacher-rank-bar,.teacher-rank-column:focus-visible .teacher-rank-bar{filter:brightness(1.1)}
.teacher-rank-column:focus-visible{outline:2px solid #3d87d6;outline-offset:3px;border-radius:6px}

/* Akses rekap nilai langsung dari Dashboard Guru */
.teacher-grades-dashboard{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:14px 0 20px;padding:22px;border-radius:24px;background:linear-gradient(120deg,#e9f6ff,#fff8e5);border:1px solid #dcecf7;box-shadow:0 9px 24px rgba(40,73,104,.08)}
.teacher-grades-dashboard-copy{flex:1 1 320px;min-width:0}
.teacher-grades-dashboard-copy h2{margin:6px 0;font-size:clamp(17px,2vw,23px);color:#244963}
.teacher-grades-dashboard-copy p{margin:4px 0 8px;color:#4d6678;font-size:12px;line-height:1.55}
.teacher-grades-dashboard-copy small{color:#658095;font-size:10px}
.teacher-grades-dashboard-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.teacher-grades-dashboard-actions button{white-space:nowrap;min-height:40px}
.teacher-grades-dashboard-actions button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:600px){.teacher-grades-dashboard{padding:16px}.teacher-grades-dashboard-actions{width:100%}.teacher-grades-dashboard-actions button{flex:1 1 100%;white-space:normal}}

.teacher-roster-manage{margin:16px 0;padding:18px;border-radius:23px;background:#f5f9ff;box-shadow:0 8px 18px rgba(20,50,100,.07)}
.teacher-roster-manage h2{font-size:19px;margin:0 0 5px;color:#21425b}
.teacher-roster-manage p{font-size:11px;color:#526780}
.teacher-roster-manage form{margin:12px 0;padding:12px;border-radius:14px;background:white}
.teacher-roster-manage input,.teacher-roster-manage textarea{width:100%;box-sizing:border-box}
.teacher-add-class-form textarea{width:100%;min-height:95px}
.role-form select,.role-form textarea{width:100%;border:1px solid #d6e2ed;border-radius:12px;padding:10px;background:#fff}


/* Autentikasi akun guru: login / daftar / pemulihan email */
.teacher-auth-tabs{display:flex;gap:8px;margin:12px 0;padding:5px;background:rgba(255,255,255,.65);border-radius:16px}
.teacher-auth-tabs button{flex:1;border:0;border-radius:12px;padding:11px 12px;background:transparent;color:#34536f;font-weight:850;cursor:pointer}
.teacher-auth-tabs button.active{background:#fff;box-shadow:0 4px 14px rgba(39,70,120,.12);color:#3054a7}
.teacher-auth-status{margin-top:8px;font-size:12px;line-height:1.5;color:#34536f;min-height:1em}
[data-teacher-auth-form] .linkbtn{align-self:flex-start;margin-top:3px}
[data-teacher-resend]{margin:8px 0 2px}

/* Posisi beranda sesuai penanda: bintang kanan atas, tas kiri atas. */
.companion-hero[class] .companion-wear-pin{
  left:auto;
  right:0;
  top:-2px;
}
.companion-hero[class] .companion-wear-bag{
  left:0;
  top:0;
}

/* Pemasangan aplikasi: petunjuk ringkas tanpa mengubah halaman pembelajaran. */
.install-panel{margin:0 0 12px;padding:12px 14px;border-radius:20px;background:rgba(255,255,255,.88);color:#244963}
.install-panel[hidden],.install-help[hidden]{display:none!important}
.install-promo{display:flex;gap:10px;align-items:center}
.install-promo>span{font-size:24px}.install-promo>div{flex:1;min-width:0}
.install-promo b,.install-promo small{display:block}.install-promo b{font-size:12px}.install-promo small{font-size:10px;margin-top:3px}
.install-promo button{font-size:11px;padding:10px;min-height:40px}
.install-help{font-size:12px;line-height:1.6;margin-top:10px}.install-help p{margin:6px 0}
@media(max-width:420px){.install-promo{flex-wrap:wrap}.install-promo button{margin-left:auto}}

/* Teacher-only message archive controls. */
.teacher-message-history-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.teacher-message-history-copy{min-width:0;flex:1;overflow-wrap:anywhere}
.teacher-message-item-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.teacher-message-history-tabs button,.teacher-message-item-actions button{white-space:normal}
