@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box}*{font:inherit;margin:0;padding:0}html,body,#root{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-base);color:var(--color-text-primary);line-height:1.5;font-family:var(--font-family-base)}img,picture,video,canvas,svg{max-width:100%;display:block}button,input,textarea,select{color:inherit;background:0 0;border:none;font-family:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}ul,ol{list-style:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-surface-elevated);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}:root{--color-bg-base:#06060c;--color-surface-base:#0e0f1ca6;--color-surface-elevated:#1a1c30b3;--color-surface-raised:#2b2d47d9;--color-primary:#8b5cf6;--color-primary-glow:#8b5cf680;--color-secondary:#f97316;--color-accent:#3b82f6;--color-text-primary:#f8fafc;--color-text-secondary:#94a3b8;--color-text-muted:#475569;--color-border:#ffffff14;--color-border-glow:#8b5cf64d;--color-error:#ef4444;--color-success:#10b981;--font-family-base:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-mono:"JetBrains Mono", Consolas, Menlo, monospace;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-pill:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--shadow-sm:0 4px 6px -1px #0006, 0 2px 4px -2px #0006;--shadow-md:0 10px 15px -3px #00000080, 0 4px 6px -4px #00000080;--shadow-glow:0 0 15px var(--color-primary-glow);--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.3s cubic-bezier(.4, 0, .2, 1);--transition-slow:.5s cubic-bezier(.4, 0, .2, 1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUpFade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:200%}to{background-position:-200%}}.glass-panel{background:var(--color-surface-base);-webkit-backdrop-filter:blur(24px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.text-gradient{background:linear-gradient(135deg, var(--color-primary), var(--color-secondary));-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.btn-primary{background:linear-gradient(135deg, var(--color-primary), #6d28d9);color:#fff;padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);transition:transform var(--transition-fast), box-shadow var(--transition-fast);box-shadow:var(--shadow-glow);font-weight:600}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf699}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--color-surface-elevated);border:1px solid var(--color-border);color:var(--color-text-primary);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);transition:all var(--transition-fast);font-weight:500}.btn-secondary:hover:not(:disabled){background:var(--color-surface-raised);border-color:var(--color-border-glow)}.aurora-container{background-color:var(--color-bg-base);width:100%;min-height:100vh;position:relative;overflow:hidden}.aurora-bg{z-index:0;opacity:.6;position:absolute;inset:0;overflow:hidden}.aurora-blob{filter:blur(80px);mix-blend-mode:screen;border-radius:50%;animation:20s ease-in-out infinite alternate float;position:absolute}.aurora-blob-1{background:radial-gradient(circle, var(--color-primary-glow) 0%, transparent 70%);width:50vw;height:50vw;animation-delay:0s;top:-10%;left:-10%}.aurora-blob-2{background:radial-gradient(circle,#f9731633 0%,#0000 70%);width:60vw;height:60vw;animation-delay:-5s;bottom:-20%;right:-10%}.aurora-blob-3{background:radial-gradient(circle,#3b82f640 0%,#0000 70%);width:40vw;height:40vw;animation-delay:-10s;top:40%;left:20%}@keyframes float{0%{transform:translate(0)scale(1)}33%{transform:translate(5%,10%)scale(1.1)}66%{transform:translate(-5%,5%)scale(.9)}to{transform:translate(0)scale(1)}}.aurora-content{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.glass-panel-hoverable{transition:transform var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);cursor:pointer}.glass-panel-hoverable:hover{border-color:var(--color-border-glow);background:var(--color-surface-raised);transform:translateY(-2px)}.login-container{min-height:100vh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.login-panel{width:100%;max-width:400px;padding:var(--space-8)}.login-header{text-align:center;margin-bottom:var(--space-8)}.login-header h1{margin-bottom:var(--space-2);letter-spacing:-.02em;font-size:2rem;font-weight:700}.login-header p{color:var(--color-text-secondary);letter-spacing:.1em;text-transform:uppercase;font-size:.875rem}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-form .form-group input{padding:var(--space-3)}.login-btn{margin-top:var(--space-2);padding:var(--space-3);font-size:1rem}.login-error{color:var(--color-error);text-align:center;padding:var(--space-2);border-radius:var(--radius-sm);margin-bottom:var(--space-2);background:#ef44441a;font-size:.875rem}.character-card{padding:var(--space-4);flex-direction:column;height:100%;display:flex}.character-card-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:flex-start;display:flex}.character-card-actions{gap:var(--space-2);align-items:center;display:flex}.character-card-btn{cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.character-card-edit{opacity:.6;font-size:1rem}.character-card-edit:hover{opacity:1;background:#ffffff1a}.character-card-delete{color:var(--color-error);opacity:.6;font-size:1.25rem}.character-card-delete:hover{opacity:1;background:#ef44441a}.character-card-desc{color:var(--color-text-secondary);margin-bottom:var(--space-4);flex-grow:1;font-size:.875rem;line-height:1.5}.character-card-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.character-card-tag{font-size:.7rem;font-family:var(--font-family-mono);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.05em;background:#ffffff0d;padding:2px 8px}.character-card-tag-more{color:var(--color-primary);background:#8b5cf61a;border-color:#8b5cf64d}.character-import{padding:var(--space-6);text-align:center;border:2px dashed #ffffff1a}.character-import-content h3{margin-bottom:var(--space-2)}.character-import-content p{color:var(--color-text-secondary);margin-bottom:var(--space-4);font-size:.9rem}.character-import-btn{cursor:pointer;display:inline-block}.character-import-error{color:var(--color-error);margin-bottom:var(--space-4);padding:var(--space-2);border-radius:var(--radius-sm);background:#ef44441a;font-size:.85rem}.lobby-container{width:100%;max-width:1200px;padding:var(--space-6) var(--space-4);flex-direction:column;min-height:100vh;margin:0 auto;display:flex}.lobby-header{margin-bottom:var(--space-8);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.lobby-header h1{letter-spacing:-.02em;margin:0;font-size:2.5rem;font-weight:800}.logout-btn{padding:var(--space-2) var(--space-4);font-size:.875rem}.lobby-main{gap:var(--space-8);flex-direction:column;flex-grow:1;display:flex}.lobby-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.lobby-loading,.lobby-empty{text-align:center;padding:var(--space-8);color:var(--color-text-secondary);background:var(--color-surface-base);border-radius:var(--radius-lg);border:1px dashed var(--color-border);grid-column:1/-1;font-size:1.125rem}.lobby-empty h3{color:var(--color-text-primary);margin-bottom:var(--space-4)}.lobby-help-links{margin-top:var(--space-6);text-align:center;background:var(--color-surface-elevated);padding:var(--space-4);border-radius:var(--radius-md);font-size:.95rem;box-shadow:0 4px 12px #0000001a}.lobby-help-links ul{justify-content:center;gap:var(--space-6);margin:var(--space-4) 0;padding:0;list-style:none;display:flex}.lobby-help-links a{color:var(--color-primary);font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:all .2s}.lobby-help-links a:hover{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.lobby-hint{margin-top:var(--space-4);color:var(--color-text-tertiary);font-size:.9rem}.chat-bubble-wrapper{width:100%;margin-bottom:var(--space-4);animation:slideUpFade var(--transition-normal);display:flex}.chat-bubble-user{justify-content:flex-end}.chat-bubble-ai{justify-content:flex-start}.chat-bubble{max-width:80%;padding:var(--space-4);border:1px solid #ffffff0d}.bubble-user{border-bottom-right-radius:var(--radius-sm);border-top-right-radius:var(--radius-lg);border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg);background:#8b5cf626}.bubble-ai{background:var(--color-surface-base);border-bottom-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-lg);border-top-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.chat-bubble-header{margin-bottom:var(--space-2);letter-spacing:.05em;text-transform:uppercase;font-size:.85rem;font-weight:600}.chat-bubble-content p{margin-bottom:var(--space-3);white-space:pre-wrap;line-height:1.6}.chat-bubble-content p:last-child{margin-bottom:0}.chat-bubble-content em{color:var(--color-text-secondary);font-style:italic}.chat-bubble-content strong{color:var(--color-primary);font-weight:600}.chat-input-wrapper{padding:var(--space-3);align-items:flex-end;gap:var(--space-3);width:100%;display:flex}.chat-input-field{resize:none;padding:var(--space-2) 0;color:var(--color-text-primary);outline:none;flex-grow:1;max-height:150px;font-size:1rem;line-height:1.5;overflow-y:auto}.chat-input-field::placeholder{color:var(--color-text-muted)}.chat-input-field:disabled{opacity:.5}.chat-input-send-btn{border-radius:var(--radius-pill);padding:var(--space-2) var(--space-6)}.thinking-indicator{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);width:fit-content;margin-bottom:var(--space-4);background:#ffffff0d;align-items:center;gap:4px;display:flex}.thinking-dot{background-color:var(--color-primary);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both bounce}.thinking-dot:first-child{animation-delay:-.32s}.thinking-dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-layout{flex-direction:column;width:100%;max-width:1000px;height:100vh;margin:0 auto;display:flex;overflow:hidden}.chat-header{padding:var(--space-3) var(--space-6);margin:var(--space-4) var(--space-4) 0;z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.chat-header-info{align-items:center;gap:var(--space-4);display:flex}.chat-header-info h2{margin:0;font-size:1.25rem;font-weight:700}.chat-header-actions{gap:var(--space-3);align-items:center;display:flex}.engine-toggle{border-radius:var(--radius-md);padding:0 var(--space-2);margin-right:var(--space-2);background:#0003;border:1px solid #ffffff0d;align-items:center;display:flex;box-shadow:inset 0 1px 3px #0000004d}.engine-label{margin-right:var(--space-2);font-size:.9rem}.engine-select{color:var(--color-foreground);padding:var(--space-2) 0;font-family:var(--font-family-sans);cursor:pointer;appearance:none;background:0 0;border:none;outline:none;font-size:.85rem;font-weight:500}.engine-select option{background:var(--color-background);color:var(--color-foreground)}.back-btn,.chat-action-btn{padding:var(--space-2) var(--space-4);font-size:.85rem}.chat-messages-container{padding:var(--space-6) var(--space-4);flex-grow:1;overflow-y:auto}.chat-messages-scrollarea{flex-direction:column;justify-content:flex-end;min-height:100%;display:flex}.chat-composer-container{padding:0 var(--space-4) var(--space-6);flex-shrink:0}.chat-composer-inner{z-index:10;position:relative}.chat-loading{height:100vh;color:var(--color-primary);font-family:var(--font-family-mono);justify-content:center;align-items:center;font-size:1.2rem;animation:2s infinite pulse;display:flex}.chat-error-message{color:var(--color-error);text-align:center;padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4);background:#ef44441a;border:1px solid #ef44444d}.edit-page-container{width:100%;max-width:900px;padding:var(--space-6) var(--space-4);flex-direction:column;min-height:100vh;margin:0 auto;display:flex}.edit-header{align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);display:flex}.edit-header h1{margin:0;font-size:2rem;font-weight:800}.edit-panel{padding:var(--space-6)}.edit-error-banner{border:1px solid var(--color-error);color:var(--color-error);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-6);background:#ef44441a;font-size:.875rem}.form-grid{gap:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.full-width{grid-column:1/-1}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-group label{color:var(--color-text-primary);opacity:.9;font-size:.875rem;font-weight:600}.form-group input,.form-group textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;padding:var(--space-3);color:var(--color-text-primary);transition:all var(--transition-fast);background:#ffffff08;font-size:.95rem}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary);background:#ffffff0d;outline:none;box-shadow:0 0 0 2px #8b5cf633}.highlight-group{padding:var(--space-4);border-radius:var(--radius-lg);background:#8b5cf608;border:1px dashed #8b5cf64d}.form-help{color:var(--color-text-secondary);margin-top:var(--space-1);font-size:.75rem}.edit-actions{justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border);display:flex}.edit-loading,.edit-error{text-align:center;padding:var(--space-12);color:var(--color-text-secondary);font-size:1.25rem}
