@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}:root{--ink: #1f2937;--muted: #6b7280;--line: #e7e7ee;--accent: #6d28d9;--accent-soft: #f5f3ff;--shadow: 0 1px 2px rgba(15, 23, 42, .08), 0 4px 14px rgba(15, 23, 42, .1);--shadow-lg: 0 12px 40px rgba(15, 23, 42, .28);font-family:Inter Variable,Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink)}html,body,#root{margin:0;height:100%}body{-webkit-font-smoothing:antialiased;background:#f4f4f8}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid #a78bfa;outline-offset:2px}.icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;flex:none;color:var(--muted)}.icon-btn:hover:not(:disabled){background:#f1f1f5;color:var(--ink)}.ghost-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 14px;border-radius:10px;background:#f3f4f6;font-weight:600;font-size:14px}.ghost-btn:hover:not(:disabled){background:#e9e9ef}.ghost-btn.wide{width:100%}.swatch{width:22px;height:22px;border-radius:50%;border:1px solid rgba(15,23,42,.15)}.swatch.active{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent)}.avatar{flex:none;border-radius:50%;color:#fff;display:grid;place-items:center;font-weight:700}.editor{height:100vh;display:flex;flex-direction:column}.editor-top{height:60px;flex:none;display:flex;align-items:center;gap:10px;padding:0 16px;background:#fff;border-bottom:1px solid var(--line)}.brand{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:19px;background:linear-gradient(135deg,#7c3aed,#db2777)}.deck-title{font-weight:700;font-size:16px;border:1px solid transparent;border-radius:8px;padding:6px 8px;min-width:120px;width:340px;background:transparent}.deck-title:hover{background:#f5f5f8}.deck-title:focus{outline:none;border-color:#c4b5fd;background:#fff}.top-spacer{flex:1}.code-pill{font-size:13px;color:var(--muted);padding:6px 12px;border-radius:999px;background:#f3f4f6;white-space:nowrap}.code-pill strong{color:var(--ink);letter-spacing:.04em}.top-btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border-radius:10px;font-size:14px;font-weight:600;color:#374151;white-space:nowrap}.top-btn:hover{background:#f3f4f6}.top-btn.on{background:var(--accent-soft);color:var(--accent)}.top-btn.primary{background:var(--accent);color:#fff;padding:0 16px}.top-btn.primary:hover{filter:brightness(1.1)}.editor-body{flex:1;min-height:0;display:grid;grid-template-columns:200px 1fr 320px}.editor-body.with-phone{grid-template-columns:200px 1fr 300px 320px}.slide-list{overflow-y:auto;padding:14px 12px 20px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.slide-item{position:relative;display:flex;gap:6px;align-items:flex-start;border-radius:12px;padding:4px}.slide-item.drop{box-shadow:0 -3px 0 0 var(--accent)}.slide-num{width:16px;font-size:12px;font-weight:600;color:var(--muted);padding-top:4px;text-align:right;flex:none}.slide-thumb{position:relative;flex:1;aspect-ratio:16 / 9;border-radius:9px;overflow:hidden;box-shadow:0 0 0 1px var(--line);transition:box-shadow .12s}.slide-thumb:hover{box-shadow:0 0 0 2px #c4b5fd}.slide-item.active .slide-thumb{box-shadow:0 0 0 3px var(--accent)}.stage-fit.thumb-fit{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.thumb-type{position:absolute;left:5px;bottom:5px;width:20px;height:20px;border-radius:6px;color:#fff;display:grid;place-items:center}.slide-actions{position:absolute;right:8px;top:8px;display:none;gap:3px}.slide-item:hover .slide-actions{display:flex}.slide-actions button{width:24px;height:24px;border-radius:6px;background:#fffffff2;display:grid;place-items:center;box-shadow:var(--shadow)}.slide-actions button:hover:not(:disabled){color:var(--accent)}.add-slide{display:flex;align-items:center;justify-content:center;gap:6px;height:44px;border-radius:10px;border:2px dashed #d4d4dc;color:var(--muted);font-weight:600;font-size:14px;margin-left:22px}.add-slide:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.editor-main{min-width:0;display:flex;flex-direction:column;padding:22px;gap:12px}.main-stage{flex:1;min-height:0}.stage-caption{text-align:center;font-size:12.5px;color:var(--muted)}.stage-fit{position:relative;overflow:hidden}.stage-scaler{position:absolute;left:50%;top:50%;transform-origin:center}.main-stage .stage{border-radius:14px;box-shadow:var(--shadow-lg)}.phone-col{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px 10px;border-left:1px solid var(--line);background:#ececf2;min-height:0}.phone-frame{position:relative;width:270px;height:min(560px,100%);flex:1;max-height:580px;border-radius:38px;background:#111827;padding:12px;box-shadow:var(--shadow-lg)}.phone-notch{position:absolute;top:12px;left:50%;transform:translate(-50%);width:90px;height:20px;border-radius:0 0 14px 14px;background:#111827;z-index:2}.phone-screen{width:100%;height:100%;border-radius:28px;overflow:hidden;background:#fff}.phone-screen .participant{height:100%;font-size:14px}.phone-caption{color:var(--muted);font-size:12px}.props{overflow-y:auto;background:#fff;border-left:1px solid var(--line)}.props-head{display:flex;gap:12px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.props-head div{display:flex;flex-direction:column}.props-head small{color:var(--muted);font-size:12.5px}.type-chip{width:34px;height:34px;border-radius:10px;color:#fff;display:grid;place-items:center;flex:none}.props-section{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.props-section h4{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12.5px;font-weight:600;color:#4b5563}.field-hint{color:var(--muted);font-size:12px}.field input,.field textarea,.field select,.list-row input{width:100%;border:1px solid #e3e3ea;border-radius:10px;padding:9px 11px;background:#fff;resize:vertical;font-size:14px}.field input:focus,.field textarea:focus,.field select:focus,.list-row input:focus{outline:none;border-color:#a78bfa;box-shadow:0 0 0 3px #ede9fe}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.list-editor{display:flex;flex-direction:column;gap:8px}.list-row{display:flex;align-items:center;gap:6px}.list-num{width:20px;font-size:12px;color:var(--muted);text-align:center;flex:none}.add-row{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--accent);padding:6px 4px 6px 26px;align-self:flex-start}.correct-toggle{width:30px;height:30px;border-radius:50%;border:2px solid #d1d5db;color:transparent;display:grid;place-items:center;flex:none}.correct-toggle.on{background:#16a34a;border-color:#16a34a;color:#fff}.correct-toggle:hover:not(.on){color:#9ca3af}.seg{display:flex;background:#f3f4f6;border-radius:10px;padding:3px;gap:3px}.seg button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--muted)}.seg button.on{background:#fff;color:var(--ink);box-shadow:var(--shadow)}.props-tip{margin:0;font-size:13px;line-height:1.5;color:#4b5563;background:#f8f8fb;padding:10px 12px;border-radius:10px;display:flex;gap:8px;align-items:flex-start}.props-tip svg{flex:none;margin-top:2px;color:var(--accent)}.img-preview{position:relative}.img-preview img{width:100%;border-radius:10px;display:block}.img-preview .icon-btn{position:absolute;top:6px;right:6px;background:#fff;box-shadow:var(--shadow)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.toggle-row>span:first-child{display:flex;flex-direction:column}.toggle-row strong{font-size:14px;font-weight:600}.toggle-row small{font-size:12.5px;color:var(--muted)}.toggle-row input{position:absolute;opacity:0;pointer-events:none}.toggle{width:40px;height:24px;border-radius:999px;background:#d1d5db;position:relative;flex:none;transition:background .15s}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s}.toggle-row input:checked+.toggle{background:var(--accent)}.toggle-row input:checked+.toggle:after{transform:translate(16px)}.toggle-row input:focus-visible+.toggle{outline:2px solid #a78bfa;outline-offset:2px}.popover-wrap{position:relative}.popover{position:absolute;right:0;top:calc(100% + 8px);z-index:50;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;animation:pop .12s ease-out}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}}.theme-popover{display:grid;grid-template-columns:repeat(2,120px);gap:8px}.theme-choice{height:60px;border-radius:10px;display:flex;align-items:flex-end;padding:6px 8px;font-size:12px;font-weight:600;border:1px solid rgba(15,23,42,.08)}.theme-choice.active{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#0f172a73;display:grid;place-items:center;padding:20px;animation:fade .15s}@keyframes fade{0%{opacity:0}}.type-picker{width:min(760px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:#fff;border-radius:20px;box-shadow:var(--shadow-lg);padding:20px 22px 24px;animation:rise .18s ease-out}.picker-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.picker-tabs button{padding:6px 14px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--muted);background:#f3f4f6}.picker-tabs button:hover{color:var(--ink)}.picker-tabs button.on{background:var(--accent);color:#fff}.picker-sections{overflow-y:auto;display:flex;flex-direction:column;gap:18px;margin:0 -6px;padding:0 6px 4px}.picker-section h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}.picker-section h3 small{margin-left:8px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.picker-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.picker-head h2{margin:0;font-size:20px}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.picker-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:13px 14px;border-radius:14px;border:1px solid var(--line);transition:border-color .12s,transform .12s,box-shadow .12s}.picker-card:hover{border-color:#c4b5fd;transform:translateY(-2px);box-shadow:var(--shadow)}.picker-icon{width:38px;height:38px;border-radius:11px;color:#fff;display:grid;place-items:center;margin-bottom:4px}.picker-card small{color:var(--muted);font-size:12.5px;line-height:1.4}.stage{position:relative;width:1280px;height:720px;overflow:hidden;display:flex;flex-direction:column;padding:70px 64px 56px;--fg: #fff;color:var(--fg)}.stage-light{--fg: #1f2937}.join-bar{position:absolute;top:18px;left:50%;transform:translate(-50%);font-size:17px;padding:8px 20px;border-radius:999px;background:#ffffff29;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.stage-light .join-bar{background:#ffffffb3}.join-bar .code{letter-spacing:.06em;margin-left:2px}.stage-title{margin:6px 0 0;font-size:44px;font-weight:800;letter-spacing:-.02em;line-height:1.12;text-align:center}.stage-subtitle{margin:8px 0 0;text-align:center;font-size:20px;opacity:.85}.stage-body{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:26px}.stage-foot{position:absolute;left:28px;right:28px;bottom:16px;display:flex;justify-content:space-between;font-size:15px;font-weight:600;opacity:.85}.stage-foot span{display:inline-flex;align-items:center;gap:7px}.stage-count{background:#ffffff2e;padding:4px 12px;border-radius:999px}.stage-light .stage-count{background:#0f172a14}.muted{opacity:.5}.stage-panel{flex:1;min-height:0;background:#fff;color:var(--ink);border-radius:26px;box-shadow:0 20px 50px #0f172a2e}.center-note{display:flex;align-items:center;justify-content:center;gap:10px;font-size:22px;color:var(--muted)}.waiting{animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{50%{opacity:.55}}.stage-thumb *,.stage-thumb{animation:none!important;transition:none!important}.content-slide{flex:1;display:flex;align-items:center;gap:56px;padding:0 30px}.content-text{flex:1;text-align:center}.content-slide.with-image .content-text{text-align:left}.content-slide h1{font-size:64px;font-weight:800;letter-spacing:-.025em;margin:0 0 22px;line-height:1.08}.content-slide p{font-size:26px;line-height:1.5;opacity:.9;white-space:pre-wrap;margin:0}.content-slide img{width:46%;max-height:520px;object-fit:cover;border-radius:24px;box-shadow:0 20px 50px #00000040}.poll-chart{flex:1;display:flex;gap:28px;align-items:stretch;justify-content:center;padding:0 30px 18px;position:relative}.poll-col{flex:1;max-width:220px;display:flex;flex-direction:column;gap:14px;transition:opacity .3s}.poll-bar-wrap{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch}.poll-value{text-align:center;font-size:34px;font-weight:800;margin-bottom:8px;min-height:42px}.poll-value small{display:block;font-size:16px;font-weight:600;opacity:.75;margin-top:-2px}.poll-bar{border-radius:14px 14px 6px 6px;transition:height .6s cubic-bezier(.2,.8,.2,1),background .3s;box-shadow:0 8px 24px #00000026}.poll-label{text-align:center;font-size:20px;font-weight:600;line-height:1.25;min-height:52px;display:flex;align-items:flex-start;justify-content:center;gap:8px}.poll-col.wrong{opacity:.35}.correct-badge{width:26px;height:26px;flex:none;border-radius:50%;background:#16a34a;color:#fff;display:grid;place-items:center}.hidden-note{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;font-size:22px;padding:14px 24px;border-radius:999px;background:#fffffff2;color:var(--ink);box-shadow:var(--shadow-lg)}.wordcloud{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;align-items:center;gap:4px 22px;padding:30px 50px;overflow:hidden}.word{font-weight:800;letter-spacing:-.02em;line-height:1.05;animation:wordIn .5s cubic-bezier(.2,.9,.3,1.3);transition:font-size .5s}@keyframes wordIn{0%{opacity:0;transform:scale(.4)}}.board-scroll{flex:1;min-height:0;overflow-y:auto;padding:4px 4px 30px;margin:0 -8px;scrollbar-width:thin}.board-wall{display:flex;gap:18px;align-items:flex-start}.board-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:18px}.board-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stage-post{position:relative;border-radius:16px;padding:14px 16px;box-shadow:0 6px 20px #0f172a2e;cursor:default;animation:postIn .35s ease-out;transition:transform .15s}.presenter .stage-post,.main-stage .stage-post{cursor:zoom-in}.stage-post:hover{transform:translateY(-2px)}@keyframes postIn{0%{opacity:0;transform:translateY(12px) scale(.96)}}.stage-post header{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;margin-bottom:8px}.stage-post img{width:100%;border-radius:10px;margin-bottom:8px;display:block}.stage-post h4{margin:0 0 4px;font-size:19px;line-height:1.25}.stage-post p{margin:0;font-size:16px;line-height:1.45;opacity:.9;white-space:pre-wrap;overflow-wrap:anywhere}.stage-post footer{margin-top:10px;display:flex;align-items:center;gap:5px;font-size:14px;font-weight:600;color:#e11d48}.post-remove{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;background:#0f172a14;display:none;place-items:center}.stage-post:hover .post-remove{display:grid}.post-remove:hover{background:#fee2e2;color:#dc2626}.spotlight{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#0f172a8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;gap:30px;animation:fade .2s}.spot-card{width:760px;max-height:560px;overflow:auto;border-radius:28px;padding:34px 40px;box-shadow:0 30px 80px #0006;animation:spotIn .3s cubic-bezier(.2,.9,.3,1.15)}@keyframes spotIn{0%{opacity:0;transform:scale(.9)}}.spot-card header{display:flex;align-items:center;gap:14px;margin-bottom:18px}.spot-card header div{display:flex;flex-direction:column}.spot-card header strong{font-size:20px}.spot-card header small{font-size:15px;opacity:.6}.spot-card img{width:100%;border-radius:16px;margin-bottom:16px}.spot-card h2{margin:0 0 12px;font-size:42px;letter-spacing:-.02em;line-height:1.1}.spot-card p{margin:0;font-size:26px;line-height:1.5;white-space:pre-wrap}.spot-card footer{margin-top:22px;display:flex;align-items:center;gap:8px;font-size:22px;font-weight:700;color:#e11d48}.spot-nav{width:60px;height:60px;border-radius:50%;background:#fffffff2;color:var(--ink);display:grid;place-items:center;box-shadow:var(--shadow-lg);flex:none}.spot-nav:hover{transform:scale(1.06)}.spot-count{position:absolute;top:28px;left:50%;transform:translate(-50%);color:#fff;font-weight:700;font-size:18px;background:#00000059;padding:6px 16px;border-radius:999px}.spot-close{position:absolute;top:60px;right:90px;width:46px;height:46px;border-radius:50%;background:#fffffff2;color:var(--ink);display:grid;place-items:center}.scale-panel{display:flex;flex-direction:column;justify-content:center;gap:22px;padding:30px 50px 22px}.scale-row{display:grid;grid-template-columns:320px 1fr;gap:30px;align-items:end}.scale-text{font-size:22px;font-weight:600;line-height:1.3;padding-bottom:4px}.scale-track-wrap{position:relative}.scale-hist{display:flex;gap:6px;align-items:flex-end;height:56px;padding:0 0 8px}.scale-hist span{flex:1;border-radius:5px 5px 2px 2px;opacity:.22;min-height:2px;transition:height .5s}.scale-track{position:relative;height:10px;border-radius:999px;background:#eceef3}.scale-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px;box-shadow:0 6px 18px #0003;transition:left .6s cubic-bezier(.2,.8,.2,1)}.scale-legend{display:flex;justify-content:space-between;font-size:15px;color:var(--muted);padding-left:350px;margin-top:4px}.qa-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:0 120px 20px;scrollbar-width:thin}.qa-card{display:flex;gap:18px;align-items:center;background:#fff;color:var(--ink);border-radius:18px;padding:16px 20px;box-shadow:0 8px 24px #0f172a26;animation:postIn .35s ease-out}.qa-card.top{box-shadow:0 0 0 4px #fbbf24,0 8px 24px #0f172a26}.qa-card.answered{opacity:.5}.qa-votes{display:flex;flex-direction:column;align-items:center;min-width:52px;font-size:22px;font-weight:800;color:var(--accent)}.qa-body{flex:1}.qa-text{font-size:22px;font-weight:600;line-height:1.3}.qa-meta{font-size:14px;color:var(--muted);margin-top:4px}.qa-actions{display:flex;gap:6px;opacity:0;transition:opacity .15s}.qa-card:hover .qa-actions{opacity:1}.qa-actions button{width:40px;height:40px;border-radius:12px;background:#f3f4f6;display:grid;place-items:center}.qa-actions button:hover{background:#ede9fe;color:var(--accent)}.presenter{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0b12;display:flex}.presenter-stage{flex:1;min-width:0;position:relative}.present-fit{position:absolute;top:0;right:0;bottom:0;left:0}.presenter.with-phone .present-fit{top:20px;right:20px;bottom:20px;left:20px}.presenter.with-phone .present-fit .stage{border-radius:16px}.presenter-phone{width:320px;flex:none;display:flex;align-items:center;justify-content:center;padding:20px 20px 90px}.presenter-phone .phone-frame{height:100%;max-height:640px}.presenter.idle{cursor:none}.controls{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:4px;padding:6px;border-radius:16px;background:#111827e0;color:#fff;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .3s,transform .3s}.presenter.idle .controls{opacity:0;transform:translate(-50%,16px);pointer-events:none}.ctrl{height:40px;min-width:40px;padding:0 10px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:14px;font-weight:600}.ctrl:hover:not(:disabled){background:#ffffff1f}.ctrl.on{background:#a78bfa4d;color:#ddd6fe}.ctrl-count{font-size:14px;font-weight:600;min-width:52px;text-align:center;font-variant-numeric:tabular-nums}.ctrl-sep{width:1px;height:24px;background:#ffffff2e;margin:0 4px}.demo-badge{position:fixed;top:14px;right:14px;z-index:20;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:#fff;background:#6d28d9d9;padding:6px 12px;border-radius:999px}.participant-page{min-height:100vh;background:#f4f4f8;display:flex;justify-content:center}.participant-page .participant{width:100%;max-width:480px;min-height:100vh;background:#fff;box-shadow:0 0 40px #0f172a0f}.participant{display:flex;flex-direction:column;font-size:15px;color:var(--ink)}.p-head{display:flex;align-items:center;gap:8px;padding:26px 16px 12px;border-bottom:1px solid var(--line)}.p-logo{font-size:18px}.p-deck{flex:1;font-weight:700;font-size:.92em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-name{font-size:.8em;color:var(--muted);background:#f3f4f6;padding:3px 9px;border-radius:999px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-main{flex:1;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:14px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(16px)}}.p-type{display:inline-flex;align-items:center;gap:5px;font-size:.78em;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.p-title{margin:-6px 0 0;font-size:1.35em;line-height:1.25;letter-spacing:-.01em}.p-foot{padding:10px 16px 14px;font-size:.75em;color:var(--muted);text-align:center;border-top:1px solid var(--line)}.p-muted{color:var(--muted);font-size:.85em;margin:0}.p-form{display:flex;flex-direction:column;gap:12px}.p-options{display:flex;flex-direction:column;gap:8px}.p-option{display:flex;align-items:center;gap:12px;text-align:left;padding:13px 14px;border-radius:14px;border:2px solid var(--line);font-weight:600;transition:border-color .12s,background .12s}.p-option.selected{border-color:var(--accent);background:var(--accent-soft)}.p-option-dot{width:18px;height:18px;border-radius:50%;border:3px solid;flex:none;transition:background .12s}.p-submit{height:48px;border-radius:14px;background:var(--accent);color:#fff;font-weight:700;font-size:1em;transition:filter .12s,transform .1s}.p-submit:active:not(:disabled){transform:scale(.98)}.p-submit.small{height:40px;padding:0 16px;border-radius:12px;font-size:.92em}.p-inline-form{display:flex;gap:8px}.p-inline-form input,.p-textarea,.p-post-form input,.p-post-form textarea,.join-card input{flex:1;min-width:0;border:2px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;font-size:1em}.p-inline-form input:focus,.p-textarea:focus,.join-card input:focus{outline:none;border-color:#a78bfa}.p-textarea{width:100%;resize:none}.p-chips{display:flex;flex-wrap:wrap;gap:6px}.p-chips span{padding:5px 11px;border-radius:999px;background:#fce7f3;color:#9d174d;font-weight:600;font-size:.88em}.p-thanks{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:18px 6px}.p-thanks-icon{width:60px;height:60px;border-radius:50%;background:#dcfce7;color:#16a34a;display:grid;place-items:center;animation:pop .3s cubic-bezier(.2,.9,.3,1.4)}.p-link{color:var(--accent);font-weight:600;font-size:.9em}.p-quiz-result{font-size:1.25em;font-weight:800;padding:8px 16px;border-radius:12px}.p-quiz-result.right{background:#dcfce7;color:#15803d}.p-quiz-result.wrong{background:#fee2e2;color:#b91c1c}.p-mini-bars{width:100%;display:flex;flex-direction:column;gap:8px;text-align:left}.p-mini-row{display:grid;grid-template-columns:1fr 90px 24px;gap:8px;align-items:center;font-size:.85em}.p-mini-row>div{height:8px;border-radius:999px;background:#f1f1f5;overflow:hidden}.p-mini-row i{display:block;height:100%;border-radius:999px;transition:width .4s}.p-look{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;color:var(--muted);padding:40px 10px}.p-look span{font-size:46px}.p-board{display:flex;flex-direction:column;gap:12px}.p-post-form{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:16px;box-shadow:var(--shadow);transition:background .2s}.p-post-form input,.p-post-form textarea{background:#ffffffb3;resize:none}.p-post-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.p-colors{display:flex;gap:5px}.p-colors .swatch{width:20px;height:20px}.p-new-post{height:44px;border-radius:12px;border:2px dashed #d4d4dc;display:flex;align-items:center;justify-content:center;gap:6px;font-weight:600;color:var(--muted)}.p-post-list{display:flex;flex-direction:column;gap:10px}.p-post{position:relative;padding:11px 13px;border-radius:14px;box-shadow:0 1px 2px #0f172a14,0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:3px}.p-post small{color:var(--muted);font-size:.76em}.p-post p{margin:0;font-size:.92em;line-height:1.4}.p-like{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:.82em;font-weight:700;color:var(--muted);padding:3px 8px;border-radius:999px;background:#0f172a0d}.p-like.on{color:#e11d48}.p-scale{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:14px;background:#f8f8fb}.p-scale>span{font-weight:600}.p-scale-row{display:flex;align-items:center;gap:10px}.p-scale-row input{flex:1;accent-color:var(--accent)}.p-scale-row b{width:26px;height:26px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:.85em}.p-scale-labels{display:flex;justify-content:space-between;color:var(--muted);padding-right:36px}.p-qa-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:8px}.p-check{display:inline-flex;align-items:center;gap:6px;font-size:.88em;color:var(--muted)}.p-questions{display:flex;flex-direction:column;gap:8px}.p-question{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:#f8f8fb}.p-question.answered{opacity:.55}.p-question p{margin:0 0 2px;font-weight:600;line-height:1.35;font-size:.95em}.p-question small{color:var(--muted);font-size:.76em}.p-upvote{display:flex;flex-direction:column;align-items:center;min-width:40px;padding:4px;border-radius:10px;font-weight:700;font-size:.85em;color:var(--muted);background:#fff;box-shadow:0 0 0 1px var(--line)}.p-upvote.on{color:#fff;background:var(--accent);box-shadow:none}.join{justify-content:center;align-items:center;padding:24px;background:linear-gradient(135deg,#4338ca,#7c3aed 50%,#db2777);min-height:100%}.join-logo{color:#fff;font-size:22px;font-weight:800;margin-bottom:18px;display:flex;gap:8px}.join-card{width:100%;max-width:360px;background:#fff;border-radius:22px;padding:22px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-lg)}.join-card h1{margin:0;font-size:24px}.join-card label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}.join-card label small{color:var(--muted);font-weight:500}.join-card input[inputmode=numeric]{font-size:26px;font-weight:800;letter-spacing:.12em;text-align:center}.join-error{margin:0;color:#dc2626;font-size:13.5px}@media(max-width:1400px){.editor-body{grid-template-columns:170px 1fr 290px}.editor-body.with-phone{grid-template-columns:170px 1fr 270px 290px}.phone-frame{width:240px}.deck-title{width:220px}}@media(max-width:1150px){.hide-sm{display:none}.editor-body.with-phone{grid-template-columns:150px 1fr 290px}.editor-body .phone-col,.phone-toggle{display:none}}@media(max-width:800px){.editor-body,.editor-body.with-phone{grid-template-columns:120px 1fr}.editor-body .props{display:none}.deck-title{width:140px}.code-pill{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.rooms-grid{flex:1;min-height:0;display:grid;gap:18px;grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr}.rooms-grid.rooms-3{grid-template-columns:repeat(3,1fr)}.rooms-grid.rooms-4{grid-template-columns:repeat(2,1fr)}.rooms-grid.rooms-5,.rooms-grid.rooms-6{grid-template-columns:repeat(3,1fr)}.rooms-grid.rooms-1{grid-template-columns:1fr}.room-tile{min-height:0;display:flex;flex-direction:column;background:#fff;color:var(--ink);border-radius:22px;overflow:hidden;box-shadow:0 14px 40px #0f172a33;animation:postIn .35s ease-out;transition:transform .15s,box-shadow .15s}.room-tile.clickable{cursor:pointer}.room-tile.clickable:hover{transform:translateY(-3px);box-shadow:0 20px 50px #0f172a47}.room-tile-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;color:#fff}.room-tile-head strong{font-size:21px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-tile-head span{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-size:16px;background:#ffffff38;padding:3px 10px;border-radius:999px;flex:none}.room-task{margin:10px 18px 0;font-size:15px;color:var(--muted);line-height:1.35}.room-mini{flex:1;min-height:0;overflow:hidden;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;padding:12px 18px}.mini-post{font-size:14px;font-weight:600;padding:7px 11px;border-radius:10px;box-shadow:0 1px 2px #0f172a1a,0 2px 6px #0f172a14;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-empty{color:#9ca3af;font-size:15px;font-style:italic}.room-foot{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;border-top:1px solid #f1f1f5;font-size:14px;font-weight:600;color:var(--muted)}.room-foot span{display:inline-flex;align-items:center;gap:3px;color:var(--accent)}.room-bar{display:flex;align-items:center;gap:12px;margin:-8px 0 16px;padding:8px 14px 8px 8px;border-radius:16px;background:#fffffff2;color:var(--ink);box-shadow:0 8px 24px #0f172a26;font-size:17px}.room-back{display:inline-flex;align-items:center;gap:4px;height:36px;padding:0 12px;border-radius:10px;background:#f3f4f6;font-weight:600;font-size:15px}.room-back:hover{background:#ede9fe;color:var(--accent)}.room-dot{width:14px;height:14px;border-radius:50%;flex:none}.room-bar-task{color:var(--muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-bar-count{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-weight:700;color:var(--muted)}.rooms-editor{display:flex;flex-direction:column;gap:8px}.room-edit{display:flex;align-items:center;gap:8px;padding:8px;border-radius:12px;background:#f8f8fb}.room-edit .room-dot{width:12px;height:12px}.room-edit-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.room-edit-fields input{border:1px solid transparent;background:transparent;border-radius:8px;padding:4px 6px;font-size:14px;font-weight:600;width:100%}.room-edit-fields input.room-task-input{font-weight:400;font-size:12.5px;color:var(--muted)}.room-edit-fields input:hover{background:#fff;border-color:#e3e3ea}.room-edit-fields input:focus{outline:none;background:#fff;border-color:#a78bfa}.room-members{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;color:var(--muted);flex:none}.rooms-editor .add-row{padding-left:4px}.p-rooms{display:flex;flex-direction:column;gap:8px}.p-room{display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;border-radius:14px;border:2px solid var(--line);transition:border-color .12s,background .12s}.p-room:hover{border-color:#c4b5fd;background:var(--accent-soft)}.p-room-dot{width:14px;height:14px;border-radius:50%;flex:none}.p-room-text{flex:1;display:flex;flex-direction:column;gap:2px}.p-room-text small{color:var(--muted);font-size:.8em;line-height:1.3}.p-room-count{display:inline-flex;align-items:center;gap:3px;font-size:.78em;font-weight:700;color:var(--muted);flex:none}.p-room-card{border-left:4px solid;background:#f8f8fb;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.p-room-card-head{display:flex;align-items:center;gap:8px}.p-room-card-head strong{flex:1}.p-room-card p{margin:0;font-size:.88em;color:#4b5563}.p-room-card .p-link{align-self:flex-start;margin-top:2px}.p-muted.center{text-align:center;padding:8px 0}.stage-timer{position:absolute;top:14px;right:22px;z-index:6;display:flex;align-items:center;gap:10px;padding:6px 18px 6px 6px;border-radius:999px;background:#fffffff2;color:var(--ink);box-shadow:0 10px 30px #0f172a40;animation:pop .3s ease-out}.stage-timer svg{flex:none}.ring-bg{fill:none;stroke:#eceef3;stroke-width:6}.ring-fg{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .3s linear,stroke .3s}.stage-timer-text{display:flex;flex-direction:column;line-height:1.1}.stage-timer-text strong{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stage-timer-text small{font-size:13px;color:var(--muted);font-weight:600}.stage-timer.phase-paused .ring-fg{stroke:#9ca3af}.stage-timer.phase-paused strong{color:#6b7280}.stage-timer.phase-warn .ring-fg{stroke:#f59e0b}.stage-timer.phase-warn strong{color:#d97706}.stage-timer.phase-done{background:#dc2626;color:#fff;animation:timerPulse 1s ease-in-out infinite}.stage-timer.phase-done small{color:#ffffffd9}.stage-timer.phase-done .ring-bg{stroke:#ffffff4d}@keyframes timerPulse{50%{transform:scale(1.05);box-shadow:0 0 0 10px #dc262640}}.stage:has(.stage-timer) .join-bar{left:40%}.p-timer{position:relative;overflow:hidden;display:flex;align-items:center;gap:8px;padding:9px 16px;font-size:.88em;background:var(--accent-soft);color:var(--accent);border-bottom:1px solid #ede9fe}.p-timer strong{font-variant-numeric:tabular-nums;font-size:1.1em}.p-timer-bar{position:absolute;left:0;bottom:0;height:3px;background:currentColor;transition:width .3s linear}.p-timer.phase-paused{background:#f3f4f6;color:#6b7280;border-color:var(--line)}.p-timer.phase-warn{background:#fef3c7;color:#b45309;border-color:#fde68a}.p-timer.phase-done{background:#dc2626;color:#fff;font-weight:700;animation:breathe 1.2s ease-in-out infinite}.timer-popover{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%);z-index:30}.timer-panel{width:300px;background:#fff;color:var(--ink);border-radius:16px;box-shadow:var(--shadow-lg);padding:14px;display:flex;flex-direction:column;gap:12px;animation:pop .12s ease-out}.timer-panel-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.timer-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.timer-presets button{height:38px;border-radius:10px;background:#f3f4f6;font-weight:700;font-size:14px}.timer-presets button:hover{background:#ede9fe;color:var(--accent)}.timer-custom{display:flex;align-items:center;gap:8px}.timer-custom input{flex:1;min-width:0;height:38px;border:1px solid #e3e3ea;border-radius:10px;padding:0 10px}.timer-custom input:focus{outline:none;border-color:#a78bfa}.timer-custom span{color:var(--muted);font-size:14px}.timer-custom button{height:38px;padding:0 14px;border-radius:10px;background:var(--accent);color:#fff;font-weight:700}.timer-big{text-align:center;font-size:46px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.timer-big.phase-warn{color:#d97706}.timer-big.phase-done{color:#dc2626}.timer-big.phase-paused{color:#9ca3af}.timer-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.timer-actions button{height:38px;border-radius:10px;background:#f3f4f6;font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.timer-actions button:hover:not(:disabled){background:#ede9fe;color:var(--accent)}.timer-actions .danger:hover{background:#fee2e2;color:#dc2626}.stage-timer.phase-done .stage-timer-text strong{font-size:24px}.seg-3 button{font-size:12.5px;padding:0 4px}.room-rules{display:flex;flex-direction:column;gap:10px}.ghost-btn.primary-soft{background:var(--accent-soft);color:var(--accent)}.ghost-btn.primary-soft:hover{background:#ede9fe}.assign-backdrop{z-index:90}.assign-dialog{width:min(1180px,100%);height:min(760px,100%);background:#fff;color:var(--ink);border-radius:22px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:rise .18s ease-out}.assign-head{display:flex;align-items:center;gap:16px;padding:18px 22px 12px}.assign-head>div{flex:1}.assign-head h2{margin:0;font-size:20px}.assign-head small{color:var(--muted)}.assign-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:10px;background:#f3f4f6;color:var(--muted)}.assign-search input{border:0;background:transparent;outline:none;width:180px;color:var(--ink)}.assign-toolbar{display:flex;gap:24px;align-items:flex-start;justify-content:space-between;padding:4px 22px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.assign-toolbar .room-rules{width:380px}.assign-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.assign-board{flex:1;min-height:0;display:flex;gap:12px;padding:16px 22px;overflow-x:auto;background:#f6f6f9}.assign-col{flex:0 0 230px;display:flex;flex-direction:column;background:#fff;border-radius:14px;box-shadow:0 0 0 1px var(--line);transition:box-shadow .12s,background .12s;min-height:0}.assign-col.unassigned{background:#fbfbfd}.assign-col.over{box-shadow:0 0 0 2px var(--accent);background:var(--accent-soft)}.assign-col-head{display:flex;align-items:center;gap:8px;padding:12px 12px 6px}.assign-col-head strong{flex:1;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assign-count{font-size:12px;font-weight:700;color:var(--muted);background:#f3f4f6;padding:1px 8px;border-radius:999px}.assign-task{margin:0 12px 6px;font-size:12px;color:var(--muted);line-height:1.35}.assign-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:6px 10px 12px}.assign-empty{border:2px dashed #e3e3ea;border-radius:10px;padding:14px 8px;text-align:center;color:#9ca3af;font-size:13px}.assign-chip{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 7px;border-radius:10px;background:#fff;box-shadow:0 1px 2px #0f172a14,0 0 0 1px #eceef3;cursor:grab;transition:opacity .12s}.assign-chip:hover{box-shadow:0 2px 8px #0f172a1a,0 0 0 1px #c4b5fd}.assign-chip.dragging{opacity:.4}.assign-name{flex:1;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assign-name em{font-weight:400;color:var(--muted);font-style:normal}.assign-move{position:relative;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--muted);flex:none}.assign-move:hover{background:#f3f4f6;color:var(--accent)}.assign-move select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.assign-foot{padding:10px 22px 14px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);display:flex;align-items:center;gap:4px}.room-people{display:flex;align-items:center;padding:8px 18px 0}.room-people .avatar{border:2px solid #fff;margin-left:-6px}.room-people .avatar:first-child{margin-left:0}.room-people small{margin-left:8px;font-size:13px;color:var(--muted);font-weight:600}.p-room.current{border-color:var(--accent);background:var(--accent-soft)}.p-link.center{align-self:center;margin-top:4px}.p-locked{display:inline-flex;align-items:center;gap:4px;font-size:.78em;color:var(--muted);margin-top:2px}.p-moved{display:flex;align-items:center;gap:6px;padding:10px 12px;border-radius:12px;background:#ecfdf5;color:#047857;font-size:.88em;animation:pop .25s ease-out}.p-wait{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:34px 10px}.p-wait-dots{display:flex;gap:6px;margin-bottom:4px}.p-wait-dots i{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:bounce 1.2s ease-in-out infinite}.p-wait-dots i:nth-child(2){animation-delay:.15s}.p-wait-dots i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-8px);opacity:1}}.ctrl{white-space:nowrap}.editor{overflow:hidden}.room-nav{margin:-8px 0 16px;display:flex;flex-direction:column;gap:8px}.room-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 4px;scrollbar-width:none}.room-tab{--c: var(--accent);display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 16px;border-radius:14px;flex:none;font-size:17px;font-weight:700;color:var(--ink);background:#ffffffb8;box-shadow:0 4px 14px #0f172a1f;transition:background .15s,transform .12s,box-shadow .15s}.room-tab:hover{background:#fff;transform:translateY(-1px)}.room-tab .room-dot{width:12px;height:12px;background:var(--c)}.room-tab small{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:700;color:var(--muted)}.room-tab.active{background:#fff;box-shadow:0 0 0 3px var(--c),0 8px 22px #0f172a33}.room-tab.overview{background:#111827;color:#fff;padding:0 18px}.room-tab.overview:hover{background:#1f2937}.room-nav-task{margin:0;padding:0 4px;font-size:19px;font-weight:500;opacity:.9}.stage-light .room-nav-task{opacity:.75}.toggle-row{position:relative}.conn-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:1000;max-width:calc(100vw - 32px);padding:8px 16px;border-radius:999px;background:#1f2937;color:#fff;font-size:13px;font-weight:600;box-shadow:var(--shadow-lg);text-align:center}.conn-banner.error{background:#b91c1c}.live-screen{min-height:100vh;display:grid;place-items:center;padding:16px;background:linear-gradient(135deg,#4338ca,#7c3aed 45%,#db2777)}.live-card{width:min(420px,100%);background:#fff;border-radius:18px;padding:28px 24px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px;text-align:center}.live-card h1{margin:0;font-size:22px}.live-card .join-logo{color:var(--accent);justify-content:center}.live-wait{text-align:center;padding:40px 16px}.live-card.wide{width:min(560px,100%)}.live-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;text-align:left;max-height:50vh;overflow-y:auto}.live-list li{display:flex;gap:6px;align-items:stretch}.live-open{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;text-align:left}.live-open strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-open:hover{border-color:var(--accent);background:var(--accent-soft)}.live-delete{flex:none;width:44px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--muted)}.live-delete:hover{color:#b91c1c;border-color:#fca5a5;background:#fef2f2}.live-confirm{flex:1;display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid #fca5a5;background:#fef2f2;font-size:14px}.live-confirm>div{display:flex;gap:8px}.live-confirm button{padding:7px 14px;border-radius:9px;font-weight:600;background:#fff;border:1px solid var(--line)}.live-confirm button.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}.live-confirm button:disabled{opacity:.6}.live-list small{color:var(--muted);font-size:12.5px}.live-actions{display:flex;justify-content:center;gap:18px}.join-account{text-align:center;font-size:13px}.setup-form{display:flex;flex-direction:column;gap:12px;text-align:left}.setup-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--ink)}.setup-form input{font:inherit;font-weight:400;font-size:15px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#fff}.setup-form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.setup-form small{font-weight:400;color:var(--muted)}.setup-form code{font-size:12px;background:#f3f4f6;padding:1px 5px;border-radius:5px;word-break:break-all}.setup-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:520px){.setup-row{grid-template-columns:1fr}}.join-qr svg{display:block;width:100%;height:auto}.join-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:260px;padding:16px;border-radius:14px;background:#fff;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:10px;align-items:stretch;text-align:center}.join-popover .join-qr{width:180px;align-self:center}.join-popover input{font:inherit;font-size:12px;padding:7px 9px;border-radius:8px;border:1px solid var(--line);color:var(--muted)}.join-popover-actions{display:flex;gap:8px}.join-popover-actions>*{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px;border-radius:9px;font-size:13px;font-weight:600;background:var(--accent-soft);color:var(--accent);text-decoration:none}.join-popover small{color:var(--muted);font-size:11.5px}.join-popover kbd{font:inherit;font-weight:700;padding:0 5px;border:1px solid var(--line);border-radius:4px}.qr-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:grid;place-items:center;background:#0f172ab8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:24px}.qr-card{display:flex;align-items:center;gap:40px;padding:36px 44px;border-radius:28px;background:#fff;color:#111827;box-shadow:var(--shadow-lg);max-width:100%}.qr-card .join-qr{width:min(46vh,420px);flex:none}.qr-text{display:flex;flex-direction:column;gap:4px;font-size:22px}.qr-text strong{font-size:34px}.qr-text .qr-code{font-size:64px;letter-spacing:.08em;color:var(--accent)}.qr-text small{margin-top:14px;font-size:14px;color:var(--muted)}@media(max-width:760px){.qr-card{flex-direction:column;gap:18px;padding:24px}.qr-text{align-items:center}.qr-text .qr-code{font-size:44px}}.menu-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:250px;padding:6px;border-radius:12px;background:#fff;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.menu-popover button{display:flex;flex-direction:column;gap:1px;padding:9px 11px;border-radius:8px;text-align:left}.menu-popover button:hover{background:var(--accent-soft)}.menu-popover small{color:var(--muted);font-size:12px}.print-report{display:none}@media print{@page{size:A4;margin:16mm 14mm}body>#root,.conn-banner{display:none!important}body{background:#fff!important}.print-report{display:block;color:#111827;font-size:10.5pt}.print-report header{border-bottom:2px solid #6d28d9;margin-bottom:14pt;padding-bottom:6pt}.print-report h1{font-size:20pt;margin:0 0 3pt}.print-report header p,.print-report .r-meta{color:#6b7280;margin:0;font-size:9.5pt}.print-report section{break-inside:avoid-page;margin-bottom:16pt}.print-report h2{font-size:13pt;margin:0 0 2pt}.print-report h2 span{color:#6d28d9}.print-report table{width:100%;border-collapse:collapse;margin-top:6pt}.print-report th{text-align:left;font-size:9pt;color:#6b7280;border-bottom:1px solid #d1d5db;padding:3pt 4pt}.print-report td{border-bottom:1px solid #eef0f3;padding:4pt;vertical-align:top}.print-report tr{break-inside:avoid}.print-report .num{text-align:right;white-space:nowrap}.print-report .r-bar{display:inline-block;height:7pt;margin-right:5pt;vertical-align:middle;background:#6d28d9;border-radius:2pt;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-report .r-tag{margin-left:6pt;font-size:8pt;padding:0 4pt;border-radius:3pt;background:#dcfce7;color:#166534;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-report .r-dist span{margin-right:6pt;white-space:nowrap}.print-report .r-empty{color:#6b7280;font-style:italic}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:800;display:grid;place-items:center;padding:16px;background:#0f172a73}.share-dialog{width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:#fff;border-radius:16px;padding:20px 22px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:12px}.share-dialog header{display:flex;align-items:center;justify-content:space-between}.share-dialog h2{margin:0;font-size:19px}.share-dialog .p-muted{font-size:13.5px;margin:0}.share-add{display:flex;gap:8px;flex-wrap:wrap}.share-add input{flex:1 1 220px;min-width:0}.share-add input,.share-dialog select{font:inherit;font-size:14px;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:#fff}.share-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.share-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:11px}.share-list li>div{flex:1;min-width:0;display:flex;flex-direction:column}.share-list strong,.share-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-list small{color:var(--muted);font-size:12px}.live-badge{display:inline-block;margin-right:6px;padding:0 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:11.5px}.shape{flex:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.game-question{flex:1;display:flex;flex-direction:column;gap:22px;padding:0 40px 70px;min-height:0}.game-status{display:flex;align-items:center;justify-content:space-between}.game-clock{--p: 1;width:110px;height:110px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(currentColor calc(var(--p) * 360deg),#ffffff2e 0);transition:--p .1s linear}.game-clock span{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;font-size:44px;font-weight:800;background:#0f172a8c;color:#fff}.stage-light .game-clock span{background:#ffffffe6;color:#111827}.game-clock.hurry{color:#f87171;animation:timerPulse 1s infinite}.game-answers{font-size:26px;text-align:right}.game-answers strong{display:block;font-size:52px;line-height:1}.game-answers kbd{font:inherit;font-weight:800;padding:0 10px;border:2px solid currentColor;border-radius:8px}.game-options{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:16px;min-height:0}.game-options.n2{grid-template-rows:1fr}.game-option{display:flex;align-items:center;gap:20px;padding:0 28px;border-radius:14px;color:#fff;font-size:32px;font-weight:700;box-shadow:0 6px #00000040;overflow:hidden;animation:rise .35s ease-out backwards}.game-option span{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.game-ready{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding-bottom:60px}.game-ready span{font-size:40px;font-weight:700;opacity:.85}.game-ready strong{font-size:220px;line-height:1;font-weight:900;animation:countPop 1s ease-out}@keyframes countPop{0%{transform:scale(1.6);opacity:0}30%{transform:scale(1);opacity:1}}.game-result{flex:1;display:flex;flex-direction:column;min-height:0;padding:0 60px 64px}.game-bars{flex:1;display:flex;gap:28px;align-items:stretch;justify-content:center;min-height:0}.game-bar{flex:1;max-width:230px;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:8px}.game-bar.wrong{opacity:.45}.game-bar-value{text-align:center;font-size:34px;font-weight:800}.game-bar-fill{border-radius:10px 10px 4px 4px;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;color:#fff;transition:height .6s cubic-bezier(.2,.8,.2,1);min-height:52px}.game-bar-label{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;font-size:22px;font-weight:600;min-height:56px}.game-bar.correct .game-bar-label svg{color:#4ade80;flex:none}.game-summary{margin:14px 0 0;text-align:center;font-size:22px;opacity:.85}.leaderboard{list-style:none;margin:0 auto;padding:0 0 70px;width:min(980px,100%);display:flex;flex-direction:column;gap:14px}.leaderboard li{display:grid;grid-template-columns:56px 44px 260px 1fr 140px;align-items:center;gap:18px;padding:12px 22px;border-radius:14px;background:#ffffff24;font-size:26px;animation:rise .5s ease-out backwards;animation-delay:var(--delay)}.stage-light .leaderboard li{background:#ffffffbf}.leaderboard .lb-rank{font-size:34px;font-weight:900;text-align:center}.leaderboard .rank-1 .lb-rank{color:#facc15}.leaderboard .rank-2 .lb-rank{color:#e5e7eb}.leaderboard .rank-3 .lb-rank{color:#f59e0b}.leaderboard .rank-1{background:#facc1538}.leaderboard .lb-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard .lb-bar{height:14px;border-radius:7px;background:#ffffff26;overflow:hidden}.leaderboard .lb-bar i{display:block;height:100%;border-radius:7px;background:currentColor;opacity:.8;transition:width .8s cubic-bezier(.2,.8,.2,1)}.leaderboard .lb-points{text-align:right;font-size:30px}.leaderboard .lb-more{display:block;text-align:center;background:none;font-size:20px;opacity:.7}.stage-empty{margin:auto;padding-bottom:80px;font-size:26px;opacity:.8;text-align:center}.podium{flex:1;position:relative;display:flex;align-items:flex-end;justify-content:center;gap:22px;padding:0 0 64px;min-height:0;overflow:hidden}.podium-spot{width:260px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.podium-spot.empty{visibility:hidden}.podium-person{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:14px;animation:podiumPerson .7s cubic-bezier(.2,.9,.3,1.3) backwards;animation-delay:calc(var(--delay) + .45s)}.podium-crown{display:block;margin-bottom:2px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.3));animation:crown 1.6s ease-in-out infinite;animation-delay:calc(var(--delay) + 1.2s)}.podium-name{font-size:28px;font-weight:800;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-points{font-size:20px;opacity:.85}.podium-block{width:100%;border-radius:14px 14px 0 0;display:flex;justify-content:center;padding-top:18px;font-size:72px;font-weight:900;color:#00000059;box-shadow:inset 0 -10px #0000001f;transform-origin:bottom;animation:podiumRise .7s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:var(--delay)}.place-1 .podium-block{height:46%;background:linear-gradient(#fde047,#eab308)}.place-2 .podium-block{height:32%;background:linear-gradient(#f1f5f9,#94a3b8)}.place-3 .podium-block{height:22%;background:linear-gradient(#fdba74,#c2410c)}.place-1 .podium-name{font-size:34px}.podium.no-anim *,.podium.no-anim{animation:none!important}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.confetti i{position:absolute;top:-20px;width:12px;height:18px;border-radius:2px;opacity:0;animation:confettiFall linear forwards}@keyframes podiumRise{0%{transform:scaleY(0)}}@keyframes podiumPerson{0%{opacity:0;transform:translateY(30px) scale(.7)}}@keyframes crown{50%{transform:translateY(-6px) rotate(-6deg)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:.9;transform:translateY(760px) rotate(540deg)}}.p-game-ready{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:40px 0}.p-game-ready span{font-size:22px;font-weight:700;color:var(--muted)}.p-game-ready strong{font-size:110px;line-height:1;font-weight:900;color:var(--accent)}.p-game-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:52vh}.p-game-options button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px 8px;border-radius:14px;color:#fff;font-size:16px;font-weight:700;box-shadow:0 5px #00000040}.p-game-options button:active{transform:translateY(3px);box-shadow:0 2px #00000040}.p-game-options button span{overflow-wrap:anywhere;text-align:center}.p-game-wait{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:46vh;border-radius:18px;color:#fff;text-align:center;padding:20px;animation:pop .25s ease-out}.p-game-wait strong{font-size:24px}.p-game-result{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:36px 16px;border-radius:18px;color:#fff;animation:pop .3s cubic-bezier(.2,.9,.3,1.4)}.p-game-result.right{background:#16a34a}.p-game-result.wrong{background:#dc2626}.p-game-result.none{background:#475569}.p-game-result strong{font-size:30px}.p-game-points{font-size:40px;font-weight:900;padding:4px 18px;border-radius:999px;background:#ffffff38}.p-standing{margin:6px 0 0;font-size:16px}.p-rank{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:30px 10px}.p-rank span{font-size:64px}.p-rank strong{font-size:34px}.p-rank p{margin:0;color:var(--muted)}.p-rank.top-1 strong{color:#ca8a04}.pending-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pending-list li{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.pending-list li>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13.5px;overflow-wrap:anywhere}.pending-list small{color:var(--muted);font-size:12px}.pending-list .icon-btn.ok{color:#16a34a}.pending-list .icon-btn.no{color:#dc2626}.pending-empty{margin:0;font-size:13px;color:var(--muted)}.presenter-queue{position:fixed;top:16px;right:16px;bottom:96px;z-index:60;width:340px;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;background:#fffffff7;box-shadow:var(--shadow-lg);overflow-y:auto;color:var(--ink)}.presenter-queue header{display:flex;align-items:center;justify-content:space-between}.p-post.pending,.p-question.pending{opacity:.7}.p-pending{display:inline-block;align-self:flex-start;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:#fef3c7;color:#92400e}.p-nick{align-items:stretch;gap:10px;padding:24px 4px;text-align:center}.p-nick strong{font-size:22px}.p-nick input{font:inherit;font-size:18px;padding:12px 14px;border-radius:12px;border:2px solid var(--line);text-align:center}.p-streak{font-weight:700;font-size:16px;padding:4px 12px;border-radius:999px;background:#0000002e}.game-image{max-height:150px;max-width:46%;border-radius:12px;object-fit:contain;box-shadow:0 6px 20px #00000040}.props-warn{margin:0;font-size:13px;color:#b45309;background:#fffbeb;padding:8px 10px;border-radius:9px}.seg.wrap{flex-wrap:wrap}.seg.wrap button{flex:1 0 auto;min-width:46px}.cv-root{position:absolute;top:0;right:0;bottom:0;left:0}.cv-el{position:absolute;transform-origin:center}.cv-anim{position:absolute;top:0;right:0;bottom:0;left:0}.cv-frame{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:visible;box-sizing:border-box}.cv-text-wrap{font-size:28px;line-height:1.25;overflow-wrap:break-word}.cv-text .cv-text-wrap,.cv-shape .cv-text-wrap{min-height:1.25em}.cv-html{outline:none;white-space:pre-wrap}.cv-html p,.cv-html div,.cv-html blockquote{margin:0}.cv-html ul,.cv-html ol{margin:0;padding-left:1.25em}.cv-html li{margin:.12em 0}.cv-html blockquote{margin-left:1.2em}.cv-svg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.cv-shape-text{align-items:stretch}.cv-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;box-sizing:border-box}.cv-img-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:16px;border:3px dashed rgba(127,127,127,.55);border-radius:18px;font-size:22px;font-weight:600;opacity:.75;background:#7f7f7f14}.cv-tbl{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-collapse:collapse;table-layout:fixed;color:#1f2937;font-size:22px;line-height:1.25;overflow:hidden}.cv-tbl td{vertical-align:middle;overflow-wrap:break-word}.stage-thumb .cv-html.cv-empty:before{content:none}.editor-main.with-ribbon{padding-top:12px}.cv-editor{cursor:default;touch-action:none;user-select:none;-webkit-user-select:none}.cv-editor .cv-el{cursor:move}.cv-editor .cv-el.is-locked{cursor:default}.cv-editor .cv-el.is-editing{cursor:text}.cv-editor .cv-html.cv-empty:before{content:attr(data-ph);opacity:.45;pointer-events:none}.cv-editor .cv-text:not(.is-sel):not(:hover) .cv-html.cv-empty{outline:2px dashed rgba(127,127,127,.45);outline-offset:10px}.cv-editor .cv-el:hover:not(.is-sel){outline:1.5px solid rgba(99,102,241,.55)}.cv-editing{user-select:text;-webkit-user-select:text;cursor:text;min-height:1.25em;caret-color:currentColor}.cv-editor.op-move,.cv-editor.op-move *{cursor:move!important}.cv-editor.op-rotate,.cv-editor.op-rotate *{cursor:grabbing!important}.cv-sel{position:absolute;border:1.5px solid #6366f1;pointer-events:none;transform-origin:center;box-sizing:border-box}.cv-sel.thin{border-style:dashed;border-color:#6366f1b3}.cv-sel.group{border-style:dashed}.cv-sel.locked{border-color:#94a3b8;border-style:dashed}.cv-handle{position:absolute;background:#fff;border:1.5px solid #6366f1;border-radius:2px;pointer-events:auto;box-sizing:border-box;box-shadow:0 1px 3px #00000040;z-index:2}.cv-handle.round{border-radius:50%}.cv-handle.rot{cursor:grab;background:#eef2ff}.cv-handle.locked{border-color:#94a3b8}.cv-rot-stem{position:absolute;left:50%;background:#6366f1;transform:translate(-50%)}.cv-lock{position:absolute;right:2px;top:2px}.cv-guide{position:absolute;background:#ec4899;pointer-events:none;z-index:3}.cv-marquee{position:absolute;border:1px solid #6366f1;background:#6366f11f;pointer-events:none}.cv-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(127,127,127,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(127,127,127,.22) 1px,transparent 1px);background-size:20px 20px}.cv-anim-badge{position:absolute;z-index:3;background:#f59e0b;color:#fff;font-weight:800;line-height:1.4;pointer-events:none}.cv-menu{position:fixed;z-index:400;min-width:230px;padding:6px;background:#fff;color:var(--ink);border-radius:12px;box-shadow:var(--shadow-lg);border:1px solid var(--line);display:flex;flex-direction:column}.cv-menu button{display:flex;justify-content:space-between;gap:18px;padding:7px 10px;border-radius:7px;font-size:13.5px;text-align:left}.cv-menu button:hover:not(:disabled){background:#f1f1f5}.cv-menu button:disabled{opacity:.4}.cv-menu kbd{font:inherit;font-size:11.5px;color:var(--muted)}.cv-menu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}.cv-menu hr+hr,.cv-menu hr:last-child{display:none}.ribbon{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);flex:none}.ribbon-tabs{display:flex;align-items:center;gap:2px;padding:4px 8px 0;border-bottom:1px solid var(--line)}.ribbon-tabs button{padding:7px 12px 8px;font-size:13.5px;font-weight:600;color:var(--muted);border-bottom:2.5px solid transparent;margin-bottom:-1px}.ribbon-tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.ribbon-tabs button:hover{color:var(--ink)}.ribbon-hint{margin-left:auto;font-size:12px;color:var(--muted);padding-right:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ribbon-body{display:flex;align-items:stretch;gap:4px;padding:6px 8px 4px;overflow-x:auto;min-height:84px}.rb-group{display:flex;flex-direction:column;justify-content:space-between;padding:0 8px;border-right:1px solid var(--line);flex:none}.rb-group:last-child{border-right:0}.rb-group>small{text-align:center;font-size:11px;color:var(--muted);padding-top:3px}.rb-items{display:flex;align-items:center;gap:2px}.rb-col{display:flex;flex-direction:column;gap:3px}.rb-col.narrow{gap:4px}.rb-row{display:flex;align-items:center;gap:2px}.rb{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:30px;height:30px;padding:0 6px;border-radius:7px;color:#374151;font-size:13px}.rb.wide{flex-direction:column;height:58px;gap:3px;padding:4px 8px;font-size:12px;font-weight:600}.rb.wide svg{width:22px;height:22px}.rb:hover:not(:disabled){background:#f1f1f5}.rb.on{background:#ede9fe;color:var(--accent)}.rb:disabled{opacity:.35}.rb-text{font-size:15px;font-family:Georgia,serif;min-width:14px}.rb-text sup,.rb-text sub{font-size:9px}.rb-select{height:30px;border:1px solid var(--line);border-radius:7px;padding:0 6px;font-size:13px;background:#fff}.rb-select.font{width:150px}.rb-select.size{width:62px}.rb-drop{position:relative;display:inline-flex}.rb-drop .rb.wide{flex-direction:column}.rb-drop .rb.wide>svg:last-child{width:12px;height:12px;margin-top:-2px}.rb-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:80;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px}.rb-color{position:relative;display:inline-flex;flex-direction:column;align-items:center}.rb-color i{display:block;width:18px;height:4px;border-radius:2px;margin-top:1px;box-shadow:0 0 0 1px #00000026}.rb-list{display:flex;flex-direction:column;min-width:120px}.rb-list button{padding:7px 10px;border-radius:7px;text-align:left;font-size:13.5px}.rb-list button:hover,.rb-list button.on{background:#f1f1f5}.rb-field{display:grid;grid-template-columns:96px 110px;align-items:center;font-size:12.5px;color:#4b5563;gap:6px}.rb-field select,.rb-field input{height:26px;border:1px solid var(--line);border-radius:6px;padding:0 6px;font-size:12.5px}.color-grid{display:flex;flex-direction:column;gap:3px;width:236px}.color-row{display:flex;gap:3px}.swatch{width:20px;height:20px;border-radius:4px;box-shadow:inset 0 0 0 1px #00000026;flex:none;display:inline-block}.swatch.on{outline:2px solid var(--accent);outline-offset:1px}.swatch.none{background:linear-gradient(135deg,#fff 45%,#ef4444 47%,#ef4444 53%,#fff 55%)!important}.color-none{display:flex;align-items:center;gap:8px;padding:4px 4px 6px;font-size:13px;border-radius:6px}.color-none:hover,.color-more:hover{background:#f5f5f8}.color-more{display:flex;align-items:center;justify-content:space-between;padding:4px;font-size:13px;border-radius:6px;cursor:pointer;margin-top:4px}.color-more input{width:34px;height:22px;padding:0;border:0;background:none;cursor:pointer}.shape-grid{display:grid;grid-template-columns:repeat(7,36px);gap:4px}.shape-grid button{height:32px;border-radius:6px;display:grid;place-items:center;color:#4338ca}.shape-grid button:hover{background:#eef2ff}.table-picker{display:flex;flex-direction:column;gap:6px}.table-picker-grid{display:grid;grid-template-columns:repeat(10,18px);gap:3px}.table-picker-grid button{width:18px;height:18px;border:1px solid #cbd5e1;border-radius:3px;background:#fff}.table-picker-grid button.on{background:#c7d2fe;border-color:#6366f1}.table-picker small{font-size:12.5px;color:var(--muted);text-align:center}.layout-grid{display:grid;grid-template-columns:repeat(3,120px);gap:8px}.layout-grid.small{grid-template-columns:repeat(2,1fr)}.layout-grid button{display:flex;flex-direction:column;gap:4px;align-items:center;padding:6px;border-radius:8px;font-size:12px;font-weight:600;color:#4b5563}.layout-grid button:hover{background:#f1f1f5}.layout-preview{width:100%;aspect-ratio:16 / 9;border-radius:4px;box-shadow:0 0 0 1px var(--line)}.effect-row{display:grid;grid-template-columns:repeat(5,118px);gap:2px}.effect{display:flex;align-items:center;gap:6px;height:28px;padding:0 6px;border-radius:7px;font-size:12px;line-height:1.1;color:#374151;text-align:left}.effect:hover:not(:disabled){background:#f1f1f5}.effect.on{background:#fef3c7;color:#92400e}.effect:disabled{opacity:.35}.effect-icon{font-size:15px;color:#f59e0b;width:16px;flex:none;display:grid;place-items:center}.effect:hover:not(:disabled) .effect-icon{animation:fxPreview .9s ease-out}@keyframes fxPreview{0%{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}.num-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.num-field{position:relative;display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:#4b5563}.num-field input{height:32px;border:1px solid var(--line);border-radius:8px;padding:0 26px 0 8px;font-size:13.5px;width:100%;box-sizing:border-box}.num-field em{position:absolute;right:8px;bottom:8px;font-style:normal;font-size:11.5px;color:var(--muted)}.color-field{position:relative;display:grid;grid-template-columns:90px 1fr;align-items:center;font-size:12.5px;font-weight:600;color:#4b5563}.color-btn{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-weight:500;color:var(--ink);text-align:left}.color-pop{position:absolute;z-index:50;top:calc(100% + 4px);right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px}.range-field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:#4b5563}.range-field em{font-style:normal;color:var(--muted);font-weight:500}.check-row{display:flex;align-items:center;gap:8px;font-size:13.5px}.seg-row{display:flex;flex-direction:column;gap:8px}.btn-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.btn-grid .ghost-btn{height:32px;font-size:12.5px;padding:0 8px}.el-list{display:flex;flex-direction:column;gap:2px;margin-top:6px}.el-list h4{margin-bottom:4px}.el-row{display:flex;align-items:center;gap:4px}.el-name{flex:1;min-width:0;text-align:left;padding:6px 8px;border-radius:7px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-name:hover{background:#f1f1f5}.notes-input{font-size:13.5px}.presenter-notes{position:fixed;left:16px;bottom:96px;z-index:60;width:min(420px,calc(100vw - 32px));max-height:60vh;display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:16px;background:#fffffff7;color:var(--ink);box-shadow:var(--shadow-lg);overflow-y:auto}.presenter-notes header{display:flex;align-items:center;justify-content:space-between}.presenter-notes header strong{display:inline-flex;align-items:center;gap:8px}.presenter-notes p{margin:0;white-space:pre-wrap;font-size:17px;line-height:1.5}.presenter-notes footer small{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.presenter-next{position:relative;width:200px;aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;margin-top:6px;box-shadow:0 0 0 1px var(--line)}.cv-anim[class*=anim-]{animation-fill-mode:both;animation-timing-function:cubic-bezier(.2,.7,.2,1)}.anim-fade{animation-name:fxFade}.anim-fly-left{animation-name:fxFlyLeft}.anim-fly-right{animation-name:fxFlyRight}.anim-fly-up{animation-name:fxFlyUp}.anim-fly-down{animation-name:fxFlyDown}.anim-zoom{animation-name:fxZoom}.anim-wipe{animation-name:fxWipe}.anim-spin{animation-name:fxSpin}.anim-bounce{animation-name:fxBounce;animation-timing-function:ease-out!important}@keyframes fxFade{0%{opacity:0}to{opacity:1}}@keyframes fxFlyLeft{0%{opacity:0;transform:translate(-1400px)}to{opacity:1;transform:none}}@keyframes fxFlyRight{0%{opacity:0;transform:translate(1400px)}to{opacity:1;transform:none}}@keyframes fxFlyUp{0%{opacity:0;transform:translateY(800px)}to{opacity:1;transform:none}}@keyframes fxFlyDown{0%{opacity:0;transform:translateY(-800px)}to{opacity:1;transform:none}}@keyframes fxZoom{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}@keyframes fxWipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes fxSpin{0%{opacity:0;transform:rotate(-360deg) scale(.3)}to{opacity:1;transform:none}}@keyframes fxBounce{0%{opacity:0;transform:translateY(-300px)}55%{opacity:1;transform:translateY(0)}72%{transform:translateY(-40px)}86%{transform:translateY(0)}93%{transform:translateY(-10px)}to{transform:none}}.stage[class*=trans-]{animation-duration:.6s;animation-timing-function:cubic-bezier(.2,.7,.2,1);animation-fill-mode:both}.trans-fade{animation-name:fxFade}.trans-push{animation-name:trPush}.trans-cover{animation-name:trCover}.trans-zoom{animation-name:trZoom}.trans-flip{animation-name:trFlip}@keyframes trPush{0%{transform:translate(100%)}to{transform:none}}@keyframes trCover{0%{transform:translateY(100%)}to{transform:none}}@keyframes trZoom{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:none}}@keyframes trFlip{0%{opacity:0;transform:perspective(2000px) rotateY(-90deg)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.cv-anim[class*=anim-],.stage[class*=trans-]{animation-duration:1ms!important;animation-delay:0ms!important}}.field>span{font-size:12.5px;font-weight:600;color:#4b5563}.seg.small button{font-size:12px;padding:0 4px}.effect-row.trans{grid-template-columns:repeat(3,118px)}
