:root{--bg-primary: #0d0d0f;--bg-secondary: #141418;--bg-tertiary: #1a1a1f;--bg-elevated: #1f1f24;--surface: #1a1a1f;--text-primary: #f1f3f5;--text-secondary: #a8b3c2;--text-muted: #6b7689;--nav-inactive: #8893a1;--accent: #ffbc03;--accent-hover: #ffd24d;--accent-muted: rgba(255, 188, 3, .18);--accent-warm: #ffbc03;--accent-warm-hover: #ffd24d;--accent-warm-muted: rgba(255, 188, 3, .15);--border: #2a2a2a;--border-focus: #ffbc03;--success: #34d399;--success-muted: rgba(52, 211, 153, .15);--danger: #ab0000;--danger-hover: #e63939;--danger-muted: rgba(171, 0, 0, .2);--info: #e6a800;--info-muted: rgba(255, 188, 3, .12);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Consolas", "Monaco", "Courier New", monospace;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2), 0 0 1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .25), 0 2px 4px rgba(0, 0, 0, .15);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .3), 0 4px 6px rgba(0, 0, 0, .2);--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--text-label: 12px;--text-body: 14px;--text-h2: 18px;--text-h1: 28px}*{box-sizing:border-box}.skip-link{position:absolute;top:-40px;left:8px;padding:8px 12px;background:var(--accent);color:#0f0f11;font-size:14px;z-index:1001;border-radius:var(--radius-sm);transition:top .2s ease}.skip-link:focus{top:8px;outline:none;box-shadow:0 0 0 2px var(--accent-muted)}body{margin:0;font-family:var(--font-sans);font-size:var(--text-body);background:var(--bg-primary);color:var(--text-primary);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}button{font-family:inherit;font-size:13px;padding:6px 12px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,border-color .15s ease}button:hover{background:var(--bg-elevated);border-color:var(--text-muted)}button:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-muted)}button.primary,a.primary,button.primary:hover,a.primary:hover{color:#0f0f11!important}button.primary{background:var(--accent);border-color:var(--accent)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}a.primary{display:inline-block;padding:6px 12px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:13px;text-decoration:none}a.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}button.success{background:var(--success);border-color:var(--success);color:#0f0f11!important}button.success:hover{filter:brightness(1.08)}button.danger{background:var(--danger-muted);border-color:var(--danger);color:var(--danger)}button.danger:hover{background:var(--danger-muted);border-color:var(--danger-hover)}input,textarea,select{font-family:inherit;font-size:14px;padding:6px 10px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-muted)}textarea{min-height:100px;resize:vertical}code{font-family:var(--font-mono);font-size:.9em;padding:.15em .4em;background:var(--info-muted);border-radius:4px;color:var(--info);border:1px solid rgba(255,188,3,.25)}.app{display:flex;flex-direction:column;min-height:100vh}.page--centered{display:flex;flex:1;align-items:center;justify-content:center;padding:var(--space-xl) var(--space-md)}.page--centered-inner{max-width:420px;width:100%;text-align:center}.page--centered .hero-title{margin:0 0 var(--space-md) 0;font-size:var(--text-h1);font-weight:600;letter-spacing:-.02em;line-height:1.25;color:var(--text-primary)}.page--centered .hero-subtitle{margin:0 0 var(--space-xl) 0;font-size:var(--text-body);line-height:1.6;color:var(--text-secondary);max-width:65ch;margin-left:auto;margin-right:auto}.page--centered .hero-cta{padding:var(--space-md) var(--space-lg);font-size:var(--text-body)}.invite-accept-card{padding:var(--space-lg)}.invite-accept-card .invite-accept-error{margin-top:var(--space-md)}.invite-accept-footer{margin-top:var(--space-md);font-size:var(--text-body);font-weight:400;color:var(--text-secondary);text-align:center}.app-layout{display:flex;flex:1;min-height:0}.nav-rail{width:200px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-secondary);border-right:1px solid var(--border);box-shadow:2px 0 12px #0003}.nav-rail-brand{padding:var(--space-md) var(--space-md);font-size:var(--text-body);font-weight:500;letter-spacing:-.02em;border-bottom:1px solid var(--border);color:var(--text-primary)}.nav-rail-brand:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--text-secondary);margin-right:var(--space-sm);vertical-align:middle}.nav-rail-brand:hover{text-decoration:none;color:var(--text-secondary)}.nav-rail-links{flex:1;padding:var(--space-sm) 0;overflow-y:auto}.nav-group{margin-bottom:var(--space-sm)}.nav-group-header{font-size:var(--text-label);font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--nav-inactive);padding:var(--space-md) var(--space-md) var(--space-sm);margin:0}.nav-group a{padding-left:var(--space-md)}.nav-rail a{display:block;font-size:var(--text-body);font-weight:400;padding:var(--space-sm) var(--space-md);color:var(--nav-inactive);border-radius:0;border-left:3px solid transparent;margin:0}.nav-rail a:hover{background:var(--bg-tertiary);color:var(--text-secondary);text-decoration:none}.nav-rail a:focus-visible{outline:none;box-shadow:inset 0 0 0 1px var(--border)}.nav-rail a.active{background:transparent;color:var(--text-primary);border-left-color:var(--accent)}.nav-rail-footer{padding:var(--space-sm);border-top:1px solid var(--border)}.content{flex:1;padding:var(--space-md) var(--space-md);overflow-y:auto;min-width:0}.content-inner{max-width:1200px;margin:0 auto;width:100%}.header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--bg-secondary);border-bottom:2px solid var(--accent)}.header h1{margin:0;font-size:var(--text-body);font-weight:600;letter-spacing:-.02em}.nav{display:flex;gap:6px;align-items:center}.nav a{font-size:13px;padding:4px 8px;border-radius:var(--radius-sm)}.nav a:hover{background:var(--accent-muted);text-decoration:none}.page{margin-top:0;padding-bottom:var(--space-xl)}.page-title{margin:0 0 var(--space-lg) 0;font-size:var(--text-h1);font-weight:600;letter-spacing:-.02em;color:var(--text-primary);padding-left:var(--space-md);border-left:3px solid var(--accent)}.page-description{margin:0 0 var(--space-xl) 0;font-size:var(--text-body);font-weight:400;line-height:1.5;color:var(--text-secondary);max-width:56ch}.page-description code{font-size:.85em}.help-text{font-size:var(--text-body);font-weight:400;color:var(--text-secondary);margin:0}.page h2{margin:var(--space-xl) 0 var(--space-md) 0;font-size:var(--text-h2);font-weight:600;letter-spacing:-.01em;color:var(--text-primary);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border)}.page h2:first-child{margin-top:0}.page-links{max-width:800px}.page-link-pill{display:inline-block;padding:8px 14px;font-size:13px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);text-decoration:none;transition:background .15s ease,border-color .15s ease}.page-link-pill:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);text-decoration:none}.page-block-centered{margin-left:auto;margin-right:auto;width:100%}.page--shell .page-shell-content{max-width:960px}.page-shell-back{margin-bottom:var(--space-md)}.page--home .page-home-content{max-width:720px}.page--home .page-home-stats{display:flex;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-lg);font-size:var(--text-body);font-weight:400;color:var(--text-secondary)}.page--home .page-home-cta-card{margin-bottom:var(--space-lg);padding:var(--space-lg);max-width:560px}.page--home .page-home-cta-title{margin:0 0 var(--space-sm) 0;font-size:var(--text-h2);font-weight:600;color:var(--text-primary)}.page--home .page-home-cta-desc{margin:0 0 var(--space-md) 0;font-size:var(--text-body);font-weight:400;color:var(--text-secondary)}.page--home .page-home-links-card{margin-top:var(--space-md);padding:var(--space-lg)}.page--home .page-home-links-title{margin:0 0 var(--space-md) 0;font-size:var(--text-label);font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.page--home .page-links{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.page-home-alert{padding:var(--space-md);margin-bottom:var(--space-lg);background:var(--danger-muted);border:1px solid var(--danger);border-radius:var(--radius-md)}.page-home-get-started{margin-bottom:var(--space-lg)}.get-started-checklist li:last-child .get-started-step{border-bottom:none}.get-started-step:hover{background:var(--bg-tertiary);text-decoration:none;color:var(--text-primary)}.settings-tabs,.world-tabs{display:flex;gap:4px;margin-bottom:24px;padding-bottom:12px;border-bottom:1px solid var(--border)}.settings-tab,.world-tab{padding:8px 14px;font-size:14px;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-sm);transition:background .15s ease,color .15s ease}.settings-tab:hover,.world-tab:hover{background:var(--bg-tertiary);color:var(--text-primary);text-decoration:none}.settings-tab.active,.world-tab.active{background:var(--accent-muted);color:var(--accent);font-weight:500}.page-search-form{width:100%}.page-search-form form{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:flex-end}.page-search-form .form-group--inline{margin-bottom:0;min-width:200px}.page-search-form .form-group--category{margin-bottom:0;min-width:140px}.page-search-error{margin-bottom:var(--space-sm)}.page>p{margin:0 0 .75rem;font-size:.9375rem}.content-inner:has(.add-lore-page),.content-inner:has(.admin-prompts-page),.content-inner:has(.entry-edit-page),.content:has(.add-lore-page),.content:has(.admin-prompts-page),.content:has(.entry-edit-page){max-width:none}.entry-edit-page{width:100%;min-height:70vh;display:flex;flex-direction:column}.entry-edit-page form,.entry-edit-page .form-group.form-group--content{flex:1;display:flex;flex-direction:column;min-height:0}.entry-edit-page .form-group.form-group--content textarea{flex:1;min-height:400px;width:100%;resize:vertical}.entry-edit-page .form-actions{flex-shrink:0;margin-top:16px}.admin-prompts-page{width:100%;min-height:70vh;display:flex;flex-direction:column}.admin-prompts-page .admin-tabs{display:flex;gap:6px;margin-bottom:10px;flex-shrink:0}.admin-prompts-page .admin-tab-panel{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.admin-prompts-page .admin-tab-panel .form-group{flex:1;display:flex;flex-direction:column;min-height:0}.admin-prompts-page .admin-tab-panel textarea{flex:1;min-height:200px;width:100%;resize:vertical}.admin-prompts-page .admin-actions{flex-shrink:0;margin-top:10px}.add-lore-page{width:100%;min-height:70vh;display:flex;flex-direction:column}.add-lore-page form,.add-lore-page .form-group{flex:1;display:flex;flex-direction:column;min-height:0}.add-lore-page .form-group textarea{flex:1;min-height:200px;resize:vertical}.form-group{margin-bottom:var(--space-md)}.form-group label{display:block;margin-bottom:var(--space-sm);font-size:var(--text-label);font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.empty-state{text-align:center;padding:var(--space-lg) var(--space-md);color:var(--text-secondary)}.empty-state h3{font-size:var(--text-h2);font-weight:600;margin-bottom:var(--space-sm);color:var(--text-primary)}.loading-state{padding:var(--space-lg);text-align:center}.card-skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-elevated) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.card-skeleton{animation:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.error-state{color:var(--danger);padding:var(--space-md)}.error-state button{margin-top:var(--space-sm)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-md)}.card-default{border-left:3px solid var(--info)}.card-session{border-left:3px solid rgba(255,188,3,.5)}.card-lore{border-left:3px solid var(--info)}.entry-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--info);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-md);transition:border-color .2s ease,box-shadow .2s ease}.entry-card:hover{border-color:var(--text-muted);border-left-color:var(--accent);box-shadow:0 2px 8px #ffbc0326}.entry-card h3{margin:0 0 var(--space-sm) 0;font-size:var(--text-h2);font-weight:600}.entry-card .meta{color:var(--text-muted);font-size:var(--text-label);margin-bottom:var(--space-sm)}.entry-card .entry-content{font-size:var(--text-body);line-height:1.6;max-height:min(70vh,560px);overflow-y:auto;padding:6px 0;white-space:pre-wrap;word-break:break-word}.entry-card .entry-content-edit{min-height:180px;resize:vertical;width:100%;font-size:var(--text-body)}.entry-card .form-group{margin-bottom:var(--space-sm)}.entry-card .form-group:last-of-type{flex:1;min-height:0}.entry-card .form-group input,.entry-card .form-group textarea{width:100%}.entry-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.btn-link{display:inline-block;padding:6px 12px;font-size:13px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease}.btn-link:hover{background:var(--bg-elevated);border-color:var(--text-muted);color:var(--text-primary);text-decoration:none}.batch-list{display:flex;flex-direction:column;gap:var(--space-lg)}.batch-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid rgba(255,188,3,.5);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:border-color .2s ease,background .15s ease,box-shadow .2s ease}.batch-card:hover{border-color:var(--text-muted);border-left-color:var(--accent-warm);box-shadow:0 2px 8px var(--accent-warm-muted)}.batch-card a{font-weight:500;font-size:var(--text-body)}.error{color:var(--danger);margin:6px 0;font-size:13px}.command-palette-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;z-index:1000}.command-palette{width:100%;max-width:420px;background:var(--bg-secondary);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius-md);box-shadow:0 8px 24px #0006,0 0 20px #ffbc0326;overflow:hidden}.command-palette-input{width:100%;padding:12px 14px;font-size:15px;border:none;border-bottom:1px solid var(--border);border-radius:0}.command-palette-list{max-height:280px;overflow-y:auto;padding:6px 0}.command-palette-item{display:block;width:100%;text-align:left;padding:10px 14px;background:none;border:none;font-size:14px;cursor:pointer;border-radius:0}.command-palette-item:hover:not(:disabled),.command-palette-item.selected{background:var(--accent-muted)}.command-palette-item:disabled{cursor:default;color:var(--text-muted)}.command-palette-item:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent)}.command-palette-hint{padding:var(--space-sm) var(--space-md);font-size:var(--text-label);color:var(--text-muted);border-top:1px solid var(--border)}.command-palette-hint kbd{padding:2px 5px;font-size:11px;background:var(--accent-muted);color:var(--accent);border-radius:4px;border:1px solid rgba(255,188,3,.35)}.sessions-grid{width:100%;border-collapse:collapse;font-size:13px}.sessions-grid th,.sessions-grid td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}.sessions-grid th{color:var(--text-secondary);font-weight:500;font-size:var(--text-label);text-transform:uppercase;letter-spacing:.04em}.sessions-grid tbody tr:hover{background:var(--accent-muted)}.sessions-grid a{color:var(--accent)}.sessions-grid a:hover{text-decoration:underline}.btn-link-cell{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.btn-link-cell:hover{color:var(--accent)}.session-progress-stepper{margin:var(--space-md) 0}.session-progress-stepper__track{display:flex;align-items:flex-start;justify-content:space-between}.session-progress-stepper__step{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0}.session-progress-stepper__step-wrapper{display:flex;align-items:center;width:100%;justify-content:center}.session-progress-stepper__circle{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid var(--border);background:var(--bg-primary)}.session-progress-stepper__circle--complete{background:var(--success);border-color:var(--success);color:var(--bg-primary)}.session-progress-stepper__circle--active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted)}.session-progress-stepper__circle--failed{border-color:var(--danger);background:var(--danger-muted);color:var(--danger)}.session-progress-stepper__circle--pending{border-color:var(--border);color:var(--text-muted)}.session-progress-stepper__connector{flex:1;height:2px;min-width:12px;margin:0 4px;align-self:center}.session-progress-stepper__connector--complete{background:var(--success)}.session-progress-stepper__connector--pending{background:var(--border)}.session-progress-stepper__connector--right{margin-right:0}.session-progress-stepper__label{margin-top:var(--space-sm);font-size:var(--text-label);text-align:center}.session-progress-stepper__label--complete,.session-progress-stepper__label--active{color:var(--text-primary)}.session-progress-stepper__label--failed{color:var(--danger)}.session-progress-stepper__label--pending{color:var(--text-muted)}
