:root{--font-serif:"Noto Serif SC", "Georgia", serif;--font-mono:"Consolas", "Menlo", monospace;--font-size:16px;--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.15s;--dur-normal:.3s;--dur-slow:.55s;--dur-line:.42s;--z-toast:100;--bg-base-override:var(--bg-base);--bg-active:var(--bg-base-override,var(--bg-base));--space-page:15px;--space-sm:8px;--space-md:10px;--control-size:32px;--radius:8px;--accent:var(--theme-color);--accent-dim:color-mix(in srgb, var(--theme-color) 15%, transparent);--border-focus:color-mix(in srgb, var(--theme-color) 60%, transparent);--selection:color-mix(in srgb, var(--theme-color) 10%, transparent);--text-primary:var(--text-tone);--text-secondary:color-mix(in srgb, var(--text-tone) 50%, var(--bg-active));--text-muted:color-mix(in srgb, var(--text-tone) 30%, var(--bg-active))}[data-theme=light]{--bg-base:#fff;--bg-surface:color-mix(in srgb, var(--bg-active) 70%, white);--bg-elevated:color-mix(in srgb, var(--bg-active) 30%, white);--bg-hover:#00000014;--border:#0000000f;--text-tone:color-mix(in srgb, black 95%, var(--theme-color));--text-inverse:#fff;--selection-bg:#0000001a;--success:#2e7d4f;--danger:#9b2828;--danger-bg:#9b28280f;--overlay-bg:#000000a6;--shadow-md:0 6px 24px #0000001a;--shadow-lg:0 20px 56px #00000026;--log-req:#2e7d4f0f;--log-res:#1e508c0f;--log-err:#9b282812}[data-theme=dark]{--bg-base:#000;--bg-surface:color-mix(in srgb, var(--bg-active) 70%, black);--bg-elevated:color-mix(in srgb, var(--bg-active) 30%, black);--bg-hover:#ffffff05;--border:#ffffff14;--text-tone:color-mix(in srgb, white 100%, var(--theme-color));--text-inverse:#000;--selection-bg:#ffffff0d;--success:#5a9f6e;--danger:#c45858;--danger-bg:#c458580f;--overlay-bg:#000000a6;--shadow-md:0 6px 24px #0006;--shadow-lg:0 20px 56px #0009;--log-req:#5a9f6e12;--log-res:#5a789f12;--log-err:#c4585817}*,:before,:after{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0}.story-line,.story-line *,.player-choice-text,.choice-text,.textarea,.input,.edit-textarea,.custom-choice-input{-webkit-user-select:text;user-select:text}html{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y;height:100%;overflow:hidden}body{overscroll-behavior:none;height:100%;font-family:var(--font-serif);font-size:var(--font-size);background:var(--bg-active);color:var(--text-primary);-webkit-font-smoothing:antialiased;touch-action:pan-x pan-y;line-height:1.5;overflow:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:2px}::selection{background:var(--selection);color:var(--text-primary)}#app{flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.hidden,.screen-hidden{display:none!important}.material-symbols-rounded{font-variation-settings:"FILL" 0, "wght" 300, "GRAD" 0, "opsz" 24;vertical-align:-3px;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:18px;line-height:1}.screen{background:var(--bg-active);flex-direction:column;min-width:0;min-height:0;display:flex;position:absolute;inset:0}.screen-enter-right{animation:slide-in-right var(--dur-slow) var(--ease-out) both}.screen-exit-left{animation:slide-out-left var(--dur-slow) var(--ease-out) both}.screen-enter-left{animation:slide-in-left var(--dur-slow) var(--ease-out) both}.screen-exit-right{animation:slide-out-right var(--dur-slow) var(--ease-out) both}.screen-fade-in{animation:fadeIn var(--dur-slow) ease both}.screen-fade-out{animation:.35s both fadeOut}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-out-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-24%)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-24%)}to{opacity:1;transform:translate(0)}}@keyframes slide-out-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.top-bar{background:var(--bg-active);flex-shrink:0;align-items:center;gap:5px;min-width:0;min-height:50px;padding:0 15px;display:flex}.top-bar-back{color:var(--accent);cursor:pointer;font-size:14px;font-family:var(--font-serif);transition:background var(--dur-fast) ease;background:0 0;border:none;border-radius:6px;align-items:center;gap:5px;padding:6px 10px;display:flex}.top-bar-back:hover{background:var(--bg-hover)}.top-bar-title{letter-spacing:1px;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.top-bar-logo{color:var(--accent);letter-spacing:2px;font-size:18px;font-weight:700}.top-bar-game-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:140px;font-size:14px;overflow:hidden}.top-bar-actions{flex-shrink:0;align-items:center;margin-left:auto;display:flex}.game-top-main{flex:1;justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.game-top-status{align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.btn{font-family:var(--font-serif);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast) ease, color var(--dur-fast) ease, opacity var(--dur-fast) ease;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:8px 10px;font-size:14px;text-decoration:none;display:inline-flex}.btn:focus-visible,.choice-btn:focus-visible,.settings-tab:focus-visible,.color-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:hover{background:var(--bg-hover);color:var(--text-primary)}.btn:active{opacity:.75}.btn.active{background:var(--accent-dim);color:var(--accent)}.btn[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);color:var(--text-inverse)!important}.btn-primary:hover{filter:brightness(1.06);background:var(--accent)!important;color:var(--text-inverse)!important}.btn-primary:active{opacity:.85;filter:none}.btn-ghost{background:0 0}.btn-ghost:hover{background:var(--bg-hover)}.btn.active:hover{background:var(--accent-dim);color:var(--accent)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:var(--danger-bg);color:var(--danger)}.btn-sm{padding:4px 8px;font-size:14px}.field{flex-direction:column;gap:5px;display:flex}.field-row{align-items:flex-end;gap:10px;min-width:0;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:15px;min-width:0;display:flex}.field-label{color:var(--text-secondary);letter-spacing:0;align-items:center;gap:5px;font-size:12px;display:flex}.field-hint{color:var(--text-muted);font-size:12px}.input,.textarea,.select{border:1px solid var(--border);width:100%;font-family:var(--font-serif);color:var(--text-primary);background:var(--bg-elevated);transition:border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;resize:none;appearance:none;border-radius:8px;outline:none;padding:8px 15px;font-size:14px}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 .4px var(--accent-dim)}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.textarea{min-height:50px;line-height:1.8}.input-error{border-color:var(--danger)!important;box-shadow:0 0 4px var(--danger-bg)!important}.select{cursor:pointer;appearance:none;padding-right:30px}.select-wrapper{width:100%;display:flex;position:relative}.select-wrapper:after{content:"expand_more";pointer-events:none;color:var(--accent);font-family:Material Symbols Rounded;font-size:18px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.switch{flex-shrink:0;width:44px;height:24px;margin-left:auto;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch-slider{cursor:pointer;background-color:var(--border);border-radius:999px;transition:all .2s;position:absolute;inset:0}.switch-slider:before{content:"";background-color:var(--text-primary);border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;bottom:3px;left:3px}input:checked+.switch-slider{background-color:var(--accent)}input:checked+.switch-slider:before{background-color:var(--bg-base);transform:translate(20px)}.range{--range-progress:0%;appearance:none;cursor:pointer;background:linear-gradient(to right, var(--accent) 0 var(--range-progress), var(--border) var(--range-progress) 100%);border-radius:2px;outline:none;width:100%;height:4px}.range::-moz-range-track{background:linear-gradient(to right, var(--accent) 0 var(--range-progress), var(--border) var(--range-progress) 100%);border-radius:2px;height:4px}.range::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;width:14px;height:14px;box-shadow:0 0 4px var(--accent-dim);transition:transform var(--dur-fast) ease;border-radius:50%}.range::-webkit-slider-thumb:hover{transform:scale(1.2)}.range::-moz-range-thumb{background:var(--accent);cursor:pointer;width:14px;height:14px;box-shadow:0 0 4px var(--accent-dim);border:0;border-radius:50%}.vol-row{align-items:center;gap:10px;display:flex}.vol-pct{color:var(--text-muted);text-align:right;flex-shrink:0;font-size:12px}.page-body{flex-direction:column;flex:1;gap:20px;min-height:0;padding:10px 15px;display:flex;overflow-y:auto}.page-section{flex-direction:column;gap:10px;display:flex}.setup-page{overscroll-behavior:none;background:var(--bg-active);flex-direction:column;flex:1;padding:0;display:flex;overflow-y:auto}.setup-header{text-align:center;flex-shrink:0;padding:35px 25px 15px}.setup-title{color:var(--accent);font-size:24px}.setup-subtitle{color:var(--text-muted);font-size:14px}.setup-body{flex-direction:column;flex:1;gap:12px;width:100%;max-width:540px;margin:0 auto;padding:0 25px 30px;display:flex}.setup-tabs{background:var(--bg-surface);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;display:grid}.setup-tab{height:40px;color:var(--text-secondary);font-family:var(--font-serif);cursor:pointer;transition:background var(--dur-fast) ease, color var(--dur-fast) ease;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:5px;font-size:14px;display:inline-flex}.setup-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.setup-tab.active{background:var(--bg-elevated);color:var(--accent)}.setup-panel{flex-direction:column;gap:16px;display:none}.setup-panel.active{display:flex}.setup-empty{min-height:100px;color:var(--text-muted);background:var(--bg-surface);border-radius:8px;justify-content:center;align-items:center;gap:5px;display:flex}.setup-syncing{justify-content:flex-start;min-height:50px;padding:8px 10px;font-size:12px}.setup-sync-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.setup-section-label{color:var(--accent);letter-spacing:1px;text-transform:uppercase;align-items:center;gap:5px;font-size:12px;display:flex}.setup-recent{flex-direction:column;display:flex}.setup-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.recent-save-item{background:var(--bg-elevated);transition:background var(--dur-fast) ease;border-radius:8px;align-items:center;gap:12px;min-width:0;padding:10px 14px;display:flex}.recent-save-item:hover{background:var(--bg-hover)}.recent-save-info{flex:1;min-width:0}.recent-save-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.recent-save-meta{color:var(--text-muted);font-size:12px}.recent-save-actions{flex-shrink:0;align-items:center;display:flex}.recent-save-load{margin-left:6px}#su-recent-list{flex-direction:column;gap:10px;display:flex}.settings-tabs{background:var(--bg-active);scrollbar-width:none;flex-shrink:0;padding:0 15px;display:flex;overflow:auto hidden}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab{font-family:var(--font-serif);color:var(--text-muted);cursor:pointer;transition:all var(--dur-fast) ease;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:5px;padding:4px 8px;font-size:14px;display:flex}.settings-tab:hover{color:var(--text-secondary);background:var(--bg-hover)}.settings-tab.active{color:var(--accent);background:var(--accent-dim)}.key-count{color:var(--text-muted);text-align:right;font-size:12px}.model-chips{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.prompt-footer{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.color-grid{grid-template-columns:repeat(10,1fr);gap:5px;margin-top:4px;display:grid}.color-swatch{aspect-ratio:1;cursor:pointer;width:100%;transition:transform var(--dur-fast) ease, border-color var(--dur-fast) ease;appearance:none;border:2px solid #0000;border-radius:50%}.color-swatch.selected{border-color:var(--accent)}.color-swatch[data-accent=\#2F78B7]{background:#2f78b7}.color-swatch[data-accent=\#248C8C]{background:#248c8c}.color-swatch[data-accent=\#2F8C56]{background:#2f8c56}.color-swatch[data-accent=\#6F9A2A]{background:#6f9a2a}.color-swatch[data-accent=\#B59A24]{background:#b59a24}.color-swatch[data-accent=\#C0842C]{background:#c0842c}.color-swatch[data-accent=\#C46632]{background:#c46632}.color-swatch[data-accent=\#B64A3A]{background:#b64a3a}.color-swatch[data-accent=\#B63F62]{background:#b63f62}.color-swatch[data-accent=\#7B55BF]{background:#7b55bf}.color-swatch[data-color=\#f0f4f8]{background:#f0f4f8}.color-swatch[data-color=\#f0f0f8]{background:#f0f0f8}.color-swatch[data-color=\#f0f7f0]{background:#f0f7f0}.color-swatch[data-color=\#e8f4e8]{background:#e8f4e8}.color-swatch[data-color=\#fef9f0]{background:#fef9f0}.color-swatch[data-color=\#fff8f0]{background:#fff8f0}.color-swatch[data-color=\#faf0ea]{background:#faf0ea}.color-swatch[data-color=\#f4efe6]{background:#f4efe6}.color-swatch[data-color=\#ffffff]{background:#fff}.color-swatch[data-color=\#f5f0ff]{background:#f5f0ff}.color-swatch[data-color=\#0d1117]{background:#0d1117}.color-swatch[data-color=\#0f1923]{background:#0f1923}.color-swatch[data-color=\#0d1a0d]{background:#0d1a0d}.color-swatch[data-color=\#1a1508]{background:#1a1508}.color-swatch[data-color=\#111111]{background:#111}.color-swatch[data-color=\#1a0d0d]{background:#1a0d0d}.color-swatch[data-color=\#0c0e13]{background:#0c0e13}.color-swatch[data-color=\#12111a]{background:#12111a}.color-swatch[data-color=\#0d0d1a]{background:#0d0d1a}.color-swatch[data-color=\#1a0d1a]{background:#1a0d1a}.game-screen{flex-direction:column;flex:1;display:flex;overflow:hidden}.text-area{scroll-behavior:auto;overscroll-behavior:none;outline:none;flex:1;min-height:0;overflow-y:auto}.text-container{flex-direction:column;width:100%;max-width:800px;margin:0 auto;padding:0 20px;display:flex}.story-line{opacity:0;transition:opacity var(--dur-line) ease, transform var(--dur-line) var(--ease-out);color:var(--text-primary);overflow-wrap:anywhere;margin-bottom:10px;font-size:16px;line-height:1.8;transform:translateY(4px)}.story-line.streaming,.story-line.visible{opacity:1;transform:translateY(0)}.story-line.click-to-continue{cursor:pointer}.story-line.click-to-continue:after{content:none}.message-block.click-to-continue{cursor:pointer}.message-block.click-to-continue:after{content:none}.continue-prompt{justify-content:flex-start;width:100%;margin-top:10px;font-size:12px;line-height:1.5}.floating-context-menu{z-index:10000;background:var(--bg-elevated);transform-origin:0 0;animation:menu-fade-in .12s var(--ease-out) both;box-shadow:var(--shadow-md);border-radius:8px;flex-direction:column;display:flex;position:fixed}.floating-context-menu.closing{pointer-events:none;animation:.1s both menu-fade-out}@keyframes menu-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes menu-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.97)}}.floating-context-menu .menu-item{color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:5px;width:100%;padding:5px 8px;font-size:14px;transition:background .15s,color .15s;display:flex}.floating-context-menu .menu-item:hover{background:var(--bg-hover)}.floating-context-menu .menu-item .material-symbols-rounded{font-size:18px}.menu-separator{background:var(--border);height:1px;margin:4px}.floating-context-menu .danger-menu-item{color:var(--danger)}.stream-cursor{width:2px;height:var(--font-size);vertical-align:-2px;background-color:var(--text-primary);border-radius:1px;margin-left:2px;animation:.75s step-end infinite cur-blink;display:inline-block}@keyframes cur-blink{to{opacity:0}0%{opacity:1}}.speech-line{display:flex}.speech-content{flex:1;min-width:0}.speech-header{align-items:center;display:flex}.speech-controls{flex-shrink:0;margin-left:auto;display:inline-flex}.speech-text{line-height:1.8;display:block}.speech-replaying .speech-text:after,.voice-detail-text.speech-replaying:after{content:"";vertical-align:-2px;background:var(--accent);width:2px;height:1em;margin-left:2px;display:inline-block}.tts-inline-btn.playing{background:var(--bg-hover)}.speaker-name{color:var(--text-secondary);align-items:center;font-size:14px;display:inline-flex}.turn-divider{color:var(--text-muted);align-items:center;gap:10px;margin:16px 0;font-size:14px;display:flex}.divider-line{background:var(--border);flex:1;height:1px}.player-choice-line{-webkit-user-select:none;user-select:none;width:100%;color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:5px;padding:0;font-size:14px;display:flex;position:relative}.player-choice-text{text-align:center;overflow-wrap:anywhere;max-width:calc(100% - 80px);line-height:1.8}.choices-area{width:100%;max-width:800px;margin:0 auto;padding:0 20px 20px}.choices-title{color:var(--accent);letter-spacing:1px;text-transform:uppercase;align-items:center;gap:5px;margin-bottom:8px;font-size:14px;display:flex}.choices-list{flex-direction:column;gap:5px;display:flex}.choice-btn{text-align:left;background:var(--bg-elevated);width:100%;min-height:44px;color:var(--text-primary);font-family:var(--font-serif);cursor:pointer;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) ease, color var(--dur-fast) ease;border:none;border-radius:8px;align-items:center;gap:5px;padding:8px 10px;font-size:14px;line-height:1.5;display:none}.choice-btn[hidden]{display:none!important}.choice-btn.visible{transition:opacity .3s ease, background var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease;display:flex}.choice-btn:hover{background:var(--bg-hover)}.choice-btn.selected{background:var(--accent-dim)}.choice-num{background:var(--accent-dim);width:20px;height:20px;transition:all var(--dur-fast) ease;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.choice-btn:hover .choice-num{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.choice-text{overflow-wrap:anywhere;flex:1;min-width:0}.turn-badge{color:var(--text-muted);flex-shrink:0;align-items:center;gap:5px;font-size:12px;display:flex}.turn-badge strong{color:var(--accent)}.music-badge{color:var(--accent);align-items:center;gap:5px;min-width:0;font-size:12px;display:flex;overflow:hidden}.music-tags-container{flex-wrap:nowrap;align-items:center;gap:5px;min-width:0;display:flex;overflow:hidden}.music-tag{transition:all var(--dur-fast) ease;white-space:nowrap;border-radius:8px;align-items:center;padding:2px 4px;font-size:12px;display:inline-flex}.music-tag.tag-style{background:var(--accent-dim);color:var(--accent)}.music-tag.tag-mood{background:var(--bg-hover);color:var(--text-secondary)}.music-icon{display:inline-block}.save-card{background:var(--bg-elevated);transition:background var(--dur-fast) ease;border-radius:8px;align-items:center;gap:12px;min-width:0;padding:12px 14px;display:flex}.save-card:hover{background:var(--bg-hover)}.save-card-info{flex:1;min-width:0}.save-card-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.save-card-meta{color:var(--text-muted);margin-top:2px;font-size:11px}.save-card-actions{flex-shrink:0;gap:4px;display:flex}.logs-section{gap:8px!important}.logs-header{justify-content:space-between;align-items:center;display:flex}.log-list{flex-direction:column;gap:5px;display:flex}.log-item{border-radius:8px;overflow:hidden}.log-request{background:var(--log-req)}.log-response{background:var(--log-res)}.log-error{background:var(--log-err)}.log-item-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast) ease;align-items:center;padding:8px 10px;display:flex}.log-item-header:hover{background:var(--bg-hover)}.log-icon{margin-right:5px}.log-request .log-icon{color:var(--success)}.log-response .log-icon{color:var(--accent)}.log-error .log-icon{color:var(--danger)}.log-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.log-meta{color:var(--text-muted);flex-shrink:0;font-size:11px}.log-expand{color:var(--text-muted);transition:transform var(--dur-fast) ease}.log-content{font-family:var(--font-serif);border-top:1px solid var(--border);color:var(--text-secondary);white-space:pre-wrap;word-break:break-all;max-height:300px;padding:8px 10px;font-size:11px;line-height:1.5;overflow-y:auto}.voice-detail{flex-direction:column;gap:10px;display:flex}.voice-detail-text{font-family:var(--font-serif);color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.8}.voice-meta-grid{grid-template-columns:auto minmax(0,1fr);gap:5px 10px;display:grid}.voice-meta-grid span{color:var(--text-muted)}.voice-meta-grid b{color:var(--text-secondary);overflow-wrap:anywhere;font-weight:400}.empty-state{text-align:center;color:var(--text-muted);padding:20px;font-size:14px}.error-box{background:var(--danger-bg);color:var(--danger);word-break:break-all;overflow-wrap:anywhere;white-space:pre-wrap;border-radius:8px;flex-wrap:wrap;align-items:flex-start;gap:10px;margin:10px 0;padding:8px 10px;font-size:14px;line-height:1.5;display:flex}.error-icon{flex-shrink:0;margin-top:2px}.error-msg{word-break:break-all;overflow-wrap:anywhere;white-space:pre-wrap;flex:1}.retry-btn{flex-shrink:0;margin-left:auto}.loading-line{color:var(--text-muted);align-items:center;gap:5px;margin-bottom:10px;font-size:14px;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.6s linear infinite spin;display:inline-block}.btn .spinner{border-color:var(--border)!important;border-top-color:currentColor!important}@keyframes spin{to{transform:rotate(360deg)}}.tag{background:var(--accent-dim);color:var(--accent);border-radius:8px;padding:2px 4px;font-size:12px;display:inline-flex}.toast-container{z-index:var(--z-toast);pointer-events:none;flex-direction:column;align-items:flex-end;gap:5px;display:flex;position:fixed;bottom:15px;right:15px;transform:none}.toast{background:var(--bg-elevated);animation:toast-in .18s var(--ease-out) both;box-shadow:var(--shadow-md);border-radius:8px;padding:8px 10px;font-size:14px;transition:opacity .18s,transform .18s}.toast.leaving{opacity:0;transform:translateY(8px)scale(.95)}.toast.success{color:var(--success)}.toast.error{color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(4px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=600px){.setup-header{padding:20px 15px 15px}.setup-body{padding:10px 15px 20px}.text-container{padding:0 15px}.choices-area{padding:0 15px 15px}.game-screen .top-bar{flex-wrap:wrap;row-gap:5px;padding-top:10px;padding-bottom:10px}.game-screen .top-bar-logo{flex:1}.game-screen .top-bar-actions{margin-left:0}.game-top-main{flex-basis:100%;order:2}.game-top-status{justify-content:space-between;width:100%}.recent-save-item,.save-card{align-items:flex-start}.music-tags-container{justify-content:flex-end}.confirm-actions{justify-content:stretch}.confirm-actions .btn{flex:1}}.confirm-overlay{background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;opacity:0;pointer-events:auto;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:fixed;inset:0}.confirm-overlay.active{opacity:1}.confirm-box{background:var(--bg-surface);width:90%;max-width:400px;box-shadow:var(--shadow-lg);border-radius:8px;flex-direction:column;gap:10px;max-height:min(85vh,600px);padding:15px;transition:transform .2s cubic-bezier(.16,1,.3,1);display:flex;overflow-y:auto;transform:scale(.92)}.confirm-overlay.active .confirm-box{transform:scale(1)}.confirm-title{color:var(--accent);font-size:16px}.confirm-msg{color:var(--text-secondary);font-size:14px;line-height:1.5}.modal-preformatted{text-align:left;overflow-wrap:anywhere;max-height:min(48vh,420px);margin:0;overflow-y:auto}.modal-info-grid{font-size:14px;line-height:1.5}.modal-info-grid span{white-space:nowrap}.modal-info-grid b{color:var(--text-primary)}.confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.auth-toggle:hover{text-decoration:underline}.message-block{cursor:default;flex-direction:column;margin-top:10px;display:flex;position:relative}.message-toolbar{background:var(--bg-surface);border:1px solid var(--border);opacity:0;pointer-events:none;max-height:0;transition:opacity var(--dur-fast) ease, max-height var(--dur-fast) ease, margin-top var(--dur-fast) ease;-webkit-user-select:none;user-select:none;z-index:10;border-radius:6px;align-self:flex-end;gap:4px;margin-top:0;padding:2px;display:inline-flex;position:static;overflow:hidden}.text-container.edit-mode .message-action-host>.message-toolbar{opacity:1;pointer-events:auto;max-height:38px;margin-top:5px}.player-choice-line>.message-toolbar{flex-basis:100%;margin-left:auto}.message-toolbar .btn{gap:4px;height:auto;padding:2px 5px;font-size:11px}.message-toolbar .material-symbols-rounded{vertical-align:middle;margin-top:-1px;font-size:14px!important}.message-edit-box{background:var(--bg-surface);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-md);cursor:default;border-radius:8px;flex-direction:column;gap:5px;margin-top:10px;padding:10px;display:flex}.message-edit-box .edit-textarea{resize:vertical;min-height:140px}.edit-choice-options{flex-direction:column;gap:5px;display:flex}.edit-option-btn{background:var(--bg-elevated);width:100%;color:var(--text-primary);font-family:var(--font-serif);text-align:left;cursor:pointer;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;line-height:1.5;display:flex}.edit-option-btn:hover,.edit-option-btn.active{background:var(--accent-dim)}.edit-option-btn span:last-child{overflow-wrap:anywhere;flex:1}.custom-choice-wrap.choice-btn{cursor:default;align-items:center;display:flex}.custom-choice-wrap.choice-btn:focus-within{background:var(--accent-dim)}.custom-choice-wrap.choice-btn:hover .choice-num,.custom-choice-wrap.choice-btn:focus-within .choice-num{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.custom-choice-form{flex:1;gap:5px;display:flex}.custom-choice-input{min-width:0;font-family:inherit;font-size:inherit;color:var(--text-primary);height:28px;caret-color:var(--accent);background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;line-height:1}.custom-choice-input::placeholder{color:var(--text-muted)}button.custom-choice-send{border-radius:50%;flex-shrink:0;width:28px;min-width:28px;height:28px;min-height:28px}.context-usage-btn{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.context-usage-btn.ok{color:var(--accent)}.context-usage-btn.unknown{color:var(--text-muted)}.context-usage-btn.warn{color:var(--accent)}.context-usage-btn.critical{color:var(--danger)}.context-usage-ring{width:28px;height:28px;display:block}.context-usage-track,.context-usage-progress{fill:none;stroke-width:4px}.context-usage-track{stroke:var(--border)}.context-usage-progress{stroke:currentColor;stroke-linecap:round;transform-origin:14px 14px;transition:stroke-dashoffset var(--dur-med) ease;transform:rotate(-90deg)}.context-usage-ring text{fill:currentColor;font-size:12px;font-family:var(--font-serif)}.auth-error-box{background:var(--danger-bg);color:var(--danger);word-break:break-all;border-radius:8px;padding:8px 10px;font-size:12px}.auth-toggle-btn{color:var(--accent);cursor:pointer;text-align:right;-webkit-user-select:none;user-select:none;font-size:12px}.auth-toggle-btn:hover{text-decoration:underline}.auth-box .confirm-actions{margin-top:10px}.text-area.typing-active{scroll-behavior:auto}.btn-icon{aspect-ratio:1;border-radius:50%;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;display:inline-flex}.empty-state-hint{color:var(--text-muted);margin-top:8px;display:block}.save-card-tag{margin-left:5px}.flex-1{flex:1}.align-self-end{align-self:flex-end}.cloud-sync-section{border-top:1px solid var(--border);padding-top:10px}.cloud-sync-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.cloud-sync-status{color:var(--text-secondary);font-size:14px}.cloud-sync-btn{border:1px solid var(--border);margin-left:auto}.settings-btn-row{flex-wrap:wrap;gap:10px;display:flex}.settings-backup-btn{border:1px solid var(--border);flex:1}.backup-row{align-items:center;gap:10px;min-width:0;display:flex}
