@font-face{font-family:LXGW WenKai;src:url(./LXGWWenKai-Regular-DGVrVU_j.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:LXGW WenKai;src:url(./LXGWWenKai-Medium-BzOqySgh.woff2) format("woff2");font-style:normal;font-weight:500;font-display:swap}:root{color-scheme:light;--theme-50: #eaf3f2;--theme-100: #d5e6e4;--theme-200: #afd2ce;--theme-300: #83bdb7;--theme-400: #58a29c;--theme-500: #2c827b;--theme-600: #27736d;--theme-700: #21625d;--theme-800: #1a4e4a;--theme-900: #143b38;--page-bg: #f6f4ef;--surface: #fffefa;--surface-strong: #fffdf8;--surface-muted: #f8fbf8;--surface-subtle: #f8f6f1;--text: #221f1b;--text-muted: #665f55;--text-soft: #716a60;--border: #ddd6cb;--border-strong: #cec6ba;--border-soft: #e2dbd0;--shadow-color: rgba(35, 31, 26, .16);--danger: #8d252d;--danger-border: #d7a0a6;--danger-surface: #fff7f7;--warning-border: #dcc081;--warning-surface: #fffaf0;--warning-text: #795719;--success-border: #b8d5ca;--on-theme: #ffffff;--town-badge-bg: #f2d8c7;--town-badge-border: #9a6444;--town-badge-text: #633d28;--mafia-badge-bg: #efd0d3;--mafia-badge-border: #985159;--mafia-badge-text: #6c2931;--neutral-badge-bg: #d5e5f0;--neutral-badge-border: #557b98;--neutral-badge-text: #31566f}:root[data-color-mode=dark]{color-scheme:dark;--page-bg: #151817;--surface: #202422;--surface-strong: #252a27;--surface-muted: #1c2926;--surface-subtle: #292d2b;--text: #eef2ef;--text-muted: #bcc5c0;--text-soft: #a9b2ad;--border: #414844;--border-strong: #555e59;--border-soft: #363c39;--shadow-color: rgba(0, 0, 0, .38);--danger: #f29aa0;--danger-border: #854b50;--danger-surface: #382426;--warning-border: #806d3c;--warning-surface: #332f20;--warning-text: #e3c46d;--success-border: #497362;--on-theme: #ffffff;--town-badge-bg: #38271e;--town-badge-border: #a06d4f;--town-badge-text: #f3dccd;--mafia-badge-bg: #3a2024;--mafia-badge-border: #a65e67;--mafia-badge-text: #f5d6d9;--neutral-badge-bg: #1d303d;--neutral-badge-border: #628ca9;--neutral-badge-text: #d7e8f4}:root{color:var(--text);background:var(--page-bg);font-family:LXGW WenKai,Segoe UI,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}html,body,#app{height:100%}#app{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100vh;height:100dvh}.site-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;padding:10px 16px;color:var(--text-muted);font-size:12px;line-height:1.5;text-align:center}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{text-decoration:underline}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgba(92,92,92,.48) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track,*::-webkit-scrollbar-track-piece,*::-webkit-scrollbar-corner{background:transparent}*::-webkit-scrollbar-thumb{border-radius:999px;background:#5c5c5c7a}*::-webkit-scrollbar-button{display:none;width:0;height:0}body{margin:0;min-width:1040px;min-height:100vh;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--theme-500) 10%,transparent),transparent 34%),linear-gradient(315deg,color-mix(in srgb,var(--theme-300) 10%,transparent),transparent 40%),var(--page-bg)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden;padding:20px 20px 0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.topbar h1{margin:0;font-size:28px;letter-spacing:0}.topbar p{margin:6px 0 0;color:var(--text-muted)}.topbar-actions{display:flex;flex:1 1 auto;flex-flow:row wrap;align-items:center;justify-content:flex-end;gap:8px;min-width:0;max-width:100%}.topbar-actions>.ghost-button,.topbar-actions>.primary-button,.topbar-actions>.text-button{flex:0 0 auto;min-width:0;white-space:nowrap}.topbar .import-error{position:fixed;z-index:20;top:88px;right:20px;max-width:min(460px,100vw - 40px);margin:0;padding:10px 12px;border:1px solid var(--danger-border);border-radius:6px;background:var(--danger-surface);color:var(--danger);box-shadow:0 8px 24px #3c201a29}.topbar>.ghost-button{margin-left:auto}.workspace{display:grid;grid-template-columns:minmax(320px,360px) minmax(0,1fr) minmax(320px,360px);gap:16px;align-items:stretch;min-height:0;overflow:hidden}.left-rail,.center-stage,.right-rail{display:grid;gap:16px;align-content:start;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-gutter:stable}.panel{min-width:0;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--surface-strong) 92%,transparent);box-shadow:0 10px 24px var(--shadow-color);padding:14px}.panel-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--theme-700);transition:margin-bottom .24s ease}.panel-header h2{margin:0;font-size:16px}.panel-collapse-button{flex:0 0 auto;margin-left:auto}.panel.is-collapsed>.panel-header{margin-bottom:0}.panel-header>svg{flex-shrink:0}.timeline-header .panel-collapse-button{margin-left:0}.timeline-header>span{margin-right:auto}.inference-progress{display:grid;min-height:58px;gap:6px;margin:-2px 0 12px;padding-bottom:12px;border-bottom:1px solid var(--border-soft)}.inference-progress header,.inference-progress header span{display:flex;align-items:center;gap:7px}.inference-progress header{justify-content:space-between;min-width:0;color:var(--theme-700);font-size:12px}.inference-progress header span{min-width:0}.inference-progress header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inference-progress header b{flex:0 0 auto;font-size:12px}.inference-progress small{overflow-wrap:anywhere;color:var(--text-soft);font-size:11px;line-height:1.35}.inference-progress-track{position:relative;width:100%;height:7px;overflow:hidden;border-radius:4px;background:var(--border-soft)}.inference-progress-track>span{display:block;width:0;height:100%;border-radius:inherit;background:var(--theme-500);transition:width .16s ease}.inference-progress-track.indeterminate>span{width:34%;animation:inference-progress-scan 1.1s ease-in-out infinite}.inference-progress.is-complete .inference-progress-track>span{background:var(--theme-600)}.inference-progress.is-error,.inference-progress.is-error header{color:var(--danger)}.inference-progress.is-error .inference-progress-track>span{background:var(--danger)}.progress-spinner{flex:0 0 auto;animation:inference-progress-spin .9s linear infinite}@keyframes inference-progress-scan{0%{transform:translate(-110%)}to{transform:translate(300%)}}@keyframes inference-progress-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.inference-progress-track.indeterminate>span,.progress-spinner{animation-duration:2.4s}}.field-grid{display:grid;gap:10px}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.level-dialog-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:#1f1d1961}.level-page{width:100%;min-height:100vh;max-height:none;border:0;border-radius:0;background:transparent;box-shadow:none;padding:20px}.level-library{position:relative;display:grid;gap:16px;width:min(920px,100%);max-height:min(820px,100vh - 40px);overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface-strong);box-shadow:0 18px 48px var(--shadow-color);padding:18px}.level-library.level-page{display:contents}.level-page-content{position:relative;display:grid;grid-auto-rows:max-content;align-content:start;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.level-dialog-header,.level-chapter-header,.level-editor-section-header,.level-dialog-actions,.level-library-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.level-chapter-header{flex-wrap:wrap;align-items:flex-start}.level-dialog-header h2,.level-chapter-header h3,.level-editor-section h3{margin:0;color:var(--theme-700)}.level-chapter-header h3{display:flex;align-items:center;gap:4px}.level-chapter-toggle{display:inline-flex;align-items:center;justify-content:center;width:22px;min-height:22px;border:0;background:transparent;color:inherit;padding:0}.level-chapter-toggle:hover,.level-chapter-toggle:focus-visible{border:0;background:transparent;color:var(--theme-600);outline:none}.level-chapter-body{display:grid;gap:10px;min-width:0}.level-dialog-header p,.level-chapter-header p{margin:5px 0 0;color:var(--text-soft);font-size:13px}.level-chapter{display:grid;gap:10px;border-top:1px solid var(--border-soft);padding:14px 0}.level-chapter:last-of-type{border-bottom:0}.level-chapter-header>div:first-child{flex:1 1 260px;min-width:min(260px,100%)}.level-chapter-actions{display:flex;flex:1 1 240px;flex-flow:row wrap;align-items:center;justify-content:flex-end;gap:8px;min-width:0;max-width:100%;margin-left:auto}.level-chapter-actions>span{flex:0 0 auto;color:var(--text-soft);font-size:12px;white-space:nowrap}.level-chapter-actions>.ghost-button,.level-chapter-actions>.primary-button,.level-chapter-actions>.text-button,.level-chapter-actions>.icon-button{flex:0 0 auto;white-space:nowrap}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,300px));gap:10px}.level-card{display:grid;gap:8px;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:12px}.level-card header,.level-card footer{display:flex;align-items:center;gap:8px}.level-card header{justify-content:space-between}.level-card h4{margin:0;color:var(--text)}.level-card code,.level-card small{color:var(--text-soft);font-size:11px}.level-card p{min-height:2.8em;margin:0;color:var(--text-muted);font-size:13px}.level-role-badges{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:6px}.role-badge{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;height:24px;border:1px solid transparent;border-radius:999px;padding:3px 8px;color:var(--town-badge-text);font-size:12px;line-height:1;white-space:nowrap}.role-badge b{font-size:11px}.role-badge.town{border-color:var(--town-badge-border);background:var(--town-badge-bg);color:var(--town-badge-text)}.role-badge.mafia{border-color:var(--mafia-badge-border);background:var(--mafia-badge-bg);color:var(--mafia-badge-text)}.role-badge.neutral{border-color:var(--neutral-badge-border);background:var(--neutral-badge-bg);color:var(--neutral-badge-text)}.level-card footer{justify-content:flex-end;flex-wrap:wrap}.level-empty{margin:0;border:1px dashed var(--border);border-radius:8px;color:var(--text-soft);padding:12px}.level-library-actions{justify-content:flex-start;flex-wrap:wrap;border-top:1px solid var(--border-soft);padding-top:14px}.level-editor-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;overflow:auto;background:#1f1d1947;padding:12px}.chapter-editor-backdrop{align-items:center}.level-editor,.chapter-editor{display:grid;gap:16px;width:min(760px,100%);border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);box-shadow:0 12px 30px var(--shadow-color);padding:16px}.chapter-editor{width:min(520px,100%)}.level-editor-form,.level-editor-section{display:grid;gap:10px}.level-editor-section{border-top:1px solid var(--border-soft);padding-top:12px}.level-role-editor{display:grid;gap:8px}.level-role-row{display:grid;grid-template-columns:minmax(180px,1fr) 96px 96px 34px;gap:8px;align-items:center}.level-role-name{overflow:hidden;color:var(--text-soft);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.level-role-count{display:grid;gap:3px;min-width:0}.level-role-count>span{display:none}.level-form-error{margin:0;border:1px solid var(--danger-border);border-radius:6px;background:var(--danger-surface);color:var(--danger);padding:8px 10px}.notice-toast{position:fixed;top:20px;left:50%;z-index:100;display:flex;align-items:center;gap:12px;width:min(440px,100vw - 32px);border:1px solid var(--danger-border);border-radius:8px;background:var(--danger-surface);box-shadow:0 10px 28px var(--shadow-color);color:var(--danger);padding:10px 12px;transform:translate(-50%)}.notice-toast span{flex:1}.notice-toast button{display:inline-flex;flex:0 0 auto;border:0;background:transparent;color:inherit;padding:2px}.notice-enter-active,.notice-leave-active{transition:opacity .18s ease,transform .18s ease}.notice-enter-from,.notice-leave-to{opacity:0;transform:translate(-50%,-8px)}label{display:grid;gap:5px;color:var(--text-muted);font-size:12px;font-weight:650}input,select{width:100%;min-width:0;min-height:34px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text);padding:7px 9px;outline:none}input:focus,select:focus{border-color:var(--theme-500);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-500) 18%,transparent)}.searchable-select{position:relative;width:100%;min-width:0}.searchable-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;min-height:34px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text);padding:7px 32px 7px 9px;text-align:left}.searchable-select-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select-trigger .placeholder{color:var(--text-soft)}.searchable-select-chevron{position:absolute;top:50%;right:9px;pointer-events:none;transform:translateY(-50%)}.searchable-select:has(.searchable-select-clear) .searchable-select-trigger{padding-right:62px}.searchable-select-clear{position:absolute;z-index:1;top:50%;right:32px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:4px;background:transparent;color:var(--text-soft);padding:0;transform:translateY(-50%)}.searchable-select-clear:hover,.searchable-select-clear:focus-visible{background:var(--theme-100);color:var(--theme-800);outline:none}.searchable-select-trigger:focus-visible,.searchable-select.is-open .searchable-select-trigger{border-color:var(--theme-500);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-500) 18%,transparent);outline:none}.searchable-select-popup{position:fixed;z-index:200;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface);box-shadow:0 12px 30px var(--shadow-color)}.searchable-select-popup.without-search{grid-template-rows:minmax(0,1fr)}.number-stepper{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;width:100%;min-width:0;min-height:34px;overflow:hidden;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface)}.number-stepper:focus-within{border-color:var(--theme-500);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-500) 18%,transparent)}.number-stepper input,.number-stepper button{width:100%;min-width:0;min-height:32px;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit;padding:4px}.number-stepper input{appearance:textfield;text-align:center}.number-stepper input::-webkit-inner-spin-button,.number-stepper input::-webkit-outer-spin-button{margin:0;appearance:none}.number-stepper button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}.number-stepper button:first-child{border-right:1px solid var(--border-soft)}.number-stepper button:last-child{border-left:1px solid var(--border-soft)}.number-stepper button:disabled{cursor:not-allowed;opacity:.35}.searchable-select-search{position:relative;display:flex;align-items:center;border-bottom:1px solid var(--border-soft);color:var(--text-muted);padding:7px}.searchable-select-search svg{position:absolute;left:16px;pointer-events:none}.searchable-select-search input{padding-left:32px}.searchable-select-options{min-height:0;overflow-y:auto;padding:4px}.searchable-select-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:34px;border:0;border-radius:5px;background:transparent;color:var(--text);padding:0 4px 0 8px;text-align:left}.searchable-select-option-main{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;min-height:32px;border:0;background:transparent;color:inherit;padding:7px 0;text-align:left}.searchable-select-option-main span{min-width:0;overflow-wrap:anywhere}.searchable-select-option-main:disabled{cursor:not-allowed}.searchable-select-default{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:0 0 26px;border:0;border-radius:4px;background:transparent;color:var(--text-soft);padding:0}.searchable-select-default:hover,.searchable-select-default:focus-visible,.searchable-select-default.active{background:var(--theme-100);color:var(--theme-700);outline:none}.searchable-select-default.active{color:var(--theme-600)}.searchable-select-default.active svg{transform:rotate(35deg)}.searchable-select-option.nested{padding-left:30px}.searchable-select-group{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;min-height:34px;border:0;border-radius:5px;background:var(--surface-subtle);color:var(--text-muted);margin:3px 0;padding:7px 8px;text-align:left}.searchable-select-group:hover,.searchable-select-group.expanded{background:var(--theme-100)}.searchable-select-group.selected{color:var(--theme-700)}.searchable-select-group small{color:var(--text-soft);font-size:11px}.searchable-select-option.highlighted,.searchable-select-option:hover{background:var(--theme-50)}.searchable-select-option.selected{background:var(--theme-100);color:var(--theme-700);font-weight:700}.searchable-select-option.selected:hover,.searchable-select-option.selected.highlighted{background:var(--theme-200)}.searchable-select-option.disabled{cursor:not-allowed;opacity:.42}.searchable-select-empty{margin:0;color:var(--text-soft);padding:14px 10px;text-align:center}input.invalid{border-color:var(--danger-border);color:var(--danger)}.ghost-button,.primary-button,.text-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:14px;font-weight:400;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text);min-height:34px;padding:7px 11px}.primary-button{border-color:var(--theme-600);background:var(--theme-600);color:var(--on-theme);min-width:86px}.ghost-button:hover,.primary-button:hover,.text-button:hover,.icon-button:hover{border-color:var(--theme-500);color:var(--theme-700)}.primary-button:hover{background:var(--theme-700);color:var(--on-theme)}button:disabled{cursor:not-allowed;opacity:.5}button:disabled:hover{border-color:var(--border-strong);background:var(--surface);color:inherit}.primary-button:disabled:hover{border-color:var(--theme-600);background:var(--theme-600);color:var(--on-theme)}.icon-button{width:34px;padding:0}.role-pool,.timeline{display:grid;gap:8px}.timeline{position:relative}.timeline-event-enter-active,.timeline-event-leave-active,.reveal-report-enter-active,.reveal-report-leave-active{transition:opacity .22s ease,transform .22s ease}.timeline-event-move:not(.timeline-event-leave-active){transition:transform .22s ease}.timeline-event-enter-from,.reveal-report-enter-from,.timeline-event-leave-to,.reveal-report-leave-to{opacity:0;transform:translateY(-12px)}.timeline-event-leave-active{position:absolute;left:0;right:0;z-index:1}.reveal-report-leave-active{position:absolute;left:8px;right:8px;z-index:1}.night-death-record>.reveal-report-leave-active{left:0;right:0}.timeline-day-next-enter-active,.timeline-day-next-leave-active,.timeline-day-previous-enter-active,.timeline-day-previous-leave-active{transition:opacity .22s ease,transform .22s ease}.timeline-day-next-enter-from,.timeline-day-previous-leave-to{opacity:0;transform:translate(16px)}.timeline-day-next-leave-to,.timeline-day-previous-enter-from{opacity:0;transform:translate(-16px)}.role-pool-add{margin-top:12px}.role-row{display:grid;grid-template-columns:minmax(0,1fr) 68px 68px 34px;gap:6px;align-items:center}.role-row .number-stepper{grid-template-columns:20px minmax(26px,1fr) 20px}.player-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));align-items:start;gap:10px;min-width:0}.player-tile{display:grid;gap:8px;min-width:0;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);padding:10px}.player-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.status-pill{display:inline-flex;align-items:center;min-height:24px;border:1px solid var(--theme-200);border-radius:999px;background:var(--theme-50);color:var(--theme-800);font-size:12px;font-weight:650;padding:2px 8px}.status-pill.dead{border-color:var(--danger-border);background:var(--danger-surface);color:var(--danger)}.readonly-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.readonly-fields div{display:grid;gap:4px;min-width:0}.readonly-fields dt{color:var(--text-muted);font-size:12px;font-weight:650}.readonly-fields dd{min-height:34px;min-width:0;overflow-wrap:anywhere;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface-subtle);color:var(--text);margin:0;padding:7px 9px}.role-report-block{display:grid;gap:8px;border:1px solid var(--theme-200);border-radius:8px;background:var(--theme-50);color:var(--theme-800);padding:8px}.role-report-content{display:grid;gap:8px;min-width:0}.role-report-inline-fields{display:contents}.role-report-inline-fields>.role-report-enum-field{flex-basis:200px;min-width:min(200px,100%)}.strategist-report-block{container-type:inline-size}.strategist-report-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}.strategist-report-column{position:relative;display:grid;align-content:start;gap:8px;min-width:0}.strategist-report-column+.strategist-report-column:before{content:"";position:absolute;top:0;bottom:0;left:-8px;border-left:1px solid var(--border-soft)}.strategist-report-column>strong{font-size:14px}.strategist-report-column .field-inline{display:grid;gap:4px;width:100%;min-width:0}.strategist-report-column .searchable-select{min-width:0;max-width:100%}@container (max-width: 520px){.strategist-report-columns{grid-template-columns:minmax(0,1fr)}.strategist-report-column+.strategist-report-column:before{inset:-8px 0 auto;border-left:0;border-top:1px solid var(--border-soft)}}.role-report-date{display:flex;flex:0 0 auto;flex-direction:column;gap:2px}.death-night-label{color:var(--text-muted);font-size:12px}.event-row>.role-report-block{order:1;flex:1 0 100%;align-self:stretch;width:100%;min-width:0}.player-info-panel{display:grid;gap:4px;border:1px solid var(--theme-200);border-radius:8px;background:var(--theme-50);color:var(--theme-800);padding:8px}.player-info-panel strong{color:var(--theme-700)}.role-report-header,.psychic-report-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.role-report-divider{display:flex;flex:0 0 100%;align-items:center;gap:8px;color:var(--text-muted);font-size:12px;white-space:nowrap}.role-report-divider:before,.role-report-divider:after{content:"";flex:1 1 auto;height:1px;background:var(--border-soft)}.role-report-header{justify-content:space-between}.role-report-header strong,.psychic-report-row strong{flex:0 0 auto}.psychic-report-row select{flex:1 1 120px;width:auto;min-width:0}.psychic-report-row>.searchable-select,.role-report-inline-fields>.searchable-select{flex:1 1 120px;width:auto}.role-report-number-field{display:flex;flex:0 1 240px;align-items:center;gap:6px;width:min(240px,100%);min-width:160px}.role-report-number-field>span{flex:0 0 auto;white-space:nowrap}.role-report-number-field>.number-stepper{flex:1 1 140px;width:auto}.toggle{display:flex;grid-template-columns:none;align-items:center;gap:5px;color:var(--text-muted)}.toggle input{width:16px;min-height:16px}.timeline-header{align-items:center;justify-content:space-between;gap:10px}.timeline-header span,.timeline-pager{display:inline-flex;align-items:center;gap:8px}.timeline-pager .timeline-date{display:grid;gap:0;min-width:72px;text-align:center;color:var(--theme-700);line-height:1.15}.timeline-pager .timeline-date span{display:block;white-space:nowrap}.timeline-pager .timeline-date-night{border-bottom:1px solid var(--border-strong)}.visit-counter{display:flex;align-items:center;justify-content:center;min-height:100px;padding:0}.mobile-visit-counter,.section-float-nav{display:none}.visit-counter img{display:block;width:min(100%,315px);height:auto;object-fit:contain}.event-actions{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:-2px 0 10px;padding:2px 0 8px;background:color-mix(in srgb,var(--surface-strong) 98%,transparent)}.empty-state{margin:0;border:1px dashed var(--border);border-radius:8px;color:var(--text-soft);padding:12px}.event-row{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);padding:8px}.event-row strong{flex:0 0 auto;min-width:86px}.event-row select{flex:1 1 130px;width:auto;min-width:0}.event-row>.searchable-select,.event-row .psychic-report-row>.searchable-select,.event-row .role-report-inline-fields>.searchable-select{flex:1 1 130px;width:auto}.event-row .event-note{flex:2 1 210px;min-width:0}.event-row .icon-button{flex:0 0 34px}.night-death-record{position:relative;display:grid;flex:1 0 100%;gap:8px;width:100%;max-width:100%;min-width:0;border-top:1px solid var(--border-soft);padding-top:8px}.night-death-header,.night-death-fields{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.night-death-header{justify-content:space-between}.night-death-fields select{flex:1 1 130px;width:auto;min-width:0}.night-death-fields>.searchable-select{flex:1 1 130px;width:auto}.night-death-sources{display:grid;flex:1 0 100%;gap:6px;min-width:0}.night-death-source-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:6px;min-width:0}.night-death-sources>.text-button{justify-self:start}.night-death-fields .event-note{flex:2 1 210px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.result-panel{border-color:var(--theme-300);background:var(--theme-50)}.hint-list,.warnings ul{margin:0;padding-left:18px}.hint-list li,.warnings li{margin:7px 0}.status-banner{display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-items:center;border:1px solid var(--border-soft);border-radius:8px;margin-top:12px;padding:9px;background:var(--surface-strong)}.status-banner span{font-weight:750}.status-banner strong{color:var(--theme-700);font-size:20px}.status-banner small{grid-column:1/-1;color:var(--text-soft)}.status-banner.won{border-color:var(--theme-400);background:var(--theme-50)}.status-banner.won span{color:var(--theme-700)}.status-banner.running span{color:var(--warning-text)}.status-banner.lost{border-color:var(--danger-border);background:var(--danger-surface)}.status-banner.lost span{color:var(--danger)}.metric-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.metric-strip div{border:1px solid var(--border-soft);border-radius:8px;padding:9px;background:var(--surface-strong)}.metric-strip span{display:block;color:var(--text-soft);font-size:12px}.metric-strip strong{display:block;margin-top:4px;color:var(--theme-700);font-size:20px}.rank-list{position:relative;display:grid;gap:8px;margin:0;padding-left:22px}.rank-item-enter-active,.rank-item-leave-active,.risk-item-enter-active,.risk-item-leave-active,.rank-panel-enter-active,.rank-panel-leave-active{transition:opacity .22s ease,transform .22s ease}.rank-item-move:not(.rank-item-leave-active),.risk-item-move:not(.risk-item-leave-active){transition:transform .22s ease}.rank-item-enter-from,.risk-item-enter-from,.rank-panel-enter-from,.rank-item-leave-to,.risk-item-leave-to,.rank-panel-leave-to{opacity:0;transform:translateY(-10px)}.rank-item-leave-active{position:absolute;left:22px;right:0}.risk-item-leave-active{position:absolute;left:0;right:0}.execution-limit-warning{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--warning-border);border-radius:8px;background:var(--warning-surface);color:var(--warning-text);padding:10px}.execution-limit-warning svg{flex:0 0 auto;margin-top:2px}.execution-limit-warning p{margin:0;overflow-wrap:anywhere;line-height:1.45}.rank-list li{min-width:0;padding:8px 0;border-bottom:1px solid var(--border-soft)}.rank-list li:last-child{border-bottom:0}.rank-list span{font-weight:750}.rank-list strong{float:right;color:var(--danger)}.rank-list small{clear:both;display:block;overflow-wrap:anywhere;margin-top:5px;color:var(--text-soft);line-height:1.4}.risk-list{position:relative;display:grid;gap:8px}.risk-row{display:grid;grid-template-columns:74px 1fr 56px;gap:8px;align-items:center;min-width:0;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);padding:8px;transition:border-color .3s ease,background-color .3s ease}@media(prefers-reduced-motion:reduce){.timeline-event-enter-active,.timeline-event-leave-active,.timeline-event-move:not(.timeline-event-leave-active),.reveal-report-enter-active,.reveal-report-leave-active,.timeline-day-next-enter-active,.timeline-day-next-leave-active,.timeline-day-previous-enter-active,.timeline-day-previous-leave-active,.rank-item-enter-active,.rank-item-leave-active,.rank-item-move:not(.rank-item-leave-active),.risk-item-enter-active,.risk-item-leave-active,.risk-item-move:not(.risk-item-leave-active),.rank-panel-enter-active,.rank-panel-leave-active,.risk-row{transition-duration:.01ms}}.risk-row div{display:grid;gap:2px}.risk-row span,.risk-row small{color:var(--text-soft);font-size:12px}.risk-row small{grid-column:1/-1;overflow-wrap:anywhere;line-height:1.4}.risk-row meter{width:100%;accent-color:var(--theme-500)}.risk-row b{text-align:right}.risk-row.danger{border-color:var(--danger-border)}.risk-row.watch{border-color:var(--warning-border)}.risk-row.calm{border-color:var(--theme-400)}.warnings{grid-column:1/-1;border-color:var(--warning-border);background:var(--warning-surface)}.pre-inference-summary{margin:0 0 6px;color:var(--text-muted);font-size:13px}.pre-inference-panel small{color:var(--text-soft)}.pre-inference-findings{list-style:none;padding:0;margin:8px 0 0}.pre-inference-findings li{padding:8px 0;border-top:1px solid var(--border-soft)}.pre-inference-findings p{margin:6px 0 0;color:var(--text-soft);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.pre-inference-badge,.risk-row .pre-inference-badge,.rank-list .pre-inference-badge{color:var(--warning-text);font-size:12px;font-weight:600}.risk-pre-inference{grid-column:1/-1}.right-rail{position:relative}.conflict-details{border-top:1px solid var(--border-soft);padding-top:8px}.conflict-details-toggle{display:inline-flex;align-items:center;gap:6px}.conflict-details-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.conflict-details-toolbar .text-button{font-size:14px;white-space:nowrap}.conflict-details-toolbar .conflict-return{margin:0 0 0 auto}.conflict-details-content{min-width:0}.conflict-findings,.conflict-records{list-style:none;padding:0;margin:8px 0}.conflict-findings>li{padding:10px 0;border-bottom:1px solid var(--border-soft)}.conflict-finding-heading{display:flex;gap:8px;align-items:flex-start}.conflict-finding-heading strong{min-width:0;flex:1;font-size:14px;overflow-wrap:anywhere}.conflict-finding-heading small{flex-shrink:0;font-size:12px;color:var(--warning-text)}.conflict-findings p,.conflict-analysis-status{font-size:12px;line-height:1.6;color:var(--text-soft);margin:6px 0;overflow-wrap:anywhere}.conflict-records{max-height:280px;overflow-y:auto}.conflict-records>li{display:flex;align-items:center;gap:8px;margin:6px 0}.conflict-records span{flex:1;min-width:0;font-size:12px;overflow-wrap:anywhere}.conflict-records .icon-button{flex:0 0 30px;width:30px;height:30px}.conflict-record-origin{display:block;margin-top:3px;font-size:11px;color:var(--text-soft)}.conflict-focus-target{outline:2px solid var(--warning-text);outline-offset:3px}.conflict-return{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px}.event-actions .conflict-return{margin:0}.analysis-panel-move,.analysis-panel-enter-active,.analysis-panel-leave-active{transition:opacity .24s ease,transform .24s ease}.analysis-panel-leave-active{position:absolute;width:var(--analysis-panel-width);top:var(--analysis-panel-top);left:var(--analysis-panel-left);pointer-events:none}.analysis-panel-enter-from,.analysis-panel-leave-to{opacity:0;transform:translateY(-8px)}@media(prefers-reduced-motion:reduce){.panel-header{transition:none}.analysis-panel-move,.analysis-panel-enter-active,.analysis-panel-leave-active{transition-duration:.01ms}}@media(min-width:1181px){.home-site-footer{display:none}}@media(max-width:1180px){html,body,#app{height:auto}body{min-width:0;overflow:auto;overflow-x:hidden}#app{grid-template-rows:1fr auto;min-height:100vh;min-height:100dvh}.home-site-footer{padding-bottom:70px}.app-shell{display:block;height:auto;min-height:0;overflow:visible}.level-page.settings-page{overflow:visible}.level-page-shell .level-page-content{overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}.workspace{grid-template-columns:1fr;overflow:visible}.left-rail,.right-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.center-stage,.left-rail,.right-rail{overflow:visible;padding-right:0}.desktop-visit-counter,.desktop-site-footer{display:none}.mobile-visit-counter{display:flex;width:100%;min-height:100px}.section-float-nav{position:fixed;right:16px;bottom:16px;z-index:20;display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--surface-strong) 96%,transparent);box-shadow:0 8px 20px var(--shadow-color);transition:transform .18s ease}.section-float-nav.is-collapsed{transform:translate(calc(100% - 14px))}.section-float-nav button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:32px;padding:5px 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--theme-700);font-size:13px}.section-float-nav button:hover,.section-float-nav button:focus-visible{border-color:var(--theme-300);background:var(--theme-50);outline:none}.section-nav-toggle{flex:0 0 24px;width:24px;padding:3px}}@media(max-width:760px){html,body,#app{scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar,#app::-webkit-scrollbar{display:none;width:0;height:0}body{overflow-x:hidden}.app-shell{padding:12px}.center-stage{padding-bottom:0}.mobile-visit-counter{min-height:64px}.mobile-visit-counter img{width:min(100%,220px)}.topbar,.event-row,.night-death-fields{align-items:stretch;flex-direction:column}.event-row{width:100%;max-width:100%;overflow-x:clip}.event-row>.role-report-block{flex:none;align-self:stretch;width:100%;min-width:0;max-width:100%;overflow-x:clip}.event-row>.role-report-block .role-report-header,.event-row>.role-report-block .psychic-report-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;width:100%;min-width:0;max-width:100%}.event-row>.role-report-block .role-report-header>:not(.sr-only),.event-row>.role-report-block .psychic-report-row>:not(.sr-only){width:100%;min-width:0;max-width:100%}.event-row>.role-report-block span{overflow-wrap:anywhere}.topbar-actions{justify-content:flex-start}.event-row select,.night-death-fields select{flex:0 0 auto;min-height:34px;height:auto;padding-top:5px;padding-bottom:5px;line-height:1.35}.event-row .searchable-select,.night-death-fields .searchable-select,.psychic-report-row .searchable-select{flex:0 0 auto;min-height:34px;height:auto}.event-row .searchable-select-trigger,.night-death-fields .searchable-select-trigger,.psychic-report-row .searchable-select-trigger{min-height:34px;height:auto;line-height:1.35}.event-row .text-button,.event-row .icon-button{min-height:34px;padding-top:6px;padding-bottom:6px}.left-rail,.right-rail,.field-grid.two{grid-template-columns:1fr}.level-dialog-backdrop{align-items:flex-start;padding:8px}.level-library{max-height:calc(100vh - 16px);padding:12px}.level-library.level-page{max-height:none;padding:0}.level-grid,.field-grid.three{grid-template-columns:1fr}.level-role-row{grid-template-columns:repeat(2,minmax(0,1fr)) 34px;align-items:end}.level-role-row>.searchable-select{grid-column:1/-1}.level-role-row>.icon-button{grid-column:3}.level-role-count>span{display:block}.level-role-name{display:none}.event-row select,.night-death-fields select{width:100%}.night-death-record,.night-death-record>*,.night-death-record .role-report-block{min-width:0;max-width:100%}.night-death-record{flex:none;align-self:stretch;width:100%;margin:0;overflow-x:clip}.night-death-fields,.night-death-record .role-report-header,.night-death-record .psychic-report-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;width:100%;max-width:100%}.night-death-fields>:not(.sr-only),.night-death-record .role-report-header>:not(.sr-only),.night-death-record .psychic-report-row>:not(.sr-only){width:100%;min-width:0;max-width:100%}.night-death-fields span,.night-death-record .role-report-block span{overflow-wrap:anywhere}}.settings-page{display:grid;align-content:start;gap:18px;width:100%;min-height:0;margin:0;overflow-y:auto}.settings-content{display:grid;gap:18px;width:min(760px,100%);margin:0 auto;padding-bottom:48px}.settings-section h2{margin:0;color:var(--theme-700)}.onboarding-exercise-list{grid-column:1/-1;display:grid;gap:16px;min-width:0}.onboarding-exercise-group h3{margin:0 0 8px;font-size:14px;color:var(--text-muted)}.onboarding-group-toggle{display:flex;align-items:center;gap:8px;width:100%;border:0;padding:4px 0;color:inherit;background:transparent;text-align:left}.onboarding-group-toggle small{color:var(--text-soft)}.onboarding-group-toggle svg{margin-left:auto}.onboarding-exercise-group ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.onboarding-exercise-group li{display:grid;grid-template-columns:minmax(0,1fr) 34px;min-height:58px;overflow:hidden;border:1px solid var(--border-soft);border-radius:6px}.onboarding-exercise-open,.onboarding-exercise-reset{border:0;background:var(--surface);color:var(--text)}.onboarding-exercise-open{display:grid;align-content:center;gap:3px;min-width:0;padding:8px 10px;text-align:left}.onboarding-exercise-reset{display:grid;place-items:center;padding:0;border-left:1px solid var(--border-soft)}.onboarding-exercise-open:hover,.onboarding-exercise-reset:not(:disabled):hover{background:var(--surface-muted)}.onboarding-exercise-reset:disabled{opacity:.4}.onboarding-exercise-open:focus-visible,.onboarding-exercise-reset:focus-visible,.onboarding-group-toggle:focus-visible{outline:2px solid var(--theme-400);outline-offset:-2px}.onboarding-exercise-name{overflow-wrap:anywhere;font-size:14px}.onboarding-exercise-status{color:var(--text-soft);font-size:12px}@media(max-width:600px){.onboarding-exercise-group ul{grid-template-columns:repeat(2,minmax(0,1fr))}.onboarding-exercise-open{padding:8px}}.settings-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;border-top:1px solid var(--border-soft);padding-top:16px}.settings-section h2{grid-column:1/-1;font-size:18px}.settings-field{display:grid;align-content:start;gap:6px;min-width:0}.settings-field>label,.settings-label{color:var(--text-muted);font-size:13px;font-weight:700}.settings-field small{color:var(--text-soft);line-height:1.4}.theme-swatches{display:flex;flex-wrap:wrap;gap:8px}.theme-swatches>button,.custom-color{width:32px;height:32px;overflow:hidden;border:2px solid transparent;border-radius:6px;background:var(--swatch, conic-gradient(red, yellow, lime, cyan, blue, magenta, red));padding:2px}.theme-swatches>button.selected,.custom-color.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--theme-400)}.custom-color input{width:100%;height:100%;opacity:0;cursor:pointer}@media(max-width:600px){.settings-section{grid-template-columns:1fr}}.onboarding-welcome-backdrop{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:16px;background:#00000073}.onboarding-welcome{width:min(460px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:20px;border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);color:var(--text)}.onboarding-welcome header,.onboarding-welcome footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.onboarding-welcome header h2{margin:0;font-size:18px}.onboarding-welcome header .icon-button{margin-left:auto}.onboarding-welcome p{color:var(--text-muted);font-size:14px;line-height:1.6}.onboarding-welcome footer{justify-content:flex-end;margin-top:18px}.driver-popover.onboarding-popover{animation:none;width:min(320px,100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);color:var(--text);font-family:inherit}.driver-popover[data-guide-snapshot]{pointer-events:none}.onboarding-popover .driver-popover-title{font-size:16px;line-height:1.4}.onboarding-popover .driver-popover-description{max-height:calc(100dvh - 145px);overflow:auto;color:var(--text-muted);font-size:13px;line-height:1.6}.onboarding-popover:has(.guide-comparison) .driver-popover-description{max-height:min(420px,100dvh - 190px);overflow-y:auto;overscroll-behavior:contain}.guide-comparison>strong{display:block;margin:10px 0}.guide-case{border-top:1px solid var(--border-soft);padding:8px 0}.guide-case dl{margin:0}.guide-case dl>div{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;margin:4px 0}.guide-case dt{color:var(--text-muted);font-weight:700}.guide-case dd{margin:0;overflow-wrap:anywhere}.driver-popover.onboarding-popover .driver-popover-arrow{width:12px;height:12px;border:0;background:var(--surface-strong);transform:rotate(45deg);z-index:1}.driver-popover.onboarding-popover .driver-popover-arrow-side-top{top:auto;bottom:-7px;border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.driver-popover.onboarding-popover .driver-popover-arrow-side-bottom{bottom:auto;top:-7px;border-top:1px solid var(--border);border-left:1px solid var(--border)}.driver-popover.onboarding-popover .driver-popover-arrow-side-left{left:auto;right:-7px;border-right:1px solid var(--border);border-top:1px solid var(--border)}.driver-popover.onboarding-popover .driver-popover-arrow-side-right{right:auto;left:-7px;border-left:1px solid var(--border);border-bottom:1px solid var(--border)}.onboarding-popover .driver-popover-footer button{border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);text-shadow:none;font-family:inherit;font-size:12px;padding:7px 10px}.onboarding-popover .driver-popover-footer .driver-popover-next-btn{background:var(--theme-600);color:var(--on-accent, #fff);border-color:var(--theme-600)}.onboarding-popover .driver-popover-progress-text{font-size:11px;color:var(--text-soft);min-width:0;flex:1 1 0;overflow:hidden;white-space:nowrap;text-align:left;line-height:1.4}.onboarding-progress-content{display:block;width:max-content;white-space:nowrap}@media(prefers-reduced-motion:reduce){.onboarding-popover .driver-popover-progress-text{overflow-x:auto;scrollbar-width:none}.onboarding-popover .driver-popover-progress-text::-webkit-scrollbar{display:none}}.onboarding-popover .driver-popover-footer{align-items:center;gap:8px}.onboarding-popover .driver-popover-navigation-btns{flex:0 0 auto}.onboarding-popover .driver-popover-close-btn.onboarding-skip{position:static;width:auto;height:auto;line-height:normal}.driver-active .searchable-select-popup{z-index:1000000011}.driver-active .searchable-select-popup,.driver-active .searchable-select-popup *{pointer-events:auto}.driver-active .searchable-select-default{pointer-events:none;opacity:.35}.driver-active .driver-active-element.onboarding-action-complete{pointer-events:none;opacity:.6}.tutorial-session-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:8px 12px;border-bottom:1px solid var(--warning-border);background:var(--warning-surface);color:var(--warning-text);font-size:13px}.app-shell.has-tutorial{grid-template-rows:auto auto minmax(0,1fr)}
