/* ── Logbook widget (js/widgets/logbook.js, logbook-teacher.js) ───────────── */
.lb-w{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:.75rem;text-align:center;container-type:inline-size}
.lb-w-ic{position:relative;width:clamp(2.6rem,18cqi,4rem);height:clamp(2.6rem,18cqi,4rem);border-radius:50%;background:var(--main-sub);color:var(--main);display:grid;place-items:center}
.lb-w-ic .material-icons-outlined{font-size:clamp(1.5rem,10cqi,2.4rem)}
.lb-badge{position:absolute;right:-.1rem;top:-.1rem;width:.85rem;height:.85rem;border-radius:50%;background:#e5584f;border:2px solid #fff}
.lb-w-title{font-weight:700;font-size:clamp(.95rem,6cqi,1.4rem);line-height:1.2;overflow-wrap:anywhere}
.lb-w-sub{font-size:clamp(.75rem,4cqi,1rem);color:var(--font-sub)}
.lb-w-msg{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;text-align:center;font-size:.85rem;color:var(--font-sub)}
body.student-mode .widget .lb-open,body.student-mode .widget .lb-retry{pointer-events:auto;cursor:pointer}

/* modal shell: reuses .sym-modal-backdrop / .sym-modal */
.lb-backdrop{z-index:12010}
.lb-modal{width:min(46rem,100%)}
.lb-modal--teacher{width:min(64rem,100%)}
.lb-body{flex:1;min-height:0;overflow:auto;padding:0 1.5rem 1.25rem}
.lb-sub{font-size:.78rem;color:var(--font-sub)}
.lb-help{font-size:.85rem;color:var(--font-sub);line-height:1.45;margin:.25rem 0 .75rem}
.lb-empty,.lb-loading{padding:1.5rem;text-align:center;color:var(--font-sub);font-size:.9rem}
.lb-ic{width:2rem;height:2rem;border:none;border-radius:50%;background:transparent;color:var(--font-sub);cursor:pointer;display:inline-grid;place-items:center;flex-shrink:0}
.lb-ic:hover:not(:disabled){background:var(--hover);color:var(--font)}
.lb-ic:disabled{opacity:.3;cursor:default}
.lb-ic .material-icons-outlined{font-size:1.15rem}
.lb-err{margin:.5rem 0;padding:.6rem .8rem;border-radius:.6rem;background:rgba(224,82,82,.1);color:#b3261e;font-size:.85rem;font-weight:600}
.lb-req{color:#e5584f;margin-left:.2rem}

/* pupil: home */
.lb-sec-h{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:1rem 0 .5rem;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--font-sub)}
.lb-sec-h .btn{height:2.25rem;padding:0 1rem;text-transform:none;letter-spacing:0;font-size:.85rem}
.lb-sec-h .btn .material-icons-outlined{font-size:1.1rem}
.lb-occ{display:flex;align-items:center;gap:.75rem;padding:.7rem .9rem;margin-bottom:.4rem;border:1px solid var(--border);border-radius:.9rem;background:var(--el)}
.lb-occ.is-closed{opacity:.6}
.lb-occ-main{flex:1;min-width:0;display:flex;flex-direction:column}
.lb-occ .btn{height:2.25rem;padding:0 1rem;font-size:.85rem}
.lb-entry{padding:.85rem 1rem;margin-bottom:.6rem;border:1px solid var(--border);border-radius:.9rem;background:var(--el)}
.lb-entry-h{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8rem;color:var(--font-sub);margin-bottom:.5rem;flex-wrap:wrap}
.lb-entry-acts{display:inline-flex;align-items:center;gap:.25rem}
.lb-entry-acts .btn{height:1.9rem;padding:0 .75rem;font-size:.75rem}
.lb-f{margin:.4rem 0}
.lb-f-p{font-size:.78rem;font-weight:600;color:var(--font-sub);margin-bottom:.15rem}
.lb-f-v{font-size:.95rem;line-height:1.5;overflow-wrap:anywhere}
.lb-f-ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem;font-size:.92rem}
.lb-f-ticks li{display:flex;align-items:center;gap:.4rem}
.lb-f-ticks .material-icons-outlined{font-size:1.15rem;color:var(--main)}
.lb-f-slider{display:flex;align-items:center;gap:.6rem;font-size:.9rem}
.lb-bar{flex:1;min-width:3rem;max-width:14rem;height:.55rem;border-radius:999px;background:var(--hover);overflow:hidden}
.lb-bar i{display:block;height:100%;border-radius:inherit;background:var(--main)}
.lb-comment{display:flex;gap:.6rem;margin-top:.7rem;padding:.65rem .8rem;border-radius:.7rem;background:var(--main-sub);font-size:.9rem;line-height:1.45}
.lb-comment-h{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--main);margin-bottom:.1rem}
.lb-dot{width:.8rem;height:.8rem;border-radius:50%;margin-top:.3rem;flex-shrink:0;background:var(--border)}
.lb-dot--green{background:#3fb37f}.lb-dot--yellow{background:#f0b429}.lb-dot--red{background:#e5584f}

/* pupil: editor and its form */
.lb-edit-h{display:flex;align-items:center;gap:.75rem;margin:.25rem 0 1rem}
.lb-back{display:inline-flex;align-items:center;gap:.25rem;border:none;background:transparent;color:var(--main);font-family:inherit;font-weight:600;font-size:.9rem;cursor:pointer;padding:.25rem .4rem;border-radius:.5rem}
.lb-back:hover{background:var(--main-sub)}
.lb-form{display:flex;flex-direction:column;gap:1.1rem}
.lb-q{display:flex;flex-direction:column;gap:.4rem;border:none;padding:0;margin:0;min-width:0}
.lb-q-p{font-size:1rem;font-weight:600;color:var(--font);padding:0}
.lb-q--bad{outline:2px solid #e5584f;outline-offset:.4rem;border-radius:.5rem}
.lb-ta{width:100%;box-sizing:border-box;padding:.7rem .85rem;border:1.5px solid var(--border);border-radius:.7rem;background:#fff;font-family:inherit;font-size:1rem;line-height:1.5;resize:vertical;color:var(--font);outline:none}
.lb-ta:focus{border-color:var(--main);box-shadow:0 0 0 .2rem var(--main-sub)}
.lb-chk{display:flex;align-items:center;gap:.65rem;padding:.45rem .6rem;border-radius:.6rem;cursor:pointer;font-size:1rem}
.lb-chk:hover{background:var(--main-sub)}
.lb-chk input{position:absolute;opacity:0;pointer-events:none}
.lb-chk-box{width:1.5rem;height:1.5rem;flex-shrink:0;border:2px solid var(--main);border-radius:.4rem;background:#fff;display:grid;place-items:center;transition:background .12s}
.lb-chk input:checked + .lb-chk-box{background:var(--main)}
.lb-chk input:checked + .lb-chk-box::after{content:'';width:.38rem;height:.7rem;border:solid #fff;border-width:0 3px 3px 0;transform:translateY(-1px) rotate(45deg)}
.lb-chk input:focus-visible + .lb-chk-box{outline:3px solid var(--main-sub);outline-offset:2px}
.lb-sl-row{display:flex;align-items:center;gap:1rem}
.lb-sl{flex:1;height:2rem;accent-color:var(--main);cursor:pointer}
.lb-sl.is-unset{opacity:.45}
.lb-sl-val{min-width:2rem;text-align:center;font-size:1.3rem;color:var(--main)}
.lb-sl-ticks{display:flex;justify-content:space-between;padding:0 .45rem;margin-right:3rem;font-size:.75rem;color:var(--font-sub)}
.lb-sl-lbls{display:flex;justify-content:space-between;gap:1rem;font-size:.78rem;color:var(--font-sub);margin-right:3rem}
.lb-edit-f{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.25rem}

/* teacher */
.lb-tabs{display:flex;align-items:center;gap:.25rem;border-bottom:1px solid var(--divider);margin:0 -1.5rem 1rem;padding:0 1.5rem;position:sticky;top:0;background:var(--el);z-index:2}
.lb-tab{border:none;background:transparent;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--font-sub);padding:.7rem .9rem;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.lb-tab:hover{color:var(--font)}
.lb-tab.is-on{color:var(--main);border-bottom-color:var(--main)}
.lb-savestate{margin-left:auto;font-size:.78rem;color:var(--font-sub)}
.lb-savestate[data-s="error"]{color:#b3261e;font-weight:600}
.lb-filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:.9rem}
.lb-filters select,.lb-set select,.lb-qe select{height:2.25rem;padding:0 .6rem;border:1.5px solid var(--border);border-radius:.6rem;background:#fff;font-family:inherit;font-size:.85rem;color:var(--font)}
.lb-seg{margin-left:auto;display:inline-flex;border:1.5px solid var(--border);border-radius:999px;overflow:hidden}
.lb-seg button{border:none;background:#fff;padding:.4rem .9rem;font-family:inherit;font-size:.82rem;font-weight:600;color:var(--font-sub);cursor:pointer}
.lb-seg button.is-on{background:var(--main);color:#fff}
.lb-orig-box{margin:.5rem 0;padding:.6rem .8rem;border-radius:.7rem;background:var(--hover);font-size:.9rem}
.lb-orig-h{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--font-sub);margin-bottom:.2rem}
.lb-cmt{display:flex;align-items:flex-start;gap:.6rem;margin-top:.75rem;padding-top:.7rem;border-top:1px dashed var(--divider)}
.lb-cmt-st{display:flex;gap:.3rem;padding-top:.35rem}
.lb-st{width:1.15rem;height:1.15rem;border-radius:50%;border:2px solid transparent;cursor:pointer;opacity:.45;padding:0}
.lb-st.is-on{opacity:1;border-color:var(--font)}
.lb-st--green{background:#3fb37f}.lb-st--yellow{background:#f0b429}.lb-st--red{background:#e5584f}
.lb-cmt-t{flex:1;min-height:2.1rem;max-height:9rem;padding:.4rem .6rem;border:1.5px solid var(--border);border-radius:.6rem;font-family:inherit;font-size:.88rem;resize:none;outline:none;background:#fff}
.lb-cmt-t:focus{border-color:var(--main)}
.lb-cmt-save{height:2.1rem;padding:0 .9rem;font-size:.8rem}

/* summary */
.lb-sum-h{font-weight:700;margin-bottom:.75rem}
.lb-sum{padding:.85rem 1rem;margin-bottom:.65rem;border:1px solid var(--border);border-radius:.9rem;background:var(--el)}
.lb-sum-q{font-weight:600;margin-bottom:.5rem}
.lb-sum-avg{font-size:.95rem;margin-bottom:.4rem}
.lb-sum-avg b{font-size:1.4rem;color:var(--main)}
.lb-hist{display:flex;align-items:flex-end;gap:.4rem;height:5.5rem;padding-top:1rem}
.lb-hist-c{flex:1;max-width:3.2rem;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.15rem;font-size:.75rem;color:var(--font-sub)}
.lb-hist-c i{display:block;width:100%;min-height:2px;border-radius:.3rem .3rem 0 0;background:var(--main)}
.lb-hist-n{font-weight:700;color:var(--font);font-size:.78rem;min-height:1em}
.lb-opt-row{display:grid;grid-template-columns:minmax(6rem,14rem) 1fr 2rem;align-items:center;gap:.6rem;margin:.25rem 0;font-size:.9rem}
.lb-opt-row .lb-bar{max-width:none}
.lb-sum-txt{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem;font-size:.92rem}
.lb-sum-txt b{color:var(--main);margin-right:.35rem}

/* question editor */
.lb-qe{padding:.75rem .85rem;margin-bottom:.55rem;border:1px solid var(--border);border-radius:.9rem;background:var(--el);display:flex;flex-direction:column;gap:.55rem}
.lb-qe-top{display:flex;align-items:center;gap:.5rem}
.lb-qe-prompt,.lb-set input[type=text],.lb-occ-title{flex:1;min-width:0;height:2.25rem;padding:0 .7rem;border:1.5px solid var(--border);border-radius:.6rem;font-family:inherit;font-size:.92rem;background:#fff;color:var(--font);outline:none}
.lb-qe-prompt:focus,.lb-set input:focus,.lb-occ-title:focus,.lb-qe-opts:focus{border-color:var(--main)}
.lb-qe-acts{display:inline-flex}
.lb-qe-opts{width:100%;box-sizing:border-box;padding:.5rem .7rem;border:1.5px solid var(--border);border-radius:.6rem;font-family:inherit;font-size:.88rem;resize:vertical;outline:none;background:#fff}
.lb-qe-scale{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.lb-qe-scale label{display:flex;flex-direction:column;gap:.15rem;font-size:.75rem;color:var(--font-sub)}
.lb-qe-scale input{height:2.1rem;padding:0 .5rem;border:1.5px solid var(--border);border-radius:.5rem;font-family:inherit;font-size:.88rem;background:#fff;min-width:0}
.lb-qe-req{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--font-sub);cursor:pointer}
.lb-qe-add{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 .25rem}
.lb-qe-add .btn{height:2.25rem;padding:0 .9rem;font-size:.82rem}
.lb-qe-add .material-icons-outlined{font-size:1.05rem}
.lb-occ-ed{padding:.8rem .9rem;margin-top:.7rem;border:1px solid var(--border);border-radius:.9rem;background:var(--el)}
.lb-occ-ed-top{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.lb-occ-due,.lb-occ-closed{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--font-sub)}
.lb-occ-due input{height:2.1rem;border:1.5px solid var(--border);border-radius:.5rem;padding:0 .4rem;font-family:inherit;background:#fff}
.lb-occ-q{margin-top:.6rem}
.lb-occ-q summary{cursor:pointer;font-size:.85rem;font-weight:600;color:var(--main);padding:.2rem 0}
.lb-occ-q .lb-qhost{margin-top:.5rem}
.lb-set{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.1rem;font-size:.88rem;font-weight:600}
.lb-set > *:not(span):not(p){align-self:flex-start}
.lb-set .lb-help{font-weight:400}
.lb-set input[type=date],.lb-set input[type=number]{height:2.25rem;border:1.5px solid var(--border);border-radius:.6rem;padding:0 .6rem;font-family:inherit;background:#fff;width:11rem}
.lb-danger{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--divider)}
.lb-purge{color:#b3261e;border-color:#e8b4b0}
.lb-purge .material-icons-outlined{font-size:1.15rem}
@media (max-width:40rem){.lb-qe-scale{grid-template-columns:1fr 1fr}.lb-opt-row{grid-template-columns:1fr 1fr 2rem}.lb-body{padding:0 1rem 1rem}}

/* live occasions */
.lb-w-btns{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}
.lb-w-btns .btn{height:2.2rem;padding:0 .85rem;font-size:.8rem}
.lb-w-btns .btn .material-icons-outlined{font-size:1.05rem}
.lb-livebar{display:flex;align-items:center;gap:.7rem;margin:0 -1.5rem .6rem;padding:.6rem 1.5rem;background:#fdecea;border-bottom:1px solid #f3c6c1;position:sticky;top:0;z-index:3}
.lb-livebar[hidden]{display:none}
.lb-livebar-t{flex:1;font-weight:600;font-size:.9rem;color:#8c2a22;min-width:0;overflow-wrap:anywhere}
.lb-livebar .btn{height:2rem;padding:0 .85rem;font-size:.8rem}
.lb-live-dot{width:.7rem;height:.7rem;border-radius:50%;background:#e5584f;flex-shrink:0;animation:lb-pulse 1.4s ease-in-out infinite}
@keyframes lb-pulse{0%,100%{box-shadow:0 0 0 0 rgba(229,88,79,.55)}50%{box-shadow:0 0 0 .5rem rgba(229,88,79,0)}}
.lb-live-tag{display:inline-block;margin-right:.45rem;padding:.05rem .45rem;border-radius:999px;background:#e5584f;color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}
.lb-occ.is-live{border-color:#e5584f;box-shadow:0 0 0 .15rem rgba(229,88,79,.14)}
.lb-live-banner{display:flex;align-items:center;gap:.6rem;margin:-.25rem 0 1rem;padding:.65rem .9rem;border-radius:.8rem;background:#fdecea;color:#8c2a22;font-weight:600;font-size:.92rem}
.lb-occ-btns{display:flex;flex-wrap:wrap;gap:.5rem}
.lb-occ-btns .material-icons-outlined{font-size:1.15rem}
.lb-live-box{margin-top:.7rem;padding:.9rem 1rem;border:1.5px solid #e5584f;border-radius:.9rem;background:#fff8f7;display:flex;flex-direction:column;gap:.6rem}
.lb-live-box .lb-help{margin:0}
.lb-live-title{height:2.4rem;padding:0 .75rem;border:1.5px solid var(--border);border-radius:.6rem;font-family:inherit;font-size:.95rem;font-weight:600;background:#fff}
.lb-live-copy{height:2.2rem;padding:0 .6rem;border:1.5px solid var(--border);border-radius:.6rem;font-family:inherit;font-size:.85rem;background:#fff;align-self:flex-start}
.lb-live-go{display:flex;justify-content:flex-end;gap:.6rem}
.lb-live-start .material-icons-outlined{font-size:1.15rem}
.lb-occ-live{height:2.1rem;padding:0 .8rem;font-size:.8rem}
.lb-occ-live .material-icons-outlined{font-size:1.05rem}
.lb-occ-live.is-on{background:#e5584f;border-color:#e5584f;color:#fff}
.lb-expired{font-size:.78rem;font-weight:600;color:#b3261e}
@media (prefers-reduced-motion:reduce){.lb-live-dot{animation:none}}

.lb-live-tag--past{background:var(--hover);color:var(--font-sub)}

/* the always-asked questions, shown read-only inside each occasion */
.lb-always{margin-top:.75rem;padding:.75rem .9rem;border:1.5px dashed var(--border);border-radius:.8rem;background:var(--hover)}
.lb-always-h{display:flex;align-items:center;gap:.45rem;font-size:.9rem}
.lb-always-h .material-icons-outlined{font-size:1.1rem;color:var(--font-sub)}
.lb-always-h .btn{margin-left:auto;height:1.9rem;padding:0 .75rem;font-size:.75rem}
.lb-always-sub{margin:.15rem 0 .5rem;font-size:.78rem;color:var(--font-sub)}
.lb-al-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem}
.lb-al-list li{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem}
.lb-al-n{width:1.35rem;height:1.35rem;flex-shrink:0;border-radius:50%;background:#fff;border:1px solid var(--border);display:grid;place-items:center;font-size:.72rem;font-weight:700;color:var(--font-sub)}
.lb-al-t{display:flex;flex-direction:column;min-width:0}
.lb-al-t b{font-weight:600;overflow-wrap:anywhere}
.lb-al-meta{font-size:.76rem;color:var(--font-sub)}
.lb-al-none{font-size:.85rem;color:var(--font-sub);font-style:italic}

.lb-set-free{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:600}
.lb-set-free input{width:1.05rem;height:1.05rem;accent-color:var(--main)}

/* ═══ Playful mode (for younger pupils) — toggled per logbook; class .lb-play sits on the pupil's modal ═══ */
.lb-modal{position:relative}
@keyframes lb-bump{0%{transform:scale(1)}35%{transform:scale(1.45) rotate(-6deg)}70%{transform:scale(.92) rotate(3deg)}100%{transform:scale(1)}}
@keyframes lb-pop{0%{transform:scale(.6)}55%{transform:scale(1.25)}100%{transform:scale(1)}}
@keyframes lb-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-.45rem)}}
@keyframes lb-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-2.5deg)}75%{transform:rotate(2.5deg)}}
.lb-sl-val.lb-bump{animation:lb-bump .45s ease-out}
.lb-chk input:checked + .lb-chk-box{animation:lb-pop .3s ease-out}

.lb-play{background:linear-gradient(180deg,#fff9e6 0%,#eaf8fb 100%);font-size:1.15rem}
.lb-play .sym-modal-title{font-size:1.4rem;font-weight:700}
.lb-play .lb-sec-h{font-size:.95rem;color:#8a6d1f}
.lb-play .lb-occ,.lb-play .lb-entry{border-radius:1.4rem;border-width:2px;background:#fff;box-shadow:0 .25rem .8rem rgba(0,0,0,.06);padding:1rem 1.2rem}
.lb-play .lb-occ-main b{font-size:1.25rem}
.lb-play .lb-sub{font-size:.95rem}
.lb-play .btn{height:3.3rem;padding:0 1.6rem;font-size:1.15rem;font-weight:700;border-radius:999px}
.lb-play .lb-occ .btn,.lb-play .lb-sec-h .btn{height:3rem;font-size:1.05rem}
.lb-play .lb-occ-go.btn-p,.lb-play .lb-new{animation:lb-bob 1.8s ease-in-out infinite}
.lb-play .lb-edit-h b{font-size:1.5rem}
.lb-play .lb-back{font-size:1.1rem;padding:.5rem .8rem}
.lb-play .lb-form{gap:1.8rem}
.lb-play .lb-q{background:#fff;padding:1.2rem 1.3rem;border-radius:1.5rem;box-shadow:0 .25rem .8rem rgba(0,0,0,.06);gap:.8rem}
.lb-play .lb-q-p{font-size:1.5rem;line-height:1.3;font-weight:700}
.lb-play .lb-ta{font-size:1.35rem;min-height:9rem;border-width:3px;border-radius:1.2rem;padding:1rem 1.1rem}
.lb-play .lb-ta:focus{box-shadow:0 0 0 .3rem #ffe9a8;border-color:#f0b429}
.lb-play .lb-chk{font-size:1.4rem;padding:.8rem 1rem;border-radius:1.1rem;background:#f4fbfc;margin:.2rem 0}
.lb-play .lb-chk-box{width:2.6rem;height:2.6rem;border-radius:.9rem;border-width:3px}
.lb-play .lb-chk input:checked + .lb-chk-box{background:#3fb37f;border-color:#3fb37f}
.lb-play .lb-chk input:checked + .lb-chk-box::after{width:.6rem;height:1.2rem;border-width:0 5px 5px 0}
/* the big slider: a thick track that fills up, a star as the handle, a bouncing number */
.lb-play .lb-sl-row{gap:1.2rem;padding:.4rem 0}
.lb-play .lb-sl{-webkit-appearance:none;appearance:none;height:3.6rem;background:transparent;accent-color:#f0b429;margin:0}
.lb-play .lb-sl::-webkit-slider-runnable-track{height:1.7rem;border-radius:999px;background:linear-gradient(90deg,#ffd23f calc(var(--pct,0)*1%),#e3edef calc(var(--pct,0)*1%));box-shadow:inset 0 .15rem .3rem rgba(0,0,0,.12)}
.lb-play .lb-sl::-moz-range-track{height:1.7rem;border-radius:999px;background:#e3edef}
.lb-play .lb-sl::-moz-range-progress{height:1.7rem;border-radius:999px;background:#ffd23f}
.lb-play .lb-sl::-webkit-slider-thumb{-webkit-appearance:none;width:3.8rem;height:3.8rem;margin-top:-1.05rem;border-radius:50%;border:5px solid #fff;box-shadow:0 .35rem .9rem rgba(0,0,0,.28);cursor:grab;
  background:#ff9f1c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7-6.2-3.7-6.2 3.7 1.6-7L2 9.2l7.1-.6z'/%3E%3C/svg%3E") center/62% no-repeat}
.lb-play .lb-sl::-moz-range-thumb{width:3rem;height:3rem;border-radius:50%;border:5px solid #fff;box-shadow:0 .35rem .9rem rgba(0,0,0,.28);cursor:grab;
  background:#ff9f1c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7-6.2-3.7-6.2 3.7 1.6-7L2 9.2l7.1-.6z'/%3E%3C/svg%3E") center/62% no-repeat}
.lb-play .lb-sl.is-unset{opacity:.7}
.lb-play .lb-sl-val{min-width:4.5rem;height:4.5rem;border-radius:50%;background:#ffd23f;color:#4a3200;font-size:2.4rem;display:grid;place-items:center;box-shadow:0 .3rem .8rem rgba(0,0,0,.15)}   /* dark on yellow: white did not pass a contrast check */
.lb-play .lb-sl-ticks{font-size:1rem;font-weight:700;padding:0 1.6rem;margin-right:5.7rem}
.lb-play .lb-sl-lbls{font-size:1.05rem;font-weight:600;margin-right:5.7rem}
.lb-play .lb-edit-f{gap:1rem}
.lb-play .lb-save{min-width:11rem;animation:lb-wiggle 1.6s ease-in-out infinite}
.lb-play .lb-comment{font-size:1.1rem;border-radius:1.2rem;background:#fff4cf}
.lb-play .lb-f-p{font-size:.95rem}
.lb-play .lb-f-v,.lb-play .lb-f-ticks{font-size:1.15rem}
.lb-play .lb-live-banner{font-size:1.1rem;border-radius:1.1rem}

/* the board widget: a friendly animal instead of the book icon */
.lb-w--play .lb-w-ic{width:clamp(4rem,32cqi,7rem);height:clamp(4rem,32cqi,7rem);background:#fff4cf}
.lb-w-animal{width:88%;height:auto;max-height:88%;object-fit:contain;animation:lb-bob 2.2s ease-in-out infinite;-webkit-user-drag:none}
.lb-w--play .lb-w-title{font-size:clamp(1.1rem,7cqi,1.7rem)}
.lb-w--play .btn{height:3rem;font-size:1.1rem;font-weight:700}

/* thank-you animation */
.lb-thanks{position:absolute;inset:0;z-index:30;overflow:hidden;display:grid;place-items:center;cursor:pointer;
  background:linear-gradient(180deg,#fff9e6,#def4fa);animation:lb-fade-in .3s ease-out}
.lb-thanks.is-leaving{animation:lb-fade-out .35s ease-in forwards}
@keyframes lb-fade-in{from{opacity:0}to{opacity:1}}
@keyframes lb-fade-out{to{opacity:0}}
.lb-thanks-card{position:relative;z-index:2;text-align:center;padding:1rem 1.5rem;margin-top:-6rem;animation:lb-card-in .7s cubic-bezier(.2,1.4,.4,1) both}
@keyframes lb-card-in{from{transform:scale(.3) translateY(2rem);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}
.lb-thanks-t{font-size:clamp(2.2rem,8vw,4rem);font-weight:800;color:#e8590c;line-height:1.1;text-shadow:0 3px 0 #fff,0 6px 12px rgba(0,0,0,.12)}
.lb-thanks-s{font-size:clamp(1.15rem,3.6vw,1.7rem);font-weight:600;color:#6b5a1c;margin:.6rem 0 1.2rem}
.lb-thanks-ok{height:3.3rem;font-size:1.2rem;padding:0 2.4rem}
.lb-heart{position:absolute;bottom:-3rem;opacity:0;animation:lb-float 3.8s ease-in infinite;z-index:1;pointer-events:none}
@keyframes lb-float{0%{transform:translateY(0) scale(.6) rotate(-10deg);opacity:0}15%{opacity:1}100%{transform:translateY(-34rem) scale(1.15) rotate(14deg);opacity:0}}
.lb-thanks-zoo{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-around;align-items:flex-end;padding:0 1rem;pointer-events:none;z-index:2}
.lb-thanks-animal{width:clamp(5.5rem,19vw,11rem);height:auto;filter:drop-shadow(0 .4rem .5rem rgba(0,0,0,.25));animation:lb-enter .9s cubic-bezier(.2,1.2,.4,1) both,lb-hop 1.1s ease-in-out .9s infinite}
.lb-thanks-animal--0{animation-delay:.15s,1.05s}.lb-thanks-animal--1{animation-delay:.35s,1.45s;transform-origin:bottom}
.lb-thanks-animal--2{animation-delay:.55s,.7s}.lb-thanks-animal--3{animation-delay:.75s,1.25s}
.lb-thanks-animal--1,.lb-thanks-animal--3{--from:130%}.lb-thanks-animal--0,.lb-thanks-animal--2{--from:-130%}
@keyframes lb-enter{from{transform:translateX(var(--from,-120%)) scale(.8);opacity:0}to{transform:translateX(0) scale(1);opacity:1}}
@keyframes lb-hop{0%,100%{transform:translateY(0) scaleY(1)}20%{transform:translateY(0) scaleY(.92)}50%{transform:translateY(-2.6rem) scaleY(1.04)}80%{transform:translateY(0) scaleY(.94)}}
.lb-thanks.is-still *,.lb-thanks.is-still{animation:none!important}
.lb-thanks.is-still .lb-heart{display:none}
@media (prefers-reduced-motion:reduce){
  .lb-sl-val.lb-bump,.lb-chk input:checked + .lb-chk-box,.lb-play .lb-occ-go.btn-p,.lb-play .lb-new,.lb-play .lb-save,.lb-w-animal{animation:none}
}

/* ═══ the pupil's fill-in window: bigger, focused, and honest about what is below ═══ */
.lb-backdrop--pupil{background:rgba(14,28,38,.58);backdrop-filter:blur(16px) saturate(.85);-webkit-backdrop-filter:blur(16px) saturate(.85)}
.lb-modal--pupil{width:min(54rem,100%);height:min(46rem,calc(100vh - 2rem));box-shadow:0 2rem 5rem rgba(0,0,0,.45);transition:width .2s ease,height .2s ease}
.lb-modal--pupil.lb-editing{width:min(62rem,100%);height:min(54rem,calc(100vh - 2rem))}
.lb-body.has-more{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 4.5rem),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 4.5rem),transparent)}
.lb-more{position:absolute;left:50%;bottom:1rem;z-index:6;transform:translate(-50%,.8rem);display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .9rem .55rem 1rem;border:none;border-radius:999px;
  background:var(--main);color:#fff;font-family:inherit;font-weight:700;font-size:.95rem;cursor:pointer;box-shadow:0 .4rem 1.2rem rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.lb-more.is-on{opacity:1;pointer-events:auto;transform:translate(-50%,0);animation:lb-more-bob 1.6s ease-in-out infinite}
.lb-more .material-icons-outlined{font-size:1.5rem}
.lb-more-n{min-width:1.5rem;height:1.5rem;padding:0 .35rem;border-radius:999px;background:#fff;color:var(--main);display:inline-grid;place-items:center;font-size:.85rem;font-weight:800}
@keyframes lb-more-bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,.35rem)}}
.lb-play .lb-more{font-size:1.2rem;padding:.7rem 1.2rem .7rem 1.3rem;background:#ff9f1c}
.lb-play .lb-more-n{color:#ff9f1c;min-width:1.9rem;height:1.9rem;font-size:1.05rem}
@media (prefers-reduced-motion:reduce){.lb-more.is-on{animation:none}.lb-modal--pupil{transition:none}}

/* ═══ the teacher's window: cosy, focused, a bit more fun ═══ */
@keyframes lb-rise{from{opacity:0;transform:translateY(.9rem)}to{opacity:1;transform:translateY(0)}}
@keyframes lb-grow-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes lb-grow-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes lb-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes lb-spark{0%{opacity:0;transform:translateY(.4rem) scale(.5)}25%{opacity:1;transform:translateY(-.4rem) scale(1.3)}100%{opacity:0;transform:translateY(-2.2rem) scale(1)}}
.lb-backdrop--teacher{background:rgba(14,28,38,.5);backdrop-filter:blur(12px) saturate(.9);-webkit-backdrop-filter:blur(12px) saturate(.9)}
.lb-modal--teacher.lb-cozy{width:min(74rem,100%);height:min(52rem,calc(100vh - 2rem));background:linear-gradient(180deg,#fffaf0 0%,#f0f9fb 100%);box-shadow:0 2rem 5rem rgba(0,0,0,.4)}
.lb-cozy .sym-modal-head{background:#fffaf0}
.lb-cozy .sym-modal-title{font-size:1.25rem;font-weight:700}
.lb-mascot{height:2.8rem;width:auto;margin:-.2rem -.4rem -.2rem 0;animation:lb-bob 2.6s ease-in-out infinite;-webkit-user-drag:none;filter:drop-shadow(0 .15rem .2rem rgba(0,0,0,.2))}
.lb-cozy .lb-tabs{border-bottom:none;background:#fffaf0;gap:.4rem;padding:.2rem 1.5rem .7rem}
.lb-cozy .lb-tab{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;border-bottom:none;margin:0;padding:.5rem 1rem;background:transparent;transition:background .15s,color .15s,transform .15s}
.lb-cozy .lb-tab .material-icons-outlined{font-size:1.15rem}
.lb-cozy .lb-tab:hover{background:rgba(57,176,187,.12)}
.lb-cozy .lb-tab.is-on{background:var(--main);color:#fff;box-shadow:0 .3rem .8rem rgba(57,176,187,.35)}
.lb-cozy .lb-entry,.lb-cozy .lb-sum,.lb-cozy .lb-qe,.lb-cozy .lb-occ-ed{background:#fff;border-color:transparent;border-radius:1.2rem;box-shadow:0 .2rem .9rem rgba(110,80,20,.09)}
.lb-cozy .lb-entry{animation:lb-rise .45s ease-out both;animation-delay:calc(var(--i,0) * 45ms);transition:box-shadow .2s,transform .2s}
.lb-cozy .lb-entry:hover{box-shadow:0 .4rem 1.4rem rgba(110,80,20,.15);transform:translateY(-1px)}
.lb-entry-who{display:inline-flex;align-items:center;gap:.65rem}
.lb-avatar{width:2.3rem;height:2.3rem;border-radius:50%;color:#fff;font-weight:700;font-size:.8rem;display:inline-grid;place-items:center;flex-shrink:0;box-shadow:0 .15rem .45rem rgba(0,0,0,.22)}
.lb-cozy .lb-entry-h{font-size:.85rem}
.lb-cozy .lb-seg button.is-on{background:var(--main)}
.lb-cozy .lb-filters select{border-radius:999px}
.lb-cozy .lb-bar i{background:linear-gradient(90deg,#ffd23f,#ff9f1c);transform-origin:left;animation:lb-grow-x .7s ease-out both}
.lb-cozy .lb-hist-c i{background:linear-gradient(180deg,#ffd23f,#ff9f1c);transform-origin:bottom;animation:lb-grow-y .7s ease-out both}
.lb-cozy .lb-sum-avg b{color:#e8890c}
.lb-cozy .lb-cmt{position:relative}
.lb-spark{position:absolute;right:.8rem;top:.2rem;font-size:1.6rem;pointer-events:none;animation:lb-spark 1.1s ease-out forwards}
.lb-empty--cosy{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem}
.lb-empty--cosy img{height:7.5rem;width:auto;animation:lb-breathe 3.2s ease-in-out infinite;-webkit-user-drag:none;filter:drop-shadow(0 .3rem .4rem rgba(0,0,0,.18))}
.lb-live-n{font-size:1.15em}
.lb-live-n.lb-bump{display:inline-block;animation:lb-bump .45s ease-out}
.lb-cozy .lb-livebar{background:#ffe9e6}
@media (prefers-reduced-motion:reduce){.lb-mascot,.lb-empty--cosy img,.lb-cozy .lb-entry,.lb-cozy .lb-bar i,.lb-cozy .lb-hist-c i,.lb-spark,.lb-live-n.lb-bump{animation:none}}

/* ═══ question editor, made for typing ═══ */
.lb-qe{gap:.8rem;padding:1rem 1.1rem}
.lb-qe-top{justify-content:space-between}
.lb-qe-n{font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--main)}
.lb-qe-types{display:flex;flex-wrap:wrap;gap:.45rem}
.lb-qe-type{display:inline-flex;align-items:center;gap:.4rem;height:2.5rem;padding:0 1rem;border:2px solid var(--border);border-radius:999px;background:#fff;color:var(--font-sub);font-family:inherit;font-weight:600;font-size:.88rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s}
.lb-qe-type:hover{border-color:var(--main);color:var(--font)}
.lb-qe-type.is-on{background:var(--main);border-color:var(--main);color:#fff;box-shadow:0 .25rem .7rem rgba(57,176,187,.35)}
.lb-qe-type .material-icons-outlined{font-size:1.2rem}
.lb-qe .lb-qe-prompt{width:100%;box-sizing:border-box;height:auto;min-height:3rem;padding:.7rem .9rem;border:2px solid var(--border);border-radius:.9rem;font-family:inherit;font-size:1.05rem;font-weight:600;line-height:1.35;resize:none;overflow:hidden;background:#fff;color:var(--font);outline:none;transition:border-color .15s,box-shadow .15s}
.lb-qe .lb-qe-prompt::placeholder{font-weight:400;color:#9aa8ab}
.lb-qe .lb-qe-prompt:focus,.lb-opt-in:focus,.lb-qe-scale input:focus{border-color:var(--main);box-shadow:0 0 0 .22rem rgba(57,176,187,.18)}
.lb-opts{display:flex;flex-direction:column;gap:.4rem;padding:.2rem 0 0 .2rem}
.lb-opts-hint{font-size:.78rem;color:var(--font-sub);margin-bottom:.1rem}
.lb-opt-r{display:flex;align-items:center;gap:.55rem}
.lb-opt-box{width:1.35rem;height:1.35rem;flex-shrink:0;border:2px solid var(--main);border-radius:.4rem;background:#fff}
.lb-opt-in{flex:1;min-width:0;height:2.75rem;padding:0 .85rem;border:2px solid var(--border);border-radius:.8rem;font-family:inherit;font-size:1rem;background:#fff;color:var(--font);outline:none;transition:border-color .15s,box-shadow .15s}
.lb-opt-del{opacity:.55}
.lb-opt-r:hover .lb-opt-del{opacity:1}
.lb-opt-add{align-self:flex-start;display:inline-flex;align-items:center;gap:.35rem;height:2.4rem;padding:0 .9rem 0 .6rem;margin-left:1.9rem;border:2px dashed var(--border);border-radius:.8rem;background:transparent;color:var(--main);font-family:inherit;font-weight:700;font-size:.88rem;cursor:pointer}
.lb-opt-add:hover{border-color:var(--main);background:var(--main-sub)}
.lb-opt-add .material-icons-outlined{font-size:1.2rem}
.lb-qe-scale label{gap:.25rem}
.lb-qe-scale label span{font-size:.76rem;font-weight:600;color:var(--font-sub)}
.lb-qe-scale input{height:2.6rem;padding:0 .75rem;border:2px solid var(--border);border-radius:.8rem;font-size:1rem;outline:none;transition:border-color .15s,box-shadow .15s}
.lb-qe-prev{grid-column:1/-1;padding:.2rem .3rem 0}
.lb-qe-prev-track{height:.7rem;border-radius:999px;background:linear-gradient(90deg,#ffd23f,#ff9f1c)}
.lb-qe-prev-n{display:flex;justify-content:space-between;margin-top:.25rem;font-size:.78rem;font-weight:700;color:var(--font-sub)}
.lb-switch{display:inline-flex;align-items:center;gap:.65rem;font-size:.88rem;font-weight:600;color:var(--font-sub);cursor:pointer;align-self:flex-start}
.lb-switch input{position:absolute;opacity:0;pointer-events:none}
.lb-switch-t{width:2.6rem;height:1.5rem;border-radius:999px;background:#cfd9dc;position:relative;transition:background .18s;flex-shrink:0}
.lb-switch-t::after{content:'';position:absolute;left:.18rem;top:.18rem;width:1.14rem;height:1.14rem;border-radius:50%;background:#fff;box-shadow:0 .1rem .3rem rgba(0,0,0,.3);transition:transform .18s}
.lb-switch input:checked + .lb-switch-t{background:var(--main)}
.lb-switch input:checked + .lb-switch-t::after{transform:translateX(1.1rem)}
.lb-switch input:focus-visible + .lb-switch-t{outline:3px solid var(--main-sub);outline-offset:2px}

/* the send button lives in a footer that never scrolls away; the 'more questions' pill sits just above it */
.lb-foot{flex-shrink:0;padding:.8rem 1.5rem 1.1rem;background:var(--el);border-top:1px solid rgba(0,0,0,.07);box-shadow:0 -.5rem 1rem rgba(0,0,0,.05);position:relative;z-index:7}
.lb-foot .lb-err{margin:0 0 .6rem}
.lb-foot .lb-edit-f{margin-top:0}
.lb-play .lb-foot{background:#eaf8fb;border-top-color:rgba(0,0,0,.05)}
.lb-has-foot .lb-more{bottom:5.7rem}
.lb-play.lb-has-foot .lb-more{bottom:6.6rem}

/* the pupil's window on the cosy look (play adds its own gradient on top) */
.lb-modal--pupil.lb-warm{background:linear-gradient(180deg,#fffaf0 0%,#f0f9fb 100%)}
.lb-modal--pupil.lb-warm:not(.lb-play) .lb-foot{background:#f0f9fb}
.lb-modal--pupil.lb-warm .sym-modal-head{background:transparent}

/* ═══ the teacher's list of pupils + the Puls tab ═══ */
.lb-split{display:grid;grid-template-columns:15.5rem minmax(0,1fr);gap:1.1rem;align-items:start}
.lb-roster{position:sticky;top:3.9rem;max-height:calc(100vh - 14rem);display:flex;flex-direction:column;gap:.5rem;min-height:0}
.lb-roster-q{height:2.4rem;padding:0 .8rem;border:2px solid var(--border);border-radius:999px;font-family:inherit;font-size:.85rem;background:#fff;outline:none}
.lb-roster-q:focus{border-color:var(--main)}
.lb-roster-list{display:flex;flex-direction:column;gap:.2rem;overflow-y:auto;min-height:0;padding:.15rem}
.lb-rr{display:flex;align-items:center;gap:.6rem;width:100%;padding:.4rem .6rem;border:none;border-radius:.9rem;background:transparent;font-family:inherit;font-size:.88rem;color:var(--font);cursor:pointer;text-align:left;transition:background .15s}
.lb-rr[hidden]{display:none}
.lb-rr:hover{background:rgba(57,176,187,.1)}
.lb-rr.is-on{background:var(--main);color:#fff;box-shadow:0 .25rem .7rem rgba(57,176,187,.3)}
.lb-rr .lb-avatar{width:1.9rem;height:1.9rem;font-size:.7rem}
.lb-rr-ic{width:1.9rem;height:1.9rem;display:grid;place-items:center;font-size:1.3rem;border-radius:50%;background:var(--main-sub);color:var(--main)}
.lb-rr.is-on .lb-rr-ic{background:rgba(255,255,255,.25);color:#fff}
.lb-rr-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.lb-rr-n{font-size:.75rem;font-weight:700;opacity:.75}
.lb-rr-st{font-size:1.15rem;color:#3fb37f}
.lb-rr.is-missing{opacity:.7}
.lb-rr.is-missing .lb-rr-st{color:#b9c4c7}
.lb-rr.is-on .lb-rr-st{color:#fff}
.lb-main{min-width:0}
.lb-who{display:flex;align-items:center;gap:.7rem;margin:.1rem 0 .8rem;font-size:1.05rem}
.lb-who .lb-avatar{width:2.4rem;height:2.4rem}
.lb-cover{margin:0 0 .9rem;padding:.7rem .9rem;border-radius:1rem;background:#fff;box-shadow:var(--cz-shadow,0 .2rem .9rem rgba(110,80,20,.09))}
.lb-cover-h{font-size:.92rem;margin-bottom:.4rem}
.lb-cover-bar{height:.6rem;border-radius:999px;background:var(--hover);overflow:hidden}
.lb-cover-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3fb37f,#7ad3a8);transition:width .5s ease}
.lb-missing{margin-top:.55rem;font-size:.82rem}
.lb-missing summary{cursor:pointer;font-weight:600;color:var(--font-sub)}
.lb-missing-l{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}
.lb-chip{padding:.25rem .7rem;border:1.5px solid var(--border);border-radius:999px;background:#fff;font-family:inherit;font-size:.8rem;cursor:pointer;color:var(--font)}
.lb-chip:hover{border-color:var(--main);color:var(--main)}
.lb-sec-h2{margin:1.3rem 0 .6rem;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--font-sub)}
.lb-pulse-row{display:flex;align-items:center;gap:.8rem;padding:.7rem .9rem;margin-bottom:.45rem;border-radius:1rem;background:#fff;box-shadow:var(--cz-shadow,0 .2rem .9rem rgba(110,80,20,.09))}
.lb-pulse-t{flex:1;min-width:0;display:flex;flex-direction:column}
.lb-pulse-row .btn{height:2.1rem;padding:0 .9rem;font-size:.8rem}
.lb-livebar.is-done{background:#e6f6ec;border-bottom-color:#b8e3c8}
.lb-livebar.is-done .lb-live-dot{background:#3fb37f;animation:none}
.lb-livebar.is-done .lb-livebar-t{color:#1c6b43}
.lb-alldone{margin-left:.4rem;font-weight:800}
.lb-livebar{position:sticky;overflow:visible}
.lb-burst{position:absolute;left:50%;top:50%;pointer-events:none;z-index:8}
.lb-burst span{position:absolute;font-size:1.5rem;opacity:0;animation:lb-burst 1.8s ease-out forwards}
@keyframes lb-burst{0%{opacity:0;transform:rotate(var(--a)) translateX(0) scale(.4)}15%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) translateY(1.2rem) scale(1.1)}}
@media (max-width:52rem){
  .lb-split{grid-template-columns:1fr}
  .lb-roster{position:static;max-height:none}
  .lb-roster-list{flex-direction:row;overflow-x:auto;overflow-y:hidden;padding-bottom:.4rem}
  .lb-rr{width:auto;flex-shrink:0;border-radius:999px;background:#fff;box-shadow:0 .1rem .4rem rgba(0,0,0,.08)}
  .lb-rr-n{display:none}
}
@media (prefers-reduced-motion:reduce){.lb-burst span{animation:none;opacity:0}.lb-cover-bar i{transition:none}}

/* the type of a question: a small chip next to its number instead of a whole row of big buttons */
.lb-qe-top{justify-content:flex-start;gap:.6rem}
.lb-qe-top .lb-qe-acts{margin-left:auto}
.lb-qe-typewrap{position:relative}
.lb-qe-chip{display:inline-flex;align-items:center;gap:.3rem;height:1.9rem;padding:0 .4rem 0 .55rem;border:1.5px solid var(--border);border-radius:999px;background:#fff;color:var(--main);font-family:inherit;font-size:.76rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s}
.lb-qe-chip:hover{border-color:var(--main);background:var(--main-sub)}
.lb-qe-chip .material-icons-outlined{font-size:1.05rem}
.lb-qe-caret{opacity:.6;font-size:1.1rem!important}
.lb-qe-menu{position:absolute;top:calc(100% + .3rem);left:0;z-index:12;min-width:11rem;padding:.3rem;border-radius:.9rem;background:#fff;box-shadow:0 .6rem 1.6rem rgba(20,30,35,.2)}
.lb-qe-menu[hidden]{display:none}
.lb-qe-menu .lb-qe-type{display:flex;align-items:center;gap:.5rem;width:100%;height:2.3rem;padding:0 .7rem;border:none;border-radius:.65rem;background:transparent;color:var(--font);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;text-align:left;box-shadow:none}
.lb-qe-menu .lb-qe-type:hover{background:var(--main-sub)}
.lb-qe-menu .lb-qe-type.is-on{background:var(--main-sub);color:var(--main)}
.lb-qe-menu .lb-qe-type .material-icons-outlined{font-size:1.15rem}
.lb-qe{gap:.65rem}

/* ═══ a date you can read at a glance, and which occasion it was ═══ */
.lb-datechip{--c:#39b0bb;flex-shrink:0;width:3.7rem;padding:.4rem .2rem .35rem;border-radius:1rem;background:var(--c);color:#fff;display:flex;flex-direction:column;align-items:center;line-height:1;box-shadow:0 .3rem .7rem color-mix(in srgb,var(--c) 40%,transparent);text-align:center}
.lb-datechip b{font-size:1.65rem;font-weight:800;letter-spacing:-.02em}
.lb-datechip span{margin-top:.1rem;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.95}
.lb-datechip i{margin-top:.28rem;padding:.12rem .4rem;border-radius:999px;background:rgba(255,255,255,.25);font-size:.66rem;font-style:normal;font-weight:700;letter-spacing:.02em}
.lb-entry-h--chips{display:flex;align-items:center;gap:.9rem;margin-bottom:.7rem}
.lb-entry-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:.4rem}
.lb-entry-name{display:flex;align-items:center;gap:.55rem;font-size:1rem;min-width:0}
.lb-entry-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-edited{font-size:.76rem;color:var(--font-sub)}
.lb-entry-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.lb-occchip{--c:#39b0bb;display:inline-flex;align-items:center;gap:.3rem;max-width:100%;padding:.22rem .75rem;border-radius:999px;background:color-mix(in srgb,var(--c) 16%,#fff);color:color-mix(in srgb,var(--c) 70%,#000);border:1.5px solid color-mix(in srgb,var(--c) 40%,#fff);font-size:.82rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-occchip .material-icons-outlined{font-size:1rem}
.lb-occchip--free{--c:#9aa8ab;font-weight:700}
.lb-notechip{display:inline-flex;align-items:center;max-width:100%;padding:.2rem .65rem;border-radius:.7rem;background:#fff4cf;color:#6b5200;font-size:.78rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-occhead{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .8rem}
.lb-occhead .lb-occchip{font-size:.95rem;padding:.3rem .9rem}

/* the planned occasions: a list, and one opened at a time */
.lb-occ-rows{display:flex;flex-direction:column;gap:.65rem;margin-top:.8rem}
.lb-occ-row{--c:#39b0bb;display:flex;align-items:center;gap:1rem;padding:.8rem 1rem;border-radius:1.2rem;background:#fff;box-shadow:var(--cz-shadow,0 .2rem .9rem rgba(110,80,20,.09));cursor:pointer;transition:box-shadow .2s,transform .2s}
.lb-occ-row:hover{box-shadow:var(--cz-shadow-lift,0 .4rem 1.4rem rgba(110,80,20,.15));transform:translateY(-1px)}
.lb-occ-rt{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}
.lb-occ-rt b{font-size:1.05rem}
.lb-occ-chips{display:flex;flex-wrap:wrap;gap:.35rem}
.lb-st-chip{padding:.15rem .6rem;border-radius:999px;background:var(--hover);color:var(--font-sub);font-size:.74rem;font-weight:700}
.lb-st-chip--open{background:#e3f6ec;color:#1c6b43}
.lb-st-chip--live{background:#e5584f;color:#fff}
.lb-st-chip--warn{background:#fdecea;color:#b3261e}
.lb-occ-acts{display:flex;align-items:center;gap:.4rem;flex-shrink:0}
.lb-occ-acts .btn{height:2.1rem;padding:0 .9rem;font-size:.8rem}
.lb-backlink{display:inline-flex;align-items:center;gap:.3rem;margin:0 0 .8rem;padding:.35rem .8rem .35rem .5rem;border:none;border-radius:999px;background:var(--main-sub);color:var(--main);font-family:inherit;font-weight:700;font-size:.85rem;cursor:pointer}
.lb-backlink:hover{background:var(--main);color:#fff}
.lb-occ-ed{border-left:.45rem solid var(--c,#39b0bb)}
.lb-note-f{display:flex;flex-direction:column;gap:.25rem;margin:.7rem 0 .2rem;font-size:.78rem;font-weight:600;color:var(--font-sub)}
.lb-note-f input,.lb-live-note,.lb-pulse-note{height:2.5rem;padding:0 .85rem;border:2px solid var(--border);border-radius:.8rem;font-family:inherit;font-size:.92rem;background:#fff;color:var(--font);outline:none;transition:border-color .15s,box-shadow .15s}
.lb-note-f input:focus,.lb-live-note:focus,.lb-pulse-note:focus{border-color:var(--main);box-shadow:0 0 0 .22rem rgba(57,176,187,.18)}
.lb-occ-ed-top--2{margin-top:.8rem;align-items:center}
.lb-pulse-row{align-items:center}
.lb-pulse-note{height:2.1rem;margin-top:.35rem;font-size:.82rem;width:100%;max-width:26rem}
@media (max-width:40rem){.lb-occ-row{flex-wrap:wrap}.lb-occ-acts{width:100%;justify-content:flex-end}}

/* Pupil view: the floating pupil bar (.shf-bar) sits at the bottom edge — keep the whole window above it */
body.student-mode .lb-backdrop{box-sizing:border-box;padding-bottom:clamp(5.5rem,16vmin,8rem)}
body.student-mode .lb-modal--pupil{height:min(46rem,100%);max-height:100%}
body.student-mode .lb-modal--pupil.lb-editing{height:min(54rem,100%)}

/* ── The pupil's list: occasions and own entries in one list, answers as small chips ── */
.lb-prows{display:flex;flex-direction:column;gap:.65rem}
.lb-prow{--c:#39b0bb;display:flex;align-items:center;gap:.95rem;padding:.75rem 1rem;border-radius:1.2rem;background:#fff;border:1.5px solid var(--border);box-shadow:var(--cz-shadow,0 .2rem .9rem rgba(110,80,20,.09));transition:box-shadow .2s,transform .2s,border-color .2s}
.lb-prow[role="button"]{cursor:pointer}
.lb-prow[role="button"]:hover{box-shadow:var(--cz-shadow-lift,0 .4rem 1.4rem rgba(110,80,20,.15));transform:translateY(-1px);border-color:var(--c)}
.lb-prow:focus-visible{outline:2.5px solid var(--main);outline-offset:2px}
.lb-prow.is-closed{opacity:.6}
.lb-prow.is-live{border-color:#e5584f;box-shadow:0 0 0 .15rem rgba(229,88,79,.14)}
.lb-prow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.3rem}
.lb-prow-main b{font-size:1.02rem;overflow-wrap:anywhere}
.lb-prow-btn{height:2.25rem;line-height:2.25rem;padding:0 1.1rem;font-size:.85rem;flex-shrink:0;pointer-events:none}
.lb-prow-go{color:var(--font-sub);flex-shrink:0}
.lb-ans-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.1rem}
.lb-ans{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;padding:.2rem .65rem;border-radius:999px;background:var(--main-sub);color:var(--font);font-size:.8rem;font-weight:600;line-height:1.3}
.lb-ans .material-icons-outlined{font-size:1rem;color:var(--main)}
.lb-ans b{font-size:.95rem;font-weight:800}
.lb-ans i{font-style:normal;color:var(--font-sub);font-weight:600}
.lb-ans--slider{background:#fff3d6}
.lb-ans--slider .material-icons-outlined{color:#e08a1e}
.lb-ans--comment{background:#e8f3ff}
.lb-ans--comment .material-icons-outlined{color:#2f6db5}
.lb-ans--lock{background:var(--hover);color:var(--font-sub)}
.lb-ans--lock .material-icons-outlined{color:var(--font-sub)}
.lb-ans--more{background:var(--hover);color:var(--font-sub)}
.lb-view-meta{margin:.2rem 0 .8rem;font-size:.82rem;color:var(--font-sub)}
.lb-view{padding:.2rem 0}
.lb-view-note{display:flex;align-items:center;gap:.4rem;margin:0 0 .6rem;font-size:.85rem;font-weight:600;color:var(--font-sub)}
.lb-view-note .material-icons-outlined{font-size:1.1rem}
.lb-st-chip--lock{display:inline-flex;align-items:center;gap:.25rem;background:var(--hover);color:var(--font-sub)}
.lb-st-chip--lock .material-icons-outlined{font-size:.9rem}
.lb-occ-lock.is-on{background:var(--main);border-color:var(--main);color:#fff}
.lb-occ-lock .material-icons-outlined{font-size:1.05rem}
.lb-occ-acts .lb-occ-lock{height:2.1rem;padding:0 .8rem;font-size:.8rem}
/* playful: bigger */
.lb-play .lb-prow{border-radius:1.5rem;border-width:2px;padding:1rem 1.2rem}
.lb-play .lb-prow-main b{font-size:1.25rem}
.lb-play .lb-ans{font-size:1rem;padding:.3rem .85rem}
.lb-play .lb-prow-btn{height:3rem;line-height:3rem;font-size:1.05rem}
@media (prefers-reduced-motion:reduce){.lb-prow{transition:none}}

/* ── Teacher window: larger; question editor: more compact ── */
.lb-modal--teacher.lb-cozy{width:min(84rem,100%);height:min(60rem,calc(100vh - 1.5rem))}
.lb-qe{gap:.45rem;padding:.65rem .8rem;margin-bottom:.45rem}
.lb-qe .lb-qe-prompt{min-height:2.4rem;padding:.45rem .75rem;border-width:1.5px;border-radius:.7rem;font-size:.95rem;line-height:1.3}
.lb-opts{gap:.3rem;padding:.1rem 0 0 .1rem}
.lb-opt-in{height:2.2rem;padding:0 .7rem;border-width:1.5px;border-radius:.65rem;font-size:.92rem}
.lb-opt-box{width:1.15rem;height:1.15rem}
.lb-opt-add{height:2rem;margin-left:1.7rem;font-size:.82rem}
.lb-qe-scale{gap:.4rem}
.lb-qe-scale input{height:2.2rem;padding:0 .6rem;border-width:1.5px;border-radius:.65rem;font-size:.92rem}
.lb-qe-scale label span{font-size:.72rem}
.lb-qe-add{margin:.45rem 0 .2rem}
.lb-qe-add .btn{height:2.1rem;font-size:.8rem}
.lb-qe-chip{height:1.75rem}

/* a pupil's own avatar (an emoji on their colour, maybe an accessory) in place of the initials */
.lb-avatar--own{font-size:1.2rem;position:relative;box-shadow:0 .15rem .45rem rgba(0,0,0,.22)}
.lb-avatar--own .lb-avatar-ch{line-height:1}
.lb-avatar--own .lb-avatar-ac{position:absolute;right:-.2rem;top:-.25rem;font-size:.8rem;line-height:1}
.lb-rr .lb-avatar--own{font-size:1rem}
.lb-who .lb-avatar--own{font-size:1.3rem}

/* ── projects: the teacher's list, and the pupil's project cards ── */
.lb-proj-rows{display:flex;flex-direction:column;gap:.65rem;margin-top:.8rem}
.lb-proj-row{--c:#39b0bb;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;padding:.7rem .9rem;border-radius:1.2rem;background:#fff;box-shadow:var(--cz-shadow,0 .2rem .9rem rgba(110,80,20,.09));border-left:.45rem solid var(--c)}
.lb-proj-title{flex:1;min-width:10rem;height:2.4rem;padding:0 .8rem;border:2px solid var(--border);border-radius:.8rem;font-family:inherit;font-size:1rem;font-weight:700;background:#fff;color:var(--font);outline:none}
.lb-proj-title:focus{border-color:var(--main);box-shadow:0 0 0 .2rem rgba(57,176,187,.18)}
.lb-projchip{height:3.4rem;width:3.4rem;padding:0;justify-content:center}
.lb-projchip .material-icons-outlined{font-size:1.8rem;color:#fff;margin:0;letter-spacing:normal;text-transform:none;opacity:1}
.lb-prow--proj .lb-prow-main b{font-size:1.1rem}

/* "Elev får ändra fritt" | "Lås när elev svarat" */
.lb-lockseg{margin-left:0;flex-shrink:0}
.lb-lockseg button{display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap}
.lb-lockseg .material-icons-outlined{font-size:1rem}
.lb-occ-acts .lb-lockseg button{padding:.35rem .8rem;font-size:.78rem}

/* a short explanation in a small box: larger text, wrapping */
.lb-help--box{max-width:46rem;margin:.2rem 0 .8rem;padding:.8rem 1rem;border-radius:1rem;background:#fff;box-shadow:var(--cz-shadow,0 .2rem .9rem rgba(110,80,20,.09));font-size:1.02rem;line-height:1.5;color:var(--font);overflow-wrap:anywhere;white-space:normal}

/* ── pictures on projects, occasions and pulses ── */
/* the pickers open from inside the logbook window, so they must sit above it */
#mi-picker-wrap,#sym-modal-wrap{z-index:12020}
.lb-img-host{display:inline-flex;align-items:center}
.lb-imgctl{position:relative;display:inline-flex;align-items:center;gap:.5rem}
.lb-imgctl img{width:3rem;height:3rem;border-radius:.8rem;object-fit:cover;background:#fff;box-shadow:0 .1rem .4rem rgba(0,0,0,.18)}
.lb-imgctl-x{position:absolute;left:2.2rem;top:-.4rem;width:1.4rem;height:1.4rem;border-radius:50%;border:none;background:#fff;color:var(--font-sub);box-shadow:0 .1rem .3rem rgba(0,0,0,.3);display:grid;place-items:center;cursor:pointer;padding:0}
.lb-imgctl-x .material-icons-outlined{font-size:.9rem}
.lb-imgbtn{height:2.2rem;padding:0 .9rem;font-size:.82rem;display:inline-flex;align-items:center;gap:.35rem}
.lb-imgbtn .material-icons-outlined{font-size:1.15rem}
.lb-prow-img{width:3.7rem;height:3.7rem;flex-shrink:0;border-radius:1rem;object-fit:cover;background:#fff;box-shadow:0 .2rem .6rem rgba(0,0,0,.18)}
.lb-hero-img{display:block;width:100%;max-height:9rem;object-fit:contain;background:#fff;border-radius:1.2rem;margin:.2rem 0 .9rem;box-shadow:var(--cz-shadow,0 .2rem .9rem rgba(110,80,20,.09))}
.lb-proj-row .lb-img-host{flex-shrink:0}

.lb-roster-hint{margin:.5rem .2rem 0;font-size:.74rem;line-height:1.4;color:var(--font-sub)}

/* ── the teacher's question editor, compact: one line for the type, the "must be answered" switch and the arrows ── */
.lb-qe{gap:.35rem;padding:.5rem .75rem .6rem;margin-bottom:.4rem;border-radius:1rem}
.lb-qe-top{gap:.5rem;min-height:2rem}
.lb-qe-n{font-size:.7rem}
.lb-qe-reqsw{margin-left:auto;font-size:.78rem;gap:.4rem;color:var(--font-sub)}
.lb-qe-top .lb-qe-acts{margin-left:0}
.lb-qe .lb-qe-prompt{min-height:2.1rem;padding:.35rem .7rem;font-size:.92rem;border-radius:.65rem}
.lb-qe .lb-ic{width:1.8rem;height:1.8rem}
.lb-qe .lb-ic .material-icons-outlined{font-size:1.1rem}
.lb-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.3rem .6rem;padding:0}
.lb-opts-hint{grid-column:1/-1;font-size:.72rem;margin:0}
.lb-opt-in{height:2rem;font-size:.88rem;padding:0 .6rem}
.lb-opt-add{grid-column:1/-1;margin-left:0;height:1.85rem;font-size:.78rem}
.lb-qe-scale{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.lb-qe-scale .lb-qe-num{display:inline-flex;flex-direction:row;align-items:center;gap:.35rem;font-size:.75rem;color:var(--font-sub)}
.lb-qe-scale input[type=number]{width:3.6rem;height:2rem;padding:0 .4rem;font-size:.88rem;text-align:center}
.lb-qe-scale input[type=text]{flex:1 1 9rem;min-width:0;height:2rem;padding:0 .6rem;font-size:.86rem;border:1.5px solid var(--border);border-radius:.65rem;font-family:inherit;background:#fff;outline:none}
.lb-qe-scale input[type=text]:focus{border-color:var(--main)}
.lb-qe-add{margin-top:.4rem}

/* start now, or save with a time frame (no pop-up on the pupils' screens) */
.lb-when{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .9rem;margin:.4rem 0 .2rem}
.lb-when .lb-help{flex-basis:100%;margin:0;font-size:.82rem}
.lb-whenseg{margin-left:0}
.lb-whenseg button{display:inline-flex;align-items:center;gap:.35rem}
.lb-whenseg .material-icons-outlined{font-size:1.05rem}
.lb-when-due[hidden]{display:none}
.lb-roster-retry{margin-left:.3rem;padding:.1rem .6rem;border:1.5px solid var(--main);border-radius:999px;background:#fff;color:var(--main);font-family:inherit;font-size:.74rem;font-weight:700;cursor:pointer}

/* ── work areas: the picture as a button on the left, the answers with the class list below the settings ── */
.lb-projimg{flex-shrink:0;width:3.4rem;height:3.4rem;padding:0;border:2px dashed #cdd9db;border-radius:1rem;background:#fff;display:grid;place-items:center;cursor:pointer;overflow:hidden;color:var(--main);transition:border-color .15s,box-shadow .15s}
.lb-projimg:hover{border-color:var(--main);box-shadow:0 .2rem .6rem rgba(57,176,187,.3)}
.lb-projimg img{width:100%;height:100%;object-fit:cover}
.lb-projimg:has(img){border-style:solid;border-color:#fff;box-shadow:0 .15rem .5rem rgba(0,0,0,.2)}
.lb-projimg .material-icons-outlined{font-size:1.6rem}
.lb-proj-answers{display:inline-flex;align-items:center;gap:.3rem;border:1.5px solid var(--main);background:var(--main-sub);color:var(--main);font-weight:700}
.lb-proj-answers .material-icons-outlined{font-size:1rem}
.lb-proj-ed .lb-occ-ed-top{align-items:center}
.lb-proj-qwrap[hidden]{display:none}
.lb-proj-ed .lb-lockseg{margin-left:auto}
.lb-answers{margin-top:.4rem}
.lb-answers.lb-embedded .lb-f-occ,.lb-answers.lb-embedded .lb-occhead{display:none}
.lb-answers.lb-embedded .lb-split{min-height:18rem}

/* ── the logbook widget on the board: the logotype, quick buttons and (teacher only) the latest entries ── */
.lb-w-ic.lb-w-ic--logo{width:clamp(3rem,22cqi,4.6rem);height:clamp(3rem,22cqi,4.6rem);border-radius:0;background:none;box-shadow:none}
.lb-logo{display:block;width:100%;height:100%;filter:drop-shadow(0 .2rem .35rem rgba(57,176,187,.35))}
.lb-w--brandonly .lb-w-title{font-size:clamp(1.1rem,9cqi,1.8rem)}
.lb-w--teacher{align-items:stretch;justify-content:flex-start;text-align:left;gap:.55rem;padding:.7rem .8rem}
.lb-w--teacher .lb-w-ic.lb-w-ic--logo{width:clamp(2.6rem,15cqi,3.6rem);height:clamp(2.6rem,15cqi,3.6rem);flex-shrink:0}
.lb-w-brand{display:flex;align-items:center;gap:.65rem;min-width:0}
.lb-w-brandt{min-width:0}
.lb-w--teacher .lb-w-title{text-align:left;font-size:clamp(1.05rem,6.5cqi,1.5rem)}
.lb-w--teacher .lb-w-sub{text-align:left}
.lb-w-quick{display:flex;flex-wrap:wrap;gap:.35rem}
.lb-qk{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .8rem;border:none;border-radius:999px;background:var(--main-sub);color:var(--main);font-family:inherit;font-weight:700;font-size:clamp(.8rem,3.6cqi,.98rem);cursor:pointer;transition:background .15s,color .15s,transform .15s}
.lb-qk .material-icons-outlined{font-size:1.15em}
.lb-qk:hover{background:var(--main);color:#fff;transform:translateY(-1px)}
.lb-qk--live{background:#fdecea;color:#c8473f}
.lb-qk--live:hover{background:#e5584f;color:#fff}
.lb-w-feedh{margin-top:.1rem;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--font-sub)}
.lb-w-feed{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.3rem;padding:.1rem .1rem .2rem}
.lb-w-none{padding:.5rem .2rem;font-size:.85rem;color:var(--font-sub)}
.lb-w-row{display:flex;align-items:center;gap:.5rem;width:100%;padding:.3rem .5rem;border:none;border-radius:.85rem;background:#fff;box-shadow:0 .1rem .35rem rgba(0,0,0,.09);text-align:left;cursor:pointer;font-family:inherit;color:var(--font);transition:box-shadow .15s,transform .15s}
.lb-w-row:hover{box-shadow:0 .25rem .7rem rgba(57,176,187,.28);transform:translateY(-1px)}
.lb-w-row .lb-avatar{width:1.8rem;height:1.8rem;font-size:.66rem;box-shadow:none}
.lb-w-row .lb-avatar--own{font-size:1rem}
.lb-w-row-t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.lb-w-row-t b{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-w-row-t span{display:flex;align-items:center;gap:.2rem;font-size:.74rem;color:var(--font-sub);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lb-w-row-t .material-icons-outlined{font-size:.9rem}
.lb-w-row i{font-style:normal;font-size:.7rem;color:var(--font-sub);flex-shrink:0}
@media (prefers-reduced-motion:reduce){.lb-qk,.lb-w-row{transition:none}}

/* ── the teacher's list: compact until an entry is opened; "Jag har sett" ── */
.lb-entry-h{cursor:pointer}
.lb-entry:not(.is-open) .lb-entry-full{display:none}
.lb-entry.is-open .lb-entry-sum{display:none}
.lb-entry:not(.is-open) .lb-entry-acts{display:none}
.lb-entry-sum{display:flex;flex-wrap:wrap;gap:.35rem;margin:.1rem 0 .1rem 4.4rem;cursor:pointer}
.lb-entry.is-unseen{box-shadow:0 .2rem .9rem rgba(110,80,20,.09)}
.lb-entry.is-landed{animation:lb-landed 1.6s ease-out}
@keyframes lb-landed{0%{box-shadow:0 0 0 .35rem rgba(57,176,187,.55)}100%{box-shadow:0 0 0 0 rgba(57,176,187,0)}}
.lb-seenmark{display:inline-flex;align-items:center;gap:.2rem;flex-shrink:0;font-size:.72rem;font-weight:800;color:#e08a1e}
.lb-seenmark .material-icons-outlined{font-size:1.15rem}
.lb-seenmark.is-on{color:#2f9e5b}
.lb-seenmark.is-on .material-icons-outlined{font-size:1.5rem}
.lb-ans--cm{background:#e8f3ff}
.lb-ans--cm .material-icons-outlined{color:#2f6db5}
/* the big green tick */
.lb-seenbtn{display:flex;align-items:center;gap:.8rem;width:100%;margin:.7rem 0 .2rem;padding:.55rem 1.1rem .55rem .6rem;border:3px solid #2f9e5b;border-radius:1.3rem;background:#fff;color:#2f9e5b;font-family:inherit;font-size:1.2rem;font-weight:800;cursor:pointer;transition:background .2s,color .2s,transform .15s,box-shadow .2s}
.lb-seenbtn-ic{display:grid;place-items:center;flex-shrink:0;width:3rem;height:3rem;border-radius:50%;border:3px solid #2f9e5b;background:#fff;color:#2f9e5b}
.lb-seenbtn-ic .material-icons-outlined{font-size:2rem;font-weight:700}
.lb-seenbtn:hover{box-shadow:0 .3rem .9rem rgba(47,158,91,.3);transform:translateY(-1px)}
.lb-seenbtn.is-on{background:#2f9e5b;color:#fff;box-shadow:0 .35rem 1rem rgba(47,158,91,.4)}
.lb-seenbtn.is-on .lb-seenbtn-ic{background:#fff;color:#2f9e5b;border-color:#fff;animation:lb-pop .35s ease-out}
@keyframes lb-pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
/* the teacher's widget: unseen dot / green tick on each row */
.lb-w-seen{display:inline-flex;flex-shrink:0;color:#e08a1e}
.lb-w-seen.is-on{color:#2f9e5b}
.lb-w-seen .material-icons-outlined{font-size:1.15rem}
.lb-w-row.is-unseen{box-shadow:0 .1rem .35rem rgba(0,0,0,.09)}
/* the pupil's widget: feedback you cannot miss */
.lb-w-fb{display:flex;align-items:center;gap:.6rem;width:100%;margin:.2rem 0;padding:.5rem .7rem;border:none;border-radius:1.1rem;background:linear-gradient(135deg,#34c27a,#2f9e5b);color:#fff;text-align:left;font-family:inherit;cursor:pointer;box-shadow:0 .35rem 1rem rgba(47,158,91,.45);animation:lb-fbpulse 1.8s ease-in-out infinite}
.lb-w-fb-ic{display:grid;place-items:center;flex-shrink:0;width:2.4rem;height:2.4rem;border-radius:50%;background:#fff;color:#2f9e5b}
.lb-w-fb-ic .material-icons-outlined{font-size:1.5rem}
.lb-w-fb-t{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.lb-w-fb-t b{font-size:1.05rem;font-weight:800}
.lb-w-fb-t i{font-style:normal;font-size:.8rem;opacity:.95}
@keyframes lb-fbpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
.lb-ans--newfb{background:#2f9e5b;color:#fff;font-weight:800;animation:lb-fbpulse 1.8s ease-in-out infinite}
.lb-ans--newfb .material-icons-outlined{color:#fff}
@media (prefers-reduced-motion:reduce){.lb-w-fb,.lb-ans--newfb,.lb-entry.is-landed,.lb-seenbtn.is-on .lb-seenbtn-ic{animation:none}}
.lb-qk--exit{background:#fff3d6;color:#a96a00}
.lb-qk--exit:hover{background:#f4a321;color:#fff}
.lb-live-tag--exit{background:#f4a321;margin-right:.35rem}
.lb-qk--exit{background:#fff3d6;color:#a96a00}
.lb-qk--exit:hover{background:#f4a321;color:#fff}
.lb-live-tag--exit{background:#f4a321;margin-right:.35rem}

/* the class list as a strip above the work areas and pulses */
.lb-whobar{display:flex;flex-wrap:wrap;gap:.35rem;margin:.6rem 0 .4rem}
.lb-who-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .7rem .2rem .25rem;border:1.5px solid transparent;border-radius:999px;background:#fff;box-shadow:0 .1rem .35rem rgba(0,0,0,.09);color:var(--font);font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}
.lb-who-chip.lb-who-all{padding-left:.65rem}
.lb-who-chip .lb-avatar{width:1.5rem;height:1.5rem;font-size:.58rem;box-shadow:none}
.lb-who-chip .lb-avatar--own{font-size:.9rem}
.lb-who-chip .material-icons-outlined{font-size:1.1rem;color:var(--main)}
.lb-who-chip:hover{background:var(--main-sub)}
.lb-who-chip.is-on{background:var(--main);color:#fff;border-color:var(--main)}
.lb-who-chip.is-on .material-icons-outlined{color:#fff}

/* compact, foldable rows for work areas and pulses: picture · title · chips · date (right, neutral) */
.lb-datechip{background:#eef2f3;color:var(--font);box-shadow:none}
.lb-datechip i{background:rgba(0,0,0,.07)}
.lb-entry-h--chips .lb-datechip{order:5}
.lb-entry-h--chips .lb-seenmark{order:7;margin-left:.2rem}
.lb-entry-h--chips .lb-entry-acts{order:6}
.lb-fold{flex-direction:column;align-items:stretch;gap:0;padding:0;border-left:0;cursor:default}
.lb-fold .lb-rowhead{display:flex;align-items:center;gap:.9rem;padding:.7rem 1rem;cursor:pointer}
.lb-rowmain{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.3rem}
.lb-rowmain .lb-proj-title{width:100%;border:0;background:transparent;font:inherit;font-weight:800;font-size:1.05rem;padding:0;color:var(--font)}
.lb-rowimg{flex-shrink:0;width:3.4rem;height:3.4rem;border-radius:1rem;overflow:hidden;display:grid;place-items:center;background:var(--main-sub,#e6f4f1);color:var(--main)}
.lb-rowimg img{width:100%;height:100%;object-fit:cover}
.lb-rowimg .material-icons-outlined{font-size:1.7rem}
.lb-rowdate{flex-shrink:0;margin-left:auto}
.lb-fold-ic{flex-shrink:0;color:var(--font-sub);transition:transform .2s}
.lb-fold.is-open .lb-fold-ic{transform:rotate(180deg)}
.lb-fold .lb-rowacts,.lb-fold .lb-rowfull{display:none}
.lb-fold.is-open .lb-rowacts{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.2rem 1rem .9rem}
.lb-fold.is-open .lb-rowfull{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding:0 1rem .4rem}
.lb-st-chip--new{background:#fff3e0;color:#b45f00;font-weight:800}
.lb-st-chip--new i{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:#ff9f1c;margin-right:.3rem}

/* "All activities": one box per work area / pulse / exit ticket; the entries sit inside */
.lb-group{display:flex;background:#fff;border-radius:1.2rem;box-shadow:var(--cz-shadow,0 .2rem .9rem rgba(110,80,20,.09));margin-bottom:.65rem}
.lb-group .lb-rowhead{padding:.8rem 1rem}
.lb-group-t{font-size:1.05rem;font-weight:800;color:var(--font)}
.lb-group .lb-group-body{display:none;padding:0 .8rem .8rem;flex-direction:column;gap:.5rem}
.lb-group.is-open .lb-group-body{display:flex}
.lb-group .lb-entry{background:var(--main-sub,#f1f8f6);box-shadow:none}
.lb-group .lb-entry.is-open{background:#fff;box-shadow:0 .1rem .5rem rgba(0,0,0,.1)}

/* the tick at the right of an entry changes to "seen" with a little pop */
.lb-seenmark{cursor:pointer}
@keyframes lb-pop{0%{transform:scale(.6);opacity:.4}60%{transform:scale(1.25)}100%{transform:scale(1);opacity:1}}
.lb-seenmark.lb-pop .material-icons-outlined{animation:lb-pop .45s ease-out}
@media (prefers-reduced-motion:reduce){.lb-seenmark.lb-pop .material-icons-outlined{animation:none}}

/* the date is always the last thing on the right */
.lb-entry-h--chips .lb-datechip{order:9;margin-left:.2rem}
.lb-rowhead .lb-fold-ic{order:8}
.lb-rowhead .lb-rowdate{order:9;margin-left:auto}
.lb-rowhead .lb-fold-ic{margin-left:0}

/* exit ticket: "what should it contain?" — big, playful cards with a monkey */
.lb-xp{padding:1rem 1.1rem 1.2rem}
.lb-xp-top{display:flex;align-items:flex-end;gap:.9rem;margin-bottom:1rem}
.lb-xp-animal{width:5.5rem;height:auto;flex-shrink:0;animation:lb-xp-sway 3s ease-in-out infinite;transform-origin:50% 100%}
.lb-xp-bubble{position:relative;flex:1;padding:.9rem 1.2rem;border-radius:1.4rem;background:#fff;box-shadow:0 .3rem 1rem rgba(0,0,0,.1);font-size:1.5rem;font-weight:800;line-height:1.2;color:var(--font)}
.lb-xp-bubble::before{content:"";position:absolute;left:-.55rem;bottom:1.2rem;border:.6rem solid transparent;border-right-color:#fff;border-left:0}
.lb-xp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.9rem}
.lb-xp-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;min-height:9.5rem;padding:1.2rem .8rem;border:0;border-radius:1.5rem;background:#fff;box-shadow:0 .3rem 1rem rgba(0,0,0,.1);font-family:inherit;font-size:1.25rem;font-weight:800;color:var(--font);cursor:pointer;transition:transform .2s,box-shadow .2s;animation:lb-xp-in .5s ease-out backwards;animation-delay:calc(var(--i)*.07s)}
.lb-xp-card:hover{transform:translateY(-.3rem) rotate(-1deg);box-shadow:0 .7rem 1.6rem rgba(57,176,187,.35);background:var(--main-sub,#e6f4f1)}
.lb-xp-art{display:flex;flex-direction:column;gap:.45rem;width:7rem}
.lb-xp-art i{display:block;height:.5rem;border-radius:99px;background:#cdd9db}
.lb-xp-art--slider{position:relative;height:1.7rem;justify-content:center}
.lb-xp-art--slider i{background:linear-gradient(90deg,#39b0bb,#6fcf97);height:.7rem}
.lb-xp-art--slider b{position:absolute;left:62%;top:50%;width:1.7rem;height:1.7rem;margin:-.85rem 0 0 -.85rem;border-radius:50%;background:#fff;border:.25rem solid #39b0bb;box-shadow:0 .15rem .4rem rgba(0,0,0,.25);transition:left .5s}
.lb-xp-card:hover .lb-xp-art--slider b{left:88%}
.lb-xp-card--both .lb-xp-art{margin:-.2rem 0}
.lb-xp-art--text i:nth-child(2){width:70%}.lb-xp-art--text i:nth-child(3){width:45%}
.lb-xp-art--many i{height:.6rem}.lb-xp-art--many i:nth-child(odd){width:85%}.lb-xp-art--many i:nth-child(even){background:#a9dde2}
@keyframes lb-xp-in{from{opacity:0;transform:translateY(.8rem) scale(.95)}to{opacity:1;transform:none}}
@keyframes lb-xp-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@media (prefers-reduced-motion:reduce){.lb-xp-animal,.lb-xp-card{animation:none}.lb-xp-card:hover{transform:none}}

/* exit ticket builder: big, glad question cards */
.lb-xq-list{display:flex;flex-direction:column;gap:.9rem;margin-bottom:.9rem}
.lb-xq{position:relative;display:flex;align-items:center;gap:1rem;padding:1.1rem 1.2rem;border-radius:1.5rem;background:#fff;box-shadow:0 .3rem 1rem rgba(0,0,0,.1);animation:lb-xp-in .4s ease-out backwards}
.lb-xq-n{flex-shrink:0;width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;background:var(--main);color:#fff;font-size:1.5rem;font-weight:800}
.lb-xq-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.7rem}
.lb-xq-prompt{width:100%;border:0;border-bottom:.2rem solid #dbe7e8;background:transparent;padding:.3rem .1rem;font:inherit;font-size:1.5rem;font-weight:800;color:var(--font);outline:none}
.lb-xq-prompt:focus{border-bottom-color:var(--main)}
.lb-xq-prompt.is-bad{border-bottom-color:#e5484d;background:#fff3f3}
.lb-xq-range{display:flex;align-items:center;gap:.9rem;font-size:1.05rem;font-weight:700;color:var(--font-sub)}
.lb-xq-range .material-icons-outlined{color:var(--main);font-size:1.7rem}
.lb-xq-range label{display:flex;align-items:center;gap:.5rem}
.lb-xq-range input{width:4.5rem;height:2.6rem;border:.15rem solid #cdd9db;border-radius:.9rem;text-align:center;font:inherit;font-size:1.4rem;font-weight:800;color:var(--font)}
.lb-xq-range input:focus{border-color:var(--main);outline:none}
.lb-xq-add{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}
.lb-xq-add .btn{height:2.8rem;padding:0 1.2rem;border-radius:999px;font-size:.95rem;font-weight:800}
.lb-xq-del{align-self:flex-start}

/* teacher widget: a parrot rises from the bottom-right corner and asks what to do; big friendly buttons */
.lb-w--teacher{position:relative;overflow:hidden}
.lb-ask-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;padding-right:clamp(3.2rem,22cqi,6rem);margin-top:auto}
.lb-w--teacher .lb-qk{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.65rem .75rem;border:0;border-radius:1.1rem;background:#fff;color:var(--font);box-shadow:0 .2rem .7rem rgba(0,0,0,.1);font-family:inherit;font-size:clamp(.78rem,4.4cqi,1rem);cursor:pointer;transition:transform .18s,box-shadow .18s}
.lb-w--teacher .lb-qk b{font-weight:800;line-height:1.1}
.lb-qk-ic{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.7rem;background:var(--main-sub,#e6f4f1);color:var(--main)}
.lb-qk-ic .material-icons-outlined{font-size:1.3rem}
.lb-w--teacher .lb-qk:hover{transform:translateY(-.15rem);box-shadow:0 .5rem 1.1rem rgba(57,176,187,.3);background:#fff;color:var(--font)}
.lb-qk--proj .lb-qk-ic{background:#e7f3e6;color:#3a8f3f}
.lb-qk--live .lb-qk-ic{background:#fdecea;color:#c8473f}
.lb-qk--exit .lb-qk-ic{background:#fff3d6;color:#a96a00}
.lb-qk-new{position:absolute;top:.4rem;right:.5rem;padding:.05rem .5rem;border-radius:999px;background:#ff9f1c;color:#fff;font-size:.68rem;font-style:normal;font-weight:800}
.lb-ask{position:absolute;right:0;bottom:0;width:clamp(3.2rem,22cqi,6rem);pointer-events:none}
.lb-ask-animal{display:block;width:100%;height:auto;transform:translateY(100%);animation:lb-ask-rise .7s .15s cubic-bezier(.2,1.3,.4,1) forwards}
.lb-ask-bubble{position:absolute;right:30%;bottom:78%;width:max-content;max-width:11rem;padding:.4rem .7rem;border-radius:1rem 1rem .2rem 1rem;background:#fff;box-shadow:0 .2rem .7rem rgba(0,0,0,.15);font-size:clamp(.72rem,4cqi,.95rem);font-weight:800;line-height:1.15;color:var(--font);opacity:0;animation:lb-ask-pop .35s .75s ease-out forwards}
@keyframes lb-ask-rise{to{transform:none}}
@keyframes lb-ask-pop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.lb-ask-animal,.lb-ask-bubble{animation:none;transform:none;opacity:1}}

/* the teacher window worked inside the Lärarens verktyg menu pane instead of over the board */
.lb-tool-container{flex:1;min-height:0;display:flex}
.lb-backdrop.lb-backdrop--embedded{position:static;inset:auto;display:flex;flex:1;min-width:0;min-height:0;padding:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;z-index:auto}
.lb-backdrop--embedded .lb-modal{width:100%;max-width:none;height:100%;max-height:none;margin:0;box-shadow:none;border-radius:var(--r-md,1rem)}
.lb-backdrop--embedded .sym-modal-close{display:none}

.lb-xp-info{margin-top:.2rem}
.lb-xp-info[hidden]{display:none}
.lb-xp-bubble--info{font-size:1rem;font-weight:700;line-height:1.35}

/* work area: viewing header, and the checkbox question in the cheerful builder */
.lb-proj-vhead{display:flex;align-items:center;gap:.9rem;padding:.7rem 1rem;margin:.5rem 0 .8rem;border-radius:1.2rem;background:#fff;box-shadow:var(--cz-shadow,0 .2rem .9rem rgba(110,80,20,.09))}
.lb-proj-vt{flex:1;min-width:0;font-size:1.25rem;font-weight:800;color:var(--font)}
.lb-xq-opts{display:flex;flex-direction:column;gap:.45rem}
.lb-xq-opt{display:flex;align-items:center;gap:.6rem}
.lb-xq-opt-in{flex:1;min-width:0;height:2.5rem;border:.15rem solid #cdd9db;border-radius:.9rem;padding:0 .8rem;font:inherit;font-size:1.05rem;font-weight:600;color:var(--font)}
.lb-xq-opt-in:focus{border-color:var(--main);outline:none}
.lb-proj-ed .lb-live-go{margin-top:1rem}

/* results: the answers as they come in */
.lb-rs{position:relative;padding:1rem 1.1rem 7rem;border-radius:1.6rem;background:linear-gradient(160deg,#fff 0%,var(--main-sub,#e6f4f1) 140%);box-shadow:0 .3rem 1.2rem rgba(0,0,0,.08);min-height:22rem}
.lb-rs-top{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:space-between}
.lb-rs-title{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;min-width:0}
.lb-rs-title>b{font-size:1.6rem;font-weight:800;color:var(--font)}
.lb-rs-chips{display:flex;gap:.35rem;flex-wrap:wrap}
.lb-rs-ctl{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.lb-rs-music{width:2.6rem;height:2.6rem;border:0;border-radius:50%;background:#fff;box-shadow:0 .15rem .5rem rgba(0,0,0,.15);color:var(--font-sub);cursor:pointer}
.lb-rs-music.is-on{background:var(--main);color:#fff}
.lb-rs-count{display:flex;align-items:center;gap:.7rem;margin:.9rem 0 1.1rem;font-size:1.25rem;font-weight:700;color:var(--font)}
.lb-rs-count .lb-live-dot.is-off{background:#b8c4c6;animation:none}
.lb-rs-count .lb-live-n{font-size:1.6rem;color:var(--main)}
.lb-rs-bar{flex:1;max-width:16rem;height:.7rem;border-radius:99px;background:#dfe9ea;overflow:hidden}
.lb-rs-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#39b0bb,#6fcf97);transition:width .6s cubic-bezier(.2,1.2,.4,1)}
.lb-rs-qs{display:flex;flex-direction:column;gap:1.1rem}
.lb-rs-wait{padding:2.5rem 1rem;text-align:center;font-size:1.3rem;font-weight:700;color:var(--font-sub)}
.lb-rs-q{padding:1rem 1.2rem;border-radius:1.4rem;background:#fff;box-shadow:0 .2rem .8rem rgba(0,0,0,.08)}
.lb-rs-q h3{display:flex;align-items:center;gap:.8rem;margin:0 0 .9rem;font-size:1.4rem;font-weight:800;color:var(--font)}
.lb-rs-avg{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.6rem;color:var(--font-sub);font-weight:700}
.lb-rs-avg b{font-size:2.6rem;color:var(--main);line-height:1}
.lb-rs-cols{display:flex;align-items:flex-end;gap:.6rem;min-height:9rem}
.lb-rs-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.4rem;justify-content:flex-end}
.lb-rs-col>b{font-size:1.15rem;font-weight:800;color:var(--font-sub)}
.lb-rs-stack{display:flex;flex-direction:column-reverse;align-items:center;gap:.25rem;width:100%;min-height:1.6rem;padding:.3rem 0;border-radius:1rem;background:#f1f6f6}
.lb-rs-dot{width:1.7rem;height:1.7rem;border-radius:50%;background:var(--k,#39b0bb);display:grid;place-items:center;color:#fff;font-size:.8rem;font-weight:800;box-shadow:0 .1rem .3rem rgba(0,0,0,.25)}
.lb-rs-dot.is-new,.lb-rs-note.is-new{animation:lb-rs-pop .7s cubic-bezier(.2,1.5,.4,1)}
@keyframes lb-rs-pop{0%{transform:scale(0) translateY(-2rem);opacity:0}60%{transform:scale(1.3)}100%{transform:none;opacity:1}}
.lb-rs-notes{display:flex;flex-wrap:wrap;gap:.8rem}
.lb-rs-note{max-width:19rem;padding:.8rem 1rem;border-radius:.4rem .4rem 1.2rem .4rem;background:color-mix(in srgb,var(--k,#f4a321) 22%,#fff);border-top:.4rem solid var(--k,#f4a321);box-shadow:0 .25rem .7rem rgba(0,0,0,.14);font-size:1.15rem;font-weight:700;color:var(--font);transform:rotate(var(--r,0deg));overflow-wrap:anywhere}
.lb-rs-note i{display:block;margin-top:.35rem;font-size:.8rem;font-style:normal;font-weight:700;opacity:.6}
.lb-rs-bars{display:flex;flex-direction:column;gap:.5rem}
.lb-rs-bar-row{display:grid;grid-template-columns:minmax(6rem,12rem) 1fr 2.2rem;align-items:center;gap:.7rem;font-size:1.1rem;font-weight:700}
.lb-rs-bar-t{height:1.2rem;border-radius:99px;background:#eaf1f2;overflow:hidden}
.lb-rs-bar-t i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#39b0bb,#6fcf97);transition:width .6s cubic-bezier(.2,1.2,.4,1)}
.lb-rs-animal{position:absolute;left:.6rem;bottom:.2rem;width:6.5rem;pointer-events:none}
.lb-rs-animal img{display:block;width:100%;height:auto;transform-origin:50% 100%}
.lb-rs-animal img.is-hop{animation:lb-rs-hop .9s cubic-bezier(.3,1.4,.5,1)}
@keyframes lb-rs-hop{0%{transform:none}25%{transform:translateY(-2.2rem) rotate(-8deg) scale(1.1)}50%{transform:translateY(0) rotate(6deg)}70%{transform:translateY(-1rem) rotate(-4deg)}100%{transform:none}}
.lb-rs-sparks{position:absolute;left:50%;top:0;width:0;height:0}
.lb-rs-sparks span{position:absolute;font-size:1.4rem;animation:lb-rs-spark 1.2s ease-out forwards;opacity:0}
@keyframes lb-rs-spark{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}100%{opacity:0;transform:rotate(var(--a)) translateY(-5rem)}}
@media (prefers-reduced-motion:reduce){.lb-rs-dot.is-new,.lb-rs-note.is-new,.lb-rs-animal img.is-hop,.lb-rs-sparks span{animation:none}.lb-rs-sparks span{opacity:1}}

/* work areas: the parrot explains from the bottom-right corner (smaller after the first, gone after the second) */
.lb-pa{display:flex;align-items:flex-end;justify-content:flex-end;gap:.5rem;margin-top:1.4rem;overflow:hidden;min-height:7rem}
.lb-pa-bubble{position:relative;max-width:30rem;margin-bottom:2.2rem;padding:.9rem 1.2rem;border-radius:1.3rem 1.3rem .3rem 1.3rem;background:#fff;box-shadow:0 .3rem 1rem rgba(0,0,0,.12);font-size:1.05rem;font-weight:700;line-height:1.4;color:var(--font);opacity:0;animation:lb-ask-pop .4s .8s ease-out forwards}
.lb-pa-animal{width:6.5rem;height:auto;flex-shrink:0;transform:translateY(100%);animation:lb-ask-rise .7s .15s cubic-bezier(.2,1.3,.4,1) forwards}
.lb-pa--small{min-height:0}
.lb-pa--small .lb-pa-animal{width:3.6rem}
.lb-pa--small .lb-pa-bubble{max-width:22rem;margin-bottom:1rem;padding:.5rem .8rem;font-size:.85rem;font-weight:600}
@media (prefers-reduced-motion:reduce){.lb-pa-bubble,.lb-pa-animal{animation:none;opacity:1;transform:none}}

.lb-xp-top:not(:has(img)) .lb-xp-bubble::before{display:none}
.lb-xp-top:not(:has(img)) .lb-xp-bubble{border-radius:1.2rem}

/* live mode — teacher: the strip where every pupil's dot moves as they change their answer */
.lb-lv{position:relative;margin:.4rem 0 .6rem}
.lb-lv-zones{position:absolute;left:0;right:0;top:0;bottom:1.5rem;display:flex;border-radius:1.2rem;overflow:hidden;opacity:.55}
.lb-lv-zones i{flex:1}
.lb-lv-zones i:nth-child(1){background:linear-gradient(90deg,#fde0de,#fdeeda)}
.lb-lv-zones i:nth-child(2){background:linear-gradient(90deg,#fdeeda,#e4f4e0)}
.lb-lv-zones i:nth-child(3){background:linear-gradient(90deg,#e4f4e0,#cdeedb)}
.lb-lv-track{position:relative;height:calc(var(--lanes,1) * 2.4rem + .6rem);min-height:3.2rem;margin:0 1.6rem}
.lb-lv-dot{position:absolute;display:inline-flex;align-items:center;gap:.35rem;transform:translateX(-50%);padding:.2rem .6rem .2rem .25rem;border-radius:999px;background:#fff;box-shadow:0 .15rem .5rem rgba(0,0,0,.25);font-size:.9rem;font-weight:800;color:var(--font);white-space:nowrap;transition:left .9s cubic-bezier(.3,1.3,.5,1),bottom .6s;margin-bottom:.3rem}
.lb-lv-dot>i{width:1.4rem;height:1.4rem;border-radius:50%;background:var(--k,#39b0bb)}
.lb-lv-dot>b{font-size:.8rem;opacity:.65}
.lb-lv-dot.is-low{background:#fff1ef;box-shadow:0 0 0 .18rem #e5584f,0 .15rem .5rem rgba(0,0,0,.25);animation:lb-lv-low 1.4s ease-in-out infinite}
.lb-lv-dot.is-new{animation:lb-rs-pop .6s cubic-bezier(.2,1.5,.4,1)}
@keyframes lb-lv-low{0%,100%{box-shadow:0 0 0 .18rem #e5584f,0 .15rem .5rem rgba(0,0,0,.25)}50%{box-shadow:0 0 0 .4rem rgba(229,88,79,.35),0 .15rem .5rem rgba(0,0,0,.25)}}
.lb-lv-scale{display:flex;justify-content:space-between;padding:.2rem 1.6rem 0;font-weight:800;color:var(--font-sub)}
.lb-lv-low{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:.6rem;padding:.6rem .9rem;border-radius:1rem;background:#e9f6ee;color:#2c7a4b;font-size:1.05rem}
.lb-lv-low.has{background:#fff1ef;color:#c8473f}
.lb-lv-low .material-icons-outlined{font-size:1.6rem}
.lb-lm-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.15rem .7rem;border-radius:999px;background:#fff;box-shadow:0 .1rem .3rem rgba(0,0,0,.15);font-weight:800;color:var(--font)}
.lb-lm-chip i{font-style:normal;color:#c8473f}
@media (prefers-reduced-motion:reduce){.lb-lv-dot,.lb-lv-dot.is-low,.lb-lv-dot.is-new{animation:none;transition:none}}

/* live mode — pupil: a dock at the bottom of the screen, always there while it is on */
.lb-dock{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);z-index:9000;width:min(36rem,calc(100vw - 1.5rem));padding:.8rem 1rem 1rem;border-radius:1.6rem;background:#fff;box-shadow:0 .5rem 2rem rgba(0,0,0,.3);font-family:inherit;color:var(--font)}
.lb-dock.is-ended{opacity:.7}
.lb-dock-h{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}
.lb-dock-animal{width:2.6rem;height:auto}
.lb-dock-h b{flex:1;font-size:1.05rem;font-weight:800}
.lb-dock-st{font-size:.9rem;font-weight:800;color:#2f9e5b}
.lb-dock-st.is-pop{animation:lb-rs-pop .4s ease-out}
.lb-dock-q{margin-top:.5rem}
.lb-dock-p{font-size:1.2rem;font-weight:800;margin-bottom:.3rem}
.lb-dock-s{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.6rem;font-weight:800;color:var(--font-sub)}
.lb-dock-s input[type=range]{width:100%;height:2.6rem;accent-color:var(--main)}
.lb-dock-s input.is-unset{opacity:.55}
.lb-dock-v{min-width:2.6rem;text-align:center;padding:.15rem .5rem;border-radius:.8rem;background:var(--main);color:#fff;font-size:1.2rem}
.lb-dock-o{display:flex;flex-wrap:wrap;gap:.5rem}
.lb-dock-opt{padding:.6rem 1rem;border:.15rem solid #cdd9db;border-radius:999px;background:#fff;font:inherit;font-weight:800;font-size:1rem;cursor:pointer}
.lb-dock-opt.is-on{background:var(--main);border-color:var(--main);color:#fff}

/* a clearer way back */
.lb-body .lb-backlink{padding:.55rem 1.2rem .55rem .8rem;margin:0 0 1rem;border:.15rem solid var(--main);background:#fff;color:var(--main);font-size:1.05rem;font-weight:800;box-shadow:0 .15rem .5rem rgba(57,176,187,.25)}
.lb-body .lb-backlink .material-icons-outlined{font-size:1.5rem}
.lb-body .lb-backlink:hover{background:var(--main);color:#fff}

/* AI summary of the free-text answers */
.lb-ai-btn{border-radius:999px;background:linear-gradient(135deg,#ede7ff,#e3f4ff);color:#5b3fc4;font-weight:800}
.lb-ai-btn .material-icons-outlined{font-size:1.2rem}
.lb-ai-btn:hover{background:linear-gradient(135deg,#d9ccff,#c9e8ff)}
.lb-ai-host:empty{display:none}
.lb-ai-host{margin:.4rem 0 1rem}
.lb-ai-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.2rem;border-radius:1.4rem;background:linear-gradient(160deg,#faf8ff,#f0f8ff);box-shadow:0 .2rem .9rem rgba(91,63,196,.18);border:.12rem solid #e1d9ff;font-size:1.05rem;color:var(--font)}
.lb-ai-card.is-loading,.lb-ai-card.is-err{flex-direction:row;align-items:center;gap:.7rem;font-weight:700}
.lb-ai-card.is-err{background:#fff1ef;border-color:#f3c5c0;color:#c8473f}
.lb-ai-spin{color:#5b3fc4;animation:lb-ai-pulse 1.1s ease-in-out infinite}
@keyframes lb-ai-pulse{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.3) rotate(20deg)}}
.lb-ai-h{display:flex;align-items:center;gap:.6rem}
.lb-ai-h>.material-icons-outlined{color:#5b3fc4}
.lb-ai-h b{flex:1;font-size:1.2rem}
.lb-ai-sum{margin:0;font-size:1.15rem;font-weight:600;line-height:1.45}
.lb-ai-sec{margin-top:.3rem;font-size:.8rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b3fc4}
.lb-ai-list{display:flex;flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none}
.lb-ai-list li{display:flex;gap:.6rem;align-items:flex-start;line-height:1.4}
.lb-ai-list li>.material-icons-outlined{font-size:1.1rem;margin-top:.15rem;color:#8a77d9}
.lb-ai-list.is-warn li>.material-icons-outlined{color:#e08a1e}
.lb-ai-list.is-tip li>.material-icons-outlined{color:#2f9e5b}
.lb-ai-note{margin-top:.4rem;font-size:.8rem;color:var(--font-sub)}
@media (prefers-reduced-motion:reduce){.lb-ai-spin{animation:none}}

/* Feedback worked in inside Lärarens verktyg: the tool pane is a plain column that the window fills completely */
.add-menu-content div:has(> #lb-tool-container){display:flex;flex-direction:column;overflow:hidden!important;padding:0!important}
.add-menu-content .lb-tool-container{flex:1;min-height:0;height:100%}
.lb-backdrop--embedded .lb-modal{display:flex;flex-direction:column;min-height:0}
.lb-backdrop--embedded .lb-modal .lb-body{flex:1;min-height:0;overflow:auto}

.add-menu-content div:has(> #sch-tool-container){display:flex;flex-direction:column;overflow:hidden!important;padding:0!important}

/* the AI button (and the other controls) follow along when scrolling through the answers */
.lb-rs-top{position:sticky;top:0;z-index:6;margin:-.4rem -.5rem 0;padding:.5rem .5rem .6rem;background:linear-gradient(180deg,#fff 70%,rgba(255,255,255,.0));border-radius:1.2rem}
.lb-proj-vhead{position:sticky;top:0;z-index:6}

/* Feedback window: the tabs share the header's line with the title; settings is a gear at the top right */
.lb-modal--teacher .sym-modal-head{gap:.6rem;padding-top:.8rem;padding-bottom:.5rem}
.lb-modal--teacher .sym-modal-title{flex:0 0 auto;white-space:nowrap}
.lb-tabs.lb-tabs--head,.lb-cozy .lb-tabs.lb-tabs--head{flex:1;min-width:0;margin:0 0 0 .6rem;padding:0;position:static;background:transparent;border:0;overflow-x:auto;scrollbar-width:none;gap:.25rem}
.lb-tabs--head::-webkit-scrollbar{display:none}
.lb-tabs--head .lb-tab{flex-shrink:0;white-space:nowrap}
.lb-tabs--head .lb-savestate{margin-left:auto;padding-left:.6rem;flex-shrink:0}
.lb-tab--gear,.lb-cozy .lb-tab--gear{flex-shrink:0;width:2.4rem;height:2.4rem;padding:0;display:grid;place-items:center;border-radius:50%;margin:0}
.lb-tab--gear .material-icons-outlined{font-size:1.4rem}
.lb-tab--gear:not(.is-on){color:var(--font-sub)}
/* (i) with the instruction behind it */
.lb-occ-btns{align-items:center}
.lb-info-wrap{position:relative;margin-left:auto}
.lb-info-btn{width:2.4rem;height:2.4rem;border:0;border-radius:50%;background:#fff;box-shadow:0 .15rem .5rem rgba(0,0,0,.15);color:var(--main);cursor:pointer;display:grid;place-items:center}
.lb-info-btn.is-on{background:var(--main);color:#fff}
.lb-info-pop{position:absolute;right:0;top:calc(100% + .5rem);z-index:8;width:min(26rem,70vw);padding:.9rem 1.1rem;border-radius:1.1rem;background:#fff;box-shadow:0 .5rem 1.6rem rgba(0,0,0,.22);font-size:1rem;font-weight:600;line-height:1.45;color:var(--font)}
.lb-info-pop[hidden]{display:none}

/* Feedback widget on the board: the four choices in the middle, the parrot in the bottom-right corner */
.lb-w--teacher .lb-ask-btns{flex:1;min-height:0;align-content:center;justify-content:center;margin:0 auto;padding:0 0 clamp(1.2rem,8cqi,2.4rem);width:min(100%,30rem)}

/* exit ticket / live: the monkey and its explanation centred, the text in a round speech bubble; the sleeping animal of an empty list sits lower */
.lb-xp-info{justify-content:center;align-items:flex-end;margin:.8rem auto 1.2rem}
.lb-xp-info .lb-xp-animal{width:6.5rem}
.lb-xp-info .lb-xp-bubble{flex:0 1 36rem;border-radius:2.6rem;padding:1.2rem 1.8rem;font-size:1.05rem;line-height:1.5;text-align:center;margin-bottom:1rem}
.lb-xp-info .lb-xp-bubble::before{left:-.7rem;bottom:1.4rem;border-width:.75rem}
.lb-occ-rows .lb-empty--cosy{margin-top:4rem}

/* the parrot's explanation on Arbetsområden is plain text, not bold */
.lb-pa-bubble,.lb-pa--small .lb-pa-bubble{font-weight:400}

/* Feedback widget: the parrot has its own row UNDER the four choices (it never covers them), its bubble to its left */
.lb-w--teacher .lb-ask-btns{padding:0;overflow:auto;min-height:0}
.lb-w--teacher .lb-ask{position:static;right:auto;bottom:auto;width:auto;flex-shrink:0;display:flex;align-items:flex-end;justify-content:flex-end;gap:.4rem;height:clamp(3rem,18cqi,5.2rem);overflow:hidden;pointer-events:none}
.lb-w--teacher .lb-ask-animal{width:clamp(3rem,18cqi,5.2rem);flex-shrink:0}
.lb-w--teacher .lb-ask-bubble{position:relative;right:auto;bottom:auto;order:-1;align-self:center;max-width:calc(100% - 4.2rem);margin:0;padding:.35rem .7rem;border-radius:1.2rem 1.2rem .2rem 1.2rem;font-size:clamp(.7rem,3.6cqi,.9rem)}

/* the parrot's row is as tall as the parrot (its head was cut off by a fixed height) */
.lb-w--teacher .lb-ask{height:auto;padding-top:.25rem}
.lb-w--teacher .lb-ask-animal{height:auto;max-height:none}

/* question types shared with Realtidskoll: alternatives (pick one) and corners A–D */
.lb-xp-art--choice i{position:relative;padding-left:1.3rem;background:none;height:.9rem}
.lb-xp-art--choice i::before{content:"";position:absolute;left:0;top:0;width:.8rem;height:.8rem;border:.15rem solid #39b0bb;border-radius:50%;box-sizing:border-box}
.lb-xp-art--choice i::after{content:"";position:absolute;left:1.3rem;right:0;top:.28rem;height:.4rem;border-radius:99px;background:#cdd9db}
.lb-xp-art--choice i:first-child::before{background:#39b0bb}
.lb-xp-art--corners{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;width:5rem}
.lb-xp-art--corners i{height:1.4rem;border-radius:.4rem;background:#cdd9db}
.lb-xp-art--corners i:nth-child(1){background:#e5584f}.lb-xp-art--corners i:nth-child(2){background:#2f6db5}.lb-xp-art--corners i:nth-child(3){background:#f4a321}.lb-xp-art--corners i:nth-child(4){background:#2f9e5b}
.lb-xq-corner{flex-shrink:0;width:2rem;height:2rem;border-radius:.6rem;display:grid;place-items:center;background:var(--main);color:#fff;font-weight:800}
.lb-opt-radio{flex-shrink:0;width:1.1rem;height:1.1rem;border:.15rem solid #9aa8ab;border-radius:50%;box-sizing:border-box}
.lb-xp-cards{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr))}
/* pupil: pick one */
.lb-choices{display:flex;flex-direction:column;gap:.5rem}
.lb-choice{display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border:.15rem solid #cdd9db;border-radius:1.1rem;background:#fff;font:inherit;font-size:1.1rem;font-weight:700;color:var(--font);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}
.lb-choice-dot{flex-shrink:0;width:1.3rem;height:1.3rem;border:.18rem solid #9aa8ab;border-radius:50%;box-sizing:border-box;transition:all .15s}
.lb-choice:hover{border-color:var(--main)}
.lb-choice.is-on{border-color:var(--main);background:var(--main-sub,#e6f4f1)}
.lb-choice.is-on .lb-choice-dot{border-color:var(--main);background:radial-gradient(circle,var(--main) 45%,transparent 50%)}
.lb-corners{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.lb-corners--2{grid-template-columns:1fr 1fr}
.lb-corner{display:flex;align-items:center;gap:.7rem;min-height:4.4rem;padding:.7rem 1rem;border:.18rem solid color-mix(in srgb,var(--cc) 45%,#fff);border-radius:1.2rem;background:color-mix(in srgb,var(--cc) 10%,#fff);font:inherit;font-size:1.1rem;font-weight:800;color:var(--font);text-align:left;cursor:pointer;transition:transform .15s,box-shadow .15s}
.lb-corner-l{flex-shrink:0;width:2.4rem;height:2.4rem;border-radius:.8rem;display:grid;place-items:center;background:var(--cc);color:#fff;font-size:1.3rem}
.lb-corner:hover{transform:translateY(-.1rem)}
.lb-corner.is-on{background:var(--cc);color:#fff;box-shadow:0 .3rem .9rem color-mix(in srgb,var(--cc) 45%,transparent)}
.lb-corner.is-on .lb-corner-l{background:#fff;color:var(--cc)}
.lb-f-pick{display:flex;align-items:center;gap:.5rem;font-weight:700}
.lb-f-corner{width:1.8rem;height:1.8rem;border-radius:.5rem;display:inline-grid;place-items:center;background:var(--main);color:#fff;font-size:.95rem}
/* teacher: the corners as they come in */
.lb-rs-corners{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.lb-rs-corner{position:relative;display:flex;flex-direction:column;gap:.4rem;min-height:7rem;padding:.8rem 1rem;border-radius:1.2rem;background:color-mix(in srgb,var(--cc) 10%,#fff);border:.15rem solid color-mix(in srgb,var(--cc) 40%,#fff)}
.lb-rs-corner.is-top{box-shadow:0 0 0 .2rem var(--cc)}
.lb-rs-corner-l{width:2.2rem;height:2.2rem;border-radius:.7rem;display:grid;place-items:center;background:var(--cc);color:#fff;font-size:1.2rem}
.lb-rs-corner-t{font-size:1.1rem;font-weight:800}
.lb-rs-corner-dots{display:flex;flex-wrap:wrap;gap:.25rem}
.lb-rs-corner-n{position:absolute;right:.9rem;top:.6rem;font-size:2rem;font-weight:800;color:var(--cc)}
.lb-dock-opt.is-on{background:var(--main);color:#fff;border-color:var(--main)}

/* with no pulse / exit ticket / live yet, "new" sits centred under the sleeping animal */
.lb-occ-btns--empty{justify-content:center;margin-top:.6rem}

/* the fifth choice (Uppgifter) takes the whole last row of the widget's choices */
.lb-w--teacher .lb-ask-btns .lb-qk:nth-child(5):last-child{grid-column:1/-1}
.lb-qk--asg .lb-qk-ic{background:#ece6ff;color:#6a4fc7}

/* windows opened FROM the Aktiviteter window (the assignment editor and answer overview, the library, pickers …) must lie above it, not behind it */
body:has(.lb-backdrop) .sym-modal-backdrop:not(.lb-backdrop){z-index:12030}
