:root{color:#1a2c36;font-synthesis:none;--paper:#fff;--bg:#f2f5f6;--ink:#1a2c36;--muted:#627582;--line:#dce5e9;--cyan:#007e98;--soft:#e1f4f7;--gold:#9a7425;--night:#112630;background:#f2f5f6;font-family:Inter,Microsoft YaHei,Arial,sans-serif;line-height:1.6}*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin:0 0 12px}h1{font-size:27px;font-weight:500;line-height:1.4}h2{font-size:20px;font-weight:500;line-height:1.5}h3{font-size:16px;font-weight:500}small{font-size:12px}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:9px;min-height:42px;padding:10px 15px}button:hover{border-color:var(--cyan)}button:disabled{opacity:.48;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #20b0cc}a{color:var(--cyan);text-underline-offset:4px}label{color:var(--muted);margin:15px 0;font-size:13px;display:block}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--paper);border-radius:8px;min-width:0;margin-top:7px;padding:11px;font-size:16px;display:block}textarea{resize:vertical;min-height:92px}input[type=checkbox]{vertical-align:middle;width:17px;accent-color:var(--cyan);margin:0 7px 0 0;display:inline-block}form{margin:0}hr{border:0;border-top:1px solid var(--line);margin:22px 0}.primary{background:var(--cyan);color:#fff;border-color:var(--cyan)}.full{width:100%;margin-top:12px}.text-button{color:var(--cyan);background:0 0;border:0;min-height:36px;padding:8px 0}.brand{letter-spacing:2px;font-size:24px;font-weight:500}.brand small{letter-spacing:2px;color:var(--muted);margin-top:4px;font-size:11px;display:block}.eyebrow{letter-spacing:2px;color:var(--muted);font-size:11px}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.badge{background:var(--soft);color:var(--cyan);border-radius:30px;padding:4px 10px;font-size:12px;display:inline-block}.muted{color:var(--muted);font-size:13px}.notice,.error,.hint{border-radius:9px;margin:16px 0;padding:13px 16px;font-size:13px;line-height:1.7}.notice{background:var(--soft);color:var(--cyan)}.error{color:#a13623;background:#ffebe7}.hint{background:var(--paper);color:var(--muted);border-left:3px solid var(--gold)}.panel{border:1px solid var(--line);background:var(--paper);border-radius:14px;margin:18px 0;padding:22px}.fields{grid-template-columns:1fr 1fr;gap:16px;display:grid}.fields>*{min-width:0}.actions{flex-wrap:wrap;gap:9px;margin-top:18px;display:flex}.empty{text-align:center;color:var(--muted);padding:55px 20px}.login-panel{background:var(--paper);border:1px solid var(--line);border-radius:20px;max-width:440px;margin:10vh auto;padding:36px}.login-panel h1{margin-top:34px;font-size:24px}.desktop{grid-template-columns:204px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--paper);border-right:1px solid var(--line);flex-direction:column;gap:30px;padding:28px 20px;display:flex}.sidebar .brand{font-size:23px}.sidebar nav{flex-direction:column;gap:8px;display:flex}.sidebar nav button{text-align:left;background:0 0;border:0;padding:13px;font-size:14px}.sidebar nav button.selected{background:var(--soft);color:var(--cyan)}.sidebar-bottom{gap:16px;margin-top:auto;font-size:12px;display:grid}.workspace{width:100%;max-width:1440px;margin:auto;padding:30px}.workspace>header{margin-bottom:26px}.workspace>header h1{margin:5px 0}.cue-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0;display:grid}.cue-grid button{text-align:left;min-height:85px;padding:14px}.cue-grid small{color:var(--muted);margin-bottom:7px;font-size:11px;display:block}.cue-grid strong{font-size:15px;font-weight:500;display:block}.selected{background:var(--soft);border-color:var(--cyan);color:var(--cyan)}.control-grid{grid-template-columns:minmax(0,1fr) 270px;gap:20px;display:grid}.control-grid>.panel{margin:0}.output-settings{align-self:start}.stage-preview{background:var(--night);color:#ecfaff;border-radius:10px;flex-direction:column;justify-content:space-between;gap:20px;min-height:270px;margin-top:20px;padding:24px;display:flex}.stage-preview>small{color:#a1c6d3;font-size:11px}.stage-preview h2{color:#edfaff;margin:0}.preview-options{grid-template-columns:1fr 1fr;gap:15px;display:grid}.preview-options>div{background:#233e47;border-top:2px solid #65dfee;padding:13px;font-size:14px}.preview-options b{color:#65dfee;margin-right:10px;font-size:22px}.preview-options strong{margin-top:12px;font-size:16px;font-weight:500;display:block}.form-panel{max-width:860px}.checks{flex-wrap:wrap;gap:10px 25px;display:flex}.booth-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.booth-grid .panel{margin:0}.audit-row{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:20px;padding:15px 0;font-size:13px;display:flex}.audit-row code{overflow-wrap:anywhere;font-size:11px}.audit-row p{margin:4px 0 0}.modal-back{z-index:30;background:#04182290;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0;overflow:auto}.dialog{background:var(--paper);border:1px solid var(--line);border-radius:20px;width:100%;max-width:490px;max-height:calc(100dvh - 36px);padding:28px;position:relative;overflow:auto}.dialog h2{padding-right:22px}.close{background:var(--bg);width:34px;min-height:34px;color:var(--muted);border:0;border-radius:50%;padding:0;font-size:22px;position:absolute;top:12px;right:13px}.qr-image{width:240px;max-width:100%;margin:20px auto;display:block}.staff-shell{max-width:490px;margin:35px auto;padding:0 20px}.staff-shell header{margin-bottom:20px}.staff-shell h1{margin-top:15px;font-size:25px}.separator{color:var(--muted);align-items:center;gap:14px;margin:25px 0 18px;font-size:12px;display:flex}.separator:before,.separator:after{content:"";background:var(--line);flex:1;height:1px}.code-input{letter-spacing:4px;font-size:23px}.detail{border-top:1px solid var(--line);justify-content:space-between;gap:15px;padding:14px 0;font-size:13px;display:flex}.detail span{color:var(--muted)}.detail strong{text-align:right;font-weight:500}.camera{margin-top:20px}.camera video{background:#132830;border-radius:8px;width:100%;max-height:300px}.phone-shell{border:1px solid var(--line);background:var(--bg);border-radius:25px;max-width:408px;margin:25px auto;position:relative;overflow:hidden}.phone-top{justify-content:space-between;align-items:center;padding:20px 20px 18px;font-size:13px;display:flex}.phone-top strong{font-weight:500}.phone-top>span{border:1px solid var(--line);border-radius:30px;padding:2px 10px;font-size:12px}.phone-content{min-height:580px;padding:0 18px 24px}.phone-content h1{font-size:25px}.phone-content h2{font-size:19px}.phone-tabs{background:var(--paper);border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);padding:8px 5px 13px;display:grid}.phone-tabs button{color:var(--muted);background:0 0;border:0;min-height:48px;padding:12px 2px;font-size:11px}.phone-tabs .chosen{color:var(--cyan);background:var(--soft)}.dev-note{text-align:center;color:var(--muted);padding:12px;font-size:11px}.hero{background:var(--night);color:#edfaff;isolation:isolate;border-radius:18px;min-height:296px;padding:26px 22px;position:relative;overflow:hidden}.hero:before{content:"";z-index:-1;background:radial-gradient(circle,#e3c97933,#0000 68%);border:1px solid #71dfea55;border-radius:50%;width:225px;height:225px;position:absolute;top:20px;right:-64px;box-shadow:0 0 0 30px #81e4f306}.hero small{letter-spacing:3px;color:#98deeb;font-size:11px}.hero h1{letter-spacing:3px;margin:30px 0 8px;font:44px/1.4 KaiTi,STKaiti,serif}.hero h2{color:#e5c87f;letter-spacing:5px;font-size:15px}.hero p{max-width:230px;margin-top:24px;font-size:12px;line-height:1.9}.meta{margin:17px 0;font-size:12px}.meta small{color:var(--muted);margin-bottom:5px;font-size:11px;display:block}.big-number{font-size:32px;font-weight:500}.big-number small{color:var(--muted);font-size:14px}.meter{background:var(--line);border-radius:20px;height:7px;margin:15px 0 10px;overflow:hidden}.meter i{background:var(--cyan);height:100%;transition:width .2s;display:block}.booth-grid.mobile{grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.booth-grid.mobile .panel{padding:14px}.booth-grid.mobile small{color:var(--muted);font-size:11px}.booth-grid.mobile h3{margin:8px 0 4px;font-size:13px}.visited{background:var(--soft)}.chapter{background:var(--night);color:#edfaff;border-radius:17px;margin-bottom:18px;padding:22px}.chapter .badge{color:#8ce5ee;background:#60dbed22}.chapter h1{letter-spacing:3px;margin:22px 0 12px;font:31px/1.4 KaiTi,STKaiti,serif}.chapter p{color:#bed7e0;font-size:13px}.choice{text-align:left;align-items:center;gap:14px;width:100%;min-height:70px;margin-top:12px;padding:16px;display:flex}.choice b{color:var(--cyan);font-size:25px;font-weight:500}.choice span{font-size:14px}.choice.chosen{background:var(--soft);border-color:var(--cyan)}.waiting{background:var(--night);color:#ecf8fc;text-align:center;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:500px;padding:28px 24px;display:flex}.waiting small{letter-spacing:2px;color:#a1ddea;font-size:11px}.waiting h1{margin:0;font-size:26px}.waiting p{color:#b6cfd9;font-size:13px;line-height:1.9}.waiting-orbit{border:1px solid #68d7ea60;border-radius:50%;width:115px;height:115px;margin:28px 0;position:relative;box-shadow:0 0 0 16px #73dceb08}.waiting-orbit:after{content:"";background:radial-gradient(circle,#e4c47645,#0000 80%);border:1px solid #e7c88375;border-radius:50%;position:absolute;inset:26px}.profile-head{align-items:center;gap:15px;padding:18px 0 25px;display:flex}.profile-head h1{margin:0 0 4px;font-size:22px}.profile-head p{margin:0}.avatar{background:var(--soft);width:63px;height:63px;color:var(--cyan);border-radius:20px;place-items:center;font-size:26px;display:grid}.exp-panel{background:var(--night);color:#e9f8fc;border-radius:17px;padding:22px;font-size:14px}.exp-panel strong{font-size:21px}.exp-panel .meter{background:#e8fbff20}.exp-panel .meter i{background:#6de1ef}.exp-panel small{color:#afcdd7;font-size:11px}.record{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:13px 0;font-size:13px;display:flex}.record:last-child{border:0}.record h3{margin:0 0 4px;font-size:14px}.record small{color:var(--muted);font-size:11px}summary{cursor:pointer}.boss{background:var(--night);color:#e9faff;text-align:center;border-radius:18px;padding:24px 19px}.boss h2{font-size:23px}.boss p{color:#b2d1db;margin-top:16px;font-size:12px}.boss .meter{background:#efffff22}.boss .meter i{background:linear-gradient(90deg,#6cdeec,#e7c67a)}.ember{background:radial-gradient(circle,#e7c67a30,#0000 73%);border:1px solid #e7c67a50;border-radius:50%;place-items:center;width:210px;height:210px;margin:24px auto;display:grid;position:relative}.ember:before{content:"";pointer-events:none;border:1px solid #72daee45;border-radius:50%;position:absolute;inset:17px}.hit{color:#12323e;touch-action:manipulation;-webkit-user-select:none;user-select:none;z-index:1;background:linear-gradient(135deg,#d1f5f4,#53cfe7);border:0;border-radius:50%;width:137px;height:137px;font-size:21px}.hit small{margin-top:6px;font-size:11px;display:block}.hit:active{transform:scale(.96)}.tap-wave{pointer-events:none;border:2px solid #8fe5ed;border-radius:50%;animation:.5s ease-out forwards tap-wave;position:absolute;inset:12px}.tap-plus{color:#eecf84;z-index:2;pointer-events:none;font-size:22px;animation:.5s ease-out forwards tap-rise;position:absolute;top:20px;left:95px}.gift-content{text-align:center}.gift-content h2{margin-top:18px;padding:0}.gift-art{width:160px;height:175px;margin:22px auto;position:relative}.gift-art i{background:var(--cyan);border-radius:4px 4px 14px 14px;width:104px;height:90px;position:absolute;bottom:8px;left:28px}.gift-art b{background:var(--cyan);border-radius:5px;width:120px;height:27px;position:absolute;bottom:101px;left:20px}.gift-art i:after,.gift-art b:after{content:"";background:#e7c67a;width:16%;height:100%;position:absolute;top:0;left:43%}.gift-art b:before{content:"";border:7px solid #e7c67a;border-radius:50% 50% 0 0;width:37px;height:19px;position:absolute;top:-27px;left:37px}.gift-art.opening b{animation:1.4s forwards gift-open}.credential-code{text-align:center;letter-spacing:6px;margin:14px 0;font-size:29px}.output-mode,.output-mode body,.output-mode #app{margin:0;overflow:hidden;background:0 0!important}.signal{color:#f2faff;pointer-events:none;background:0 0;flex-direction:column;justify-content:space-between;padding:5vh 5vw;font-family:Microsoft YaHei,sans-serif;display:flex;position:absolute;inset:0}.signal-heading{justify-content:space-between;align-items:flex-start;gap:25px;display:flex}.signal-heading>div{background:#0b1728df;border-left:4px solid #66deef;max-width:78%;padding:18px 25px}.signal-heading small{color:#91e3ef;letter-spacing:4px;font-size:clamp(15px,1.3vw,24px)}.signal-heading h1{margin:8px 0 0;font-size:clamp(24px,2.5vw,48px)}.signal-heading>span{color:#e9ca82;background:#0b1728df;padding:12px 20px;font-size:clamp(16px,1.4vw,28px)}.signal-bottom{align-items:flex-end;gap:2vw;display:flex}.signal-choices{flex:1;grid-template-columns:1fr 1fr;gap:1.2vw;display:grid}.signal-choices section{background:#0b1728e8;border-top:4px solid #62dcec;padding:20px 25px}.signal-choices section:nth-child(2){border-color:#e7c67a}.signal-choices h2{margin:0 0 14px;font-size:clamp(20px,2vw,38px);line-height:1.7}.signal-choices h2 b{color:#66dfeb;margin-right:15px;font-size:clamp(25px,2.6vw,48px)}.signal-choices section:nth-child(2) b{color:#e7c67a}.signal-choices .spread{font-size:clamp(15px,1.5vw,28px)}.signal-choices .meter,.signal-boss .meter{background:#ecffff22;height:10px;margin:15px 0 0}.signal-choices .meter i{background:#64ddeb}.signal-choices section:nth-child(2) .meter i{background:#e7c67a}.signal-choices .winner{background:#223a35ed;box-shadow:0 0 30px #edcb7877}.signal-qr{color:#12313c;text-align:center;background:#fff;border-radius:7px;flex:none;padding:12px}.signal-qr img{width:clamp(100px,10vw,194px);display:block}.signal-qr span{font-size:clamp(13px,1.1vw,22px)}.signal-boss{background:#0b1728ed;border-top:4px solid #e7c67a;flex:1;padding:24px 28px}.signal-boss h2{margin:0;font-size:clamp(22px,2.4vw,46px)}.signal-boss strong{color:#e7c67a;font-size:clamp(24px,2.6vw,48px)}.signal-boss .meter{height:16px;margin-top:20px}.signal-boss .meter i{background:linear-gradient(90deg,#66deeb,#e7c67a)}.signal-boss.flash{animation:.8s ease-out complete-flash}@keyframes tap-wave{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.15)}}@keyframes tap-rise{to{opacity:0;transform:translateY(-32px)}}@keyframes gift-open{40%{transform:translateY(-10px)rotate(-7deg)}to{opacity:0;transform:translate(-15px,-70px)rotate(-20deg)}}@keyframes complete-flash{50%{box-shadow:0 0 60px #edca7890}}@media (prefers-color-scheme:dark){:root{color:#e6f4f8;--paper:#1a2832;--bg:#101a22;--ink:#e6f4f8;--muted:#a2bac7;--line:#354852;--cyan:#60ddee;--soft:#193d48;--gold:#e8c780;--night:#102630;background:#101a22}.primary{color:#092631}.error{color:#ffc6b8;background:#452925}.stage-preview{background:#0f202c}}@media (width<=1150px){.control-grid{grid-template-columns:1fr}.output-settings{display:block}.booth-grid,.cue-grid{grid-template-columns:1fr 1fr}.desktop{grid-template-columns:180px minmax(0,1fr)}.workspace{padding:24px}.sidebar{padding:25px 14px}}@media (width<=650px){.desktop{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);gap:16px;padding:15px}.sidebar .brand{font-size:21px}.sidebar nav{flex-flow:wrap;gap:5px;display:flex}.sidebar nav button{padding:9px;font-size:12px}.sidebar-bottom{display:none}.workspace{padding:18px 13px}.workspace>header h1{font-size:23px}.booth-grid{grid-template-columns:1fr}.panel{padding:17px}.fields{grid-template-columns:1fr;gap:0}.preview-options{grid-template-columns:1fr}.stage-preview{padding:18px}.staff-shell{margin-top:20px;padding:0 13px}.phone-shell{border-top:0;border-radius:0;margin:0 auto}.dialog{padding:25px 20px}.login-panel{margin:40px 16px;padding:27px}.phone-content{padding:0 14px 24px}.meta{grid-template-columns:1fr 1fr;gap:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.phone-tabs button{flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:57px;padding:6px 2px;line-height:1.3;display:flex}.phone-tabs .tab-icon{flex:none;width:24px;height:24px;display:block}.phone-tabs .tab-icon svg{width:100%;height:100%;display:block}
