dialog:has(.laser-panel){width:min(960px,95vw)}
.laser-panel{max-width:860px;margin:auto}.laser-controls{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}.laser-difficulties{display:flex;gap:7px;background:#e8eef5;padding:5px;border-radius:14px}.laser-difficulties button{border:0;background:transparent;padding:9px 13px;border-radius:10px;font-weight:800;color:#50647a;cursor:pointer}.laser-difficulties button.active{background:#173a55;color:#fff;box-shadow:0 4px 12px rgba(7,27,45,.2)}.laser-stats{display:flex;gap:10px;flex-wrap:wrap}.laser-stats span{background:#fff;border:1px solid #dbe5ef;border-radius:999px;padding:8px 12px;font-weight:750;color:#345}.laser-panel canvas{display:block;width:100%;height:auto;aspect-ratio:8/5;background:#071b2d;border-radius:20px;touch-action:none;box-shadow:0 14px 34px rgba(7,27,45,.24)}.laser-instruction{color:#52677d;line-height:1.55;margin:14px auto 8px;max-width:760px}.laser-feedback{min-height:28px;color:#177653;font-weight:850;font-size:1.05rem}.laser-panel .actions{justify-content:center}
@media(max-width:560px){.laser-controls{justify-content:center}.laser-difficulties button{padding:8px 9px;font-size:.86rem}.laser-stats{justify-content:center}.laser-panel canvas{border-radius:14px}}

.progress-button{margin-left:auto;border:1px solid #dbe5f0;background:#fff;color:#173a55;border-radius:15px;padding:7px 12px;display:grid;grid-template-columns:auto auto;column-gap:7px;align-items:center;cursor:pointer;box-shadow:0 5px 15px rgba(24,51,91,.08)}.progress-button span{grid-row:1/3;font-size:1.25rem}.progress-button strong{font:850 1rem/1 Fredoka;text-align:left}.progress-button small{font-size:.67rem;color:#66758a;font-weight:700}.progress-modal{width:min(560px,92vw);border:0;border-radius:25px;padding:0;box-shadow:0 24px 70px rgba(12,31,57,.28)}.progress-modal::backdrop{background:rgba(13,29,52,.6);backdrop-filter:blur(3px)}.progress-card{padding:28px;position:relative}.progress-summary{display:flex;gap:15px;align-items:center;background:linear-gradient(135deg,#173a55,#315f89);color:#fff;border-radius:20px;padding:18px}.progress-summary>span{font-size:2.2rem}.progress-summary strong{display:block;font:900 2rem/1 Fredoka}.progress-summary small{opacity:.85}.progress-card h2{font-family:Fredoka;color:#173a55;margin:24px 0 14px}.skill-list{display:grid;gap:14px}.skill-row>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}.skill-row span{font-size:.8rem;color:#66758a}.skill-track{height:10px;background:#e6edf4;border-radius:99px;overflow:hidden}.skill-track i{display:block;height:100%;background:linear-gradient(90deg,#377cf6,#62d6b4);border-radius:inherit}.progress-note{font-size:.82rem;color:#66758a;margin:20px 0 0}.progress-close{position:absolute;right:14px;top:14px;border:0;background:rgba(255,255,255,.9);width:36px;height:36px;border-radius:50%;font-size:1.35rem;cursor:pointer}.progress-toast{position:fixed;z-index:2147483647;right:22px;left:auto;top:88px;bottom:auto;margin:0;border:0;background:#173a55;color:#fff;border-radius:14px;padding:12px 16px;font-weight:800;box-shadow:0 10px 28px rgba(24,51,91,.24);opacity:0;transform:translateY(-10px);pointer-events:none;transition:.2s}.progress-toast.show{opacity:1;transform:none}
html[dir="rtl"] .progress-button{margin-left:0;margin-right:auto}html[dir="rtl"] .progress-close{right:auto;left:14px}html[dir="rtl"] .progress-toast{right:auto;left:22px}
@media(max-width:520px){header{padding:0 14px}.brand{font-size:1.05rem}.brandmark{width:36px;height:36px}.progress-button small{display:none}.progress-button{display:flex;padding:8px 10px}.progress-toast{top:76px;right:12px;left:12px;text-align:center}}

/* Install action and paired student score summary */
.header-actions{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0}
.install-app-button{min-height:44px;display:flex;align-items:center;gap:8px;border:1px solid #c9dcf6;border-radius:14px;padding:9px 13px;background:linear-gradient(145deg,#fff,#eaf3ff);color:#17477d;font-weight:850;cursor:pointer;box-shadow:0 5px 15px rgba(24,51,91,.09)}
.install-app-button[hidden]{display:none!important}
.install-app-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.install-app-button:hover{transform:translateY(-1px);border-color:#7db2f5;background:#fff}
.install-app-button:focus-visible,.progress-button:focus-visible{outline:3px solid rgba(55,124,246,.35);outline-offset:3px}
.progress-button{margin-left:0;display:flex;align-items:stretch;gap:0;padding:5px;border-radius:17px}
.progress-button .header-score{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:7px;padding:3px 10px;min-width:92px;text-align:left}
.progress-button .header-score+.header-score{border-inline-start:1px solid #dbe5f0}
.progress-button .header-score>span{grid-row:auto;font-size:1.2rem}
.progress-button .header-score>span:last-child{display:grid;gap:2px}
.progress-button .header-score strong{font:850 1rem/1 Fredoka;text-align:left;font-variant-numeric:tabular-nums}
.progress-button .header-score small{font-size:.64rem;line-height:1.05;color:#66758a;font-weight:750;white-space:nowrap}
.progress-button .header-score-best strong{color:#2455bb}
html[dir="rtl"] .header-actions{margin-left:0;margin-right:auto}
html[dir="rtl"] .progress-button .header-score{text-align:right}
html[dir="rtl"] .progress-button .header-score strong{text-align:right}
@media(max-width:720px){
  .install-app-button span{display:none}
  .install-app-button{padding:9px 11px}
  .progress-button .header-score{min-width:68px;padding:3px 7px;column-gap:5px}
}
@media(max-width:520px){
  .header-actions{gap:5px}
  .progress-button{padding:5px}
  .progress-button .header-score{min-width:53px;padding:2px 5px}
  .progress-button .header-score>span{font-size:1rem}
  .progress-button .header-score strong{font-size:.95rem}
  .progress-button .header-score small{display:none}
}
@media(max-width:390px){
  .brand>span:last-child{display:none}
  .install-app-button{min-height:40px;padding:7px 9px}
}
