@property --border-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-deep: #030711;--bg-primary: #060e1f;--bg-surface: rgba(8, 22, 48, .6);--bg-surface-solid: #0a1a38;--bg-surface-hover: rgba(12, 32, 65, .45);--bg-elevated: rgba(12, 28, 56, .75);--accent: #0ea5e9;--accent-light: #38bdf8;--accent-lighter: #7dd3fc;--accent-dark: #0284c7;--accent-glow: rgba(14, 165, 233, .1);--accent-glow-md: rgba(14, 165, 233, .18);--accent-glow-strong: rgba(14, 165, 233, .3);--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--green: #34d399;--green-soft: rgba(52, 211, 153, .12);--red: #f87171;--red-soft: rgba(248, 113, 113, .12);--yellow: #fbbf24;--yellow-soft: rgba(251, 191, 36, .12);--glass-border: rgba(14, 165, 233, .06);--glass-border-light: rgba(14, 165, 233, .1);--glass-border-focus: rgba(14, 165, 233, .22);--radius: 16px;--radius-md: 12px;--radius-sm: 8px;--radius-xs: 6px;--radius-full: 9999px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ease: cubic-bezier(.4, 0, .2, 1);--transition: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg-deep);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.gradient-text{background:linear-gradient(135deg,var(--accent-lighter),var(--accent),var(--accent-dark));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app{display:flex;flex-direction:column;height:100%;background:radial-gradient(ellipse at 50% 0%,rgba(14,165,233,.04) 0%,transparent 55%),var(--bg-deep)}.header-btn{padding:6px 14px;border:none;border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.header-btn-logout{color:var(--red)}.header-btn-logout:hover{background:var(--red-soft);color:var(--red)}.login-container{display:flex;align-items:center;justify-content:center;height:100vh;background:radial-gradient(ellipse at 30% 20%,rgba(14,165,233,.08) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(56,189,248,.06) 0%,transparent 45%),radial-gradient(ellipse at 50% 50%,rgba(14,165,233,.03) 0%,transparent 70%),var(--bg-deep)}.login-card{position:relative;background:#0816308c;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:24px;padding:56px 48px 48px;width:520px;text-align:center;box-shadow:0 0 0 1px var(--glass-border-light),0 24px 64px #0006,0 0 80px var(--accent-glow);overflow:hidden;animation:card-enter .6s var(--ease)}.login-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:conic-gradient(from var(--border-angle),transparent 30%,var(--accent-dark) 47%,var(--accent-light) 53%,transparent 70%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:rotate-border 6s linear infinite;pointer-events:none}.login-logo{display:block;margin-left:auto;margin-right:auto;width:180px;height:auto;margin-bottom:24px;filter:drop-shadow(0 4px 12px rgba(14,165,233,.15))}.login-card h2{font-size:32px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px;white-space:nowrap}.login-subtitle{font-size:16px;color:var(--text-muted);margin-bottom:32px;font-weight:400}.login-card form{display:flex;flex-direction:column;gap:16px}.login-card input{padding:14px 18px;border:1px solid var(--glass-border-light);border-radius:var(--radius-md);background:#060e1f80;color:var(--text-primary);font-size:14px;font-family:var(--font);outline:none;transition:all var(--transition)}.login-card input:focus{border-color:var(--glass-border-focus);box-shadow:0 0 0 3px var(--accent-glow),0 0 20px var(--accent-glow)}.login-card input::placeholder{color:var(--text-muted)}.password-field{position:relative}.password-field input{width:100%;padding-right:44px}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;transition:color var(--transition)}.password-toggle:hover{color:var(--text-primary)}.login-btn{position:relative;padding:12px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent-dark),var(--accent),var(--accent-light));color:#fff;font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all var(--transition);overflow:hidden;margin-top:4px;letter-spacing:.01em}.login-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.12) 48%,rgba(255,255,255,.12) 52%,transparent 70%);transform:translate(-120%);transition:transform .6s var(--ease)}.login-btn:hover:not(:disabled):after{transform:translate(120%)}.login-btn:hover:not(:disabled){box-shadow:0 0 24px var(--accent-glow-strong),0 4px 16px #0000004d;transform:translateY(-1px)}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.4;cursor:not-allowed}.login-error{color:var(--red);font-size:13px;text-align:left;padding:8px 12px;background:var(--red-soft);border-radius:var(--radius-sm)}.chat-container{display:flex;flex-direction:column;flex:1;overflow:hidden}.chat-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;flex-shrink:0}.model-switcher{position:relative}.model-switcher-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:20px;font-weight:600;font-family:var(--font);cursor:pointer;transition:background var(--transition)}.model-switcher-btn:hover{background:#ffffff0f}.model-switcher-chevron{color:var(--text-muted);transition:transform .2s ease}.model-switcher-chevron-open{transform:rotate(180deg)}.model-switcher-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:240px;background:var(--bg-surface-solid);border:1px solid var(--glass-border-light);border-radius:var(--radius-md);padding:4px;box-shadow:0 8px 32px #0006;z-index:100}.model-switcher-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-family:var(--font);cursor:pointer;text-align:left;transition:background var(--transition)}.model-switcher-option:hover{background:#ffffff0f}.model-switcher-option-active{color:var(--text-primary)}.model-switcher-option-active svg{color:var(--accent-light)}.model-switcher-option-text{display:flex;flex-direction:column;gap:1px}.model-switcher-option-label{font-size:14px;font-weight:500}.model-switcher-option-desc{font-size:11px;color:var(--text-muted)}.chat-messages{flex:1;overflow-y:auto;padding:24px 20px 16px;display:flex;flex-direction:column;gap:20px}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-align:center;gap:4px}.empty-avatar{width:56px;height:56px;border-radius:50%;margin-bottom:12px;box-shadow:0 0 32px var(--accent-glow-md)}.chat-empty h3{font-size:24px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}.chat-empty p{font-size:14px;color:var(--text-secondary);max-width:400px;line-height:1.6}.message{display:flex;gap:12px;max-width:820px;margin:0 auto;width:100%;animation:message-in .35s var(--ease)}.message-user{flex-direction:row-reverse}.message-avatar{flex-shrink:0;width:30px;height:30px;margin-top:2px}.message-avatar img{width:30px;height:30px;border-radius:50%;box-shadow:0 0 10px var(--accent-glow)}.message-content{flex:1;min-width:0}.message-user .message-content{display:flex;flex-direction:column;align-items:flex-end}.message-text{font-size:14px;line-height:1.7;word-wrap:break-word;overflow-wrap:break-word}.message-assistant .message-text{color:var(--text-primary);padding:2px 0}.message-user .message-text{padding:10px 18px;border-radius:20px 20px 6px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 2px 12px #0ea5e933,0 0 0 1px #0ea5e91a}.message-text code{background:#0ea5e914;padding:1px 6px;border-radius:4px;font-size:.9em;font-family:Fira Code,JetBrains Mono,Consolas,monospace;border:1px solid var(--glass-border)}.message-user .message-text code{background:#ffffff26;border-color:#ffffff1a}.message-text pre{background:#0d0d0d;padding:16px;border-radius:var(--radius-sm);overflow-x:auto;margin:16px 0;box-shadow:0 0 0 1px #ffffff0d}.message-text pre code{background:none;padding:0;border:none;font-size:13px;line-height:1.6;color:#e2e8f0}.message-text strong{color:var(--text-primary);font-weight:600}.message-assistant .message-text h1,.message-assistant .message-text h2,.message-assistant .message-text h3,.message-assistant .message-text h4{color:#fff;font-weight:600;line-height:1.3;margin:24px 0 10px}.message-assistant .message-text>:first-child{margin-top:0}.message-assistant .message-text h1{font-size:1.3em}.message-assistant .message-text h2{font-size:1.2em}.message-assistant .message-text h3{font-size:1.1em}.message-assistant .message-text h4{font-size:1em;color:var(--text-secondary)}.message-assistant .message-text p{margin:8px 0;line-height:1.7}.message-assistant .message-text p:first-child{margin-top:0}.message-assistant .message-text p:last-child{margin-bottom:0}.message-assistant .message-text p>strong:only-child{color:#fff}.message-assistant .message-text ul,.message-assistant .message-text ol{margin:12px 0;padding-left:24px}.message-assistant .message-text ul{list-style-type:disc}.message-assistant .message-text ol{list-style-type:decimal}.message-assistant .message-text li{margin:8px 0;line-height:1.7;padding-left:4px}.message-assistant .message-text li>p{margin:4px 0}.message-assistant .message-text li::marker{color:var(--accent-light);font-weight:600}.message-assistant .message-text li>ul,.message-assistant .message-text li>ol{margin:6px 0}.message-assistant .message-text hr{border:none;border-top:1px solid rgba(255,255,255,.06);margin:20px 0}.message-assistant .message-text table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13px;overflow-x:auto;display:block}.message-assistant .message-text thead{border-bottom:1px solid rgba(255,255,255,.1)}.message-assistant .message-text th{text-align:left;padding:10px 14px;color:var(--text-secondary);font-weight:600;font-size:12px;white-space:nowrap}.message-assistant .message-text td{padding:10px 14px;border-top:1px solid rgba(255,255,255,.04);color:var(--text-primary);vertical-align:top}.message-assistant .message-text tbody tr:hover{background:#ffffff05}.message-assistant .message-text blockquote{margin:16px 0;padding:2px 16px;border-left:3px solid var(--accent-dark);color:var(--text-secondary)}.message-assistant .message-text blockquote p{margin:6px 0}.message-assistant .message-text a{color:var(--accent-light);text-decoration:underline;text-decoration-color:#38bdf84d;text-underline-offset:2px;transition:all var(--transition)}.message-assistant .message-text a:hover{color:var(--accent-lighter);text-decoration-color:var(--accent-lighter)}.message-time{font-size:11px;color:var(--text-muted);margin-top:6px;opacity:.7;display:flex;align-items:center;gap:6px}.copy-button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px;display:inline-flex;align-items:center;opacity:0;transition:opacity .2s,color .2s}.message-assistant:hover .copy-button{opacity:1}.copy-button:hover{color:var(--text-primary)}.tool-summary{margin-bottom:6px}.tool-summary-header{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:12.5px;color:var(--text-muted);cursor:pointer;background:transparent}.tool-summary-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.tool-summary-chevron-open{transform:rotate(90deg)}.tool-summary-details{margin-top:4px;padding-left:4px}.tool-card{position:relative;border-radius:var(--radius-sm);margin-bottom:10px;overflow:hidden;font-size:13px;background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 0 1px var(--glass-border)}.tool-calling{background:#0ea5e90a}.tool-calling:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:conic-gradient(from var(--border-angle),transparent 25%,var(--accent) 48%,var(--accent-light) 52%,transparent 75%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:rotate-border 3s linear infinite;pointer-events:none}.tool-complete{background:#34d39908;box-shadow:0 0 0 1px #34d39914}.tool-header{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;transition:background var(--transition)}.tool-header:hover{background:#ffffff05}.tool-icon{font-size:13px;color:var(--green)}.tool-label{flex:1;color:var(--text-secondary);font-weight:500}.tool-calling .tool-label{color:var(--accent-light)}.tool-spinner{width:14px;height:14px;border:2px solid var(--accent);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.tool-expand{font-size:10px;color:var(--text-muted);transition:transform var(--transition)}.tool-args{padding:0 14px 8px;font-size:12px;color:var(--text-muted);font-style:italic}.tool-result{padding:10px 14px;border-top:1px solid var(--glass-border);max-height:300px;overflow-y:auto}.tool-result pre{font-size:12px;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;font-family:Fira Code,JetBrains Mono,Consolas,monospace;line-height:1.5}.media-figure{margin:12px 0;border-radius:var(--radius-sm);overflow:hidden;background:#03071166;box-shadow:0 0 0 1px var(--glass-border)}.media-image{display:block;max-width:100%;height:auto;border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:zoom-in}.media-video{display:block;max-width:100%;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.media-caption{padding:6px 12px;font-size:12px;color:var(--text-muted);border-top:1px solid var(--glass-border)}.assistant-file-list{display:grid;gap:10px;margin-bottom:10px}.file-attachment-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;text-decoration:none;background:linear-gradient(135deg,#0ea5e91a,#0284c70f);border:1px solid rgba(14,165,233,.16);box-shadow:0 10px 28px #02081729;transition:transform var(--transition),border-color var(--transition),background var(--transition)}.file-attachment-card:hover{transform:translateY(-1px);border-color:#38bdf847;background:linear-gradient(135deg,#0ea5e929,#0284c71a)}.file-attachment-icon{width:46px;height:46px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#0284c729;color:var(--accent-lighter);font-size:12px;font-weight:700;letter-spacing:.04em;flex-shrink:0}.file-attachment-copy{min-width:0;flex:1}.file-attachment-name{color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.35;word-break:break-word}.file-attachment-meta{color:var(--text-muted);font-size:11px;margin-top:2px}.file-attachment-action{color:var(--accent-light);font-size:12px;font-weight:600;flex-shrink:0}.queued-chip{display:flex;align-items:center;gap:8px;max-width:820px;margin:0 auto;width:100%;justify-content:flex-end;animation:message-in .35s var(--ease)}.queued-badge{font-size:11px;font-weight:600;color:var(--yellow);background:var(--yellow-soft);padding:2px 8px;border-radius:var(--radius-full);flex-shrink:0}.queued-text{padding:8px 16px;border-radius:16px 16px 4px;background:#0ea5e914;border:1px solid rgba(14,165,233,.12);color:var(--text-secondary);font-size:14px;line-height:1.5;max-width:70%;word-wrap:break-word}.injected-user-msg{display:flex;justify-content:flex-end;margin:10px 0}.injected-user-msg .message-text{padding:10px 18px;border-radius:20px 20px 6px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 2px 12px #0ea5e933,0 0 0 1px #0ea5e91a;max-width:80%;font-size:14px;line-height:1.7;word-wrap:break-word;animation:message-in .35s var(--ease)}.typing-indicator{display:flex;gap:5px;padding:12px 4px;width:fit-content}.typing-indicator span{width:7px;height:7px;background:var(--accent);border-radius:50%;animation:typing-bounce 1.4s ease-in-out infinite;opacity:.6}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}.chat-error{padding:12px 16px;border-radius:var(--radius-sm);background:var(--red-soft);color:var(--red);font-size:13px;max-width:820px;margin:0 auto;width:100%;box-shadow:0 0 0 1px #f871711a}.chat-input-form{padding:10px 20px 20px;background:var(--bg-deep);flex-shrink:0}.chat-input-wrapper{display:flex;align-items:flex-end;gap:8px;max-width:820px;margin:0 auto;background:var(--bg-surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius);padding:6px 6px 6px 18px;box-shadow:0 0 0 1px var(--glass-border-light),0 8px 32px #00000040;transition:box-shadow var(--transition)}.chat-input-wrapper:focus-within{box-shadow:0 0 0 1px var(--glass-border-focus),0 0 24px var(--accent-glow),0 8px 32px #00000040}.chat-input-wrapper textarea{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:14px;font-family:var(--font);resize:none;outline:none;min-height:36px;max-height:200px;line-height:1.5;padding:8px 0}.chat-input-wrapper textarea::placeholder{color:var(--text-muted)}.send-btn{width:36px;height:36px;border:none;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.send-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-light),var(--accent));box-shadow:0 0 20px var(--accent-glow-strong);transform:scale(1.05)}.send-btn:active:not(:disabled){transform:scale(.97)}.send-btn:disabled{opacity:.25;cursor:not-allowed}.attach-btn{width:36px;height:36px;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.attach-btn:hover:not(:disabled){color:var(--accent-light);background:var(--accent-glow)}.attach-btn:disabled{opacity:.25;cursor:not-allowed}.attachment-preview-strip{display:flex;gap:8px;max-width:820px;margin:0 auto 8px;padding:0 4px;overflow-x:auto}.attachment-preview{position:relative;width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;border:1px solid var(--glass-border-light)}.attachment-preview img{width:100%;height:100%;object-fit:cover}.attachment-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;background:#000000b3;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition)}.attachment-preview:hover .attachment-remove{opacity:1}.user-attachment-image{max-width:280px;border-radius:var(--radius-sm);margin-bottom:6px;cursor:zoom-in}.admin-panel{flex:1;padding:32px 24px;overflow-y:auto;max-width:900px;margin:0 auto;width:100%}.admin-panel h2{font-size:20px;font-weight:600;margin-bottom:24px;letter-spacing:-.01em}.admin-form{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.admin-form input,.admin-form select{padding:9px 14px;border:1px solid var(--glass-border-light);border-radius:var(--radius-sm);background:#060e1f80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-primary);font-size:13px;font-family:var(--font);outline:none;transition:all var(--transition)}.admin-form input:focus,.admin-form select:focus{border-color:var(--glass-border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.admin-form input::placeholder{color:var(--text-muted)}.admin-form button{padding:9px 20px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition)}.admin-form button:hover{box-shadow:0 0 16px var(--accent-glow-md)}.admin-error{color:var(--red);font-size:13px;margin-bottom:16px;padding:8px 12px;background:var(--red-soft);border-radius:var(--radius-sm)}.admin-success{color:var(--green);font-size:13px;margin-bottom:16px;padding:8px 12px;background:var(--green-soft);border-radius:var(--radius-sm)}.admin-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 0 0 1px var(--glass-border)}.admin-table th{text-align:left;padding:12px 16px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;background:#060e1f66}.admin-table td{padding:12px 16px;font-size:14px;border-top:1px solid var(--glass-border)}.admin-table tbody tr{transition:background var(--transition)}.admin-table tbody tr:hover{background:#0ea5e908}.role-badge{padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500}.role-admin,.role-manager{background:var(--yellow-soft);color:var(--yellow)}.role-support{background:var(--accent-glow);color:var(--accent-light)}.btn-delete{padding:5px 12px;border:none;border-radius:var(--radius-sm);background:var(--red-soft);color:var(--red);font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition)}.btn-delete:hover{background:#f8717133;box-shadow:0 0 12px #f871711a}.admin-actions{white-space:nowrap}.btn-edit{padding:5px 12px;border:none;border-radius:var(--radius-sm);background:#0ea5e91a;color:var(--accent-light);font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition);margin-right:6px}.btn-edit:hover{background:#0ea5e933}.inline-password-form{display:flex;align-items:center;gap:6px}.inline-password-form input{padding:5px 10px;border:1px solid var(--glass-border-light);border-radius:var(--radius-sm);background:#060e1f80;color:var(--text-primary);font-size:12px;font-family:var(--font);outline:none;width:140px}.inline-password-form input:focus{border-color:var(--glass-border-focus)}.btn-save{padding:5px 12px;border:none;border-radius:var(--radius-sm);background:#22c55e26;color:#4ade80;font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition)}.btn-save:hover{background:#22c55e40}.btn-cancel{padding:5px 12px;border:none;border-radius:var(--radius-sm);background:#94a3b81a;color:var(--text-muted);font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition)}.btn-cancel:hover{background:#94a3b833}.app-body{display:flex;flex:1;overflow:hidden}.session-sidebar{display:flex;flex-direction:column;height:100%;padding:8px 0;overflow:hidden}.sidebar-logo{display:flex;align-items:center;justify-content:flex-start;padding:12px 0;width:60px;flex-shrink:0}.sidebar-logo img{border-radius:6px;margin:0 auto}.session-new-btn{display:flex;align-items:center;gap:8px;margin:4px 8px 8px;padding:8px 12px;border:none;border-radius:var(--radius-sm);background:var(--accent-glow);color:var(--accent-light);font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background var(--transition);white-space:nowrap;overflow:hidden}.session-new-icon{flex-shrink:0}.session-new-label{opacity:0;transition:opacity .15s ease .1s}.sidebar-open .session-new-label{opacity:1}.session-new-btn:hover{background:var(--accent-glow-md);color:var(--accent-lighter)}.session-search-wrapper{display:flex;align-items:center;gap:6px;margin:0 8px 6px;padding:6px 10px;border-radius:var(--radius-sm);background:transparent;border:1px solid transparent;transition:border-color var(--transition),background var(--transition);overflow:hidden;white-space:nowrap}.sidebar-open .session-search-wrapper{background:#ffffff0a;border-color:var(--glass-border)}.sidebar-open .session-search-wrapper:focus-within{border-color:var(--glass-border-focus)}.session-search-icon{flex-shrink:0;color:var(--text-muted)}.session-search-input{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:12px;font-family:var(--font);outline:none;min-width:0;opacity:0;transition:opacity .15s ease .1s}.sidebar-open .session-search-input{opacity:1}.session-search-input::placeholder{color:var(--text-muted)}.session-search-clear{flex-shrink:0;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:0 2px;transition:color var(--transition)}.session-search-clear:hover{color:var(--text-primary)}.session-empty{padding:16px 12px;text-align:center;font-size:12px;color:var(--text-muted)}.session-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 4px;opacity:0;pointer-events:none;transition:opacity .15s ease}.sidebar-open .session-list{opacity:1;pointer-events:auto}.session-item{display:flex;align-items:center;gap:10px;padding:10px 8px;margin:1px 4px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);white-space:nowrap}.session-item:hover{background:var(--bg-surface-hover)}.session-item-active{background:var(--accent-glow)}.session-item-active:hover{background:var(--accent-glow-md)}.session-item-details{flex:1;min-width:0;overflow:hidden;opacity:0;transition:opacity .15s ease .1s;display:flex;align-items:baseline;gap:8px}.sidebar-open .session-item-details{opacity:1}.session-item-title{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.session-item-time{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.session-delete-btn{flex-shrink:0;opacity:0;pointer-events:none;border:none;background:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-xs);transition:opacity .15s ease,color var(--transition),background var(--transition);display:flex;align-items:center;justify-content:center}.sidebar-open .session-item:hover .session-delete-btn{opacity:1;pointer-events:auto}.session-delete-btn:hover{color:var(--red);background:var(--red-soft)}.session-loading{display:flex;justify-content:center;padding:12px 0}.session-footer{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--glass-border);white-space:nowrap;overflow:hidden}.session-footer-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.session-footer-user{flex:1;min-width:0;font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .15s ease .1s}.sidebar-open .session-footer-user{opacity:1}.session-logout-btn{flex-shrink:0;border:none;background:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;transition:color var(--transition),background var(--transition);opacity:0;pointer-events:none}.sidebar-open .session-logout-btn{opacity:1;pointer-events:auto}.session-logout-btn:hover{color:var(--red);background:var(--red-soft)}.sidebar-pwd-btn{flex-shrink:0;border:none;background:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;transition:color var(--transition),background var(--transition);opacity:0;pointer-events:none}.sidebar-open .sidebar-pwd-btn{opacity:1;pointer-events:auto}.sidebar-pwd-btn:hover{color:var(--accent-light);background:var(--accent-glow)}.sidebar-password-form{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-top:1px solid var(--glass-border)}.sidebar-password-form input{padding:6px 10px;border:1px solid var(--glass-border-light);border-radius:var(--radius-sm);background:#060e1f80;color:var(--text-primary);font-size:12px;font-family:var(--font);outline:none}.sidebar-password-form input:focus{border-color:var(--glass-border-focus)}.sidebar-password-actions{display:flex;gap:6px}.sidebar-password-msg{font-size:11px;padding:2px 0}.sidebar-password-msg.success{color:#4ade80}.sidebar-password-msg.error{color:var(--red)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-box{background:var(--bg-surface);border:1px solid var(--glass-border-light);border-radius:var(--radius-md);padding:28px 32px;width:380px;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 64px #00000080}.dialog-box h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.dialog-box label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted);font-weight:500}.dialog-box input[type=text],.dialog-box input[type=password],.dialog-box select{padding:8px 12px;border:1px solid var(--glass-border-light);border-radius:var(--radius-sm);background:#060e1f80;color:var(--text-primary);font-size:14px;font-family:var(--font);outline:none}.dialog-box input:focus,.dialog-box select:focus{border-color:var(--glass-border-focus)}.dialog-checkbox{flex-direction:row!important;align-items:center;gap:8px!important;font-size:14px!important;color:var(--text-primary)!important}.dialog-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.dialog-actions{display:flex;gap:8px;margin-top:4px}.admin-tabs{display:flex;gap:4px;padding:3px;background:#060e1f99;border-radius:var(--radius-full);margin-bottom:24px;width:fit-content}.admin-tab{position:relative;padding:7px 20px;border:none;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;transition:color var(--transition);border-radius:var(--radius-full)}.admin-tab:hover{color:var(--text-secondary)}.admin-tab-active{color:var(--accent-light)}.admin-tab-indicator{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-glow-md);border-radius:var(--radius-full);box-shadow:0 0 12px var(--accent-glow)}.mode-badge{padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500}.mode-badge-junior{background:var(--accent-glow);color:var(--accent-light)}.mode-badge-senior{background:var(--yellow-soft);color:var(--yellow)}.admin-conversation-viewer{display:flex;flex-direction:column;height:calc(100vh - 132px)}.admin-conv-header{display:flex;align-items:center;gap:16px;padding:0 0 16px;border-bottom:1px solid var(--glass-border);margin-bottom:16px}.admin-conv-info{display:flex;flex-direction:column;gap:2px}.admin-conv-title{font-size:15px;font-weight:600;color:var(--text-primary)}.admin-conv-user{font-size:12px;color:var(--text-muted)}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;padding:12px 0}.admin-pagination-info{font-size:13px;color:var(--text-secondary)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0ea5e91f;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#0ea5e938}*{scrollbar-width:thin;scrollbar-color:rgba(14,165,233,.12) transparent}@keyframes rotate-border{to{--border-angle: 360deg}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-8px);opacity:1}}@keyframes message-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes card-enter{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.context-banner{display:flex;align-items:center;gap:8px;max-width:820px;margin:0 auto 8px;width:100%;padding:8px 14px;border-radius:var(--radius-sm);background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 0 1px var(--glass-border);font-size:13px;color:var(--text-secondary)}.context-banner svg{flex-shrink:0;color:var(--accent)}.context-banner-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-banner-dismiss{flex-shrink:0;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;border-radius:var(--radius-xs);transition:color var(--transition),background var(--transition)}.context-banner-dismiss:hover{color:var(--text-primary);background:#ffffff0f}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000d9;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lightbox-close{position:absolute;top:16px;right:16px;z-index:10000;border:none;background:#ffffff1a;color:var(--text-primary);width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}.lightbox-close:hover{background:#fff3}.lightbox-image-wrapper{display:flex;align-items:center;justify-content:center;cursor:zoom-in}.lightbox-image{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius-sm);box-shadow:0 8px 40px #00000080;touch-action:none;user-select:none;-webkit-user-select:none}@media (max-width: 640px){.queued-text{max-width:85%;font-size:13px}.injected-user-msg .message-text{max-width:90%;font-size:13px}}/*! tailwindcss v4.2.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer utilities{@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.flex{display:flex}.hidden{display:none}.h-full{height:100%}.flex-shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.overflow-hidden{overflow:hidden}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
