*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--dark-900);color:#e2e8f0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,textarea,select,button{font-family:inherit}button{cursor:pointer;background:0 0;border:none;outline:none}a{color:inherit;text-decoration:none}ul{list-style:none}img{max-width:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--dark-800)}::-webkit-scrollbar-thumb{background:var(--dark-600);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--mystery-purple)}:root{--el-bg-color:var(--dark-900);--el-bg-color-overlay:#0f0f23f2;--el-border-color:#7c3aed33;--el-text-color-primary:#e2e8f0;--el-text-color-regular:var(--gray-300);--el-text-color-secondary:var(--gray-500);--el-text-color-placeholder:var(--gray-600);--el-border-color-light:#7c3aed1a;--el-border-color-lighter:#7c3aed14;--el-border-color-extra-light:#7c3aed0d;--el-fill-color:#ffffff0a;--el-fill-color-light:#ffffff0f;--el-fill-color-lighter:#ffffff08;--el-bg-color-page:var(--dark-900);--el-mask-color:#0009}.el-button--primary{--el-button-bg-color:#7c3aed;--el-button-border-color:#7c3aed;--el-button-hover-bg-color:#8b5cf6;--el-button-hover-border-color:#8b5cf6;--el-button-active-bg-color:#6d28d9;--el-button-active-border-color:#6d28d9;--el-button-text-color:#fff}.el-button--default{--el-button-bg-color:#ffffff0a;--el-button-border-color:#7c3aed33;--el-button-hover-bg-color:#7c3aed1a;--el-button-hover-border-color:#7c3aed66;--el-button-active-bg-color:#7c3aed26;--el-button-active-border-color:#7c3aed80;--el-button-text-color:var(--gray-300)}.el-dialog{--el-dialog-bg-color:var(--game-surface);--el-dialog-border-color:var(--game-border);border-radius:12px}.el-dialog__title{color:var(--game-text)}.el-tabs__header{margin:0}.el-tabs__nav-wrap:after{background-color:#7c3aed1a}.el-tabs__item{color:var(--gray-400);padding:0 10px;font-size:12px}.el-tabs__item:hover,.el-tabs__item.is-active{color:#a78bfa}.el-select,.el-input{--el-input-bg-color:#ffffff0a;--el-input-border-color:var(--game-border);--el-input-hover-border-color:#7c3aed66;--el-input-focus-border-color:#7c3aed;--el-input-text-color:var(--gray-100);--el-input-placeholder-color:var(--gray-600)}.el-radio__label{color:var(--gray-300);font-size:12px}.el-radio{--el-radio-input-border-color:#7c3aed4d}.el-checkbox__label{color:var(--gray-300);font-size:12px}.el-message{--el-message-bg-color:var(--game-surface);--el-message-border-color:var(--game-border)}.el-progress__text{color:var(--gray-400)}.el-switch{--el-switch-on-color:#7c3aed}.el-select-dropdown{background:var(--dark-700);border:1px solid #7c3aed33}.el-select-dropdown__item{color:var(--gray-300)}.el-select-dropdown__item.hover{background:#7c3aed1a}.el-select-dropdown__item.selected{color:var(--mystery-cyan)}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--mystery-purple:#7c3aed;--mystery-cyan:#06b6d4;--mystery-amber:#f59e0b;--mystery-rose:#f43f5e;--dark-900:#0a0a1a;--dark-800:#12122a;--dark-700:#1e1e3a;--dark-600:#2a2a4a;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--white:#fff;--gradient-primary:linear-gradient(135deg, #7c3aed, #06b6d4);--gradient-danger:linear-gradient(135deg, #f43f5e, #dc2626);--gradient-warning:linear-gradient(135deg, #f59e0b, #d97706);--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:20px;--shadow-md:0 4px 20px #00000026;--shadow-lg:0 8px 40px #0003;--transition:all .25s cubic-bezier(.4, 0, .2, 1);--game-bg:#0a0a1a;--game-text:#e2e8f0;--game-accent:#7c3aed;--game-cyan:#06b6d4;--game-amber:#f59e0b;--game-rose:#f43f5e;--game-surface:#0f0f23f2;--game-border:#7c3aed33;--msg-narrative:var(--game-text);--msg-action:var(--game-cyan);--msg-clue:#22c55e;--msg-deduction:var(--game-amber);--msg-accuse:var(--game-rose);--msg-system:var(--gray-500);--msg-dialogue:#a78bfa}.game-module{background:var(--dark-900);height:100vh;color:var(--gray-200);flex-direction:column;display:flex;overflow:hidden}.loading-screen{background:var(--dark-900);z-index:9999;justify-content:center;align-items:center;transition:opacity .4s,visibility .4s;display:flex;position:fixed;inset:0}.loading-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-content{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.loading-steps{align-items:center;gap:6px;margin:4px 0;display:flex}.lstep{background:var(--dark-700);color:var(--gray-500);border-radius:10px;padding:2px 12px;font-size:11px;transition:all .3s}.lstep.active{color:var(--mystery-cyan);background:#7c3aed26;box-shadow:0 0 8px #7c3aed26}.lstep.done{color:#22c55e;background:#22c55e1f}.lstep-arrow{color:var(--gray-600);font-size:10px}.loading-status{color:var(--gray-400);min-height:1.4em;margin:2px 0;font-size:14px;transition:opacity .3s}.loading-bar{background:var(--dark-700);border-radius:3px;width:220px;height:3px;margin:4px auto 0;overflow:hidden}.loading-bar-fill{background:var(--gradient-primary);border-radius:3px;width:0%;height:100%;animation:2s ease-in-out infinite loadingProgress}.loading-hint{color:var(--gray-600);min-height:1.2em;margin-top:2px;font-size:12px}@keyframes loadingProgress{0%{width:0%}50%{width:70%}to{width:100%}}.lobby-screen{background:var(--dark-900);flex-direction:column;height:100vh;display:flex}.lobby-header{border-bottom:1px solid #7c3aed1a;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 20px;display:flex}.lobby-header-left{align-items:center;gap:4px;display:flex}.lobby-tab{color:var(--gray-500);cursor:pointer;transition:var(--transition);border-radius:var(--radius-sm);white-space:nowrap;background:0 0;border:none;padding:7px 16px;font-size:13px;font-weight:500}.lobby-tab:hover{color:var(--gray-300);background:#7c3aed0f}.lobby-tab.active{color:var(--mystery-cyan);background:#06b6d414}.lobby-header-center{flex:1;justify-content:center;align-items:center;min-width:0;display:flex}.lobby-player-title{vertical-align:middle;align-items:center;width:26px;height:26px;margin-right:6px;display:inline-flex}.lobby-player-name{z-index:0;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.3px;color:#0000;background:linear-gradient(90deg,#94a3b8,#cbd5e1 20%,#22d3ee 40%,#a78bfa 55%,#22d3ee 70%,#cbd5e1 85%,#94a3b8) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;border-radius:20px;max-width:200px;padding:4px 16px;font-size:14px;font-weight:600;animation:4s cubic-bezier(.45,.05,.55,.95) infinite text-flow;position:relative;overflow:hidden}@keyframes text-flow{0%{background-position:100% 0}to{background-position:-100% 0}}.lobby-header-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.lobby-back{color:var(--gray-400);border-radius:var(--radius-sm);transition:var(--transition);cursor:pointer;padding:5px 12px;font-size:13px;text-decoration:none}.lobby-back:hover{color:var(--mystery-cyan);background:#06b6d414}.btn-generate{background:var(--gradient-primary);color:var(--white);border-radius:var(--radius-sm);transition:var(--transition);white-space:nowrap;border:none;justify-content:center;align-items:center;padding:7px 16px;font-size:13px;font-weight:600;display:inline-flex}.btn-generate:hover{transform:translateY(-1px);box-shadow:0 0 20px #7c3aed33}.btn-generate:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-profile{color:var(--mystery-cyan);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);white-space:nowrap;background:#7c3aed1f;border:1px solid #7c3aed40;justify-content:center;align-items:center;padding:7px 16px;font-size:13px;font-weight:500;display:inline-flex}.btn-profile:hover{border-color:var(--mystery-cyan);background:#7c3aed33}.lobby-tab-content{flex-direction:column;flex:1;display:flex;overflow-y:auto}.lobby-cases{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-content:start;gap:16px;padding:24px;display:grid}.lobby-empty{text-align:center;color:var(--gray-500);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px 20px;display:flex}.lobby-empty-icon{margin-bottom:16px;font-size:48px}.lobby-group-divider{background:#7c3aed14;grid-column:1/-1;height:1px;margin:12px 0 8px}.lobby-group-divider:first-child{display:none}.lobby-group-label{color:var(--gray-400);grid-column:1/-1;padding:4px 0 8px;font-size:13px;font-weight:600}.lobby-saves-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:24px;display:grid}.lobby-saves-group-list{flex-direction:column;gap:20px;padding:20px 24px;display:flex}.save-case-group{background:#7c3aed05;border:1px solid #7c3aed14;border-radius:10px;padding:16px}.save-case-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.save-case-header .save-case-title{flex:1}.save-case-title{color:var(--white);font-size:15px;font-weight:700}.save-slots-grid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.save-slot-card{cursor:pointer;background:#7c3aed08;border:1px solid #7c3aed14;border-radius:8px;flex-direction:column;align-items:center;gap:3px;min-height:72px;padding:8px 4px;transition:all .15s;display:flex}.save-slot-card:hover{background:#7c3aed1a;border-color:#7c3aed40;transform:translateY(-1px)}.save-slot-card.used{border-left:2px solid var(--mystery-cyan)}.save-slot-card.auto{border-left-color:#06b6d480}.save-slot-card-label{color:var(--gray-300);text-transform:uppercase;font-size:10px;font-weight:700}.save-slot-card-scene{color:var(--gray-400);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;line-height:1.2;overflow:hidden}.save-slot-card-meta{color:var(--gray-500);gap:4px;font-size:9px;display:flex}.save-slot-card-time{color:var(--gray-600);font-size:9px}.save-slot-card-empty{color:var(--gray-600);margin-top:6px;font-size:11px}.lobby-icon{vertical-align:middle;width:1em;height:1em}.lobby-tab .lobby-icon{margin-right:3px}.btn-generate .lobby-icon,.btn-profile .lobby-icon{margin-right:4px}.lobby-card-meta>span:not(.card-action-btns){align-items:center;gap:3px;display:inline-flex}.lobby-card-meta .lobby-icon{margin-right:0}.card-action-btns{flex-shrink:0;align-items:center;gap:2px;margin-left:auto;display:inline-flex}.card-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:1px;transition:all .2s;display:inline-flex}.card-btn svg{width:14px;height:14px;display:block}.card-btn-leaderboard:hover{background:#f59e0b1f}.card-btn-leaderboard.is-public{color:#22d3ee}.card-btn-leaderboard.is-public:hover{color:#ef4444;background:#ef44441a}.coop-tag{white-space:nowrap;color:#a78bfa;background:linear-gradient(135deg,#7c3aed24,#06b6d424);border:1px solid #7c3aed2e;border-radius:4px;align-items:center;gap:3px;margin-left:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.coop-tag:hover{border-color:#7c3aed59}.coop-tag .coop-icon{opacity:.85;width:12px;height:12px;display:block}.coop-tag.solo{color:#94a3b8;background:#94a3b814;border:1px solid #94a3b81a}.coop-tag.solo:hover{border-color:#94a3b833}.score-tag{white-space:nowrap;color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b26;border-radius:4px;margin-left:4px;padding:2px 8px;font-size:11px;font-weight:700}.card-btn-leaderboard-remove{color:var(--gray-500)}.card-btn-leaderboard-remove:hover{color:#f59e0b;background:#f59e0b1a}.card-btn-room{color:var(--gray-500)}.card-btn-room:hover{color:#a78bfa;background:#7c3aed1a}.card-btn-delete{color:var(--gray-500)}.card-btn-delete:hover{color:#ef4444;background:#f43f5e1a}.card-btn-view{color:var(--gray-500)}.card-btn-view:hover{color:#22c55e;background:#22c55e1f}.card-btn-saves-delete{color:var(--gray-500);margin-left:auto}.card-btn-saves-delete:hover{color:#ef4444;background:#f43f5e1a}.solved-by-info{color:#22c55e;align-items:center;gap:2px;font-size:12px;display:inline-flex}.solved-by-info svg{width:13px;height:13px}.solved-records-dialog .el-message-box__content{max-height:70vh;padding:16px 20px;overflow-y:auto}.solved-records-dialog .el-message-box__container{max-width:100%}.solved-records-dialog{background:#1a1a2e!important;border:1px solid #7c3aed33!important}.solved-records-dialog .el-message-box__title{color:#e2e8f0!important;font-size:16px!important}.solved-records-dialog .el-message-box__btns{border-top:1px solid #ffffff0f;padding:12px 20px!important}.solved-records-dialog .el-button--primary{background:linear-gradient(135deg,#7c3aed,#06b6d4);border:none}.confirm-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--dark-700);text-align:center;border:1px solid #7c3aed26;border-radius:12px;width:90%;max-width:360px;padding:28px 32px 24px}.confirm-dialog h3{color:var(--gray-200);margin-bottom:8px;font-size:16px}.confirm-dialog p{color:var(--gray-400);margin-bottom:20px;font-size:13px;line-height:1.6}.confirm-actions{justify-content:center;gap:10px;display:flex}.confirm-btn{cursor:pointer;transition:var(--transition);border:none;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:600}.confirm-cancel{color:var(--gray-300);background:#94a3b81a}.confirm-cancel:hover{background:#94a3b833}.confirm-ok{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b40}.confirm-ok:hover{background:#f59e0b40}.lobby-empty-icon .lobby-icon{width:72px;height:72px}.join-room-case-hint{text-align:center;margin-top:-6px;margin-bottom:4px;line-height:1.5}.join-room-case-name{color:#fbbf24;letter-spacing:.5px;background:linear-gradient(135deg,#f59e0b1f,#d9770614);border:1px solid #f59e0b33;border-radius:6px;padding:3px 16px;font-size:15px;font-weight:700;display:inline-block}.join-room-desc{color:var(--gray-400);margin-bottom:2px;font-size:13px}.join-room-input-wrap{margin:8px 0 12px}.join-room-input{background:var(--dark-800);width:100%;color:var(--gray-100);text-align:center;letter-spacing:3px;transition:var(--transition);box-sizing:border-box;text-transform:uppercase;border:1px solid #7c3aed26;border-radius:8px;outline:none;padding:10px 14px;font-size:15px;font-weight:700}.join-room-input:focus{border-color:#22d3ee;box-shadow:0 0 0 2px #22d3ee1a}.join-room-input::placeholder{letter-spacing:0;color:var(--gray-500);font-weight:400}.join-room-input.input-error{border-color:#ef444466;box-shadow:0 0 0 2px #ef444414}.join-room-input:disabled{opacity:.5}.join-room-error-text{color:#f87171;text-align:center;margin-top:6px;font-size:11px;line-height:1.4}.join-room-loading-row{color:var(--gray-400);justify-content:center;align-items:center;gap:8px;margin:-4px 0 12px;font-size:12px;display:flex}.join-room-spinner{border:2px solid #7c3aed1a;border-top-color:#a78bfa;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite jrSpin}@keyframes jrSpin{to{transform:rotate(360deg)}}.confirm-ok:disabled{opacity:.4;cursor:not-allowed}.create-room-dialog{background:var(--dark-800);border:1px solid #7c3aed26;border-radius:14px;width:380px;max-width:92vw;position:relative;overflow:hidden;box-shadow:0 16px 48px #0000004d,0 0 0 1px #7c3aed0d}.create-room-header-bar{background:linear-gradient(90deg,#0000,#f59e0b59,#06b6d459,#0000);height:3px}.create-room-loading{flex-direction:column;align-items:center;gap:12px;padding:40px 0;display:flex}.create-room-spinner{border:3px solid #7c3aed14;border-color:#a78bfa #7c3aed14 #22d3ee;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite crSpin}@keyframes crSpin{to{transform:rotate(360deg)}}.create-room-loading-text{color:var(--gray-400);font-size:14px}.create-room-case-area{justify-content:center;align-items:center;gap:8px;padding:16px 24px 0;display:flex}.create-room-case-icon{width:18px;height:18px;color:var(--mystery-cyan);opacity:.7;flex-shrink:0}.create-room-case-name{color:var(--gray-200);text-align:center;font-size:14px;font-weight:600;line-height:1.4}.create-room-code-card{background:var(--dark-900);border:1px solid #7c3aed1a;border-radius:10px;margin:14px 24px 0;padding:14px 18px}.create-room-code-label{color:var(--gray-500);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;font-size:11px;font-weight:500}.create-room-code-row{align-items:center;gap:10px;display:flex}.create-room-code-value{letter-spacing:5px;font-size:28px;font-weight:800;font-family:var(--font-mono), monospace;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-text-fill-color:transparent;text-align:center;-webkit-background-clip:text;background-clip:text;flex:1;line-height:1.2}.create-room-copy-btn{color:#a78bfa;cursor:pointer;transition:var(--transition);white-space:nowrap;background:#7c3aed1a;border:1px solid #7c3aed2e;border-radius:6px;flex-shrink:0;align-items:center;gap:5px;padding:6px 12px;font-size:11px;font-weight:600;display:inline-flex}.create-room-copy-btn svg{width:14px;height:14px}.create-room-copy-btn:hover{color:#c4b5fd;background:#7c3aed2e;border-color:#7c3aed59}.create-room-waiting-area{color:var(--gray-400);justify-content:center;align-items:center;gap:8px;padding:14px 24px 0;font-size:13px;display:flex}.create-room-waiting-pulse{color:#22d3ee;align-items:center;animation:1.6s ease-in-out infinite crPulse;display:flex}.create-room-waiting-pulse svg{width:14px;height:14px}@keyframes crPulse{0%,to{opacity:.3;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}.create-room-waiting-text{color:var(--gray-400)}.create-room-player-count{color:#34d399;margin-left:2px;font-size:12px;font-weight:600}.create-room-players-list{flex-direction:column;gap:6px;padding:10px 24px 0;display:flex}.create-room-player-item{transition:var(--transition);background:#7c3aed08;border:1px solid #7c3aed0f;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;display:flex}.create-room-player-item.host{background:#f59e0b0a;border-color:#f59e0b1a}.create-room-player-item.empty{opacity:.5;border-style:dashed}.create-room-player-icon{flex-shrink:0;width:18px;height:18px}.create-room-player-item.host .create-room-player-icon{color:#fbbf24}.create-room-player-item:not(.host):not(.empty) .create-room-player-icon{color:#22d3ee}.create-room-player-name{color:var(--gray-200);flex:1;font-size:13px;font-weight:500}.create-room-player-name.empty{color:var(--gray-500);font-style:italic}.create-room-player-host-badge{color:#fbbf24;letter-spacing:.3px;background:#f59e0b26;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700}.create-room-player-ready-badge{color:#4ade80;background:#22c55e1f;border-radius:4px;align-items:center;gap:3px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.create-room-player-ready-badge svg{width:12px;height:12px}.create-room-player-item.ready{background:#22c55e08;border-color:#22c55e26}.create-room-actions{justify-content:center;padding:14px 24px 18px;display:flex}.create-room-btn-ready,.create-room-btn-start{cursor:pointer;transition:var(--transition);border:1px solid;border-radius:8px;align-items:center;gap:5px;padding:8px 20px;font-size:13px;font-weight:600;display:inline-flex}.create-room-btn-ready svg,.create-room-btn-start svg{width:14px;height:14px}.create-room-btn-ready{color:#4ade80;background:#22c55e14;border-color:#22c55e26}.create-room-btn-ready:hover{background:#22c55e26;border-color:#22c55e4d}.create-room-btn-ready.ready{color:#f87171;background:#ef444414;border-color:#ef444426}.create-room-btn-ready.ready:hover{background:#ef444426;border-color:#ef44444d}.create-room-btn-start{color:#a78bfa;background:linear-gradient(135deg,#7c3aed33,#06b6d433);border-color:#7c3aed33}.create-room-btn-start:hover{color:#c4b5fd;background:linear-gradient(135deg,#7c3aed4d,#06b6d44d);border-color:#7c3aed59}.create-room-btn-cancel{color:var(--gray-400);cursor:pointer;transition:var(--transition);background:#94a3b814;border:1px solid #94a3b81a;border-radius:8px;align-items:center;gap:5px;padding:6px 16px;font-size:12px;font-weight:500;display:inline-flex}.create-room-btn-cancel svg{width:14px;height:14px}.create-room-btn-cancel:hover{color:var(--gray-300);background:#94a3b826;border-color:#94a3b833}.backend-status{color:var(--gray-400);background:var(--dark-700);border-top:1px solid #7c3aed1a;justify-content:center;align-items:center;gap:10px;padding:8px 16px;font-size:12px;transition:all .3s;display:flex;position:relative}.backend-status.connected{border-top-color:#22c55e26}.backend-status.connected:before{content:"";background:linear-gradient(90deg,#0000,#22c55e66,#0000);height:2px;position:absolute;top:0;left:0;right:0}.backend-status.disconnected{border-top-color:#f43f5e26}.backend-status.disconnected:before{content:"";background:linear-gradient(90deg,#0000,#f43f5e66,#0000);height:2px;position:absolute;top:0;left:0;right:0}.backend-status .status-icon{flex-shrink:0;width:14px;height:14px}.backend-status .status-icon .outer-ring{fill:none;stroke-width:1.5px}.backend-status.connected .status-icon .outer-ring{stroke:#22c55e4d}.backend-status.connected .status-icon .inner-dot{fill:#22c55e}.backend-status.disconnected .status-icon .outer-ring{stroke:#f43f5e4d;animation:2s ease-in-out infinite statusPulse}.backend-status.disconnected .status-icon .inner-dot{fill:#f43f5e;animation:2s ease-in-out infinite statusPulse}.backend-status .status-text{line-height:1}.backend-status.connected .status-text{color:#22c55ecc}.backend-status .provider-dots{border-left:1px solid #7c3aed26;align-items:center;gap:4px;margin-left:8px;padding-left:8px;display:inline-flex}.backend-status .provider-dot{cursor:help;background:#64748b4d;border-radius:50%;width:6px;height:6px;transition:background .3s;position:relative}.backend-status .provider-dot.online{background:#22c55e;box-shadow:0 0 6px #22c55e66}.backend-status .btn-retry{color:var(--mystery-cyan);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);white-space:nowrap;background:#06b6d414;border:1px solid #06b6d433;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.backend-status .btn-retry:hover{background:#06b6d426;border-color:#06b6d466;box-shadow:0 0 12px #06b6d41a}.backend-status .btn-retry svg{width:12px;height:12px;stroke:var(--mystery-cyan);stroke-width:2px;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}@keyframes statusPulse{0%,to{opacity:.6}50%{opacity:1}}.lobby-card{background:var(--dark-700);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);border:1px solid #7c3aed1a;padding:20px;position:relative}.lobby-card:before{content:"";background:var(--gradient-primary);opacity:0;width:100%;height:3px;transition:var(--transition);position:absolute;top:0;left:0}.lobby-card:hover{border-color:#7c3aed4d;box-shadow:0 8px 32px #7c3aed1f}.lobby-card:hover:before{opacity:1}.leaderboard-card{border-color:#f59e0b14}.leaderboard-card:before{background:linear-gradient(90deg,#0000,#f59e0b4d,#0000)}.leaderboard-card:hover{border-color:#f59e0b33;box-shadow:0 8px 32px #f59e0b14}.lobby-card-top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.lobby-card h3{color:var(--white);margin-bottom:6px;font-size:16px}.lobby-card p,.lobby-card-desc{color:var(--gray-400);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:12px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.lobby-card-meta{color:var(--gray-500);align-items:center;gap:12px;font-size:12px;display:flex}.lobby-card-actions{border-top:1px solid #7c3aed0f;flex-wrap:wrap;gap:4px;margin-top:10px;padding-top:8px;display:flex}.card-action-btn{cursor:pointer;color:var(--gray-500);background:0 0;border:none;border-radius:4px;padding:3px 8px;font-family:inherit;font-size:11px;line-height:1.4;transition:all .15s}.card-action-btn:hover{color:var(--mystery-cyan);background:#7c3aed1a}.diff-tag{text-transform:uppercase;border-radius:4px;padding:2px 10px;font-size:11px;font-weight:600}.diff-tag.easy{color:#34d399;background:#10b98126}.diff-tag.normal{color:#fbbf24;background:#f59e0b26}.diff-tag.hard{color:#f87171;background:#ef444426}.diff-tag.expert{color:#a78bfa;background:#7c3aed26}.status-tag{border-radius:4px;padding:2px 10px;font-size:11px}.status-tag.active{color:var(--mystery-cyan);background:#06b6d41a}.status-tag.solved{color:#34d399;background:#10b9811a}.status-tag.failed{color:#f87171;background:#ef44441a}.status-tag.waiting{color:#f59e0b;background:#f59e0b1f}.status-tag.draft,.status-tag.pending{color:var(--gray-400);background:#94a3b81a}.status-tag.archived{color:#9ca3af;background:#6b72801a}.save-card{background:var(--dark-700);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);border:1px solid #7c3aed1a;padding:16px}.save-card:hover{box-shadow:var(--shadow-md);border-color:#7c3aed40;transform:translateY(-2px)}.save-card-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.save-slot{color:var(--gray-500);font-size:11px}.save-card h4{color:var(--white);margin-bottom:8px;font-size:14px}.save-card-meta{color:var(--gray-500);gap:12px;font-size:12px;display:flex}.game-screen{background:var(--dark-900);flex-direction:column;height:100vh;display:flex}.game-topbar{background:var(--dark-800);border-bottom:1px solid #7c3aed1a;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.topbar-left{align-items:center;gap:12px;display:flex}.topbar-left .phase-badge{border-radius:10px;align-items:center;padding:3px 12px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.topbar-back{color:var(--gray-400);border-radius:var(--radius-sm);transition:var(--transition);cursor:pointer;background:0 0;border:none;align-items:center;padding:6px 10px;font-size:13px;line-height:1;display:inline-flex}.topbar-back:hover{color:var(--mystery-cyan);background:#06b6d414}.topbar-title{color:var(--white);align-items:center;font-size:16px;font-weight:600;line-height:1;display:inline-flex}.phase-badge{color:var(--mystery-cyan);background:#06b6d41f;border-radius:10px;padding:3px 12px;font-size:11px;font-weight:600}.topbar-center{flex:1;justify-content:center;align-items:center;display:flex}.play-timer{color:var(--gray-400);font-size:14px;font-weight:800;font-family:"JetBrains Mono", var(--font-mono), monospace;letter-spacing:.5px;background:#7c3aed0f;border:1px solid #7c3aed14;border-radius:8px;padding:4px 14px}.topbar-right{align-items:center;gap:12px;display:flex}.score-display{color:var(--mystery-amber);font-size:15px;font-weight:600}.topbar-action-btn{color:var(--gray-300);border-radius:var(--radius-sm);transition:var(--transition);cursor:pointer;text-align:center;white-space:nowrap;background:#7c3aed1a;border:1px solid #7c3aed26;justify-content:center;align-items:center;min-width:68px;height:32px;padding:6px 14px;font-size:13px;line-height:1;display:inline-flex}.topbar-action-btn:hover{color:var(--white);background:#7c3aed33}.game-layout{flex:1;display:flex;position:relative;overflow:hidden}.game-center{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.game-sidebar{background:var(--dark-800);border-right:1px solid #7c3aed14;flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow-y:auto}.sidebar-section{border-bottom:1px solid #7c3aed0f;padding:16px}.sidebar-section h4{color:var(--white);align-items:center;gap:8px;margin-bottom:10px;font-size:14px;font-weight:600;display:flex}.sidebar-scene-name{color:var(--white);align-items:center;gap:6px;margin-bottom:4px;font-size:14px;font-weight:600;line-height:1.4;display:flex}.floor-badge{color:var(--mystery-cyan);pointer-events:none;-webkit-user-select:none;user-select:none;background:#06b6d41a;border-radius:4px;padding:1px 8px;font-size:10px;font-weight:600}.clue-badge{color:var(--mystery-amber);white-space:nowrap;text-align:center;background:#f59e0b1f;border:1px solid #f59e0b33;border-radius:10px;flex-shrink:0;min-width:80px;margin-left:auto;padding:2px 14px;font-size:11px;font-weight:600;animation:.5s clueBadgeIn,3s ease-in-out .5s infinite clueBadgePulse}@keyframes clueBadgeIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes clueBadgePulse{0%,to{box-shadow:0 0 #f59e0b00}50%{box-shadow:0 0 8px #f59e0b40}}.clue-badge-explored{color:#34d399;background:#34d3991f;border:1px solid #34d39940;animation:none}.timeline-link-btn{color:var(--primary,#a78bfa);cursor:pointer;white-space:nowrap;text-align:center;background:#a78bfa1f;border:1px solid #a78bfa33;border-radius:10px;flex-shrink:0;min-width:80px;margin-left:auto;padding:2px 14px;font-size:11px;font-weight:600;transition:color .2s,background .2s,border-color .2s;animation:.5s timelineIn,3s ease-in-out .5s infinite timelinePulse}.timeline-link-btn:hover{background:#a78bfa33;border-color:#c4b5fd;box-shadow:0 0 10px #a78bfa40}@keyframes timelineIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes timelinePulse{0%,to{box-shadow:0 0 #a78bfa00}50%{box-shadow:0 0 8px #a78bfa40}}.tl-grid{flex-direction:column;gap:6px;margin:4px 0;display:flex}.tl-row{grid-template-columns:auto 1fr;align-items:start;gap:0;display:grid}.tl-time{color:var(--mystery-cyan,#22d3ee);font-size:12px;font-weight:700;font-family:var(--font-mono,monospace);white-space:nowrap;text-align:left;padding:1px 10px 0 0;line-height:1.6}.tl-event{color:var(--gray-300);word-break:break-word;font-size:13px;line-height:1.6}.sidebar-desc{color:var(--gray-400);font-size:12px;line-height:1.5}.sidebar-desc-empty{color:var(--gray-500);text-align:center;padding:8px 0;font-size:12px}.clue-item{border-radius:var(--radius-sm);border-left:3px solid var(--gray-600);cursor:pointer;transition:var(--transition);background:#7c3aed0a;margin-bottom:6px;padding:8px 10px}.clue-item:hover{background:#7c3aed14}.clue-item.critical{border-left-color:#f43f5e}.clue-item.important{border-left-color:#f59e0b}.clue-item.normal{border-left-color:#06b6d4}.clue-item.red_herring{border-left-color:#64748b}.clue-name{color:var(--white);font-size:13px;font-weight:500}.clue-desc{color:var(--gray-400);margin-top:2px;font-size:11px}.npc-item{color:var(--gray-300);cursor:pointer;transition:var(--transition);border-bottom:1px solid #ffffff0a;align-items:flex-start;gap:8px;padding:8px 12px 8px 10px;font-size:12px;display:flex}.npc-item:hover{color:var(--mystery-cyan)}.npc-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:2px;font-size:14px;display:flex}.npc-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.npc-name{color:var(--white);text-align:left;font-size:13px;font-weight:600}.npc-role{color:var(--gray-500);text-align:left;font-size:11px}.npc-attitude-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.npc-attitude-tag{white-space:nowrap;border-radius:8px;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.npc-attitude-tag.att-friendly{color:#4ade80;background:#22c55e26}.npc-attitude-tag.att-neutral{color:#94a3b8;background:#94a3b826}.npc-attitude-tag.att-hostile{color:#f87171;background:#ef444426}.npc-attitude-tag.att-deceptive{color:#fb923c;background:#fb923c26}.npc-attitude-tag.att-fearful{color:#f87171;background:#ef44441f}.npc-attitude-tag.att-arrogant{color:#c084fc;background:#a855f71f}.npc-attitude-tag.att-defensive{color:#eab308;background:#eab30824}.npc-attitude-tag.att-suspicious{color:#eab308;background:#facc1524}.npc-attitude-tag.att-guarded{color:#94a3b8;background:#64748b24}.npc-attitude-tag.att-impatient{color:#fb7185;background:#ef44441a}.npc-trust{white-space:nowrap;border-radius:6px;padding:1px 5px;font-size:10px}.npc-trust.trust-high{color:#4ade80;background:#22c55e1f}.npc-trust.trust-mid{color:#fbbf24;background:#fbbf241f}.npc-trust.trust-low{color:#f87171;background:#ef44441f}.narrative-area{flex-direction:column;flex:1;gap:12px;width:100%;max-width:900px;margin:0 auto;padding:20px 28px;display:flex;position:relative;overflow-y:auto}.narrative-area:after{content:"";flex-shrink:0;height:40px;display:block}.narrative-message{border-radius:var(--radius-md);align-items:flex-start;gap:10px;padding:12px 16px;font-size:14px;line-height:1.6;animation:.3s msgIn;display:flex;position:relative}.narrative-message>.game-icon{margin-top:-.8px}.narrative-message strong{color:var(--mystery-amber);font-size:inherit;align-items:center;gap:4px;line-height:1.4;display:inline-flex}.msg-system strong{color:inherit}.narrative-message br{content:"";margin-top:8px;display:block}.narrative-message p{margin:0 0 8px;line-height:1.7}.narrative-message p:last-child{margin-bottom:0}.narrative-message code{color:var(--mystery-cyan);text-align:center;background:#06b6d414;border-radius:4px;justify-content:center;align-items:center;min-width:5em;padding:0 6px;font-family:JetBrains Mono,Consolas,monospace;font-size:12px;font-weight:600;line-height:1.6;display:inline-flex}@keyframes msgIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.msg-narrative{background:var(--dark-700);border-left:3px solid var(--mystery-purple);color:var(--gray-200)}.msg-action{color:var(--gray-300);background:#4f46e514;border-left:3px solid #4f46e5}.msg-clue{border-left:3px solid var(--mystery-cyan);color:#67e8f9;background:#06b6d414}.msg-deduction{border-left:3px solid var(--mystery-amber);color:var(--gray-200);background:#f59e0b0f}.msg-accuse{border-left:3px solid var(--mystery-rose);color:#fca5a5;background:#f43f5e14}.msg-system{border-left:3px solid var(--mystery-purple);color:var(--gray-300);background:#7c3aed0f}.msg-dialogue{border-left:3px solid var(--mystery-amber);color:var(--gray-200);background:#f59e0b0f}.msg-multiplayer{color:var(--gray-200);background:#10b9810f;border-left:3px solid #10b981}.narrative-content-wrap{display:inline}.narrative-user-name{color:#10b981;vertical-align:middle;background:#10b9811f;border-radius:4px;margin-right:6px;padding:0 6px;font-size:11px;font-weight:600;line-height:1.6;display:inline-block}.action-sidebar{background:var(--dark-800);border-left:1px solid #7c3aed1a;flex-direction:column;flex-shrink:0;width:300px;display:flex;position:relative}.action-tabs{border-bottom:1px solid #7c3aed14;display:flex}.action-tab{color:var(--gray-500);text-align:center;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:11px 2px;font-size:12px;font-weight:700;transition:all .2s}.action-tab:hover{color:var(--gray-200);background:#7c3aed0a}.action-tab.active{color:var(--mystery-cyan);border-bottom-color:var(--mystery-cyan)}.action-content{flex-direction:column;flex:1;padding:16px;display:flex;overflow-y:auto}.action-content>div{flex-direction:column;gap:10px;display:flex}.action-row{margin-bottom:0}.action-row label{color:var(--gray-400);letter-spacing:.2px;margin-bottom:5px;font-size:12px;font-weight:500;display:block}.action-sidebar{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.action-input{background:var(--dark-700);border-radius:var(--radius-sm);width:100%;color:var(--gray-200);transition:var(--transition);box-sizing:border-box;border:1px solid #7c3aed1f;outline:none;padding:9px 12px;font-family:inherit;font-size:13px}.action-input:focus{border-color:var(--mystery-purple);box-shadow:0 0 0 2px #7c3aed1a}.action-input::placeholder{color:var(--gray-600)}select.action-input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2394a3b8'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}select.action-input option{background:var(--dark-800);color:var(--gray-200)}.action-btn{background:var(--gradient-primary);width:100%;color:var(--white);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:none;padding:9px 12px;font-size:13px;font-weight:600}.action-btn:hover{opacity:.9;transform:translateY(-1px)}.action-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.action-btn-secondary{width:100%;color:var(--mystery-cyan);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);background:#7c3aed1a;border:1px solid #7c3aed33;padding:9px 12px;font-size:13px;font-weight:700}.action-btn-secondary:hover{background:#7c3aed2e}.approach-group{gap:6px;display:flex}.approach-chip{cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;position:relative}.approach-chip input{opacity:0;pointer-events:none;position:absolute}.approach-chip span{color:var(--gray-300);background:var(--dark-700);border-radius:var(--radius-sm);text-align:center;border:1px solid #7c3aed26;justify-content:center;align-items:center;padding:8px;font-size:12px;line-height:1.2;transition:all .2s;display:flex}.approach-chip:hover span{background:#7c3aed14;border-color:#7c3aed66}.approach-chip.disabled span{opacity:.4;cursor:not-allowed;pointer-events:none}.approach-group.disabled{opacity:.5;pointer-events:none}.npc-empty-placeholder{color:var(--gray-500);background:var(--dark-700);border-radius:var(--radius-sm);text-align:center;border:1px dashed #7c3aed26;padding:10px 12px;font-size:12px;line-height:1.4}.approach-chip.active span{border-color:var(--mystery-cyan);color:var(--mystery-cyan);background:#06b6d41f;font-weight:600}.action-btn-row{gap:8px;display:flex}.action-btn-row .action-btn,.action-btn-row .action-btn-secondary{flex:1}.evidence-list,.accuse-list{flex-direction:column;gap:4px;max-height:300px;display:flex;overflow-y:auto}.evidence-item,.accuse-item{color:var(--gray-300);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;transition:all .15s;display:flex}.evidence-item:hover,.accuse-item:hover{background:#7c3aed0f}.evidence-item.selected,.accuse-item.selected{color:var(--mystery-cyan);background:#7c3aed1a}.evidence-item input[type=checkbox],.accuse-item input[type=checkbox]{accent-color:var(--mystery-purple)}.notes-fullscreen{z-index:9999;-webkit-backdrop-filter:blur(6px);background:#00000059;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.notes-fullscreen-content{-webkit-backdrop-filter:blur(10px);background:#14142a8c;border-radius:14px;flex-direction:column;width:90vw;max-width:1400px;height:85vh;animation:5s ease-in-out infinite alternate borderGlow;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #7c3aed40,0 4px 30px #0000004d}@keyframes borderGlow{0%{box-shadow:0 0 0 1px #7c3aed40,0 4px 30px #0000004d,0 0 10px #7c3aed14}33%{box-shadow:0 0 0 1px #6366f159,0 4px 30px #0000004d,0 0 20px #6366f11f}66%{box-shadow:0 0 0 1px #06b6d44d,0 4px 30px #0000004d,0 0 20px #06b6d41a}to{box-shadow:0 0 0 1px #7c3aed40,0 4px 30px #0000004d,0 0 10px #7c3aed14}}.notes-fullscreen-header{background:#0f0f23eb;border-bottom:1px solid #7c3aed14;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.notes-fullscreen-header h3{color:var(--white);font-size:14px}.notes-full-close{color:var(--gray-500);cursor:pointer;font-size:18px}.notes-full-close:hover{color:var(--white)}.notes-canvas-wrap{cursor:grab;background-color:#0a0a1a;background-image:radial-gradient(at 15% 40%,#7c3aed12 0%,#0000 55%),radial-gradient(at 75% 30%,#06b6d40d 0%,#0000 50%),radial-gradient(at 50% 80%,#6366f10a 0%,#0000 45%),radial-gradient(at 90% 70%,#a855f708 0%,#0000 40%);background-position:0 0,0 0,0 0,0 0;background-repeat:no-repeat;background-size:auto,auto,auto,auto;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;flex:1;position:relative;overflow:hidden}.notes-canvas-wrap:active{cursor:grabbing}.notes-canvas-transform{position:absolute;top:0;left:0}.notes-textarea{background:var(--dark-800);border-radius:var(--radius-sm);width:100%;height:100%;min-height:300px;color:var(--gray-200);resize:none;border:1px solid #7c3aed1f;outline:none;padding:12px;font-family:inherit;font-size:13px;line-height:1.6}.notes-textarea:focus{border-color:var(--mystery-purple)}.notes-drawer-footer{border-top:1px solid #7c3aed14;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.notes-hint{color:var(--gray-500);font-size:11px}.notes-status{align-items:center;gap:5px;font-size:11px;font-weight:500;transition:color .3s;display:inline-flex}.notes-status.saved{color:var(--gray-500)}.notes-status.saving{color:var(--mystery-cyan)}.notes-status-dot{border-radius:50%;width:5px;height:5px;transition:background .3s}.notes-status.saved .notes-status-dot{background:var(--gray-500)}.notes-status.saving .notes-status-dot{background:var(--mystery-cyan);animation:.8s ease-in-out infinite alternate notesStatusPulse}@keyframes notesStatusPulse{0%{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}.save-cancel-btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);background:var(--gradient-primary);color:var(--white);border:none;padding:6px 14px;font-size:12px;font-weight:600}.save-cancel-btn:hover{opacity:.9}.notes-close-btn,.save-close-btn{color:var(--gray-500);cursor:pointer;transition:var(--transition);background:0 0;border:none;font-size:18px}.notes-close-btn:hover,.save-close-btn:hover{color:var(--white)}.save-overlay{z-index:500;background:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.save-modal{background:var(--dark-800);border:1px solid #7c3aed26;border-radius:12px;width:400px;max-width:90vw;animation:.25s slideUp;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.save-modal-header{border-bottom:1px solid #7c3aed14;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.save-modal-header h3{color:var(--white);font-size:14px}.save-modal-body{padding:16px}.save-modal-footer{text-align:right;border-top:1px solid #7c3aed14;padding:12px 16px}.save-slots-divider{background:#7c3aed14;height:1px;margin:10px 0}.save-slots{flex-direction:column;gap:6px;display:flex}.save-slot{border-radius:var(--radius-sm);cursor:pointer;background:#7c3aed08;border:1px solid #7c3aed14;justify-content:space-between;align-items:center;padding:10px 12px;transition:all .15s;display:flex}.save-slot:hover{background:#7c3aed14;border-color:#7c3aed33}.save-slot.used{border-left:3px solid var(--mystery-cyan)}.save-slot-info{flex-direction:column;gap:2px;display:flex}.save-slot-label{color:var(--gray-200);font-size:13px;font-weight:600}.save-slot-meta{color:var(--gray-400);font-size:11px}.save-slot-empty{color:var(--gray-600);font-size:11px}.save-slot-time{color:var(--gray-500);font-size:11px}.auto-save-bar{border-radius:var(--radius-sm);cursor:default;background:#06b6d40f;border:1px solid #06b6d426;align-items:center;gap:10px;padding:10px 12px;display:flex}.auto-save-empty-bar{background:#94a3b808;border-color:#94a3b814}.auto-save-icon{opacity:.6;flex-shrink:0;align-items:center;display:flex}.auto-save-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.auto-save-label{color:var(--gray-300);font-size:12px;font-weight:600}.auto-save-meta{color:var(--gray-400);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.auto-save-time{color:var(--gray-500);flex-shrink:0;font-size:11px}.note-section{margin-bottom:20px}.note-section h4{color:var(--gray-500);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;font-size:11px;font-weight:600}.note-item{color:var(--gray-300);background:#ffffff05;border-radius:6px;margin-bottom:4px;padding:8px 10px;font-size:12px;line-height:1.5}.scene-topology{text-align:center;padding:16px}.scene-topology svg{max-width:100%;height:auto}.scene-node{cursor:pointer;transition:all .2s}.scene-node:hover .scene-node-rect{stroke:var(--mystery-cyan)}.scene-node.active .scene-node-rect{stroke:var(--mystery-cyan);fill:#06b6d41a}.scene-node-rect{fill:#7c3aed0f;stroke:#7c3aed33;stroke-width:1.5px;rx:6}.scene-node-text{fill:var(--gray-300);font-size:11px}.scene-edge{stroke:#7c3aed1a;stroke-width:1px}.game-scene-3d{position:relative}.game-scene-3d .interaction-overlay{pointer-events:none;z-index:10;position:absolute;inset:0}.game-scene-3d .hover-label{pointer-events:auto;color:#fff;white-space:nowrap;z-index:10;background:#000000bf;border:1px solid #7c3aed4d;border-radius:4px;padding:3px 10px;font-size:12px;position:absolute;transform:translate(-50%,-100%)}.scene-switch{z-index:50;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.game-modern-modal{background:var(--dark-700);border-radius:var(--radius-md);border:1px solid #7c3aed26;width:92%;max-width:640px;animation:.3s modalIn;overflow:hidden}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-head{text-align:center;border-bottom:1px solid #7c3aed14;padding:24px 28px 16px}.modal-head h2{color:var(--white);margin:0 0 4px;font-size:20px}.modal-head p{color:var(--gray-400);margin:0;font-size:13px}.modal-body{padding:20px 28px 8px}.modal-foot{justify-content:flex-end;align-items:center;gap:12px;padding:16px 28px 24px;display:flex}.modal-foot .sp-btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:none;padding:9px 28px;font-size:14px;font-weight:600}.modal-foot .sp-btn.sp-btn-primary{background:var(--mystery-cyan);border-color:var(--mystery-cyan);color:var(--white)}.modal-foot .sp-btn.sp-btn-primary:hover{opacity:.9}.modal-foot .sp-btn.sp-btn-default{color:var(--gray-300);background:#7c3aed1a;border:1px solid #7c3aed33}.modal-foot .sp-btn.sp-btn-default:hover{background:#7c3aed2e}.keyboard-hint{color:var(--gray-600);border:1px solid var(--gray-700);font-size:10px;font-family:var(--font-mono);border-radius:3px;padding:1px 4px}.result-icon{text-align:center;padding:20px 0 10px;font-size:48px}.result-rating{text-align:center;color:var(--mystery-amber);margin:8px 0;font-size:14px}.result-stats{color:var(--gray-400);justify-content:center;gap:24px;padding:12px 0;font-size:13px;display:flex}.result-stats span{align-items:center;gap:4px;display:flex}.gen-form{flex-direction:column;gap:14px;display:flex}.gen-form-row{flex-direction:column;gap:4px;display:flex}.gen-form-row label{color:var(--gray-400);font-size:12px;font-weight:500}.prow{align-items:center;gap:14px;margin-bottom:18px;display:flex}.prow-label{width:74px;color:var(--gray-300);text-align:left;flex-shrink:0;font-size:14px;font-weight:500}.prow-input{background:var(--dark-800);height:40px;color:var(--gray-100);border-radius:var(--radius-sm);transition:var(--transition);border:1px solid #7c3aed33;outline:none;flex:1;padding:0 14px;font-size:14px}.prow-input:focus{border-color:var(--mystery-cyan)}.prow-input.error{border-color:var(--mystery-rose);box-shadow:0 0 0 2px #f43f5e26}.prow-input::placeholder{color:var(--gray-600)}.prow-radios{flex-wrap:wrap;gap:10px;padding:4px 0;display:flex}.prow-radio{color:var(--gray-200);cursor:pointer;background:#7c3aed14;border:1px solid #7c3aed26;border-radius:20px;align-items:center;gap:4px;padding:4px 12px 4px 8px;font-size:13px;transition:all .2s;display:flex}.prow-radio:hover{background:#7c3aed26;border-color:#7c3aed4d}.prow-radio input{accent-color:var(--mystery-cyan)}.prow-birth{flex:1;align-items:center;gap:6px;display:flex}.prow-sep{color:var(--gray-500);text-align:center;flex-shrink:0;width:16px;font-size:13px}.prow-custom-select{cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;min-width:0;height:40px;position:relative}.prow-custom-select .prow-custom-value{background:var(--dark-800);height:100%;color:var(--gray-100);border-radius:var(--radius-sm);border:1px solid #7c3aed33;justify-content:center;align-items:center;padding:0 24px 0 6px;font-size:13px;transition:border-color .2s;display:flex}.prow-custom-select .prow-custom-value.placeholder{color:var(--gray-500)}.prow-custom-select:hover .prow-custom-value{border-color:#7c3aed66}.prow-custom-select .prow-custom-arrow{pointer-events:none;transition:transform .2s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.prow-dropdown-fixed{border-radius:var(--radius-sm);z-index:9999;background:#1a1a2e;border:1px solid #7c3aed40;padding:4px;animation:.12s ease-out dropIn;overflow-y:auto;box-shadow:0 8px 32px #0009}@keyframes dropIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.prow-dropdown-item{color:var(--gray-300);text-align:center;cursor:pointer;border-radius:4px;padding:6px 8px;font-size:13px;transition:background .12s,color .12s}.prow-dropdown-item:hover{color:var(--gray-100);background:#7c3aed26}.prow-dropdown-item.selected{color:var(--mystery-cyan);background:#06b6d41f;font-weight:600}.prow-dropdown-fixed::-webkit-scrollbar{width:4px}.prow-dropdown-fixed::-webkit-scrollbar-track{background:0 0}.prow-dropdown-fixed::-webkit-scrollbar-thumb{background:#7c3aed4d;border-radius:2px}.phase-badge{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.phase-badge.introduction{color:var(--gray-400);background:#94a3b81f}.phase-badge.investigation{color:var(--mystery-cyan);background:#06b6d41f}.phase-badge.deduction{color:var(--mystery-amber);background:#f59e0b1f}.phase-badge.confrontation{color:var(--mystery-rose);background:#f43f5e1f}.phase-badge.conclusion{color:#22c55e;background:#22c55e1f}.phase-badge.epilogue{color:#a78bfa;background:#a78bfa1f}.npc-avatar-circle{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:600;display:flex}.custom-select-wrapper{position:relative}.custom-select-trigger{color:var(--gray-100);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);background:#ffffff0a;border:1px solid #7c3aed33;justify-content:space-between;align-items:center;padding:8px 10px;font-size:12px;display:flex}.custom-select-trigger:hover{border-color:#7c3aed66}.custom-select-trigger.open{border-color:var(--mystery-cyan)}.custom-select-arrow{color:var(--gray-500);transition:var(--transition);font-size:8px}.custom-select-trigger.open .custom-select-arrow{transform:rotate(180deg)}.custom-select-dropdown{z-index:100;background:var(--dark-700);border-radius:var(--radius-sm);border:1px solid #7c3aed33;max-height:200px;margin-top:2px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.custom-select-item{color:var(--gray-300);cursor:pointer;transition:var(--transition);padding:8px 10px;font-size:12px}.custom-select-item:hover{color:var(--mystery-cyan);background:#7c3aed1a}.custom-select-item.selected{color:var(--mystery-cyan);font-weight:600}.ti-insp-pole{animation:4s ease-in-out infinite tiInspPole}@keyframes tiInspPole{0%,to{opacity:.7}50%{opacity:1}}.ti-insp-ring{transform-origin:50%;animation:3s ease-in-out infinite tiInspRing}@keyframes tiInspRing{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.ti-insp-orb{animation:2.5s ease-in-out infinite tiInspOrb}@keyframes tiInspOrb{0%,to{opacity:.35;r:3}50%{opacity:.7;r:3.5}}.ti-insp-flare{animation:2.5s ease-in-out infinite tiInspFlare}@keyframes tiInspFlare{0%,to{opacity:.25}50%{opacity:.5}}.ti-pulse{transform-origin:50%;animation:3s ease-in-out infinite tiPulse}@keyframes tiPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.04)}}.ti-float{animation:3.5s ease-in-out infinite tiFloat}@keyframes tiFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.ti-sway{transform-origin:top;animation:3s ease-in-out infinite tiSway}@keyframes tiSway{0%,to{transform:rotate(0)}33%{transform:rotate(2deg)}66%{transform:rotate(-2deg)}}.ti-spin-slow{transform-origin:50%;animation:8s linear infinite tiSpin}@keyframes tiSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ti-blink{animation:2s ease-in-out infinite tiBlink}@keyframes tiBlink{0%,to{opacity:.5}50%{opacity:.2}}.ti-fade{animation:2.5s ease-in-out infinite tiFade}@keyframes tiFade{0%,to{opacity:.5}50%{opacity:.15}}.ti-slide{animation:4s ease-in-out infinite tiSlide}@keyframes tiSlide{0%,to{opacity:.6;transform:translate(0)}50%{opacity:.3;transform:translate(2px)}}.ti-orbit{animation:6s linear infinite tiOrbit}@keyframes tiOrbit{0%{opacity:.15;transform:rotate(0)translate(0)}25%{opacity:.3}50%{opacity:.1}75%{opacity:.25}to{opacity:.15;transform:rotate(360deg)translate(0)}}.ti-orbit-delay{animation:6s linear -3s infinite tiOrbit}@media (width<=768px){.game-topbar{flex-wrap:wrap;gap:6px;padding:8px 12px}.topbar-left{flex:none;order:1}.topbar-center{flex:100%;order:3;justify-content:center}.topbar-right{flex:none;order:2}.play-timer{padding:2px 10px;font-size:12px}.topbar-action-btn{min-width:auto;height:28px;padding:4px 8px;font-size:11px}.topbar-title{font-size:14px}.game-sidebar{width:200px}.action-sidebar{width:240px}.narrative-area{max-width:100%;padding:14px 16px}}@media (width<=480px){.game-layout{flex-direction:column}.game-sidebar{border-bottom:1px solid #7c3aed14;border-right:none;width:100%;max-height:120px}.action-sidebar{border-top:1px solid #7c3aed1a;border-left:none;width:100%;max-height:280px}.narrative-area{padding:12px}.topbar-title{font-size:13px}}.notes-lines-svg{pointer-events:none;z-index:0;position:absolute;top:0;left:0;overflow:visible}.conn-base{filter:drop-shadow(0 0 3px #6366f133);pointer-events:visiblePainted;cursor:pointer;transition:opacity .2s,filter .2s}.conn-base:hover{opacity:.85;filter:drop-shadow(0 0 6px #6366f159)}.notes-header-actions{align-items:center;gap:6px;display:flex}.notes-tool-btn{width:28px;height:28px;color:var(--gray-300);cursor:pointer;background:#7c3aed0f;border:1px solid #7c3aed33;border-radius:6px;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.notes-tool-btn:hover{background:#7c3aed26}.notes-tool-btn.active{color:#818cf8;background:#6366f133;border-color:#6366f1}.note-card{z-index:1;cursor:move;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(8px);color:#e2e8f0;background:#0f0f23bf;border:1px solid #ffffff0f;border-left:3px solid #fff3;border-right-color:#ffffff0a;border-radius:10px;width:160px;min-height:60px;padding:8px 10px;font-size:12px;line-height:1.5;transition:box-shadow .25s,transform .2s,border-color .25s,border-left-color .25s;animation:.35s cubic-bezier(.34,1.56,.64,1) both noteAppear;position:absolute;box-shadow:0 2px 8px #00000040,0 1px 3px #00000026,inset 0 0 0 1px #ffffff0a}.note-card:hover{z-index:2;border-top-color:#ffffff1f;border-left-color:#ffffff59;transform:translateY(-2px)scale(1.03);box-shadow:0 8px 24px #0000004d,0 2px 8px #0003,0 0 16px #6366f11f,0 0 1px #6366f114}@keyframes noteAppear{0%{opacity:0;transform:scale(.85)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.note-card-header{z-index:1;justify-content:space-between;align-items:center;gap:4px;margin-bottom:4px;display:flex;position:relative}.note-player-name{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap;text-overflow:ellipsis;border:1px solid #ffffff1a;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:600;overflow:hidden}.note-del-btn{color:#9ca3af;cursor:pointer;opacity:.5;background:#0003;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;transition:all .2s;display:flex}.note-del-btn:hover{color:#ef4444;opacity:1;background:#ef444433}.note-card-body{word-break:break-word;white-space:pre-wrap;z-index:1;color:#e2e8f0e6;text-shadow:0 1px 3px #0000004d;position:relative}.note-card-textarea{box-sizing:border-box;color:#e2e8f0;resize:none;-webkit-user-select:text;user-select:text;z-index:1;background:#00000059;border:1px solid #6366f159;border-radius:4px;outline:none;width:100%;margin:0;padding:4px 6px;font-family:inherit;font-size:12px;line-height:1.5;position:relative;overflow:hidden}.note-card-textarea:focus{border-color:#818cf8;box-shadow:0 0 8px #6366f140}.note-card.note-editing{z-index:10;border-color:#6366f1;animation:1.8s ease-in-out infinite editBorderPulse;box-shadow:0 0 0 2px #6366f180,0 4px 20px #0000004d,0 0 20px #6366f133}@keyframes editBorderPulse{0%,to{box-shadow:0 0 0 2px #6366f166,0 4px 20px #0000004d,0 0 16px #6366f126}50%{box-shadow:0 0 0 3px #818cf899,0 4px 24px #00000059,0 0 28px #6366f14d}}.note-card.note-hovered{z-index:4;border-color:#818cf880;animation:1.5s ease-in-out infinite hoverGlow;box-shadow:0 0 0 2px #6366f166,0 4px 20px #00000040,0 0 20px #6366f133}@keyframes hoverGlow{0%,to{box-shadow:0 0 0 2px #6366f14d,0 4px 20px #00000040,0 0 14px #6366f126}50%{box-shadow:0 0 0 3px #818cf880,0 4px 24px #0000004d,0 0 26px #6366f140}}.note-card.note-connect-target{cursor:pointer;border-color:#06b6d480;animation:1.2s ease-in-out infinite targetPulse;box-shadow:0 0 0 2px #06b6d459,0 0 20px #06b6d433,0 0 40px #06b6d41a}@keyframes targetPulse{0%,to{box-shadow:0 0 0 2px #06b6d44d,0 0 16px #06b6d426}50%{box-shadow:0 0 0 3px #06b6d480,0 0 28px #06b6d44d,0 0 48px #06b6d41a}}.note-edge-dots{pointer-events:none;position:absolute;inset:0}.note-edge-dot{opacity:0;background:#818cf8;border-radius:50%;width:10px;height:10px;transition:opacity .15s;position:absolute;box-shadow:0 0 10px #6366f1cc,0 0 20px #6366f14d}.note-edge-dot.active{opacity:1;animation:1.2s ease-in-out infinite edgeDotPulse}@keyframes edgeDotPulse{0%,to{transform:scale(1);box-shadow:0 0 8px #6366f199,0 0 16px #6366f133}50%{transform:scale(1.25);box-shadow:0 0 14px #6366f1e6,0 0 28px #6366f159}}.note-edge-dot.top{top:-5px;left:50%;transform:translate(-50%)}.note-edge-dot.right{top:50%;right:-5px;transform:translateY(-50%)}.note-edge-dot.bottom{bottom:-5px;left:50%;transform:translate(-50%)}.note-edge-dot.left{top:50%;left:-5px;transform:translateY(-50%)}.conn-drag-line{animation:.8s linear infinite dashFlow}@keyframes dashFlow{to{stroke-dashoffset:-20px}}.notes-empty{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.notes-empty-card{flex-direction:column;align-items:center;gap:10px;padding:28px 44px;display:flex}.notes-empty-icon{opacity:.55}.notes-empty-title{color:var(--gray-400);margin:0;font-size:15px;font-weight:600}.notes-empty-divider{background:#7c3aed33;border-radius:1px;width:24px;height:1px}.notes-empty-hints{color:var(--gray-500);align-items:center;gap:8px;font-size:12px;display:flex}.notes-empty-hints .dot{opacity:.3;font-size:10px}.notes-empty-sub{color:var(--gray-600);margin:0;font-size:11px}.note-edit-overlay{display:none}html,body,#app{width:100%;height:100%;margin:0;padding:0;overflow:hidden}
