:root{--color-bg-primary: #0a0a0f;--color-bg-secondary: #12121a;--color-bg-tertiary: #1a1a25;--color-bg-glass: rgba(255, 255, 255, .03);--color-bg-glass-hover: rgba(255, 255, 255, .06);--color-accent-primary: #14b8a6;--color-accent-secondary: #0d9488;--color-accent-gradient: linear-gradient(135deg, #14b8a6 0%, #0d9488 100%);--color-text-primary: #f4f4f5;--color-text-secondary: #a1a1aa;--color-text-muted: #71717a;--color-border: rgba(255, 255, 255, .08);--color-border-hover: rgba(255, 255, 255, .15);--color-success: #22c55e;--color-warning: #f59e0b;--color-error: #ef4444;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-serif: "Crimson Text", Georgia, serif;--font-reading: var(--font-serif);--font-size-reading: 1.05rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(20, 184, 166, .3);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--header-height: 56px;--sidebar-width: 280px}[data-theme=light]{--color-bg-primary: #f8fafc;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f1f5f9;--color-bg-glass: rgba(0, 0, 0, .02);--color-bg-glass-hover: rgba(0, 0, 0, .05);--color-accent-primary: #0d9488;--color-accent-secondary: #0f766e;--color-accent-gradient: linear-gradient(135deg, #0d9488 0%, #0f766e 100%);--color-text-primary: #1e293b;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-border: rgba(0, 0, 0, .08);--color-border-hover: rgba(0, 0, 0, .15);--color-success: #16a34a;--color-warning: #d97706;--color-error: #dc2626;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(13, 148, 136, .2)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.5;min-height:100vh;overflow-x:hidden}#app{min-height:100vh;display:flex;flex-direction:column}.loading-screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);background:var(--color-bg-primary);z-index:100;transition:opacity var(--transition-slow),visibility var(--transition-slow)}.loading-screen.hidden{opacity:0;visibility:hidden}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.onboarding{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(20,184,166,.1),transparent)}.onboarding-card{width:100%;max-width:400px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-2xl)}.onboarding-header{text-align:center;margin-bottom:var(--space-xl)}.onboarding-title{font-size:1.75rem;font-weight:700;background:var(--color-accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-sm)}.onboarding-subtitle{color:var(--color-text-secondary);font-size:.95rem}.auth-buttons{display:flex;flex-direction:column;gap:var(--space-md)}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-md);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);flex-shrink:0;z-index:50}.header-left,.header-right{display:flex;align-items:center;gap:var(--space-md)}.app-title{font-weight:600;font-size:1.1rem;color:var(--color-text-primary);text-decoration:none;cursor:pointer}.app-title:hover{color:var(--color-accent-primary)}.header-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.header-btn:hover{background:var(--color-bg-glass-hover);border-color:var(--color-border-hover);color:var(--color-text-primary)}.header-btn.inventory-toggle{width:auto;padding:0 var(--space-sm);gap:var(--space-xs)}.icon-menu:before{content:"";width:16px;height:2px;background:currentColor;box-shadow:0 5px 0 currentColor,0 10px 0 currentColor;display:block}.icon-settings:before{content:"⚙";font-size:18px}.icon-bag:before{content:"🎒";font-size:14px}.icon-close:before{content:"✕";font-size:14px}.icon-back:before{content:"←";font-size:16px}.icon-send:before{content:"➤";font-size:16px}.icon-undo:before{content:"↩";font-size:16px}.icon-map:before{content:"🗺";font-size:14px}.icon-export:before{content:"📥";font-size:14px}.icon-logout:before{content:"⏻";font-size:16px}.icon-warning:before{content:"⚠";font-size:14px}.game-info-header{display:flex;align-items:center;gap:var(--space-sm)}.playing-as{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:#14b8a626;border:1px solid rgba(20,184,166,.3);border-radius:var(--radius-full);font-size:.8rem;color:var(--color-accent-primary)}.playing-as-icon{font-size:.9rem}.playing-as-name{font-weight:500}.game-location{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-glass);border-radius:var(--radius-full);font-size:.8rem;color:var(--color-text-secondary)}.location-dot{width:6px;height:6px;background:var(--color-success);border-radius:50%}.inventory-count{background:var(--color-accent-primary);color:#fff;font-size:.7rem;font-weight:600;padding:2px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}.app-layout{display:flex;flex:1;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--color-bg-secondary);border-right:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0;transform:translate(-100%);transition:transform var(--transition-base);position:absolute;left:0;top:var(--header-height);bottom:0;z-index:40}.sidebar.open{transform:translate(0)}@media(min-width:768px){.sidebar{position:relative;top:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}}.sidebar-header{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);border-bottom:1px solid var(--color-border)}.sidebar-title{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.btn-upload-new{width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-accent-gradient);border:none;border-radius:var(--radius-md);color:#fff;font-weight:500;font-size:.875rem;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.btn-upload-new:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow)}.sidebar-content{flex:1;overflow-y:auto;padding:var(--space-sm)}.adventure-tree{list-style:none}.tree-item{margin-bottom:2px}.tree-item-content{display:flex;align-items:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast);gap:var(--space-sm);font-size:.9rem}.tree-item-content:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.tree-item-content.active{background:#14b8a626;color:var(--color-accent-primary)}.tree-icon{font-size:1rem;opacity:.7}.tree-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-expand-icon{font-size:.7rem;color:var(--color-text-muted);transition:transform var(--transition-fast);cursor:pointer;padding:var(--space-xs);margin-left:calc(var(--space-xs) * -1)}.tree-item.expanded>.tree-item-content .tree-expand-icon{transform:rotate(90deg)}.tree-children{list-style:none;padding-left:var(--space-lg);max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.tree-children.open{max-height:500px}.tree-child-item{margin-bottom:2px}.tree-child-content{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted);font-size:.85rem;transition:all var(--transition-fast)}.tree-child-content:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.tree-session-icon{font-size:.9rem}.tree-session-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-session-turn{font-size:.7rem;color:var(--color-text-muted);padding:2px 6px;background:var(--color-bg-glass);border-radius:var(--radius-sm)}.tree-session-delete{display:none;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;margin-left:auto;flex-shrink:0}.tree-session-delete:hover{background:var(--color-error);color:#fff}.tree-child-content:hover .tree-session-delete{display:flex}.tree-new-playthrough .tree-child-content{color:var(--color-accent-primary);font-style:italic}.tree-new-playthrough .tree-child-content:hover{background:#14b8a61a}.tree-new-icon{font-weight:700}.tree-new-label{flex:1}.sidebar-footer{padding:var(--space-md);border-top:1px solid var(--color-border)}.user-profile{display:flex;align-items:center;gap:var(--space-sm)}.user-avatar-small{width:32px;height:32px;border-radius:50%;background:var(--color-bg-tertiary);border:1px solid var(--color-border)}.user-avatar-img{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-info{flex:1;overflow:hidden}.user-name{font-weight:500;font-size:.875rem;color:var(--color-text-primary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-status{font-size:.75rem;color:var(--color-text-muted);display:block}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.btn-icon:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.main-content{flex:1;overflow-y:auto;background:var(--color-bg-primary)}.content-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-muted);text-align:center;padding:var(--space-xl)}.placeholder-icon{width:80px;height:80px;background:var(--color-bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--space-lg);opacity:.5}.content-placeholder h2{font-size:1.25rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.content-placeholder p{font-size:.9rem}.book-details{padding:var(--space-xl);max-width:700px;margin:0 auto;animation:fadeIn var(--transition-base)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.book-details-header{margin-bottom:var(--space-lg)}.book-details-title{font-size:2rem;font-weight:700;color:var(--color-text-primary);line-height:1.2;margin-bottom:var(--space-xs)}.book-details-author{font-size:1rem;color:var(--color-text-muted);font-family:var(--font-serif);font-style:italic}.book-details-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.book-summary{font-size:1rem;line-height:1.7;color:var(--color-text-secondary);margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.settings-warning{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);color:var(--color-warning);font-size:.875rem;margin-bottom:var(--space-lg)}.settings-warning a{color:var(--color-warning);text-decoration:underline}.book-actions-bar{display:flex;gap:var(--space-md);justify-content:flex-end}.settings-page{padding:var(--space-xl);max-width:600px;margin:0 auto;animation:fadeIn var(--transition-base)}.settings-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl)}.settings-title{font-size:1.5rem;font-weight:600}.btn-back{display:flex;align-items:center;gap:var(--space-xs)}.settings-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.setting-group{margin-bottom:var(--space-xl)}.setting-group:last-child{margin-bottom:0}.setting-label{display:block;font-weight:600;font-size:1rem;color:var(--color-text-primary);margin-bottom:var(--space-xs)}.setting-hint{font-size:.8rem;color:var(--color-text-muted);margin-bottom:var(--space-md)}.age-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.age-option{background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;cursor:pointer;transition:all var(--transition-fast)}.age-option:hover{border-color:var(--color-border-hover)}.age-option.selected{border-color:var(--color-accent-primary);background:#14b8a61a}.age-option-icon{font-size:1.5rem;margin-bottom:var(--space-xs)}.age-option-label{font-weight:500;font-size:.8rem;color:var(--color-text-primary)}.age-option-range{font-size:.7rem;color:var(--color-text-muted)}.response-options{display:flex;flex-direction:column;gap:var(--space-sm)}.radio-option{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.radio-option:hover{border-color:var(--color-border-hover)}.radio-option.selected{border-color:var(--color-accent-primary);background:#14b8a61a}.radio-option input[type=radio]{display:none}.radio-label{font-weight:500;color:var(--color-text-primary)}.radio-desc{font-size:.8rem;color:var(--color-text-muted);margin-left:auto}.toggle-option{display:flex;align-items:center;gap:var(--space-md);cursor:pointer}.toggle-option input[type=checkbox]{display:none}.toggle-switch{width:44px;height:24px;background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-full);position:relative;transition:all var(--transition-fast)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--color-text-muted);border-radius:50%;transition:all var(--transition-fast)}.toggle-option input:checked+.toggle-switch{background:var(--color-accent-primary);border-color:var(--color-accent-primary)}.toggle-option input:checked+.toggle-switch:after{left:22px;background:#fff}.toggle-label{color:var(--color-text-secondary)}.theme-options{display:flex;gap:var(--space-md)}.theme-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.theme-option:hover{border-color:var(--color-border-hover)}.theme-option.selected{border-color:var(--color-accent-primary);background:#14b8a61a}.theme-option-preview{width:60px;height:40px;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.theme-preview-dark{background:linear-gradient(135deg,#0a0a0f,#12121a,#1a1a25)}.theme-preview-light{background:linear-gradient(135deg,#f8fafc,#fff,#f1f5f9)}.theme-option-label{font-size:.85rem;font-weight:500;color:var(--color-text-primary)}.font-options,.font-size-options{display:flex;flex-direction:column;gap:var(--space-sm)}.font-preview-sans{font-family:var(--font-sans)}.font-preview-serif{font-family:var(--font-serif)}.font-preview-mono{font-family:Courier New,Monaco,monospace}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-size:.9rem;font-weight:500;font-family:inherit;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn-primary{background:var(--color-accent-gradient);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-glow)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg-glass-hover);border-color:var(--color-border-hover)}.btn-full{width:100%}.form-input{width:100%;padding:var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:1rem;font-family:inherit;transition:border-color var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-accent-primary)}.form-input::placeholder{color:var(--color-text-muted)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:var(--space-md);z-index:100;animation:fadeIn var(--transition-fast)}.modal-content{width:100%;max-width:480px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:1.1rem;font-weight:600}.modal-body{padding:var(--space-lg)}.modal-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-2xl);text-align:center;cursor:pointer;transition:all var(--transition-fast)}.upload-zone:hover,.upload-zone.dragover{border-color:var(--color-accent-primary);background:#14b8a60d}.upload-zone-icon{font-size:2.5rem;margin-bottom:var(--space-md);opacity:.5}.upload-zone-text{color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.upload-zone-text strong{color:var(--color-accent-primary)}.upload-zone-hint{font-size:.75rem;color:var(--color-text-muted)}.upload-zone input{display:none}.upload-success{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:var(--radius-md)}.upload-success-icon{color:var(--color-success);font-size:1.25rem}.upload-success p{font-size:.8rem;color:var(--color-text-muted)}.upload-progress{padding:var(--space-md) 0}.progress-stages{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.progress-stage{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-glass);opacity:.4;transition:all var(--transition-base)}.progress-stage.active{opacity:1;background:#14b8a61a;border:1px solid rgba(20,184,166,.3)}.progress-stage.done{opacity:.7}.progress-stage.done .stage-icon{color:var(--color-success)}.progress-stage.done .stage-icon:after{content:" ✓";font-size:.7rem}.stage-icon{font-size:1.2rem;width:32px;text-align:center}.progress-stage.active .stage-icon{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.stage-info{flex:1}.stage-label{font-size:.9rem;font-weight:500;color:var(--color-text-primary)}.stage-status{font-size:.75rem;color:var(--color-text-muted);min-height:1rem}.progress-stage.active .stage-status{color:var(--color-accent-primary)}.progress-bar-container{height:4px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-bar{height:100%;width:0%;background:var(--color-accent-gradient);border-radius:var(--radius-full);transition:width .5s ease}.character-modal-content{max-width:420px}.character-section{margin-bottom:var(--space-md)}.character-section:last-child{margin-bottom:0}.character-section-title{font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--space-sm)}.character-list{display:flex;flex-direction:column;gap:var(--space-sm);max-height:250px;overflow-y:auto}.character-option{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md);background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left}.character-option:hover{border-color:var(--color-accent-primary);background:#14b8a61a}.character-option-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-glass);border-radius:var(--radius-md)}.character-option-details{flex:1}.character-option-name{font-weight:600;font-size:.95rem;color:var(--color-text-primary);margin-bottom:2px}.character-option-desc{font-size:.8rem;color:var(--color-text-muted);line-height:1.4}.character-option-casual{border-style:dashed}.character-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;color:var(--color-text-muted);font-size:.8rem}.character-divider:before,.character-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.game-container{display:flex;flex-direction:column;height:100%}.chat-container{flex:1;display:flex;flex-direction:column;max-width:800px;margin:0 auto;padding:var(--space-md);width:100%}.chat-messages{flex:1;overflow-y:auto;padding-bottom:var(--space-md)}.chat-message{margin-bottom:var(--space-md);animation:fadeIn var(--transition-base)}.message-narrator{font-family:var(--font-reading);font-size:var(--font-size-reading);line-height:1.7;color:var(--color-text-primary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-sm);padding:var(--space-md) var(--space-lg);max-width:90%}.message-narrator p{margin-bottom:var(--space-sm)}.message-narrator p:last-child{margin-bottom:0}.message-player{display:flex;justify-content:flex-end}.message-player-content{max-width:80%;padding:var(--space-sm) var(--space-md);background:var(--color-accent-gradient);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-sm) var(--radius-lg);color:#fff;font-size:.95rem}.message-system{text-align:center;color:var(--color-text-muted);font-size:.85rem;font-style:italic}.suggestions{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.suggestion-chip{padding:var(--space-xs) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:.8rem;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.suggestion-chip:hover{background:var(--color-bg-glass-hover);border-color:var(--color-accent-primary);color:var(--color-accent-primary)}.typing-indicator{display:none;align-items:center;gap:var(--space-sm);padding:var(--space-md);color:var(--color-text-muted);font-style:italic;font-size:.9rem}.typing-indicator.visible{display:flex}.typing-dots{display:flex;gap:4px}.typing-dots span{width:6px;height:6px;background:var(--color-text-muted);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out}.typing-dots span:nth-child(1){animation-delay:-.32s}.typing-dots span:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.chat-input-container{padding:var(--space-md) 0;border-top:1px solid var(--color-border)}.chat-input-wrapper{display:flex;gap:var(--space-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xs);transition:border-color var(--transition-fast)}.chat-input-wrapper:focus-within{border-color:var(--color-accent-primary)}.chat-input{flex:1;padding:var(--space-sm) var(--space-md);background:transparent;border:none;color:var(--color-text-primary);font-size:.95rem;font-family:inherit}.chat-input:focus{outline:none}.chat-input::placeholder{color:var(--color-text-muted)}.chat-send-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-accent-gradient);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;transition:transform var(--transition-fast)}.chat-send-btn:hover:not(:disabled){transform:scale(1.05)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.chat-undo-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.chat-undo-btn:hover:not(:disabled){background:var(--color-bg-glass-hover);border-color:var(--color-border-hover);color:var(--color-text-primary)}.chat-undo-btn:disabled{opacity:.3;cursor:not-allowed}.inventory-sidebar{position:fixed;top:var(--header-height);right:0;width:300px;height:calc(100vh - var(--header-height));background:var(--color-bg-secondary);border-left:1px solid var(--color-border);transform:translate(100%);transition:transform var(--transition-base);z-index:40;overflow-y:auto}.inventory-sidebar.open{transform:translate(0)}.inventory-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);border-bottom:1px solid var(--color-border)}.inventory-title{font-weight:600;font-size:1rem}.inventory-items{padding:var(--space-md)}.inventory-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-xl);font-size:.9rem}.inventory-item{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-glass);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-sm);cursor:pointer;transition:all var(--transition-fast)}.inventory-item:hover{background:var(--color-bg-glass-hover);border-color:var(--color-border-hover)}.inventory-item-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);font-size:1.1rem}.inventory-item-details{flex:1}.inventory-item-name{font-weight:500;font-size:.9rem;margin-bottom:2px}.inventory-item-desc{font-size:.8rem;color:var(--color-text-muted);line-height:1.4}.inventory-item-actions{display:flex;gap:var(--space-xs);margin-top:var(--space-sm)}.item-action-btn{padding:var(--space-xs) var(--space-sm);font-size:.7rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.item-action-btn:hover{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}@media(max-width:768px){.app-title{display:none}.game-info-header{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.playing-as,.game-location{font-size:.7rem;padding:2px var(--space-sm)}.playing-as-name,#location-display{max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.age-options{grid-template-columns:1fr}.book-details{padding:var(--space-md)}.book-details-title{font-size:1.5rem}.settings-page{padding:var(--space-md)}.inventory-sidebar{width:100%}}.map-modal-content{max-width:500px}.map-container{max-height:400px;overflow-y:auto}.map-path{display:flex;flex-direction:column;align-items:stretch}.map-node{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-glass);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.map-node.current{background:#14b8a626;border-color:var(--color-accent-primary)}.map-node-marker{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border-radius:50%;font-weight:600;font-size:.85rem;color:var(--color-text-secondary)}.map-node.current .map-node-marker{background:var(--color-accent-primary);color:#fff}.map-node-info{flex:1}.map-node-name{font-weight:500;color:var(--color-text-primary)}.map-node-turn{font-size:.75rem;color:var(--color-text-muted)}.map-node-current-badge{font-size:.7rem;padding:2px 8px;background:var(--color-accent-primary);color:#fff;border-radius:var(--radius-full);font-weight:500}.map-connector{width:2px;height:20px;background:var(--color-border);margin-left:23px}.map-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-xl)}.hidden{display:none!important}
