@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&family=Noto+Serif+TC:wght@500;600;700&display=swap";:root{color:#22201d;font-synthesis:none;--ink:#22201d;--paper:#f5f2ea;--muted:#767169;--line:#c9c3b8;--red:#9e3529;--green:#506b5a;--navy:#293c49;background:#e9e6df;font-family:Noto Sans TC,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--paper);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}.restore-screen{min-height:100vh;color:var(--muted);place-content:center;justify-items:center;gap:18px;font-family:Noto Serif TC,serif;display:grid}.eyebrow,.folio{letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin:0;font-size:.72rem;font-weight:700}.folio{color:var(--muted)}.primary,.secondary{border:1px solid var(--ink);letter-spacing:.04em;min-height:48px;padding:0 22px;font-weight:700;transition:transform .16s,background .16s,color .16s}.primary{background:var(--ink);color:var(--paper)}.secondary{color:var(--ink);background:0 0}.primary:not(:disabled):hover,.secondary:not(:disabled):hover{transform:translateY(-2px)}.secondary.active{border-color:var(--green);color:var(--green);background:#dfe6df}.entry-shell{background:var(--paper);grid-template-columns:minmax(0,1.25fr) minmax(380px,.75fr);min-height:100vh;display:grid}.entry-copy{border-right:1px solid var(--line);flex-direction:column;justify-content:center;padding:clamp(50px,8vw,120px);display:flex;position:relative;overflow:hidden}.entry-copy:after{content:"05";color:#e7e2d8;z-index:0;font:700 min(36vw,500px)/1 Noto Serif TC,serif;position:absolute;bottom:-12vw;right:-3vw}.entry-copy>*{z-index:1;position:relative}.entry-copy h1{letter-spacing:-.05em;max-width:1000px;margin:30px 0;font:600 clamp(2.7rem,5.5vw,6.5rem)/1.12 Noto Serif TC,serif}.lead{color:#58534c;max-width:650px;font-size:1.05rem;line-height:1.9}.rule-strip{gap:0;margin-top:54px;display:flex}.rule-strip span{border:1px solid var(--line);color:var(--muted);margin-right:-1px;padding:13px 18px;font-size:.78rem}.entry-card{background:#dedbd3;flex-direction:column;justify-content:center;padding:clamp(34px,5vw,76px);display:flex}.entry-mode{border:1px solid #aaa49a;grid-template-columns:1fr 1fr;margin-bottom:28px;display:grid}.entry-mode button{min-height:44px;color:var(--muted);background:0 0;border:0;font-weight:700}.entry-mode button+button{border-left:1px solid #aaa49a}.entry-mode button.active{background:var(--ink);color:var(--paper)}.entry-card h2{margin:18px 0 32px;font:600 2.3rem/1.2 Noto Serif TC,serif}.entry-card form{gap:12px;display:grid}.entry-card label{letter-spacing:.08em;font-size:.78rem;font-weight:700}.entry-card input,.entry-card select{border:0;border-bottom:1px solid var(--ink);background:0 0;border-radius:0;outline:none;width:100%;margin-bottom:14px;padding:14px 2px;font-size:1.05rem}.entry-card input:focus{border-bottom-width:2px}.entry-card .invite-code-input{letter-spacing:.2em;text-transform:uppercase;font:700 1.45rem Noto Serif TC,serif}.scenario-preview{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:-10px 0 28px;padding:22px 0}.scenario-preview strong{font-family:Noto Serif TC,serif;font-size:1.2rem}.scenario-preview p{color:var(--muted);line-height:1.7}.scenario-preview small{color:var(--green);font-weight:700}.microcopy,.form-error{color:var(--muted);font-size:.78rem}.form-error{color:var(--red);margin:0 0 8px}.game-shell{background:var(--paper);min-height:100vh}.room-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:82px;padding:18px clamp(22px,5vw,74px);display:flex}.room-code{letter-spacing:.12em;margin-top:6px;font-size:.78rem;display:block}.connection{color:var(--muted);align-items:center;gap:8px;font-size:.75rem;display:flex}.connection span{background:#a29889;border-radius:50%;width:7px;height:7px}.connection.connected span{background:#4b7b59;box-shadow:0 0 0 4px #dce8dd}.connection.reconnecting span,.connection.connecting span{background:#b17b2d;animation:1s infinite pulse}.error-banner{color:#6f2a20;background:#f3dfdc;border:0;border-bottom:1px solid #d1a59e;justify-content:space-between;width:100%;padding:12px 5vw;display:flex}.error-banner span{text-decoration:underline}.lobby-grid{grid-template-columns:1fr minmax(430px,.72fr);min-height:calc(100vh - 82px);display:grid}.lobby-story{border-right:1px solid var(--line);background:linear-gradient(#f5f2eaeb,#f5f2eaeb),repeating-linear-gradient(0deg,#0000 0 24px,#d9d2c6 25px);padding:clamp(50px,8vw,120px)}.lobby-story h1{letter-spacing:-.06em;margin:25px 0;font:600 clamp(3rem,6vw,6rem)/1.1 Noto Serif TC,serif}.lobby-story>p:not(.folio){color:#58534c;max-width:700px;font:500 1.1rem/2 Noto Serif TC,serif}.invite-box{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);grid-template-columns:132px 130px 1fr auto;align-items:center;gap:16px;margin-top:70px;padding:18px 0;display:grid}.invite-qr{grid-row:span 2;width:132px;height:132px}.invite-box span{font-size:.72rem;font-weight:700}.invite-box code{white-space:nowrap;text-overflow:ellipsis;color:var(--muted);overflow:hidden}.invite-box button{background:0 0;border:0;font-weight:700;text-decoration:underline}.seat-list{background:#dedbd3;padding:clamp(36px,5vw,78px)}.lobby-scenario-control{background:#e8e4dc;border:1px solid #b7b0a5;margin-bottom:30px;padding:18px}.lobby-scenario-control label{color:var(--red);letter-spacing:.1em;margin-bottom:10px;font-size:.72rem;font-weight:700;display:block}.lobby-scenario-control select{border:0;border-bottom:1px solid var(--ink);width:100%;color:var(--ink);background:0 0;border-radius:0;padding:10px 0;font:600 1rem Noto Serif TC,serif}.lobby-scenario-control>small{color:var(--muted);margin-top:10px;line-height:1.6;display:block}.lobby-scenario-control .form-error{margin-top:10px}.seat-heading{justify-content:space-between;align-items:baseline;margin-bottom:30px;display:flex}.seat-heading h2{margin:0;font:600 2rem/1 Noto Serif TC,serif}.seat-heading span{color:var(--muted)}.seat{border-top:1px solid #bdb7ac;grid-template-columns:38px 1fr auto;align-items:center;gap:14px;min-height:78px;display:grid}.seat:last-of-type{border-bottom:1px solid #bdb7ac}.seat-number{color:#9a9489;font:500 .78rem Noto Serif TC,serif}.seat strong,.seat small{display:block}.seat small{color:var(--muted);margin-top:4px;font-size:.7rem}.seat .ready,.seat .waiting{border:1px solid;padding:6px 9px;font-size:.72rem}.seat .ready{color:var(--green)}.seat .waiting{color:#94826a}.seat.empty{color:#99938a;grid-template-columns:38px 1fr;font-style:italic}.seat-list>button{width:100%;margin-top:16px}.host-note{color:var(--muted);text-align:center;margin-top:22px;font-size:.8rem}.play-grid{grid-template-columns:minmax(240px,330px) 1fr;min-height:calc(100vh - 82px);display:grid}.role-rail{color:#edf0ec;background:#293b46;padding:54px 36px}.role-rail .folio{color:#93a5ad}.role-rail h2{margin:18px 0;font:600 2rem Noto Serif TC,serif}.role-rail>p:not(.folio){color:#c7d0d3;font-size:.9rem;line-height:1.8}.secret-button{color:#edf0ec;background:0 0;border:1px solid #8fa0a8;width:100%;min-height:44px;margin-top:18px;font-size:.78rem;font-weight:700}.player-progress{margin-top:70px;display:grid}.player-progress span{color:#8f9ca2;border-top:1px solid #53636c;padding:13px 0;font-size:.75rem}.player-progress span:before{content:"○";margin-right:10px}.player-progress span.done{color:#dbe6de}.player-progress span.done:before{content:"●";color:#85a98e}.story-stage{width:100%;max-width:1200px;margin:0 auto;padding:clamp(34px,6vw,84px)}.round-heading{justify-content:space-between;align-items:center;display:flex}.round-heading h1{margin:9px 0 0;font:600 2.4rem Noto Serif TC,serif}.countdown{border:1px solid var(--ink);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:88px;height:88px;display:flex}.countdown span{font:600 2rem/1 Noto Serif TC,serif}.countdown small{letter-spacing:.1em;margin-top:4px;font-size:.5rem}.countdown.urgent{color:var(--red);border-color:var(--red);background:#f4e4e0}.resolving-label{color:var(--red);letter-spacing:.1em;font-size:.72rem}.narrative{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);white-space:pre-line;margin:34px 0;padding:30px 0;font:500 clamp(1.2rem,2vw,1.55rem)/2 Noto Serif TC,serif}.choice-heading{justify-content:space-between;align-items:baseline;display:flex}.choice-heading h2{font:600 1.4rem Noto Serif TC,serif}.choice-heading span{color:var(--muted);font-size:.7rem}.choices{gap:9px;display:grid}.choice{border:1px solid var(--line);text-align:left;width:100%;min-height:72px;color:var(--ink);background:#f0ede5;grid-template-columns:48px 1fr;align-items:center;padding:0 18px;transition:border .15s,background .15s,transform .15s;display:grid}.choice:hover:not(:disabled){border-color:var(--ink);transform:translate(3px)}.choice>span{color:var(--red);font:600 1.15rem Noto Serif TC,serif}.choice>strong{font-weight:500}.choice.selected{border:2px solid var(--ink);background:#e3ded3}.commit{width:100%;margin-top:16px}.committed-note{border-left:3px solid var(--green);color:var(--green);background:#e1e7e0;padding:12px 18px}.timeout-note{color:var(--muted);text-align:center;font-size:.7rem}.ai-wait{min-height:180px;color:var(--muted);justify-content:center;align-items:center;gap:18px;font:500 1rem Noto Serif TC,serif;display:flex}.ink-loader{border:2px solid #b8b0a2;border-top-color:var(--red);border-radius:50%;width:24px;height:24px;animation:.85s linear infinite spin}.curtain{z-index:10;background:#12181bf0;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.role-reveal,.privacy-gate{background:var(--paper);border-top:5px solid var(--red);width:min(600px,100%);padding:clamp(36px,7vw,72px);box-shadow:0 24px 80px #0008}.privacy-gate h2{margin:24px 0;font:600 clamp(2rem,5vw,3.6rem)/1.3 Noto Serif TC,serif}.privacy-gate>p:not(.folio){color:var(--muted);line-height:1.8}.privacy-gate .primary{width:100%;margin-top:24px}.text-button{width:100%;color:var(--muted);background:0 0;border:0;padding:16px;text-decoration:underline}.role-index{color:var(--red);letter-spacing:.12em;margin-top:34px;font-size:.7rem}.role-reveal h2{margin:16px 0 30px;font:600 clamp(2.8rem,7vw,5rem)/1 Noto Serif TC,serif}.role-reveal .objective{font:500 1.2rem/1.9 Noto Serif TC,serif}.role-hint{border-top:1px solid var(--line);color:var(--muted);padding-top:18px;font-size:.85rem}.role-quiz{border:0;border-top:1px solid var(--line);margin:22px 0 0;padding:20px 0 0}.role-quiz legend{padding-top:18px;font:600 1rem Noto Serif TC,serif}.role-quiz label{cursor:pointer;gap:10px;padding:9px 0;font-size:.84rem;display:flex}.role-quiz input{accent-color:var(--red)}.quiz-feedback{padding:10px 14px;font-size:.8rem}.quiz-feedback.correct{color:var(--green);background:#e1e7e0}.quiz-feedback.incorrect{color:#76551f;background:#efe5cf}.role-reveal button{width:100%;margin-top:24px}.result-shell{background:var(--paper);min-height:100vh;padding:clamp(44px,8vw,110px)}.result-kicker{color:var(--muted);margin-top:50px}.result-shell>h1{letter-spacing:-.06em;margin:12px 0 40px;font:600 clamp(3rem,8vw,8rem)/1.08 Noto Serif TC,serif}.result-shell>h1 em{color:var(--red);font-weight:500}.ending-copy{white-space:pre-line;max-width:850px;font:500 1.1rem/1.9 Noto Serif TC,serif}.result-card{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);grid-template-columns:140px 1fr;gap:30px;max-width:850px;margin:50px 0 24px;padding:24px 0;display:grid}.result-card>div span,.result-card>div strong{display:block}.result-card>div span{letter-spacing:.12em;color:var(--muted);font-size:.65rem}.result-card>div strong{font:600 3rem Noto Serif TC,serif}.result-card ul{margin:0;line-height:1.9}.result-card>p{color:var(--muted);grid-column:1/-1;margin:0}.reward-card{border-left:5px solid var(--red);background:#dedbd3;max-width:850px;margin:26px 0;padding:30px}.reward-card h2{font:600 1.8rem Noto Serif TC,serif}.reward-card code{letter-spacing:.12em;margin:20px 0;font-size:clamp(1.6rem,5vw,3rem);display:block}.consolation{color:var(--muted)}.reward-pending{color:#6d4c1d;background:#efe5cf;border-left:5px solid #9a6a22;max-width:850px;padding:22px}.rematch-card{border:1px solid var(--line);background:#eeebe3;max-width:850px;margin-top:34px;padding:clamp(22px,4vw,36px)}.rematch-heading{justify-content:space-between;align-items:start;gap:20px;display:flex}.rematch-heading h2{margin:8px 0 18px;font:600 1.8rem Noto Serif TC,serif}.rematch-heading>strong{color:var(--red);font:600 1.5rem Noto Serif TC,serif}.rematch-votes{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:8px 0 22px;display:grid}.rematch-votes>span{border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);padding:13px}.rematch-votes>span.accepted{color:var(--green);background:#dfe6df}.rematch-votes small{margin-top:5px;font-size:.68rem;display:block}.rematch-card>p{color:var(--muted);font-size:.82rem;line-height:1.7}.rematch-card>button,.rematch-card>button+*{width:100%}.result-shell>button{margin:18px 10px 0 0}@keyframes pulse{50%{opacity:.45}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=850px){.entry-shell,.lobby-grid,.play-grid{grid-template-columns:1fr}.entry-copy{border-right:0;border-bottom:1px solid var(--line);min-height:55vh}.entry-copy h1{font-size:clamp(2.6rem,12vw,4.8rem)}.entry-card{min-height:45vh}.lobby-story{border-right:0;border-bottom:1px solid var(--line)}.invite-box{grid-template-columns:132px 1fr auto}.invite-box span{grid-column:2/-1}.role-rail{padding:28px 22px}.role-rail>p:not(.folio){margin-bottom:0}.player-progress{grid-template-columns:1fr 1fr;gap:0 20px;margin-top:24px}.story-stage{padding:30px 22px}}@media (width<=520px){.room-header{padding:14px 18px}.lobby-story,.seat-list{padding:38px 22px}.invite-box{grid-template-columns:1fr}.invite-qr{grid-row:auto;justify-self:center}.invite-box span{grid-column:auto}.invite-box code{font-size:.7rem}.rule-strip{flex-wrap:wrap}.choice-heading{display:block}.round-heading h1{font-size:1.8rem}.countdown{width:72px;height:72px}.result-card{grid-template-columns:1fr}.result-card>p{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.admin-shell{background:#ece9e1;min-height:100vh}.admin-header{color:#f5f2ea;z-index:5;background:#202724;justify-content:space-between;align-items:center;height:76px;padding:0 34px;display:flex;position:sticky;top:0}.admin-header strong{margin-top:5px;font-family:Noto Serif TC,serif;display:block}.admin-header nav{gap:8px;display:flex}.admin-header nav button{color:#e8ece9;background:0 0;border:1px solid #66706b;padding:9px 14px}.admin-login input{border:0;border-bottom:1px solid var(--ink);background:0 0;outline:none;margin-bottom:22px;padding:14px 2px}.admin-login label{font-size:.75rem;font-weight:700}.admin-index{grid-template-columns:minmax(300px,.65fr) 1.35fr;min-height:calc(100vh - 76px);display:grid}.admin-index>aside{background:#cdd3cc;border-right:1px solid #afb6ae;padding:clamp(48px,7vw,100px)}.admin-index>aside h1{letter-spacing:-.05em;margin:24px 0;font:600 clamp(2.4rem,4vw,4.7rem)/1.2 Noto Serif TC,serif}.admin-index>aside>p:not(.folio){color:#58625c;line-height:1.8}.admin-index>aside .primary{margin-top:24px}.admin-index>section{padding:clamp(38px,5vw,78px)}.draft-list{border-top:1px solid var(--line);margin-top:36px;display:grid}.draft-list>button{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:100px 1fr auto;align-items:center;padding:20px 0;display:grid}.draft-list>button:hover{color:var(--red)}.draft-list span{letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}.draft-list strong{font:600 1.2rem Noto Serif TC,serif}.draft-list small{color:var(--muted)}.draft-workspace{grid-template-columns:290px 1fr;align-items:start;display:grid}.draft-sidebar{background:#d4d2ca;border-right:1px solid #bbb7ad;min-height:calc(100vh - 76px);padding:42px 28px;position:sticky;top:76px}.draft-sidebar ol{margin:0;padding:0;list-style:none}.draft-sidebar li{color:#8d8981;border-top:1px solid #bbb7ad;grid-template-columns:42px 1fr;align-items:center;min-height:56px;display:grid}.draft-sidebar li span{font-size:.65rem}.draft-sidebar li.current{color:var(--ink);border-left:3px solid var(--red);padding-left:10px;font-weight:700}.save-status{color:var(--muted);margin-top:40px;font-size:.72rem;line-height:1.8}.admin-stage{border-bottom:1px solid var(--line);background:var(--paper);padding:60px clamp(40px,6vw,90px)}.stage-title p{color:var(--muted);max-width:750px;line-height:1.7}.intent-form{gap:20px;max-width:900px;display:grid}.intent-form>div{grid-template-columns:1fr 180px;gap:20px;display:grid}.intent-form label{letter-spacing:.04em;gap:8px;font-size:.75rem;font-weight:700;display:grid}.intent-form label small{color:var(--muted);font-weight:400}.intent-form input,.intent-form textarea,.intent-form select{resize:vertical;background:#faf8f2;border:1px solid #aaa59b;border-radius:0;outline:none;width:100%;padding:12px}.intent-form input:focus,.intent-form textarea:focus,.intent-form select:focus{border-color:var(--red);box-shadow:0 0 0 2px #b34b2d22}.validation-block{border-left:4px solid var(--red);background:#f0ded9;margin-bottom:24px;padding:18px 22px}.rule-table{border-top:1px solid var(--line);margin-bottom:24px;display:grid}.rule-table label{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:28px 1fr;gap:14px;padding:17px 5px;display:grid}.rule-table input{width:18px;height:18px;accent-color:var(--green)}.rule-table span{grid-template-columns:minmax(130px,.4fr) 1fr minmax(120px,.4fr);align-items:center;gap:12px;display:grid}.rule-table small{color:var(--red);text-transform:uppercase;font-size:.65rem}.rule-table strong{font-size:.86rem;font-weight:500}.rule-table code{color:var(--muted);text-align:right;font-size:.65rem}.quick-result{border:1px solid var(--line);margin-bottom:24px;padding:26px}.quick-result.pass{border-left:5px solid var(--green);background:#e2e9e2}.quick-result.fail{border-left:5px solid var(--red);background:#f0ded9}.quick-result>div{border-top:1px solid #b8beb8;grid-template-columns:repeat(3,1fr);margin-top:24px;display:grid}.quick-result span{color:var(--muted);padding:14px;font-size:.7rem}.published-stamp{border:2px solid var(--green);color:var(--green);gap:8px;max-width:600px;padding:28px;display:grid}.published-stamp span{letter-spacing:.2em;font-size:.65rem}.published-stamp code{color:var(--muted)}.ops-dashboard{padding:clamp(44px,6vw,90px)}.ops-dashboard>header h1{margin:18px 0;font:600 clamp(2.5rem,5vw,5rem)/1.1 Noto Serif TC,serif}.ops-dashboard>header p:last-child{color:var(--muted);max-width:760px;line-height:1.8}.ops-metrics{border:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin:42px 0;display:grid}.ops-metrics article{border-right:1px solid var(--line);background:var(--paper);padding:24px}.ops-metrics article:last-child{border:0}.ops-metrics article.danger{color:var(--red);background:#f0ded9}.ops-metrics span,.ops-metrics strong{display:block}.ops-metrics span{letter-spacing:.1em;color:var(--muted);font-size:.62rem}.ops-metrics strong{margin-top:10px;font:600 2.8rem Noto Serif TC,serif}.ops-section h2{font:600 1.7rem Noto Serif TC,serif}.ops-section>p{color:var(--muted)}.ops-section textarea{border:1px solid var(--line);background:var(--paper);resize:vertical;width:100%;margin:18px 0;padding:14px;display:block}.pending-room{border-top:1px solid var(--line);grid-template-columns:120px 1fr auto;align-items:center;padding:14px 0;display:grid}.pending-room code{color:var(--muted)}.pending-room button{border:1px solid var(--ink);background:0 0;padding:8px 12px}@media (width<=767px){.admin-workspace{display:none}.admin-mobile-block{padding:60px 24px;display:block}.admin-mobile-block h1{font:600 2.5rem/1.25 Noto Serif TC,serif}.admin-mobile-block>p{color:var(--muted);line-height:1.8}.admin-mobile-block>.folio{color:var(--red)}.admin-header{align-items:flex-start;gap:12px;height:auto;min-height:76px;padding:12px 16px}.admin-header .eyebrow{font-size:.48rem}.admin-header nav{gap:4px}.admin-header nav button{white-space:nowrap;min-height:44px;padding:8px;font-size:.72rem}.mobile-admin-metrics{border:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:32px;display:grid}.mobile-admin-metrics article{background:var(--paper);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:108px;padding:16px}.mobile-admin-metrics article:nth-child(2n){border-right:0}.mobile-admin-metrics article:nth-last-child(-n+2){border-bottom:0}.mobile-admin-metrics article.warning{background:#eee5cd}.mobile-admin-metrics article.danger{color:var(--red);background:#f0ded9}.mobile-admin-metrics span,.mobile-admin-metrics strong{display:block}.mobile-admin-metrics span{color:var(--muted);font-size:.72rem;line-height:1.45}.mobile-admin-metrics strong{margin-top:12px;font:600 2rem Noto Serif TC,serif}.mobile-draft-status{border-top:1px solid var(--ink);margin-top:36px}.mobile-draft-status h2{font:600 1.5rem Noto Serif TC,serif}.mobile-draft-status article{border-top:1px solid var(--line);gap:6px;padding:14px 0;display:grid}.mobile-draft-status article span{color:var(--muted);font-size:.78rem}.admin-login{grid-template-columns:1fr}.admin-login>section{border-bottom:1px solid #515a55;border-right:0;min-height:45vh}}.admin-shell{--admin-canvas:#f3efe5;--admin-surface:#fffdf7;--admin-ink:#18201d;--admin-muted:#5d6862;--admin-line:#c8c5ba;--admin-accent:#b34b2d;--admin-success:#166b61;--admin-warning:#7a5a00;--admin-danger:#8b2d2d;min-height:100vh;color:var(--admin-ink);background:var(--admin-canvas);font-size:16px}.admin-shell button,.admin-shell input,.admin-shell textarea,.admin-shell select{font:inherit}.admin-shell button,.admin-shell a{min-height:44px}.admin-shell :focus-visible{outline-offset:3px;outline:3px solid #175b8c}.skip-link{z-index:50;color:#fff;background:#175b8c;padding:12px 16px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:12px}.admin-header{z-index:10;color:#f7f4ec;background:#18201d;border-bottom:1px solid #39423e;grid-template-columns:220px 1fr auto;align-items:center;gap:24px;height:72px;padding:0 28px;display:grid;position:sticky;top:0}.admin-brand{color:inherit;flex-direction:column;justify-content:center;min-height:52px;text-decoration:none;display:flex}.admin-brand span{color:#c5cec9;font-size:14px}.admin-brand strong{margin:1px 0 0;font:700 18px Noto Serif TC,serif}.admin-header nav{gap:4px;height:100%;display:flex}.admin-header nav a{color:#cdd4d0;border-bottom:3px solid #0000;place-items:center;min-width:82px;padding:0 16px;text-decoration:none;display:grid}.admin-header nav a:hover{color:#fff;background:#222c28}.admin-header nav a[aria-current=page]{color:#fff;border-color:#d76a4b}.admin-session-actions{align-items:center;gap:12px;display:flex}.admin-session-actions button,.page-header button{color:inherit;background:0 0;border:1px solid;border-radius:6px;padding:9px 14px}.environment{color:#cdd4d0;align-items:center;gap:8px;font-size:14px;display:inline-flex}.environment:before{content:"";background:#d6a82d;border-radius:50%;width:8px;height:8px}.environment.healthy:before{background:#4cae9e}.admin-workspace{min-height:calc(100vh - 72px);display:block}.admin-announcements{z-index:20;width:min(460px,100vw - 48px);position:fixed;top:88px;right:24px}.error-banner,.success-banner{background:var(--admin-surface);border:1px solid;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:12px 16px;display:flex;box-shadow:0 8px 24px #18201d22}.error-banner{color:var(--admin-danger);border-color:var(--admin-danger)}.success-banner{color:var(--admin-success);border-color:var(--admin-success)}.error-banner button,.success-banner button{color:inherit;background:0 0;border:0;flex:none;font-weight:700}.admin-page{width:min(1240px,100% - 64px);margin:0 auto;padding:48px 0 80px}.page-header{border-bottom:1px solid var(--admin-ink);justify-content:space-between;align-items:end;gap:32px;padding-bottom:24px;display:flex}.page-header>div:first-child{max-width:760px}.page-header h1{letter-spacing:-.02em;margin:6px 0 10px;font:700 clamp(32px,4vw,44px)/1.18 Noto Serif TC,serif}.page-header p:last-child{color:var(--admin-muted);margin:0;line-height:1.7}.section-kicker{color:var(--admin-accent);letter-spacing:.08em;margin:0;font-size:14px;font-weight:700}.sync-time{color:var(--admin-muted);text-align:right;margin:12px 0 32px;font-size:14px}.section-heading{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:16px;display:flex}.section-heading h2{margin:0;font:700 24px Noto Serif TC,serif}.section-heading>span{color:var(--admin-muted);font-size:14px}.section-heading>a{min-height:44px;color:var(--admin-accent);align-items:center;font-weight:700;display:inline-flex}.attention-section{margin:32px 0 40px}.attention-list{border-top:1px solid var(--admin-line)}.attention-list a{color:inherit;border-bottom:1px solid var(--admin-line);grid-template-columns:minmax(210px,.8fr) 1.5fr auto;align-items:center;gap:24px;padding:18px 8px;text-decoration:none;display:grid}.attention-list a:before{content:"需處理";color:var(--admin-warning);border:1px solid;border-radius:999px;grid-area:1/1;justify-self:start;padding:3px 7px;font-size:13px;font-weight:700}.attention-list a.danger:before{content:"已阻擋";color:var(--admin-danger)}.attention-list strong{grid-area:2/1;font-size:17px}.attention-list span{color:var(--admin-muted);grid-area:1/2/span 2}.attention-list b{color:var(--admin-accent);grid-area:1/3/span 2}.attention-list a:hover{background:#fff9ec}.healthy-empty{color:var(--admin-success);background:#e9f2ed;border:1px solid #9dbdb3;border-radius:12px;flex-direction:column;gap:6px;padding:22px 24px;display:flex}.healthy-empty span{color:var(--admin-muted)}.overview-columns{grid-template-columns:1fr 1fr;gap:48px;margin:40px 0;display:grid}.overview-columns>section,.activity-section{border-top:1px solid var(--admin-ink);padding-top:20px}.status-ledger{border-top:1px solid var(--admin-line)}.status-row{border-bottom:1px solid var(--admin-line);justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:8px 2px;display:flex}.status-row span{color:var(--admin-muted)}.status-row strong{font:700 24px Noto Serif TC,serif}.status-row.danger strong{color:var(--admin-danger)}.compact-list{margin-top:20px}.compact-list article{border-bottom:1px solid var(--admin-line);justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.compact-list article>div{gap:3px;display:grid}.compact-list article span{color:var(--admin-muted);font-size:14px}.compact-list article a{color:var(--admin-accent);align-items:center;font-weight:700;display:inline-flex}.activity-section ol{border-top:1px solid var(--admin-line);margin:0;padding:0;list-style:none}.activity-section li{border-bottom:1px solid var(--admin-line);grid-template-columns:180px 180px 1fr;align-items:center;gap:20px;min-height:58px;display:grid}.activity-section time,.activity-section li span{color:var(--admin-muted);font-size:14px}.creation-panel{background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:12px;margin:32px 0 48px;padding:28px}.scenario-library{margin-top:32px}.library-toolbar{grid-template-columns:1fr 240px;gap:16px;margin-bottom:24px;display:grid}.library-toolbar label{gap:8px;font-weight:700;display:grid}.library-toolbar input,.library-toolbar select{width:100%;min-height:48px;color:var(--admin-ink);background:var(--admin-surface);border:1px solid #918e85;border-radius:6px;padding:10px 12px}.scenario-table{border-top:1px solid var(--admin-ink);min-width:920px}.scenario-library{overflow-x:auto}.scenario-table-head,.scenario-table>button{text-align:left;grid-template-columns:150px minmax(260px,1fr) 80px 80px 120px 120px;align-items:center;gap:16px;display:grid}.scenario-table-head{min-height:46px;color:var(--admin-muted);border-bottom:1px solid var(--admin-line);font-size:14px;font-weight:700}.scenario-table>button{width:100%;min-height:84px;color:inherit;border:0;border-bottom:1px solid var(--admin-line);background:0 0;padding:12px 0}.scenario-table>button:hover{background:#fff9ec}.scenario-table>button strong{gap:4px;font:700 17px Noto Serif TC,serif;display:grid}.scenario-table>button small{max-width:520px;color:var(--admin-muted);text-overflow:ellipsis;white-space:nowrap;font:400 14px Noto Sans TC,sans-serif;overflow:hidden}.scenario-table>button b{color:var(--admin-accent)}.status-pill{min-height:30px;color:var(--admin-muted);border:1px solid;border-radius:999px;align-items:center;padding:3px 8px;font-size:14px;font-weight:700;display:inline-flex}.status-pill.approval{color:var(--admin-warning)}.status-pill.quick_run{color:#425d78}.status-pill.published{color:var(--admin-success)}.status-pill.blocked{color:var(--admin-danger)}.draft-workspace{grid-template-columns:260px minmax(0,1fr);align-items:start;min-height:calc(100vh - 72px);display:grid}.draft-sidebar{height:calc(100vh - 72px);min-height:auto;color:var(--admin-ink);border-right:1px solid var(--admin-line);background:#e5e1d7;padding:32px 24px;position:sticky;top:72px;overflow-y:auto}.back-button{color:var(--admin-accent);background:0 0;border:0;margin:-8px 0 28px;padding:0;font-weight:700}.back-button:before{content:"← "}.draft-sidebar h1{margin:8px 0 28px;font:700 25px/1.35 Noto Serif TC,serif}.draft-sidebar ol{border-top:1px solid #bdb9ae;margin:0;padding:0;list-style:none}.draft-sidebar li{color:#6d716d;border:0;border-bottom:1px solid #bdb9ae;min-height:0;display:block}.draft-sidebar li a{min-height:64px;color:inherit;grid-template-columns:36px 1fr;align-items:center;gap:8px;padding:8px 4px;text-decoration:none;display:grid}.draft-sidebar li a>span{border:1px solid;border-radius:50%;place-items:center;width:28px;height:28px;font-size:14px;display:grid}.draft-sidebar li a>div{gap:2px;display:grid}.draft-sidebar li small{color:var(--admin-muted);font-size:14px}.draft-sidebar li.current{color:var(--admin-accent);border-left:0;padding:0}.draft-sidebar li.complete{color:var(--admin-success)}.draft-sidebar li.complete span:after{content:""}.draft-health{color:var(--admin-muted);border-top:1px solid #bdb9ae;gap:7px;margin-top:28px;padding-top:20px;font-size:14px;display:grid}.draft-health strong{color:var(--admin-success)}.draft-main{min-width:0}.workspace-summary{background:var(--admin-surface);border-bottom:1px solid var(--admin-line);justify-content:space-between;align-items:center;gap:24px;padding:28px clamp(32px,6vw,80px);display:flex}.workspace-summary h2{margin:4px 0 0;font:700 28px Noto Serif TC,serif}.admin-stage{background:var(--admin-canvas);border-bottom:1px solid var(--admin-line);padding:48px clamp(32px,6vw,80px);scroll-margin-top:88px}.admin-stage:nth-child(2n){background:var(--admin-canvas)}.admin-stage:nth-of-type(odd){background:var(--admin-surface)}.stage-title{grid-template-columns:48px 1fr;gap:16px;margin-bottom:28px;display:grid}.stage-title>span{color:var(--admin-accent);font:700 18px Noto Serif TC,serif}.stage-title h2{margin:0 0 8px;font:700 28px Noto Serif TC,serif}.stage-title p{max-width:760px;color:var(--admin-muted);margin:0;line-height:1.7}.intent-form{max-width:900px}.intent-form fieldset{border:0;gap:22px;padding:0;display:grid}.intent-row{grid-template-columns:1fr 180px;gap:20px;display:grid}.intent-form label{gap:8px;font-size:16px;font-weight:700;display:grid}.intent-form label small{color:var(--admin-muted);font-size:14px;font-weight:400;line-height:1.5}.intent-form input,.intent-form textarea,.intent-form select{width:100%;color:var(--admin-ink);background:var(--admin-surface);resize:vertical;border:1px solid #918e85;border-radius:6px;padding:12px}.intent-form input,.intent-form select{min-height:48px}.intent-form .primary{justify-self:start}.validation-block{color:var(--admin-danger);background:#f7e8e3;border:1px solid #d5aaa0;border-radius:12px;margin-bottom:24px;padding:18px 20px}.validation-block p{color:var(--admin-danger);font-size:16px}.validation-block a{color:var(--admin-danger);align-items:center;font-weight:700;display:inline-flex}.rule-table{border:0;gap:16px;min-width:0;margin:0 0 24px;padding:0;display:grid}.rule-table legend{border-bottom:1px solid var(--admin-ink);width:100%;margin-bottom:12px;padding:0 0 14px;font-weight:700}.rule-table>label{background:var(--admin-surface);border:1px solid var(--admin-line);cursor:pointer;border-radius:12px;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr);gap:0;padding:0;display:grid}.rule-table>label.approved{border-color:#80a89c}.rule-source,.rule-candidate{padding:20px}.rule-source{border-right:1px solid var(--admin-line);background:#f0ece2;border-radius:12px 0 0 12px}.rule-source small,.rule-candidate small{color:var(--admin-muted);font-size:14px;font-weight:700}.rule-source strong,.rule-candidate strong{margin:6px 0;line-height:1.55;display:block}.rule-source p{color:var(--admin-muted);margin:6px 0 0;line-height:1.6}.rule-candidate{grid-template-columns:28px 1fr;gap:12px;display:grid}.rule-candidate input{width:20px;height:20px;accent-color:var(--admin-success);margin-top:2px}.rule-candidate details{color:var(--admin-muted);margin-top:10px;font-size:14px}.rule-candidate summary{cursor:pointer}.rule-candidate code{overflow-wrap:anywhere;margin-top:7px;display:block}.quick-result{background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:12px;margin-bottom:24px;padding:24px}.quick-result.pass{color:var(--admin-success);border-color:#80a89c}.quick-result.fail{color:var(--admin-danger);border-color:#d5aaa0}.quick-result>strong{font:700 22px Noto Serif TC,serif}.quick-result>p{color:var(--admin-muted)}.quick-result>div{border-top:1px solid var(--admin-line);border-bottom:1px solid var(--admin-line);grid-template-columns:repeat(3,1fr);margin:20px 0;display:grid}.quick-result span{color:var(--admin-muted);padding:14px}.quick-result b{color:var(--admin-ink);margin-top:6px;font-size:20px;display:block}.quick-result time{color:var(--admin-muted);font-size:14px}.publish-confirmation{background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:12px;gap:20px;max-width:720px;padding:24px;display:grid}.publish-confirmation>div{gap:6px;display:grid}.publish-confirmation>div span{color:var(--admin-muted)}.publish-confirmation label{align-items:flex-start;gap:10px;display:flex}.publish-confirmation input{width:20px;height:20px;accent-color:var(--admin-success)}.published-stamp{max-width:720px;color:var(--admin-success);background:#edf5f0;border:1px solid #80a89c;border-radius:12px;gap:8px;padding:24px;display:grid}.published-stamp span{font-size:14px;font-weight:700}.published-stamp strong{font:700 28px Noto Serif TC,serif}.published-stamp p,.published-stamp code,.published-stamp time{color:var(--admin-muted);overflow-wrap:anywhere;margin:0}.reward-summary{border-top:1px solid var(--admin-ink);border-bottom:1px solid var(--admin-ink);grid-template-columns:repeat(4,1fr);margin:32px 0 48px;display:grid}.reward-summary .status-row{border-right:1px solid var(--admin-line);border-bottom:0;gap:8px;min-height:112px;padding:20px;display:grid}.reward-summary .status-row:last-child{border-right:0}.reward-summary .status-row strong{font-size:32px}.reward-columns{grid-template-columns:minmax(0,1fr) minmax(340px,.75fr);align-items:start;gap:48px;display:grid}.ops-section{border-top:1px solid var(--admin-ink);max-width:none;padding:22px 0}.ops-section>p{color:var(--admin-muted);line-height:1.7}.ops-section>label{margin-top:24px;font-weight:700;display:block}.ops-section textarea{width:100%;color:var(--admin-ink);background:var(--admin-surface);resize:vertical;border:1px solid #918e85;border-radius:6px;margin:8px 0 16px;padding:14px}.import-preview{border-top:1px solid var(--admin-line);grid-template-columns:repeat(3,1fr);margin-bottom:16px;display:grid}.import-preview .status-row{border-right:1px solid var(--admin-line);gap:4px;padding:12px;display:grid}.import-preview .status-row:last-child{border-right:0}.field-error{color:var(--admin-danger);line-height:1.6}.pending-room{border-top:1px solid var(--admin-line);grid-template-columns:1fr auto;align-items:center;gap:16px;padding:16px 0;display:grid}.pending-room>div{gap:5px;display:grid}.pending-room span,.pending-room code{color:var(--admin-muted);overflow-wrap:anywhere;font-size:14px}.pending-room button{color:var(--admin-ink);background:0 0;border:1px solid;border-radius:6px;padding:8px 12px}.outbox-status{background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:12px;margin-top:40px;padding:20px}.outbox-status h3{margin-top:0;font:700 20px Noto Serif TC,serif}.outbox-status p{color:var(--admin-muted);line-height:1.6}.empty-stage{color:var(--admin-muted);font-style:normal}.room-table{border-top:1px solid var(--admin-ink);min-width:900px;margin-top:24px}.rooms-page{overflow-x:auto}.room-table-head,.room-table>div{border-bottom:1px solid var(--admin-line);grid-template-columns:100px minmax(220px,1fr) 150px 110px 110px 120px;align-items:center;gap:16px;min-height:64px;display:grid}.room-table-head{min-height:46px;color:var(--admin-muted);font-size:14px;font-weight:700}.room-table>div>strong{letter-spacing:.08em;font:700 18px Noto Serif TC,serif}.room-table time{color:var(--admin-muted);font-size:14px}.audit-toolbar{justify-content:space-between;align-items:end;gap:24px;margin:28px 0 20px;display:flex}.audit-toolbar label{gap:8px;min-width:260px;font-weight:700;display:grid}.audit-toolbar select{min-height:48px;color:var(--admin-ink);background:var(--admin-surface);border:1px solid #918e85;border-radius:6px;padding:10px 12px}.audit-toolbar>span{color:var(--admin-muted);font-size:14px}.audit-ledger{border-top:1px solid var(--admin-ink);margin:0;padding:0;list-style:none}.audit-ledger li{border-bottom:1px solid var(--admin-line);grid-template-columns:190px 1fr 100px;align-items:center;gap:24px;min-height:68px;display:grid}.audit-ledger time,.audit-ledger code,.audit-ledger div span{color:var(--admin-muted);font-size:14px}.audit-ledger div{gap:4px;display:grid}.audit-ledger code{text-align:right}.admin-login{color:#f7f4ec;background:#18201d;grid-template-columns:1fr minmax(420px,.72fr);min-height:100vh;display:grid}.admin-login>section{border-right:1px solid #48514d;flex-direction:column;justify-content:center;padding:clamp(48px,9vw,120px);display:flex}.admin-login h1{margin:16px 0 24px;font:700 clamp(44px,7vw,76px)/1.1 Noto Serif TC,serif}.admin-login>section>p:last-child{color:#bdc5c1;max-width:560px;line-height:1.8}.admin-login form{color:var(--admin-ink);background:#e3dfd5;flex-direction:column;justify-content:center;gap:10px;padding:clamp(40px,7vw,80px);display:flex}.admin-login form h2{margin:0 0 28px;font:700 28px Noto Serif TC,serif}.admin-login form label{font-weight:700}.admin-login form input{border:0;border-bottom:1px solid var(--admin-ink);background:0 0;min-height:50px;margin:0 0 16px;padding:10px 2px}.admin-login form .primary{margin-top:10px}.admin-mobile-block{display:none}@media (width<=1023px){.admin-header{grid-template-columns:180px 1fr auto;gap:12px;padding:0 16px}.admin-header nav a{min-width:68px;padding:0 10px}.environment{display:none}.admin-page{width:min(100% - 40px,960px)}.overview-columns,.reward-columns{grid-template-columns:1fr;gap:32px}.draft-workspace{grid-template-columns:1fr}.draft-sidebar{border-right:0;border-bottom:1px solid var(--admin-line);height:auto;padding:24px 32px;position:static}.draft-sidebar ol{grid-template-columns:repeat(4,1fr);display:grid}.draft-sidebar li{border-right:1px solid #bdb9ae}.draft-sidebar li:last-child{border-right:0}.draft-sidebar li a{grid-template-columns:32px 1fr;padding:8px}.draft-health{grid-template-columns:repeat(3,1fr)}.rule-table>label{grid-template-columns:1fr}.rule-source{border-right:0;border-bottom:1px solid var(--admin-line);border-radius:12px 12px 0 0}}@media (width<=767px){.admin-shell{min-height:100vh}.admin-header{grid-template-columns:1fr auto;align-items:start;height:auto;min-height:128px;padding:12px 16px 0;position:static}.admin-brand{min-height:44px}.admin-header nav{grid-area:2/1/auto/-1;width:100%;height:56px;overflow-x:auto}.admin-header nav a{flex:1;min-width:76px}.admin-session-actions{grid-area:1/2}.admin-session-actions button{padding:7px 10px}.admin-workspace{display:none}.admin-mobile-block{padding:32px 20px 64px;display:block}.admin-mobile-block h1{margin:8px 0 12px;font:700 32px/1.3 Noto Serif TC,serif}.admin-mobile-block>p{color:var(--admin-muted);line-height:1.7}.mobile-admin-metrics{border:1px solid var(--admin-line);grid-template-columns:repeat(2,minmax(0,1fr));margin:28px 0;display:grid}.mobile-admin-metrics article{background:var(--admin-surface);border-right:1px solid var(--admin-line);border-bottom:1px solid var(--admin-line);min-height:104px;padding:14px}.mobile-admin-metrics article:nth-child(2n){border-right:0}.mobile-admin-metrics article:nth-last-child(-n+2){border-bottom:0}.mobile-admin-metrics span{color:var(--admin-muted);font-size:14px;display:block}.mobile-admin-metrics strong{margin-top:8px;font:700 28px Noto Serif TC,serif;display:block}.mobile-pending{border-top:1px solid var(--admin-ink);margin-top:32px;padding-top:20px}.mobile-pending h2{font:700 24px Noto Serif TC,serif}.mobile-pending article{border-top:1px solid var(--admin-line);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.mobile-pending article>div{gap:4px;display:grid}.mobile-pending article span{color:var(--admin-muted);font-size:14px}.mobile-pending button{color:var(--admin-ink);background:0 0;border:1px solid;border-radius:6px;padding:8px 10px}.admin-login{grid-template-columns:1fr}.admin-login>section{border-bottom:1px solid #48514d;border-right:0;min-height:38vh;padding:40px 24px}.admin-login form{min-height:62vh;padding:40px 24px}}
