/* TeachTools — viewport-fixed UI; safe with transformed presentation stages. */
.tt-root{--tt-accent:#7c5cff;--tt-ink:#eef0ff;position:fixed;inset:0;z-index:2147483000;pointer-events:none;font:14px/1.35 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--tt-ink)}
.tt-root *{box-sizing:border-box}.tt-launch,.tt-panel,.tt-overlay,.tt-magnifier,.tt-toast,.tt-screen{position:absolute}.tt-launch{right:20px;bottom:20px;pointer-events:auto;border:1px solid #ffffff30;border-radius:999px;background:#171927ed;color:#fff;padding:11px 17px;box-shadow:0 8px 28px #0006;cursor:pointer;font-weight:650}.tt-launch:hover{background:#272a42}.tt-panel{right:20px;bottom:20px;width:340px;max-height:min(690px,calc(100vh - 30px));overflow:auto;pointer-events:auto;border:1px solid #ffffff24;border-radius:18px;background:#151722f2;box-shadow:0 18px 60px #0008;backdrop-filter:blur(18px);padding:12px;user-select:none}.tt-head{display:flex;align-items:center;gap:8px;cursor:move;padding:2px 2px 10px}.tt-head strong{flex:1;font-size:15px}.tt-icon{border:0;background:transparent;color:#cbd0e5;cursor:pointer;border-radius:8px;padding:5px 8px}.tt-icon:hover{background:#ffffff12;color:white}.tt-group{margin:8px 0 10px}.tt-group h3{font-size:11px;color:#9aa2c3;letter-spacing:.12em;margin:0 0 7px 3px;font-weight:600}.tt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.tt-btn{min-width:0;border:1px solid #ffffff12;border-radius:9px;background:#ffffff08;color:#e8eaff;padding:8px 3px;cursor:pointer;font-size:12px}.tt-btn:hover{background:#ffffff13}.tt-btn.on{background:#7c5cff38;border-color:#9b82ff;box-shadow:inset 0 0 0 1px #9b82ff40;color:#fff}.tt-btn kbd{display:block;color:#9ca4c7;font:10px/1.2 inherit;margin-top:3px}.tt-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 2px}.tt-field{font-size:11px;color:#aeb5d2;display:flex;align-items:center;gap:7px}.tt-field input[type=range]{min-width:0;width:100%;accent-color:var(--tt-accent)}.tt-field input[type=color]{width:36px;height:25px;border:0;background:none;padding:0}.tt-actions{display:flex;gap:6px;flex-wrap:wrap}.tt-actions .tt-btn{flex:1;padding:7px}.tt-class{padding:3px}.tt-timer{text-align:center;font-size:34px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.06em;padding:4px}.tt-timer.done{color:#ff5d6c;animation:tt-pulse .7s infinite alternate}.tt-time-inputs{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:8px}.tt-time-inputs input,.tt-names input{width:65px;background:#090b13;border:1px solid #ffffff25;color:white;border-radius:7px;padding:6px;text-align:center}.tt-roll{text-align:center;font-size:36px;font-weight:800;min-height:50px;padding:3px}.tt-roll small{display:block;font-size:11px;color:#9ca4c7;font-weight:400}.tt-namebox{width:100%;height:70px;resize:vertical;background:#090b13;color:#e8eaff;border:1px solid #ffffff20;border-radius:8px;padding:7px;font:12px/1.4 inherit;margin-top:7px}.tt-hint{color:#8e96b8;font-size:11px;margin:7px 2px}.tt-overlay{inset:0;pointer-events:none;overflow:hidden}.tt-overlay.active{pointer-events:auto;touch-action:none}.tt-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.tt-spot{position:absolute;inset:0;background:radial-gradient(circle at var(--x,-100px) var(--y,-100px),transparent 0,transparent var(--r,150px),#000d calc(var(--r,150px) + 2px));pointer-events:none}.tt-laser{position:absolute;width:18px;height:18px;border-radius:50%;background:#ff173c;box-shadow:0 0 9px 4px #ff173caa,0 0 25px 10px #ff173c44;transform:translate(-50%,-50%);pointer-events:none}.tt-cross{position:absolute;inset:0;pointer-events:none}.tt-cross:before,.tt-cross:after{content:"";position:absolute;background:#ff385dbb}.tt-cross:before{left:0;right:0;top:var(--y);height:1px}.tt-cross:after{top:0;bottom:0;left:var(--x);width:1px}.tt-ripple{position:absolute;border:3px solid #8f7aff;border-radius:50%;transform:translate(-50%,-50%);animation:tt-ripple .65s ease-out forwards;pointer-events:none}.tt-magnifier{display:none;width:var(--size,260px);height:var(--size,260px);border:3px solid #fff;border-radius:50%;overflow:hidden;box-shadow:0 0 0 2px #222,0 8px 35px #0009;background:#fff;pointer-events:none;transform:translate(-50%,-50%)}.tt-magnifier.on{display:block}.tt-mag-content{position:absolute;transform-origin:0 0}.tt-mag-content>.slide{position:absolute!important;inset:0 auto auto 0!important;display:block!important;visibility:visible!important;opacity:1!important;transform:none!important}.tt-screen{inset:0;display:flex;align-items:flex-end;justify-content:center;padding:35px;pointer-events:auto;color:#777;background:#000}.tt-screen.white{background:#fff;color:#555}.tt-exit{font-size:13px;opacity:.65;background:#8882;padding:8px 14px;border-radius:20px}.tt-toast{left:50%;bottom:28px;transform:translateX(-50%);background:#171927f5;color:#fff;border:1px solid #ffffff25;border-radius:10px;padding:10px 16px;max-width:80vw;box-shadow:0 8px 30px #0007;opacity:0;transition:opacity .2s}.tt-toast.on{opacity:1}.tt-text-editor{position:absolute;min-width:120px;pointer-events:auto;background:#fffef5;color:#111;border:2px dashed #7c5cff;padding:5px;font:20px/1.3 sans-serif;outline:none;transform:translate(-2px,-2px)}
@keyframes tt-ripple{from{width:8px;height:8px;opacity:1}to{width:100px;height:100px;opacity:0}}@keyframes tt-pulse{to{opacity:.45}}
@media(max-width:600px){.tt-panel{width:min(340px,calc(100vw - 20px));right:10px;bottom:10px;max-height:calc(100vh - 20px)}.tt-launch{right:12px;bottom:12px}.tt-grid{gap:5px}.tt-btn{font-size:11px}}
@media print{.tt-root{display:none!important}}
