.message-bubble{display:flex;flex-direction:column;max-width:85%;animation:slideUp var(--transition-normal) ease forwards}.message-user{align-self:flex-end;align-items:flex-end}.message-assistant{align-self:flex-start;align-items:flex-start}.message-header,.message-footer{padding:0 var(--spacing-sm);margin-bottom:var(--spacing-xs)}.message-footer{margin-bottom:0;margin-top:var(--spacing-xs)}.message-author{font-size:.75rem;font-weight:500;color:var(--text-muted);letter-spacing:.02em}.message-content{padding:var(--spacing-md) var(--spacing-lg);border-radius:16px;line-height:1.7;white-space:pre-wrap;word-wrap:break-word}.message-user .message-content{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:var(--bg-primary);border-bottom-right-radius:4px}[data-theme=light] .message-user .message-content{color:#fff}[data-theme=light] .message-user .prose-action{color:#ffffffb3}[data-theme=light] .message-user .prose-dialogue{color:#fff}[data-theme=light] .message-user .prose-attribution{color:#ffffffb3}.message-assistant .message-content{background:var(--bg-secondary);border:1px solid var(--border-subtle);color:var(--text-primary);border-bottom-left-radius:4px}.prose-action{font-style:italic;color:var(--text-muted);opacity:.85}.message-user .prose-action{color:#0a0a0fa6;font-style:italic}.prose-dialogue{color:var(--text-primary);font-weight:400;font-style:normal}.message-user .prose-dialogue{color:#0a0a0fe6;font-weight:400;font-style:normal}.dialogue-emphasis{font-weight:600;font-style:normal;color:inherit}.message-user .dialogue-emphasis{font-weight:600}.prose-attribution{font-style:italic;color:var(--text-muted);font-size:.9em}.message-user .prose-attribution{color:#0a0a0f99}.prose-narrative{color:var(--text-primary)}.message-user .prose-narrative{color:var(--bg-primary)}.cursor{display:inline-block;width:2px;height:1.1em;background:var(--accent-primary);margin-left:2px;vertical-align:text-bottom;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.message-content.streaming{min-height:1.5em}.message-bubble:hover .message-content{box-shadow:0 4px 20px #0003}@media (max-width: 640px){.message-bubble{max-width:95%}.message-content{padding:var(--spacing-sm) var(--spacing-md);font-size:1rem}.edit-mode .edit-textarea{min-width:unset!important;width:400px!important;height:120px!important;min-height:100px!important;max-height:200px;padding:var(--spacing-md)!important;font-size:16px!important;resize:vertical}.edit-actions{flex-wrap:wrap}.edit-btn{flex:1;min-width:80px;padding:.5rem .8rem;font-size:.85rem}.edit-trigger,.delete-trigger{opacity:1!important;font-size:1rem;padding:.4rem;color:#ffffffb3}.message-assistant .delete-trigger{opacity:.7!important;color:var(--text-muted)}}@media (max-width: 400px){.message-content{padding:var(--spacing-xs) var(--spacing-sm);font-size:.95rem;border-radius:12px}}.message-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.message-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.edit-trigger,.delete-trigger{opacity:0;background:none;border:none;color:#ffffff80;font-size:.8rem;cursor:pointer;padding:.2rem .4rem;border-radius:4px;transition:all .2s ease}.message-user:hover .edit-trigger,.message-user:hover .delete-trigger{opacity:1}.edit-trigger:hover{color:#ffffffe6;background:#ffffff1a}.delete-trigger:hover{color:#ff6464e6;background:#ff64641a}.edit-mode{display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.edit-textarea{width:100%;min-width:500px;min-height:120px;padding:var(--spacing-md);background:#0006;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:1rem;line-height:1.6;resize:both}.edit-textarea:focus{outline:none;border-color:var(--accent-primary)}.edit-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.edit-btn{padding:.4rem .8rem;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.edit-btn.save{background:var(--accent-primary);color:#1a1a2e;font-weight:500}.edit-btn.save:hover{filter:brightness(1.1)}.edit-btn.cancel{background:#ffffff1a;color:#ffffffb3}.edit-btn.cancel:hover{background:#ffffff26;color:#fff}.chat-input-container{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg);background:var(--bg-primary);border-top:1px solid var(--border-subtle);flex-shrink:0}.chat-input-form{display:flex;gap:var(--spacing-sm);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:16px;padding:var(--spacing-sm);transition:all var(--transition-fast)}.chat-input-form:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.input-wrapper{flex:1;display:flex;align-items:center}.chat-textarea{width:100%;resize:none;border:none;background:transparent;color:var(--text-primary);font-family:var(--font-prose);font-size:1rem;line-height:1.5;padding:var(--spacing-sm) var(--spacing-sm);max-height:200px;overflow-y:auto}.chat-textarea:focus{outline:none}.chat-textarea::placeholder{color:var(--text-muted);font-style:italic}.chat-textarea:disabled{opacity:.6}.input-actions-left,.input-actions-right{display:flex;align-items:center;gap:var(--spacing-xs)}.action-btn{padding:var(--spacing-sm);border-radius:8px}.action-btn svg{display:block}.send-btn{padding:var(--spacing-sm) var(--spacing-md);border-radius:10px}.send-btn:disabled{opacity:.4}.send-btn svg{display:block}.input-hint{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm);font-size:.7rem;color:var(--text-muted)}.input-hint code{background:var(--bg-tertiary);padding:1px 4px;border-radius:3px;font-family:monospace}.input-hint kbd{background:var(--bg-tertiary);border:1px solid var(--border-subtle);padding:1px 5px;border-radius:3px;font-family:var(--font-ui);font-size:.65rem}.separator{color:var(--border-subtle)}.stop-btn{background:linear-gradient(135deg,#ff6464e6,#c83232e6)!important;border-color:#ff96964d!important;color:#fff!important}.stop-btn:hover:not(:disabled){background:linear-gradient(135deg,#ff7878,#dc4646)!important;box-shadow:0 4px 12px #ff64644d!important}.stop-btn svg{opacity:1}@media (max-width: 640px){.chat-input-container{padding:var(--spacing-sm);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px));background:var(--bg-primary);border-top:1px solid var(--border-subtle);flex-shrink:0}.chat-input-form{padding:var(--spacing-xs);border-radius:12px}.chat-textarea{font-size:16px;padding:var(--spacing-sm);min-height:44px}.send-btn{padding:var(--spacing-sm);min-width:44px;min-height:44px;border-radius:8px}.action-btn{min-width:40px;min-height:40px}.input-hint{display:none}}@media (max-width: 380px){.chat-input-form{gap:var(--spacing-xs)}.chat-textarea{padding:var(--spacing-xs) var(--spacing-sm)}}.pause-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.pause-modal{background:linear-gradient(145deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2.5rem;max-width:420px;width:100%;text-align:center;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d}.pause-icon{font-size:3.5rem;margin-bottom:1rem}.pause-title{font-family:Crimson Text,Georgia,serif;font-size:1.75rem;font-weight:600;color:#fff;margin:0 0 1.5rem}.pause-content{color:#fffc;font-size:1rem;line-height:1.6;margin-bottom:1.5rem}.pause-content p{margin:0 0 1rem}.pause-content strong{color:#c9a227}.pause-note{background:#6495ed1a;border-left:3px solid rgba(100,149,237,.5);padding:.75rem 1rem;border-radius:0 8px 8px 0;text-align:left;font-size:.9rem}.pause-buttons{display:flex;flex-direction:column;gap:.75rem}.pause-btn{padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.pause-btn-primary{background:linear-gradient(135deg,#4a9079,#5ba88f);color:#fff}.pause-btn-primary:hover{background:linear-gradient(135deg,#5ba88f,#6cb9a0);transform:translateY(-2px);box-shadow:0 8px 20px #4a90794d}.pause-btn-secondary{background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.2)}.pause-btn-secondary:hover{background:#ffffff26;color:#fff}.pause-timer{margin-top:1rem;font-size:.85rem;color:#ffffff80}.pause-button.blinking{animation:subtle-pulse 2s ease-in-out infinite;color:var(--accent-primary, #c9a227)}@keyframes subtle-pulse{0%,to{opacity:1}50%{opacity:.6}}@media (max-width: 640px){.pause-overlay{padding:var(--spacing-sm, .5rem);align-items:flex-end;padding-bottom:var(--safe-area-bottom, 0)}.pause-modal{border-radius:16px 16px 0 0;padding:1.5rem;max-height:85vh;overflow-y:auto}.pause-icon{font-size:3rem}.pause-title{font-size:1.5rem}.pause-content{font-size:.95rem}.pause-btn{padding:1rem;min-height:48px;font-size:1rem}}.theme-toggle{position:fixed;bottom:20px;right:20px;z-index:50;width:48px;height:48px;border-radius:50%;background:var(--bg-elevated);border:1px solid var(--border-subtle);box-shadow:0 4px 12px #0003,0 0 0 1px #ffffff0d;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.theme-toggle:hover{color:var(--text-primary);background:var(--bg-tertiary);box-shadow:0 6px 16px #0000004d,0 0 0 1px #ffffff1a;transform:scale(1.05)}.theme-toggle:active{transform:scale(.95)}.theme-toggle svg{display:block}[data-theme=light] .theme-toggle{background:var(--bg-elevated);border-color:var(--border-subtle);box-shadow:0 4px 12px #0000001a,0 0 0 1px #0000000d}[data-theme=light] .theme-toggle:hover{background:var(--bg-tertiary);box-shadow:0 6px 16px #00000026,0 0 0 1px #00000014}@media (max-width: 640px){.theme-toggle{bottom:calc(env(safe-area-inset-bottom,0px) + 105px);right:16px;width:44px;height:44px}}.memory-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;justify-content:flex-end}.memory-panel{width:380px;max-width:90vw;height:100%;background:linear-gradient(180deg,#1a1625,#0f0a1a);border-left:1px solid rgba(200,150,255,.15);display:flex;flex-direction:column;box-shadow:-10px 0 40px #00000080}.memory-panel-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(200,150,255,.1)}.memory-panel-actions{display:flex;align-items:center;gap:.75rem}.memory-panel-actions .theme-toggle{position:static;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;box-shadow:none}.memory-panel-actions .theme-toggle:hover{box-shadow:none}.memory-panel-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#fff}.memory-panel-header .close-btn{background:none;border:none;color:#ffffff80;font-size:1.5rem;cursor:pointer;padding:0;line-height:1;transition:color .2s}.memory-panel-header .close-btn:hover{color:#fff}.memory-tabs{display:flex;gap:0;border-bottom:1px solid rgba(200,150,255,.1);padding:0 1rem}.memory-tabs .tab{flex:1;padding:.75rem .5rem;background:none;border:none;border-bottom:2px solid transparent;color:#ffffff80;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.memory-tabs .tab:hover{color:#fffc}.memory-tabs .tab.active{color:#c896ff;border-bottom-color:#c896ff}.memory-tabs .tab .active-dot{display:inline-block;width:6px;height:6px;background:#4ade80;border-radius:50%;margin-left:6px;vertical-align:middle;animation:pulse-dot 2s ease-in-out infinite;box-shadow:0 0 6px #4ade8099}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.memory-content{flex:1;overflow-y:auto;padding:1.25rem 1.5rem}.loading{text-align:center;color:#ffffff80;padding:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.section-title{font-weight:600;color:#fff;font-size:.95rem}.section-hint{color:#fff6;font-size:.8rem;margin:0 0 1rem}.count{color:#fff6;font-size:.8rem}.memory-item{position:relative;display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:#c896ff0d;border:1px solid rgba(200,150,255,.1);border-radius:8px;font-size:.85rem}.memory-item .memory-icon{flex-shrink:0}.memory-item .memory-text{flex:1;color:#ffffffd9;line-height:1.4}.memory-item .memory-type{flex-shrink:0;padding:.15rem .4rem;background:#c896ff26;border-radius:4px;font-size:.7rem;text-transform:uppercase;color:#c896ffcc}.memory-item .remove-btn{flex-shrink:0;background:none;border:none;color:#ff646499;font-size:1.1rem;cursor:pointer;padding:0;line-height:1;transition:color .2s}.memory-item .remove-btn:hover{color:#ff6b6b}.memory-item.type-relationship{border-color:#ff96c833;background:#ff96c80d}.memory-item.type-secret{border-color:#96c8ff33;background:#96c8ff0d}.memory-item.type-event{border-color:#ffc86433;background:#ffc8640d}.memory-item.pinned{border-color:#c896ff40;background:#c896ff14}.memory-item.used{border-color:#4ade8066;background:#4ade801a;box-shadow:0 0 8px #4ade8033}.used-badge{flex-shrink:0;padding:.15rem .4rem;background:#4ade8040;border:1px solid rgba(74,222,128,.4);border-radius:4px;font-size:.65rem;font-weight:600;text-transform:uppercase;color:#4ade80;letter-spacing:.5px;animation:pulse-used 2s ease-in-out infinite}@keyframes pulse-used{0%,to{opacity:1}50%{opacity:.7}}.delete-memory-btn{position:absolute;top:.5rem;right:.5rem;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#ef4444;font-size:1.2rem;font-weight:600;line-height:1;cursor:pointer;opacity:0;transition:all .2s}.memory-item:hover .delete-memory-btn{opacity:1}.delete-memory-btn:hover{background:#ef444433;border-color:#ef444480;transform:scale(1.1)}.empty-state{text-align:center;color:#fff6;padding:2rem 1rem;font-size:.9rem}.add-memory{display:flex;gap:.5rem;margin-bottom:1rem}.add-memory input{flex:1;padding:.6rem .8rem;background:#ffffff0d;border:1px solid rgba(200,150,255,.2);border-radius:8px;color:#fff;font-size:.85rem}.add-memory input::placeholder{color:#ffffff4d}.add-memory input:focus{outline:none;border-color:#c896ff66;background:#ffffff14}.add-memory button{padding:.6rem 1rem;background:#c896ff33;border:1px solid rgba(200,150,255,.3);border-radius:8px;color:#c896ff;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.add-memory button:hover:not(:disabled){background:#c896ff4d}.add-memory button:disabled{opacity:.5;cursor:not-allowed}.regenerate-btn{padding:.3rem .6rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#fff9;font-size:.75rem;cursor:pointer;transition:all .2s}.auto-actions{display:flex;gap:.4rem;flex-wrap:wrap}.checkall-btn,.flush-btn,.recompute-btn{padding:.3rem .6rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#fff9;font-size:.75rem;cursor:pointer;transition:all .2s}.checkall-btn:hover:not(:disabled),.flush-btn:hover:not(:disabled),.recompute-btn:hover:not(:disabled){background:#ffffff1a;color:#fff}.flush-btn{border-color:#ff646440;color:#ff7878cc}.flush-btn:hover:not(:disabled){background:#ff64641f;color:#ffd1d1}.checkall-btn:disabled,.flush-btn:disabled,.recompute-btn:disabled{opacity:.5;cursor:not-allowed}.regenerate-btn:hover:not(:disabled){background:#ffffff1a;color:#fff}.regenerate-btn:disabled{opacity:.5;cursor:not-allowed}.custom-instructions textarea{width:100%;min-height:150px;padding:.8rem;background:#ffffff0d;border:1px solid rgba(200,150,255,.2);border-radius:8px;color:#fff;font-size:.85rem;font-family:inherit;resize:vertical;line-height:1.5}.custom-instructions textarea::placeholder{color:#ffffff4d}.custom-instructions textarea:focus{outline:none;border-color:#c896ff66;background:#ffffff14}.char-count{text-align:right;color:#ffffff4d;font-size:.75rem;margin-top:.3rem;margin-bottom:.75rem}.save-btn{width:100%;padding:.75rem;background:linear-gradient(135deg,#c896ff4d,#9664c84d);border:1px solid rgba(200,150,255,.3);border-radius:8px;color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.save-btn:hover:not(:disabled){background:linear-gradient(135deg,#c896ff66,#9664c866)}.save-btn:disabled{opacity:.5;cursor:not-allowed}.story-overview{display:flex;flex-direction:column;gap:1.25rem}.story-progress{margin-bottom:.5rem}.story-progress .progress-label{display:flex;justify-content:space-between;font-size:.75rem;color:#ffffff80;margin-bottom:.4rem}.story-progress .progress-bar{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.story-progress .progress-fill{height:100%;background:linear-gradient(90deg,#c896ff,#9b6fd9);border-radius:3px;transition:width .3s ease}.relationship-status{padding:1rem;background:#ff96c80d;border:1px solid rgba(255,150,200,.15);border-radius:10px}.relationship-status .status-badge{display:inline-block;padding:.5rem 1rem;background:linear-gradient(135deg,#ff96c833,#c8649633);border:1px solid rgba(255,150,200,.3);border-radius:20px;font-size:.9rem;font-weight:600;color:#ffb3d9;margin:.5rem 0}.location-tracker{margin-top:1rem;padding:1rem;background:#96c8ff0d;border:1px solid rgba(150,200,255,.15);border-radius:10px}.location-fields{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.location-fields input{padding:.6rem .7rem;background:#ffffff0d;border:1px solid rgba(150,200,255,.2);border-radius:8px;color:#fff;font-size:.85rem}.location-fields input::placeholder{color:#ffffff4d}.location-fields input:focus{outline:none;border-color:#96c8ff59;background:#ffffff14}.location-actions{display:flex;gap:.5rem;margin-bottom:.5rem}.location-actions button{flex:1;padding:.5rem .75rem;background:#96c8ff26;border:1px solid rgba(150,200,255,.3);border-radius:8px;color:#bfe1ff;font-size:.8rem;cursor:pointer;transition:all .2s}.location-actions button:hover:not(:disabled){background:#96c8ff40}.location-actions button.secondary{background:#ffffff0d;border-color:#ffffff1a;color:#ffffffb3}.location-actions button:disabled{opacity:.5;cursor:not-allowed}.location-current{display:flex;justify-content:space-between;gap:1rem;color:#fff9;font-size:.8rem}.core-facts{padding:1rem;background:#ffc8640d;border:1px solid rgba(255,200,100,.15);border-radius:10px}.memory-item.core{border-color:#ffc86440;background:#ffc86414}.arc-summary{padding:1rem;background:#96c8ff0d;border:1px solid rgba(150,200,255,.15);border-radius:10px}.arc-summary .summary-text{color:#ffffffd9;font-size:.9rem;line-height:1.6;margin-top:.75rem}.chapters{padding:1rem;background:#c896ff0d;border:1px solid rgba(200,150,255,.15);border-radius:10px}.chapter-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.chapter-item{padding:.75rem;background:#ffffff08;border:1px solid rgba(200,150,255,.1);border-radius:8px;cursor:pointer;transition:all .2s ease}.chapter-item:hover{background:#ffffff0f;border-color:#c896ff33}.chapter-item.expanded{background:#c896ff14;border-color:#c896ff40}.chapter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.chapter-number{font-weight:600;color:#c896ff;font-size:.85rem}.chapter-range{font-size:.7rem;color:#fff6}.chapter-summary{color:#ffffffbf;font-size:.8rem;line-height:1.5;margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(200,150,255,.1);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.story-empty{background:#c896ff0d;border:1px solid rgba(200,150,255,.1);border-radius:10px;padding:2rem 1.5rem}.story-empty p{margin:0}.story-empty .hint{font-size:.8rem;margin-top:.5rem;opacity:.7}[data-theme=light] .memory-panel-overlay{background:#0000004d}[data-theme=light] .memory-panel{background:linear-gradient(180deg,#fff,#f5f3f0);border-left-color:var(--border-subtle);box-shadow:-10px 0 40px #0000001a}[data-theme=light] .memory-panel-header{border-bottom-color:var(--border-subtle)}[data-theme=light] .memory-panel-header h2{color:var(--text-primary)}[data-theme=light] .memory-panel-header .close-btn{color:var(--text-muted)}[data-theme=light] .memory-panel-header .close-btn:hover{color:var(--text-primary)}[data-theme=light] .memory-tabs{border-bottom-color:var(--border-subtle)}[data-theme=light] .memory-tabs .tab{color:var(--text-muted)}[data-theme=light] .memory-tabs .tab:hover{color:var(--text-secondary)}[data-theme=light] .memory-tabs .tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}[data-theme=light] .section-title{color:var(--text-primary)}[data-theme=light] .section-hint,[data-theme=light] .count{color:var(--text-muted)}[data-theme=light] .memory-item{background:#8b6f470d;border-color:#8b6f4726}[data-theme=light] .memory-item .memory-text{color:var(--text-secondary)}[data-theme=light] .memory-item .memory-type{background:#8b6f4726;color:var(--accent-primary)}[data-theme=light] .memory-item.type-relationship{border-color:#ff649640;background:#ff64960d}[data-theme=light] .memory-item.type-secret{border-color:#6496ff40;background:#6496ff0d}[data-theme=light] .memory-item.type-event{border-color:#ffb45040;background:#ffb4500d}[data-theme=light] .memory-item.pinned{border-color:#8b6f474d;background:#8b6f471a}[data-theme=light] .memory-item.core{border-color:#ffb4504d;background:#ffb4501a}[data-theme=light] .empty-state,[data-theme=light] .loading{color:var(--text-muted)}[data-theme=light] .add-memory input{background:#00000008;border-color:var(--border-subtle);color:var(--text-primary)}[data-theme=light] .add-memory input::placeholder{color:var(--text-muted)}[data-theme=light] .add-memory input:focus{border-color:var(--accent-primary);background:#0000000d}[data-theme=light] .add-memory button{background:#8b6f4726;border-color:#8b6f4740;color:var(--accent-primary)}[data-theme=light] .add-memory button:hover:not(:disabled){background:#8b6f4740}[data-theme=light] .regenerate-btn{background:#00000008;border-color:var(--border-subtle);color:var(--text-muted)}[data-theme=light] .regenerate-btn:hover:not(:disabled){background:#0000000f;color:var(--text-primary)}[data-theme=light] .checkall-btn,[data-theme=light] .flush-btn,[data-theme=light] .recompute-btn{background:#00000008;border-color:var(--border-subtle);color:var(--text-muted)}[data-theme=light] .checkall-btn:hover:not(:disabled),[data-theme=light] .flush-btn:hover:not(:disabled),[data-theme=light] .recompute-btn:hover:not(:disabled){background:#0000000f;color:var(--text-primary)}[data-theme=light] .flush-btn{border-color:#c8505059;color:#c85050d9}[data-theme=light] .custom-instructions textarea{background:#00000008;border-color:var(--border-subtle);color:var(--text-primary)}[data-theme=light] .custom-instructions textarea::placeholder{color:var(--text-muted)}[data-theme=light] .custom-instructions textarea:focus{border-color:var(--accent-primary);background:#0000000d}[data-theme=light] .char-count{color:var(--text-muted)}[data-theme=light] .save-btn{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-color:var(--accent-primary);color:#fff}[data-theme=light] .save-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-secondary),var(--accent-primary))}[data-theme=light] .story-progress .progress-label{color:var(--text-muted)}[data-theme=light] .story-progress .progress-bar{background:#00000014}[data-theme=light] .story-progress .progress-fill{background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary))}[data-theme=light] .relationship-status{background:#ff64960d;border-color:#ff649633}[data-theme=light] .relationship-status .status-badge{background:linear-gradient(135deg,#ff649626,#c8507826);border-color:#ff64964d;color:#d9447a}[data-theme=light] .location-tracker{background:#6496ff0d;border-color:#6496ff33}[data-theme=light] .location-fields input{background:#00000008;border-color:var(--border-subtle);color:var(--text-primary)}[data-theme=light] .location-fields input::placeholder{color:var(--text-muted)}[data-theme=light] .location-actions button{background:#6496ff26;border-color:#6496ff4d;color:#3f6d96}[data-theme=light] .location-actions button.secondary{background:#0000000a;border-color:#00000014;color:var(--text-muted)}[data-theme=light] .location-current{color:var(--text-muted)}[data-theme=light] .core-facts{background:#ffb4500d;border-color:#ffb45033}[data-theme=light] .arc-summary{background:#6496ff0d;border-color:#6496ff33}[data-theme=light] .arc-summary .summary-text{color:var(--text-secondary)}[data-theme=light] .chapters{background:#8b6f470d;border-color:#8b6f4733}[data-theme=light] .chapter-item{background:#00000005;border-color:#8b6f4726}[data-theme=light] .chapter-number{color:var(--accent-primary)}[data-theme=light] .chapter-range{color:var(--text-muted)}[data-theme=light] .chapter-summary{color:var(--text-secondary)}[data-theme=light] .story-empty{background:#8b6f470d;border-color:#8b6f4726}[data-theme=light] .delete-memory-btn{background:#ef444414;border-color:#ef444440;color:#dc2626}[data-theme=light] .delete-memory-btn:hover{background:#ef444426;border-color:#ef444466}.relationship-status .actions{display:flex;gap:.5rem;align-items:center}.edit-btn,.save-btn,.cancel-btn{padding:.3rem .6rem;font-size:.75rem;border-radius:4px;cursor:pointer;transition:all .2s;border:1px solid transparent}.edit-btn{background:#ffffff0d;border-color:#ffffff1a;color:#fff9}.edit-btn:hover:not(:disabled){background:#ffffff1a;color:#fff}.edit-btn:disabled{opacity:.5;cursor:not-allowed}.relationship-status .status-select{width:100%;padding:.5rem;margin:.5rem 0;background:#0000004d;border:1px solid rgba(255,150,200,.3);border-radius:6px;color:#fff;font-size:.9rem}.relationship-status .status-select:focus{outline:none;border-color:#ff96c899;background:#00000080}.status-display{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem}.recompute-link{background:none;border:none;color:#fff6;text-decoration:underline;cursor:pointer;font-size:.75rem;padding:0;margin-left:.25rem;transition:color .2s}.recompute-link:hover:not(:disabled){color:#fffc}.recompute-link:disabled{opacity:.5;cursor:default;text-decoration:none}.lock-icon{margin-left:.5rem;font-size:.8rem;opacity:.8}.status-badge.locked{border-color:#ffc86466;background:linear-gradient(135deg,#ff96c826,#ffc86426)}[data-theme=light] .edit-btn{background:#0000000d;border-color:#0000001a;color:var(--text-muted)}[data-theme=light] .edit-btn:hover:not(:disabled){background:#00000014;color:var(--text-primary)}[data-theme=light] .relationship-status .status-select{background:#fff;border-color:#ff64964d;color:var(--text-primary)}[data-theme=light] .recompute-link{color:var(--text-muted)}[data-theme=light] .recompute-link:hover:not(:disabled){color:var(--accent-primary)}[data-theme=light] .status-badge.locked{border-color:#ffb45066;background:linear-gradient(135deg,#ff64961a,#ffb4501a)}@media (max-width: 480px){.memory-panel{width:100%;max-width:none}.memory-tabs{padding:0 .5rem}.memory-tabs .tab{font-size:.75rem;padding:.6rem .25rem}}.chat-window{flex:1;display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:900px;margin:0 auto;width:100%;overflow:hidden}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--border-subtle);background:#0a0a0fcc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:30;gap:var(--spacing-md)}.header-left{flex:1;min-width:0;position:relative;z-index:2;cursor:pointer}.character-info-btn{display:flex;align-items:center;gap:var(--spacing-sm);background:none;border:none;padding:var(--spacing-xs);margin:calc(var(--spacing-xs) * -1);border-radius:8px;cursor:pointer;transition:background var(--transition-fast);text-align:left;position:relative;z-index:2;pointer-events:auto}.character-info-btn:hover{background:var(--bg-tertiary)}.character-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;font-family:var(--font-prose);font-size:1.1rem;font-weight:500;color:var(--bg-primary);flex-shrink:0}.character-details{display:flex;flex-direction:column;min-width:0}.character-name{font-family:var(--font-prose);font-size:1rem;font-weight:400;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.character-hint{font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-center{display:flex;align-items:center;gap:var(--spacing-sm)}.header-divider{color:var(--text-muted);opacity:.3;font-size:.8rem}.mood-indicator{display:flex;align-items:center;gap:6px;font-size:.75rem;padding:4px 10px;border-radius:12px;background:var(--bg-tertiary);border:1px solid transparent;transition:all var(--transition-normal)}.mood-emoji{font-size:.9rem;line-height:1}.mood-label{color:var(--text-secondary);font-weight:400;letter-spacing:.02em}.mood-indicator[data-mood=cold]{background:#648cb41f;border-color:#648cb440}.mood-indicator[data-mood=cold] .mood-label{color:#8ab}.mood-indicator[data-mood=guarded]{background:#8282961f;border-color:#82829640}.mood-indicator[data-mood=guarded] .mood-label{color:#a9a9b8}.mood-indicator[data-mood=teasing]{background:#c8a0641f;border-color:#c8a06440}.mood-indicator[data-mood=teasing] .mood-label{color:#cba}.mood-indicator[data-mood=flustered]{background:#dc829626;border-color:#dc82964d}.mood-indicator[data-mood=flustered] .mood-label{color:#e9a}.mood-indicator[data-mood=vulnerable]{background:#b496c81f;border-color:#b496c840}.mood-indicator[data-mood=vulnerable] .mood-label{color:#c9b}.mood-indicator[data-mood=frustrated]{background:#c878641f;border-color:#c8786440}.mood-indicator[data-mood=frustrated] .mood-label{color:#da8}.mood-indicator[data-mood=sad]{background:#788cb41f;border-color:#788cb440}.mood-indicator[data-mood=sad] .mood-label{color:#9ac}.mood-indicator[data-mood=warm]{background:#dcb4641f;border-color:#dcb46440}.mood-indicator[data-mood=warm] .mood-label{color:#db9}.mood-indicator[data-mood=affectionate]{background:#dc8ca026;border-color:#dc8ca04d}.mood-indicator[data-mood=affectionate] .mood-label{color:#e9a}.mood-indicator[data-mood=curious]{background:#8cb4a01f;border-color:#8cb4a040}.mood-indicator[data-mood=curious] .mood-label{color:#9ba}.mood-indicator[data-mood=conflicted]{background:#a096b41f;border-color:#a096b440}.mood-indicator[data-mood=conflicted] .mood-label{color:#a9b}.mood-indicator[data-mood=neutral]{background:#9696961f;border-color:#96969640}.mood-indicator[data-mood=neutral] .mood-label{color:#aaa}.pacing-indicator{font-size:.6rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:12px;background:var(--bg-tertiary);color:var(--text-muted);transition:all var(--transition-normal);border:1px solid transparent}.pacing-indicator[data-level=meeting]{background:#788ca026;border-color:#788ca04d;color:#9ab}.pacing-indicator[data-level=tension]{background:#b4826426;border-color:#b482644d;color:#ca9}.pacing-indicator[data-level=connection]{background:#8ca08226;border-color:#8ca0824d;color:#ac9}.pacing-indicator[data-level=falling]{background:#b4788c26;border-color:#b4788c4d;color:#c9a}.pacing-indicator[data-level=climax]{background:#b4647833;border-color:#b4647866;color:#d99}.header-right{display:flex;align-items:center;gap:var(--spacing-sm)}.header-right .btn-icon{display:none}.header-right .btn-text{display:inline}.playing-as{font-size:.75rem;color:var(--text-muted)}.playing-as strong{color:var(--text-secondary);font-weight:500}.character-info-panel{background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);overflow:hidden;position:relative;z-index:20;pointer-events:auto;display:inline-table;height:auto;box-shadow:0 8px 24px #00000040}.info-panel-content{padding:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);color:var(--text-secondary)}.info-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}@media (max-width: 640px){.character-info-panel{margin-top:55px}}.info-section h3{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-secondary);margin-bottom:var(--spacing-xs)}.info-section p{font-size:.85rem;color:var(--text-secondary);line-height:1.5;margin:0}.info-archetype{font-size:.9rem;font-weight:500;color:var(--accent-primary);text-transform:capitalize;padding:var(--spacing-xs) var(--spacing-sm);background:#c9a87c1a;border:1px solid rgba(201,168,124,.2);border-radius:6px;display:inline-block;margin-bottom:var(--spacing-sm)}.info-age{font-weight:400;opacity:.8;text-transform:lowercase}.info-badge{font-size:.7rem;color:var(--accent-primary);display:flex;align-items:center;gap:var(--spacing-xs)}.info-empty{font-size:.8rem;color:var(--text-muted);background:#ffffff0a;border:1px dashed rgba(255,255,255,.1);padding:var(--spacing-sm);border-radius:6px}.messages-container{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-lg);min-height:0;position:relative;z-index:1}.messages-wrapper{display:flex;flex-direction:column;gap:var(--spacing-lg);max-width:100%}.typing-indicator{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);color:var(--text-muted);font-size:.875rem;font-style:italic}.typing-dots{display:flex;gap:4px}.typing-dots span{width:6px;height:6px;background:var(--accent-secondary);border-radius:50%;animation:pulse 1.4s ease-in-out infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@media (max-width: 768px){.playing-as{display:none}.mood-label,.pacing-indicator{font-size:.55rem;padding:3px 8px}}@media (max-width: 640px){.chat-window{height:100vh;position:fixed;top:0;left:0;right:0;display:flex;flex-direction:column;overflow:hidden}.chat-header{position:fixed;top:0;left:0;right:0;padding:var(--spacing-sm) var(--spacing-md);padding-top:calc(env(safe-area-inset-top,0px) + var(--spacing-sm));gap:var(--spacing-sm);z-index:100;background:#0a0a0ff2}.mobile-header-spacer,.playing-as{display:none}.character-hint{font-size:.6rem;max-width:120px}.header-center{display:flex;flex-direction:row;align-items:center;gap:4px;flex-shrink:1;min-width:0;overflow:hidden}.header-divider{display:none}.mood-indicator{padding:4px 6px;font-size:.65rem;gap:4px}.mood-emoji{display:none}.mood-label{display:inline;font-size:.65rem}.pacing-indicator{padding:4px 8px;font-size:.55rem;letter-spacing:.05em}.character-avatar{width:36px;height:36px;font-size:1rem}.character-name{font-size:1rem;font-weight:500}.header-right{gap:4px;flex-shrink:0}.header-right .btn{padding:0;width:36px;height:36px;min-width:36px;min-height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-subtle)}.header-right .btn-text{display:none}.header-right .btn-icon{display:flex!important;font-size:1.2rem;font-weight:300;line-height:1;color:var(--text-secondary)}.messages-container{flex:1;min-height:0;padding:var(--spacing-md);padding-top:70px;padding-bottom:var(--spacing-md);-webkit-overflow-scrolling:touch;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.messages-wrapper{gap:var(--spacing-md);padding-bottom:0;margin-bottom:0}}@media (max-width: 380px){.chat-header{padding:var(--spacing-xs) var(--spacing-sm);padding-top:calc(var(--safe-area-top) + var(--spacing-xs))}.character-avatar{width:32px;height:32px}.character-name{font-size:.9rem;max-width:100px}.header-right .btn{min-width:36px;min-height:36px;padding:var(--spacing-xs)}.header-right .btn-icon{font-size:1rem}}.save-button.saved{color:#5ba88f}.save-button.error{color:#ff6b6b}.debug-panel{position:fixed;bottom:100px;right:20px;width:320px;max-height:400px;background:#14141ef2;border:1px solid var(--color-accent);border-radius:12px;font-size:.8rem;z-index:9999;overflow:hidden;box-shadow:0 8px 32px #0006}.debug-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--color-accent);color:var(--color-bg);font-weight:600}.debug-header button{background:none;border:none;color:var(--color-bg);cursor:pointer;font-size:1rem}.debug-content{padding:12px 14px;overflow-y:auto;max-height:320px}.debug-section{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}.debug-section:last-child{border-bottom:none;margin-bottom:0}.debug-section strong{color:var(--color-accent)}.debug-behaviors{margin:6px 0 0;padding-left:16px;font-size:.75rem;opacity:.8}.debug-behaviors li{margin-bottom:4px}[data-theme=light] .chat-header{background:#fffffff2;border-bottom-color:var(--border-subtle)}[data-theme=light] .character-info-btn:hover{background:var(--bg-tertiary)}[data-theme=light] .character-info-panel{background:var(--bg-elevated);border-bottom-color:var(--border-subtle)}[data-theme=light] .info-archetype{background:#8b6f471a;border-color:#8b6f4740}[data-theme=light] .mood-indicator{background:#0000000d;border-color:var(--border-subtle)}[data-theme=light] .pacing-indicator{background:#0000000d;border-color:var(--border-subtle);color:var(--text-secondary)}[data-theme=light] .character-hint{color:var(--text-muted)}@media (max-width: 640px){[data-theme=light] .chat-header{background:#fffffffa}[data-theme=light] .header-right .btn{background:var(--bg-secondary);border-color:var(--border-subtle)}}.chat-history-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.chat-history-modal{background:linear-gradient(145deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:16px;width:100%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000080}.chat-history-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.chat-history-header h2{margin:0;font-family:Crimson Text,Georgia,serif;font-size:1.5rem;font-weight:500;color:#fff}.close-btn{background:none;border:none;color:#ffffff80;font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;line-height:1;transition:color .2s}.close-btn:hover{color:#fff}.chat-history-content{flex:1;overflow-y:auto;padding:1rem}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:#fff9}.empty-state .hint{font-size:.85rem;color:#fff6;margin-top:.5rem}.chat-list{display:flex;flex-direction:column;gap:.5rem}.chat-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:12px;cursor:pointer;transition:all .2s ease}.chat-item:hover{background:#ffffff14;border-color:#ffffff1a}.chat-avatar{width:48px;height:48px;background:linear-gradient(135deg,var(--accent-primary, #c9a227) 0%,var(--accent-secondary, #d4af37) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600;color:#1a1a2e;flex-shrink:0}.chat-info{flex:1;min-width:0}.chat-title{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.25rem}.character-name{font-weight:600;color:#fff;font-size:1rem}.chat-meta{font-size:.75rem;color:#fff6}.chat-preview{font-size:.85rem;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.25rem;font-style:italic}.chat-stats{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#fff6}.separator{opacity:.5}.delete-btn{background:none;border:none;color:#ffffff4d;font-size:1.25rem;cursor:pointer;padding:.5rem;line-height:1;transition:all .2s;border-radius:6px}.delete-btn:hover{color:#ff6b6b;background:#ff6b6b1a}.delete-btn:disabled{opacity:.5;cursor:not-allowed}.chat-history-content::-webkit-scrollbar{width:6px}.chat-history-content::-webkit-scrollbar-track{background:transparent}.chat-history-content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.chat-history-content::-webkit-scrollbar-thumb:hover{background:#fff3}[data-theme=light] .chat-history-overlay{background:#0006}[data-theme=light] .chat-history-modal{background:linear-gradient(145deg,#fff,#f5f3f0);border-color:var(--border-subtle);box-shadow:0 25px 50px -12px #00000026}[data-theme=light] .chat-history-header{border-bottom-color:var(--border-subtle)}[data-theme=light] .chat-history-header h2{color:var(--text-primary)}[data-theme=light] .close-btn{color:var(--text-muted)}[data-theme=light] .close-btn:hover{color:var(--text-primary)}[data-theme=light] .loading-state,[data-theme=light] .error-state,[data-theme=light] .empty-state{color:var(--text-muted)}[data-theme=light] .empty-state .hint{color:var(--text-muted);opacity:.7}[data-theme=light] .chat-item{background:#00000005;border-color:var(--border-subtle)}[data-theme=light] .chat-item:hover{background:#0000000d;border-color:var(--accent-primary)}[data-theme=light] .chat-avatar{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff}[data-theme=light] .character-name{color:var(--text-primary)}[data-theme=light] .chat-meta{color:var(--text-muted)}[data-theme=light] .chat-preview{color:var(--text-secondary)}[data-theme=light] .chat-stats,[data-theme=light] .delete-btn{color:var(--text-muted)}[data-theme=light] .delete-btn:hover{color:#d9534f;background:#d9534f1a}[data-theme=light] .chat-history-content::-webkit-scrollbar-thumb{background:#00000026}[data-theme=light] .chat-history-content::-webkit-scrollbar-thumb:hover{background:#00000040}@media (max-width: 640px){.chat-history-overlay{padding:0;align-items:flex-end}.chat-history-modal{border-radius:16px 16px 0 0;max-height:90vh;max-width:100%;padding-bottom:var(--safe-area-bottom, 0)}.chat-history-header{padding:1rem;position:sticky;top:0;background:linear-gradient(145deg,#1a1a2e,#16213e);z-index:10}[data-theme=light] .chat-history-header{background:linear-gradient(145deg,#fff,#f5f3f0)}.chat-history-header h2{font-size:1.25rem}.close-btn{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.chat-history-content{padding:.75rem}.chat-item{padding:.875rem;gap:.75rem}.chat-avatar{width:40px;height:40px;font-size:1rem}.character-name{font-size:.95rem}.chat-preview{font-size:.8rem}.delete-btn{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.chat-history-content::-webkit-scrollbar{width:0}}.setup-container{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);position:relative;overflow:hidden;transform:translateZ(0)}.setup-card{width:100%;max-width:500px;position:relative;z-index:10;background:#12121ad9;border:1px solid rgba(255,255,255,.04);border-top:1px solid rgba(255,255,255,.08);border-radius:24px;padding:var(--spacing-xl) var(--spacing-xl);box-shadow:0 20px 60px #0006,0 0 0 1px #ffffff05}@media (min-width: 768px){.setup-card{background:#12121a99;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}}.setup-header{text-align:center;margin-bottom:var(--spacing-lg)}.logo{font-family:var(--font-logo);font-size:5rem;font-weight:400;letter-spacing:.02em;margin-bottom:-15px;text-shadow:0 0 30px rgba(201,168,124,.2);will-change:opacity}.logo-text{color:var(--text-primary)}.setup-subtitle{color:var(--text-muted);font-size:.75rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;opacity:.8}.wizard-step{display:flex;flex-direction:column;gap:var(--spacing-md);min-height:400px;padding-bottom:10px}.wizard-chapter-marker{font-family:var(--font-ui);font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent-secondary);text-align:center;margin-bottom:-10px;opacity:.9}.wizard-title-large,.section-title-clean{font-family:var(--font-logo);font-size:3.5rem;font-weight:400;text-align:center;color:var(--text-primary);line-height:1;margin-bottom:var(--spacing-sm);text-shadow:0 0 20px rgba(0,0,0,.5)}.section-title-clean{font-size:3rem;margin-bottom:.5rem}.section-hint-clean{text-align:center;font-family:var(--font-prose);font-style:italic;font-size:1.1rem;color:var(--text-secondary);margin-bottom:var(--spacing-lg);font-weight:300}.gender-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.gender-card{background:#ffffff05;border:1px solid var(--border-subtle);border-radius:12px;padding:var(--spacing-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);cursor:pointer}.gender-card:hover{background:#ffffff0a;transform:translateY(-2px);border-color:#ffffff1a}.gender-card.active{background:#c9a87c14;border-color:var(--accent-primary);box-shadow:0 0 20px #c9a87c1a}.gender-icon{font-size:1.5rem;color:var(--text-muted)}.gender-card.active .gender-icon{color:var(--accent-primary)}.gender-label{font-size:.8rem;color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase}.gender-card.active .gender-label{color:var(--text-primary)}.pacing-buttons,.gender-buttons{display:flex;gap:var(--spacing-sm);justify-content:center;margin-bottom:var(--spacing-lg)}.pacing-btn,.pronoun-btn{flex:1;max-width:120px;padding:10px 16px;background:transparent;border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-muted);font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center}.pacing-btn:hover,.pronoun-btn:hover{border-color:var(--accent-secondary);color:var(--text-primary);background:#ffffff08}.pacing-btn.active,.pronoun-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--bg-primary)!important;box-shadow:0 0 15px var(--accent-glow);font-weight:600}.pacing-options-vertical{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.pacing-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:transparent;border:1px solid var(--border-subtle);border-left:2px solid transparent;border-radius:0 12px 12px 0;cursor:pointer;text-align:left;width:100%}.pacing-card:hover{background:#ffffff05;padding-left:calc(var(--spacing-md) + 4px)}.pacing-card.active{background:linear-gradient(90deg,rgba(201,168,124,.05) 0%,transparent 100%);border-color:transparent;border-left-color:var(--accent-primary)}.pacing-icon-large{font-size:1.8rem;opacity:.6}.pacing-card.active .pacing-icon-large{opacity:1}.pacing-info{display:flex;flex-direction:column}.pacing-title{font-family:var(--font-prose);font-size:1.1rem;color:var(--text-primary)}.pacing-desc{font-size:.8rem;color:var(--text-muted)}.setup-form-clean{display:flex;flex-direction:column;gap:var(--spacing-xl);margin-top:var(--spacing-md)}.form-group-clean{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:center}.form-label-clean{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.preference-section{text-align:center;width:100%;margin-bottom:var(--spacing-md)}.preference-label{font-size:.7rem;color:var(--text-muted);margin-bottom:var(--spacing-md);text-align:center;display:block;text-transform:uppercase;letter-spacing:.15em;opacity:.7;font-family:var(--font-ui)}.input-underlined{width:100%;max-width:300px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-logo);font-size:2.5rem;text-align:center;padding:var(--spacing-xs)}.input-underlined:focus{outline:none;border-bottom-color:var(--accent-primary)}.input-underlined::placeholder{color:var(--text-muted);opacity:.3;font-family:var(--font-ui);font-size:1rem;letter-spacing:.1em}.pronoun-pills{display:flex;gap:var(--spacing-sm);justify-content:center;flex-wrap:wrap}.pronoun-pill{background:transparent;border:1px solid var(--border-subtle);border-radius:20px;padding:12px 16px;font-size:.85rem;color:var(--text-muted);cursor:pointer}.pronoun-pill:hover{border-color:var(--text-secondary);color:var(--text-secondary)}.pronoun-pill.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--bg-primary);box-shadow:0 0 15px var(--accent-glow)}.wizard-actions{display:flex;justify-content:space-between;align-items:center;margin-top:0;margin-bottom:10px;padding-bottom:20px;width:100%}.wizard-actions.centered{flex-direction:column;gap:var(--spacing-md)}.start-btn-glow{background:transparent;border:1px solid var(--accent-primary);color:var(--accent-primary);padding:12px 32px;border-radius:50px;font-size:.9rem;text-transform:uppercase;letter-spacing:.1em;position:relative;overflow:hidden;cursor:pointer;min-width:160px;display:flex;justify-content:center;align-items:center}.start-btn-glow:hover:not(:disabled){background:var(--accent-primary);color:var(--bg-primary);box-shadow:0 0 20px var(--accent-glow)}.start-btn-glow:disabled{opacity:.3;cursor:not-allowed;transform:none!important;box-shadow:none!important}.back-link,.continue-link{background:transparent;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);padding:10px 24px;border-radius:5px;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-width:120px}.back-link:hover:not(:disabled),.continue-link:hover:not(:disabled){border-color:var(--accent-secondary);color:var(--accent-secondary);background:#ffffff08;box-shadow:0 4px 12px #0003}.step-indicator{display:flex;justify-content:center;gap:12px;margin-bottom:var(--spacing-xl);opacity:.5}.step-dot{width:6px;height:6px;background:var(--text-muted);border-radius:50%}.step-dot.active{background:var(--accent-primary);transform:scale(1.3);box-shadow:0 0 8px var(--accent-glow)}.setup-footer{margin-top:auto;opacity:.7;width:100%;padding-top:10px;border-top:1px solid rgba(255,255,255,.04)}.footer-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);width:100%;text-align:center}@media (min-width: 640px){.footer-content{flex-direction:row;justify-content:space-between;text-align:left}}.footer-controls{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md)}.footer-text{font-size:1rem;color:var(--text-muted);letter-spacing:.05em;margin:0;font-family:var(--font-prose);font-style:italic}.footer-link{display:inline-flex;align-items:center;justify-content:center;height:28px;line-height:1;font-size:.75rem;color:var(--text-secondary);text-decoration:none;background:transparent!important;border:1px solid transparent;cursor:pointer;padding:6px 14px;border-radius:50px;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.05em;opacity:.8}.footer-link:hover{color:var(--text-primary);border-color:var(--border-subtle);background:#ffffff0d!important;opacity:1}@media (max-width: 640px){.setup-card{max-width:100%;height:100%;padding:var(--spacing-md);padding-top:calc(env(safe-area-inset-top) + 20px);display:flex;flex-direction:column;background:var(--bg-secondary)}.wizard-title-large,.section-title-clean{font-size:2.8rem}.input-underlined{font-size:2rem}.wizard-step{min-height:auto}.wizard-actions{margin-top:auto;padding-bottom:20px}.setup-footer{display:flex;justify-content:center;width:100%;padding-top:20px}}@media (max-width: 400px){.setup-container{position:fixed;top:0;left:0;right:0;bottom:0;padding:0;overflow:hidden}.setup-card{border:none!important;border-radius:0!important;background:var(--bg-secondary)}.random-notice p{font-size:.7rem!important}.gender-card,.pacing-card{padding:var(--spacing-sm)}.setup-card{height:100%;padding-top:calc(env(safe-area-inset-top,10px) + 8px);padding-bottom:calc(env(safe-area-inset-bottom,10px) + 8px);justify-content:space-between;overflow:hidden}.logo{font-size:4rem;margin-bottom:-5px}.setup-subtitle{font-size:.55rem}.setup-footer{margin-top:0}.wizard-step{gap:var(--spacing-sm);min-height:0}.wizard-title-large,.section-title-clean{font-size:2.5rem;margin-bottom:var(--spacing-xs)}.section-hint-clean{font-size:.75rem}.input-underlined{font-size:1.5rem;max-width:250px}.setup-form-clean{gap:var(--spacing-lg)}.form-group-clean{gap:var(--spacing-xs)}.pronoun-pill{font-size:.7rem;padding:4px 12px}.wizard-actions{margin-top:var(--spacing-sm)}.start-btn-glow,.back-link,.continue-link{font-size:.75rem;padding:10px 24px}.footer-text{font-size:.6rem}.footer-link{font-size:.6rem;padding:4px 10px}}.random-notice{background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg);display:flex;gap:var(--spacing-sm)}.random-notice p{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.5}.notice-icon{color:var(--accent-primary)}.ambient-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;background:radial-gradient(ellipse at 50% -20%,#1f1525,#15121a,#0d0b10 60%,#0a0a0f)}.gradient-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 100% 60% at 10% 90%,rgba(180,120,60,.12) 0%,transparent 50%),radial-gradient(ellipse 80% 50% at 90% 10%,rgba(100,70,130,.15) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 50% 50%,rgba(201,168,124,.04) 0%,transparent 60%);pointer-events:none}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 0%,transparent 50%,rgba(0,0,0,.4) 100%);pointer-events:none}.noise-overlay{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.03;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}[data-theme=light] .ambient-background{background:radial-gradient(ellipse at 50% -20%,#faf8f5,#f5f3f0,#ebe8e3 60%,#e0ddd8)}[data-theme=light] .gradient-overlay{background:radial-gradient(ellipse 100% 60% at 10% 90%,rgba(139,111,71,.08) 0%,transparent 50%),radial-gradient(ellipse 80% 50% at 90% 10%,rgba(166,138,94,.06) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 50% 50%,rgba(201,168,124,.03) 0%,transparent 60%)}[data-theme=light] .vignette{background:radial-gradient(ellipse at center,transparent 0%,transparent 60%,rgba(0,0,0,.05) 100%)}[data-theme=light] .noise-overlay{opacity:.02}.disclaimer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.disclaimer-modal{background:linear-gradient(145deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2rem;max-width:480px;width:100%;text-align:center;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d}.disclaimer-icon{font-size:3rem;margin-bottom:1rem}.disclaimer-title{font-family:Crimson Text,Georgia,serif;font-size:1.75rem;font-weight:600;color:#fff;margin:0 0 1.5rem;letter-spacing:.02em}.disclaimer-content{text-align:left;color:#fffc;font-size:.95rem;line-height:1.6}.disclaimer-content p{margin:0 0 1rem}.disclaimer-content strong{color:#fff}.disclaimer-note{background:#6495ed1a;border-left:3px solid rgba(100,149,237,.5);padding:.75rem 1rem;border-radius:0 8px 8px 0;margin-top:1.5rem!important;font-size:.9rem}.disclaimer-age{text-align:center;padding:.75rem;background:#ff64641a;border:1px solid rgba(255,100,100,.3);border-radius:8px;margin-bottom:1.25rem!important}.disclaimer-list{margin:.75rem 0 1rem 1.25rem;padding:0;list-style:none}.disclaimer-list li{position:relative;padding-left:1.25rem;margin-bottom:.4rem;color:#ffffffbf}.disclaimer-list li:before{content:"•";position:absolute;left:0;color:#ff9696cc}.disclaimer-crisis{background:#64c8961a;border:1px solid rgba(100,200,150,.25);border-radius:8px;padding:1rem;margin-top:1rem!important;font-size:.85rem}.disclaimer-crisis p{margin:0 0 .4rem!important}.disclaimer-crisis p:last-child{margin-bottom:0!important}.disclaimer-crisis a{color:#7dd3a8;text-decoration:none}.disclaimer-crisis a:hover{text-decoration:underline}.disclaimer-button{margin-top:1.5rem;padding:.875rem 2.5rem;background:linear-gradient(135deg,#c9a227,#d4af37);color:#1a1a2e;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.02em}.disclaimer-button:hover{background:linear-gradient(135deg,#d4af37,#e5c04b);transform:translateY(-2px);box-shadow:0 8px 20px #c9a2274d}.disclaimer-button:active{transform:translateY(0)}[data-theme=light] .disclaimer-overlay{background:#00000080}[data-theme=light] .disclaimer-modal{background:linear-gradient(145deg,#fff,#f5f3f0);border-color:var(--border-subtle);box-shadow:0 25px 50px -12px #00000026,0 0 0 1px #0000000d}[data-theme=light] .disclaimer-title{color:var(--text-primary)}[data-theme=light] .disclaimer-content{color:var(--text-secondary)}[data-theme=light] .disclaimer-content strong{color:var(--text-primary)}[data-theme=light] .disclaimer-note{background:#6495ed14;border-left-color:#6495ed66}[data-theme=light] .disclaimer-age{background:#ff646414;border-color:#ff646440}[data-theme=light] .disclaimer-list li{color:var(--text-secondary)}[data-theme=light] .disclaimer-list li:before{color:#ff6464b3}[data-theme=light] .disclaimer-crisis{background:#64c89614;border-color:#64c89633}[data-theme=light] .disclaimer-crisis a{color:#2d9f6f}[data-theme=light] .disclaimer-button{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff}[data-theme=light] .disclaimer-button:hover{background:linear-gradient(135deg,var(--accent-secondary),var(--accent-primary));box-shadow:0 8px 20px #8b6f474d}@media (max-width: 640px){.disclaimer-overlay{padding:var(--spacing-md, 1rem);align-items:center;justify-content:center}.disclaimer-modal{border-radius:16px;padding:1.5rem;max-height:85vh;overflow-y:auto}.disclaimer-icon{font-size:2.5rem}.disclaimer-title{font-size:1.5rem}.disclaimer-content{font-size:.9rem}.disclaimer-button{width:100%;padding:1rem;min-height:48px;font-size:1.05rem}}.restore-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:1rem;background:#00000073;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.restore-card{width:100%;max-width:420px;display:flex;gap:.75rem;align-items:center;padding:1rem 1.1rem;border-radius:16px;background:#12121ab8;border:1px solid var(--border-subtle);box-shadow:0 25px 50px -12px #0000008c,0 0 0 1px #ffffff0a}[data-theme=light] .restore-overlay{background:#f5f3f073}[data-theme=light] .restore-card{background:#ffffffb8;box-shadow:0 18px 40px -18px #00000040,0 0 0 1px #0000000d}.restore-text{display:flex;flex-direction:column;gap:.15rem}.restore-title{color:var(--text-primary);font-size:.95rem;font-weight:600;letter-spacing:.2px}.restore-subtitle{color:var(--text-secondary);font-size:.8rem}.restore-spinner{width:18px;height:18px;border-radius:999px;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent-primary);animation:restore-spin .9s linear infinite;flex-shrink:0}[data-theme=light] .restore-spinner{border-color:#0000001f;border-top-color:var(--accent-primary)}.restore-spinner.small{width:14px;height:14px;border-width:2px}@keyframes restore-spin{to{transform:rotate(360deg)}}.restore-toast{position:fixed;top:calc(var(--safe-area-top) + 12px);left:0;right:0;z-index:20;display:flex;justify-content:center;pointer-events:none}.restore-toast-inner{display:inline-flex;gap:.5rem;align-items:center;padding:.55rem .75rem;border-radius:999px;background:#12121aa6;border:1px solid var(--border-subtle);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 30px #00000059}[data-theme=light] .restore-toast-inner{background:#ffffffa6}.restore-toast-text{color:var(--text-secondary);font-size:.8rem;letter-spacing:.2px}.admin-dashboard{display:flex;height:100vh;background-color:#0a0a0a;color:#e0e0e0;font-family:Inter,sans-serif;overflow:hidden}.admin-sidebar{width:260px;background:#14141999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;padding:1.5rem;flex-shrink:0}.sidebar-header{margin-bottom:2.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand{font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem}.sidebar-brand span{color:var(--accent-primary, #c9a87c)}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem;flex:1}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:8px;color:#888;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.nav-item:hover{background:#ffffff08;color:#ccc}.nav-item.active{background:#c9a87c1a;color:var(--accent-primary, #c9a87c);border-color:#c9a87c33}.sidebar-footer{margin-top:auto;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.08)}.nav-item.logout{color:#ff6b6b}.nav-item.logout:hover{background:#ff6b6b1a}.admin-content{flex:1;overflow-y:auto;padding:2rem;background:radial-gradient(circle at top right,rgba(201,168,124,.05),transparent 40%)}.dashboard-header{margin-bottom:2rem}.dashboard-title{font-size:1.75rem;font-weight:600;color:#fff;margin-bottom:.5rem}.dashboard-subtitle{color:#666;font-size:.9rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2.5rem}.stat-card{background:#1e1e2399;border:1px solid rgba(255,255,255,.05);padding:1.5rem;border-radius:12px;display:flex;flex-direction:column}.stat-label{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:#888;margin-bottom:.5rem}.stat-value{font-size:2rem;font-weight:700;color:#fff}.stat-trend{font-size:.8rem;margin-top:.5rem}.stat-trend.positive{color:#5ba88f}.stat-trend.neutral{color:#888}.data-table-container{background:#1e1e2366;border:1px solid rgba(255,255,255,.05);border-radius:12px;overflow:hidden;box-shadow:0 4px 24px #0003}.table-header{padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.05);display:flex;justify-content:space-between;align-items:center}.table-title{font-size:1.1rem;font-weight:600;color:#eee}table{width:100%;border-collapse:collapse;text-align:left}th{padding:1rem 1.5rem;font-weight:500;font-size:.85rem;color:#888;border-bottom:1px solid rgba(255,255,255,.05);background:#ffffff03}td{padding:1rem 1.5rem;font-size:.9rem;color:#ccc;border-bottom:1px solid rgba(255,255,255,.03)}tr:last-child td{border-bottom:none}tr:hover td{background:#ffffff05}.role-badge{padding:.25rem .6rem;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.role-badge.admin{background:#5ba88f26;color:#5ba88f;border:1px solid rgba(91,168,143,.3)}.role-badge.user{background:#64647826;color:#a0a0b0;border:1px solid rgba(100,100,120,.3)}.action-select{background:#1a1a20;color:#ccc;border:1px solid #333;padding:.3rem .5rem;border-radius:4px;margin-right:.5rem;font-size:.85rem}.action-btn{padding:.3rem .6rem;border-radius:4px;font-size:.8rem;cursor:pointer;border:1px solid transparent;transition:all .2s}.action-btn.delete{background:#ff6b6b1a;color:#f88;border-color:#ff6b6b33}.action-btn.delete:hover{background:#ff6b6b33}.mobile-menu-toggle{display:none;position:fixed;top:1rem;right:1rem;z-index:1001;background:#1e1e23cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);color:#fff;width:40px;height:40px;border-radius:8px;font-size:1.5rem;cursor:pointer;align-items:center;justify-content:center;transition:all .2s}.mobile-menu-toggle:hover{background:#ffffff1a}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:998;opacity:0;pointer-events:none;transition:opacity .3s ease}.sidebar-overlay.active{opacity:1;pointer-events:auto}@media (max-width: 768px){.admin-dashboard{flex-direction:column;height:100dvh;overflow:hidden}body{overflow-x:hidden}.admin-sidebar{position:fixed;top:0;left:-100%;bottom:0;z-index:999;width:280px;box-shadow:10px 0 30px #00000080;transition:left .3s cubic-bezier(.4,0,.2,1)}.admin-sidebar.open{left:0}.admin-content{padding:5rem 1.5rem 6rem;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.mobile-menu-toggle{display:flex}.stats-grid{grid-template-columns:1fr;gap:1rem}.data-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.dashboard-header{margin-bottom:1.5rem}.dashboard-title{font-size:1.5rem}.mobile-bottom-spacer{height:100px;width:100%}}.memory-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;justify-content:center;align-items:center;padding:2rem;animation:fadeIn .2s ease-out}.memory-modal{background:#1a1a20;width:100%;max-width:800px;max-height:90vh;border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 40px #00000080;display:flex;flex-direction:column;overflow:hidden}.memory-header{padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;background:#ffffff05}.memory-header h2{margin:0;font-size:1.25rem;color:#fff;display:flex;align-items:center;gap:.5rem}.memory-content{padding:1.5rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:2rem}.memory-section{background:#ffffff08;border-radius:8px;padding:1.25rem;border:1px solid rgba(255,255,255,.05)}.memory-section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:#888;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.memory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.memory-item-label{font-size:.8rem;color:#666;margin-bottom:.25rem}.memory-item-value{font-size:1rem;color:#e0e0e0;font-weight:500}.memory-list{display:flex;flex-direction:column;gap:.5rem}.memory-list-item{padding:.75rem;background:#0003;border-radius:6px;font-size:.95rem;color:#ccc;border-left:3px solid var(--accent-primary, #c9a87c)}.memory-pill{display:inline-flex;padding:.25rem .75rem;background:#5ba88f26;color:#5ba88f;border-radius:99px;font-size:.85rem;font-weight:500}.memory-pill.locked{background:#ff6b6b26;color:#f88}.memory-empty{font-style:italic;color:#666;font-size:.9rem}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--bg-elevated: #22222e;--text-primary: #e8e4df;--text-secondary: #a8a4a0;--text-muted: #6a6662;--accent-primary: #c9a87c;--accent-secondary: #8b7355;--accent-glow: rgba(201, 168, 124, .3);--border-subtle: rgba(255, 255, 255, .06);--border-accent: rgba(201, 168, 124, .2);--font-prose: "Crimson Pro", Georgia, serif;--font-ui: "Outfit", system-ui, sans-serif;--font-logo: "Qwigley", cursive;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--touch-target-min: 44px}[data-theme=light]{--bg-primary: #f5f3f0;--bg-secondary: #ebe8e3;--bg-tertiary: #e0ddd8;--bg-elevated: #ffffff;--text-primary: #1a1a1a;--text-secondary: #4a4a4a;--text-muted: #8a8a8a;--accent-primary: #8b6f47;--accent-secondary: #a68a5e;--accent-glow: rgba(139, 111, 71, .2);--border-subtle: rgba(0, 0, 0, .08);--border-accent: rgba(139, 111, 71, .3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;overflow:hidden;-webkit-text-size-adjust:100%}body{font-family:var(--font-ui);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;min-height:100dvh;overscroll-behavior:none}#root{min-height:100vh;display:flex;flex-direction:column}.app{flex:1;display:flex;flex-direction:column;position:relative;height:100%;min-height:100vh}.chat-container{flex:1;display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-glow);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.prose{font-family:var(--font-prose);font-size:1.125rem;line-height:1.75;letter-spacing:.01em}.prose-action{font-style:italic;color:var(--text-secondary)}.prose-dialogue{color:var(--text-primary)}.btn{font-family:var(--font-ui);font-size:.875rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:var(--spacing-sm)}.btn-primary{background:var(--accent-primary);color:var(--bg-primary);border-color:var(--accent-primary)}.btn-primary:hover:not(:disabled){background:var(--accent-secondary);border-color:var(--accent-secondary)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border-subtle)}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.input{font-family:var(--font-ui);font-size:1rem;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);transition:all var(--transition-fast)}.input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.input::placeholder{color:var(--text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease forwards}.animate-slide-up{animation:slideUp var(--transition-normal) ease forwards}@media (max-width: 640px){.btn{min-height:var(--touch-target-min);padding:var(--spacing-sm) var(--spacing-md)}button,[role=button],a{min-height:44px}.no-select{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}.safe-area-inset{padding-top:var(--safe-area-top);padding-bottom:var(--safe-area-bottom);padding-left:var(--safe-area-left);padding-right:var(--safe-area-right)}.app{overscroll-behavior-y:contain}.scroll-container{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@media (max-width: 640px){input,textarea,select{font-size:16px!important}}@media (max-width: 640px){::-webkit-scrollbar{width:0;height:0}}.auth-container{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.auth-card{width:100%;max-width:420px;background:#12121af2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:16px;padding:var(--spacing-xl);box-shadow:0 0 80px #00000080,0 0 1px #ffffff1a;transform:translateZ(0);will-change:transform}.auth-header{text-align:center;margin-bottom:var(--spacing-xl)}.logo-large{font-family:var(--font-logo);font-size:5rem;font-weight:400;letter-spacing:.02em;margin-bottom:-15px;text-shadow:0 2px 20px rgba(201,168,124,.3);color:var(--text-primary)}.logo-accent{color:var(--accent-primary)}.auth-subtitle{color:var(--text-muted);font-size:.9rem;font-weight:300;letter-spacing:.1em;text-transform:uppercase;margin-top:10px}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-label{font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-left:2px}.form-input{width:100%;padding:var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-family:var(--font-ui);font-size:1rem;transition:all .2s ease}.form-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 1px #c9a87c33;background:#ffffff05}.form-input::placeholder{color:var(--text-muted);opacity:.5}.auth-button{width:100%;padding:var(--spacing-md);font-size:1rem;font-weight:500;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:all .2s ease;display:flex;justify-content:center;align-items:center;margin-top:var(--spacing-sm);font-family:var(--font-ui)}.auth-button.primary{background:#c9a87c26;border-color:var(--accent-primary);color:var(--accent-primary)}.auth-button.primary:hover:not(:disabled){background:#c9a87c40;box-shadow:0 0 15px #c9a87c33}.auth-button:disabled{opacity:.5;cursor:not-allowed}.auth-footer{margin-top:var(--spacing-xl);text-align:center;font-size:.85rem;color:var(--text-muted);border-top:1px solid var(--border-subtle);padding-top:var(--spacing-lg)}.auth-link{background:none;border:none;font-weight:400;cursor:pointer;color:var(--accent-secondary);margin-left:5px;text-decoration:none;border-bottom:1px solid transparent;transition:all .2s;padding:0;font-size:.85rem}.auth-link:hover{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.auth-error{background:#b43c3c26;border:1px solid rgba(180,60,60,.3);color:#e88;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;font-size:.875rem;margin-bottom:var(--spacing-sm)}.spinner{width:18px;height:18px;border:2px solid rgba(201,168,124,.3);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.auth-container{padding:0;align-items:stretch}.auth-card{max-width:none;height:100%;border-radius:0;border:none;display:flex;flex-direction:column;justify-content:center;background:var(--bg-secondary)}.logo-large{font-size:4rem}}.auth-back-button{background:none;border:none;color:var(--text-muted);font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:8px;padding:0;margin-bottom:var(--spacing-lg);transition:color .2s;font-family:var(--font-ui)}.auth-back-button:hover{color:var(--accent-primary)}
