:root{--bg-deep: #060912;--surface: #0e1422;--surface-2: #131b2e;--elevated: #1a2438;--elevated-hover: #1f2d48;--text: #eef2fb;--text-muted: #94a3c8;--text-subtle: #647093;--border: rgba(255, 255, 255, .08);--border-strong: rgba(139, 124, 255, .4);--accent: #8b7cff;--accent-2: #3ee0c9;--success: #34d399;--shadow: 0 24px 56px rgba(0, 0, 0, .5);--shadow-soft: 0 8px 32px rgba(0, 0, 0, .35);--radius-lg: 22px;--radius-md: 14px;--radius-sm: 10px;--radius-tab: 999px;--font: "DM Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--focus-ring: 0 0 0 3px rgba(62, 224, 201, .28)}html{color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0}#root{height:100%;min-height:100dvh;display:flex;flex-direction:column}body{margin:0;font-family:var(--font);font-size:15px;color:var(--text);background-color:var(--bg-deep);background-image:radial-gradient(ellipse 900px 520px at 15% -8%,rgba(139,124,255,.26),transparent 55%),radial-gradient(ellipse 720px 480px at 88% 12%,rgba(62,224,201,.12),transparent 52%),radial-gradient(ellipse 600px 420px at 50% 102%,rgba(56,189,248,.06),transparent 48%),linear-gradient(175deg,var(--bg-deep) 0%,#0b1122 48%,#070c18 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased}:focus-visible{outline:none;box-shadow:var(--focus-ring)}button:focus-visible{border-radius:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.page{flex:1;min-height:0;width:100%;max-width:min(920px,100%);margin:0 auto;padding:max(12px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:clamp(12px,2.2vw,16px)}.shell-header{flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:14px 16px 16px;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.07);background:linear-gradient(155deg,#121828d1,#0c111ec2);backdrop-filter:blur(18px) saturate(140%);box-shadow:var(--shadow-soft),inset 0 1px #ffffff0f}.shell-header-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:nowrap;width:100%}.shell-header-actions{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.btn-logout{padding:9px 14px;border-radius:var(--radius-tab);border:1px solid rgba(255,255,255,.14);background:#00000047;color:var(--text-muted);font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:color .18s ease,background .18s ease,border-color .18s ease}.btn-logout:hover:not(:disabled){color:var(--text);border-color:#ffffff38;background:#ffffff0f}.btn-logout:disabled{opacity:.45;cursor:not-allowed}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-logo{flex-shrink:0;width:44px;height:44px;border-radius:13px;filter:drop-shadow(0 10px 28px rgba(139,124,255,.32))}.titles{min-width:0}.titles .title{font-weight:700;font-size:1.22rem;letter-spacing:-.03em;line-height:1.15;color:var(--text)}.titles .subtitle{font-size:12.5px;font-weight:500;color:var(--text-muted);margin-top:5px;line-height:1.4;max-width:min(72vw,440px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assistant-strip{display:flex;flex-direction:column;gap:10px;padding-top:2px;border-top:1px solid rgba(255,255,255,.06)}.assistant-strip-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.assistant-strip-label{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle)}.assistant-strip-hint{font-size:11.5px;color:var(--text-muted);opacity:.92;line-height:1.35;max-width:100%}.assistant-tabs-scroll{margin:0 -4px;padding:4px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(139,124,255,.35) transparent;mask-image:linear-gradient(90deg,transparent 0%,#000 12px,#000 calc(100% - 12px),transparent 100%)}.assistant-tabs-scroll::-webkit-scrollbar{height:6px}.assistant-tabs-scroll::-webkit-scrollbar-thumb{background:#8b7cff47;border-radius:var(--radius-tab)}.assistant-tabs{display:inline-flex;align-items:stretch;gap:8px;padding:6px;min-width:min-content;width:max(100%,min-content);border-radius:16px;background:#00000061;border:1px solid rgba(139,124,255,.18);box-shadow:inset 0 1px #ffffff0d}.assistant-tab{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;min-height:44px;border:1px solid transparent;border-radius:var(--radius-tab);font-family:inherit;font-size:13px;font-weight:600;letter-spacing:-.01em;color:var(--text-muted);background:transparent;cursor:pointer;white-space:nowrap;transition:color .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .15s ease}.assistant-tab:hover:not(:disabled){color:var(--text);background:#ffffff0d;border-color:#ffffff0f}.assistant-tab:focus-visible{border-color:#3ee0c973}.assistant-tab:disabled{opacity:.42;cursor:not-allowed}.assistant-tab-index{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-tab);font-size:11px;font-weight:700;color:var(--text-muted);background:#ffffff0f;border:1px solid rgba(255,255,255,.06);transition:inherit}.assistant-tab--active .assistant-tab-index{color:#061018;background:linear-gradient(135deg,#8b7cfff2,#3ee0c9d1);border-color:transparent;box-shadow:0 2px 10px #8b7cff59}.assistant-tab--active{color:var(--text);background:linear-gradient(145deg,#8b7cff33,#3ee0c914);border-color:#8b7cff73;box-shadow:0 4px 20px #00000040,inset 0 1px #ffffff14}.assistant-tab-text{max-width:28vw;overflow:hidden;text-overflow:ellipsis}.assistant-tab-info{position:relative;display:inline-flex;align-items:center}.assistant-info{width:18px;height:18px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#00000059;color:var(--text-muted);font-size:11px;font-weight:800;line-height:1;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}.assistant-info--green{border-color:#34d399a6;color:#34d399f2}.assistant-info--yellow{border-color:#fbbf24b3;color:#fbbf24f2}.assistant-info--red{border-color:#f87171bf;color:#f87171f2}.assistant-info--gray{border-color:#94a3c840;color:#94a3c8e6}.assistant-info-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:20;min-width:260px;max-width:min(86vw,360px);padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#0a0e1af5;box-shadow:var(--shadow-soft);color:var(--text)}.assistant-info-row{font-size:12px;line-height:1.35;color:var(--text-muted)}.assistant-info-row strong{color:var(--text);font-weight:700}.assistant-info-row+.assistant-info-row{margin-top:8px}.assistant-info-kv{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08);display:grid;gap:6px}.assistant-info-kv-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:baseline}.assistant-info-kv-key{color:var(--text-subtle);font-size:11.5px}.assistant-info-kv-val{color:var(--text);font-size:11.5px;font-weight:650}@media (min-width: 560px){.assistant-tab-text{max-width:none}.assistant-tabs{flex-wrap:wrap;width:100%}.assistant-tabs-scroll{overflow-x:visible;mask-image:none}}@media (max-width: 640px){.shell-header-top{gap:12px}}.markdown-skeleton{display:inline-block;min-height:1.25em;color:var(--text-subtle);animation:markdown-pulse 1s ease-in-out infinite}@keyframes markdown-pulse{50%{opacity:.35}}.lang-toggle{display:inline-flex;flex-shrink:0;padding:5px;border-radius:var(--radius-tab);background:#00000061;border:1px solid rgba(255,255,255,.08);gap:5px;box-shadow:inset 0 1px #ffffff0d}.lang-btn{padding:9px 16px;border:none;border-radius:var(--radius-tab);font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.06em;cursor:pointer;color:var(--text-muted);background:transparent;transition:color .18s ease,background .18s ease,box-shadow .18s ease}.lang-btn:hover:not(:disabled){color:var(--text);background:#ffffff0f}.lang-btn.active{color:#061018;background:linear-gradient(135deg,#8b7cfff5,#3ee0c9c7);box-shadow:0 2px 14px #8b7cff47}.lang-btn:disabled{opacity:.45;cursor:not-allowed}.card{flex:1;display:flex;flex-direction:column;min-height:0;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.075);background:linear-gradient(165deg,#161e30f0,#0b101cf7);box-shadow:var(--shadow),inset 0 1px #ffffff0a;overflow:hidden}.chat{padding:16px min(18px,3.5vw) 14px;overflow-x:hidden;overflow-y:auto;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-color:rgba(124,92,255,.35) transparent;scrollbar-width:thin}.chat::-webkit-scrollbar{width:8px}.chat::-webkit-scrollbar-thumb{background:#7c5cff47;border-radius:999px}.msg{display:flex;margin:12px 0}.msg.user{justify-content:flex-end}.msg.assistant{justify-content:flex-start}.bubble{max-width:min(700px,100%);padding:13px 16px;border-radius:20px;border:1px solid var(--border);line-height:1.58;font-size:clamp(13.5px,2.8vw,15px);word-break:break-word;overflow-wrap:anywhere;box-shadow:0 4px 24px #0000001f}.msg.user .bubble{background:linear-gradient(135deg,#8b7cff38,#8b7cff0f);border-color:#8b7cff52}.msg.assistant .bubble{background:#ffffff09;border-color:#ffffff12}.bubble--typing{border-style:dashed;border-color:#3ee0c961;background:#3ee0c912}.typing-placeholder{font-size:14.5px;font-weight:500;color:var(--text-muted)}.typing-shimmer{display:inline-block;background:linear-gradient(90deg,var(--text-muted) 0%,var(--text) 45%,var(--text-muted) 90%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 1.35s ease-in-out infinite}.typing-hint{margin:10px 0 0;max-width:34rem;font-size:12px;font-weight:400;line-height:1.45;color:var(--text-muted);opacity:.88}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0% 50%}}.composer{flex-shrink:0;display:flex;flex-direction:column;padding:14px min(16px,3.5vw);border-top:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#080b14a6,#060910d9)}.composer-row--input textarea{width:100%;min-height:clamp(76px,18vh,108px);resize:vertical;max-height:min(280px,40vh);padding:15px 17px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.09);background:#0f1524f2;color:var(--text);font-family:inherit;font-size:15px;line-height:1.45;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.composer-row--input textarea::placeholder{color:var(--text-subtle)}.composer-row--input textarea:focus{border-color:#3ee0c96b;box-shadow:var(--focus-ring)}.composer-row--footer{display:flex;justify-content:flex-end;margin-top:12px}.composer-row--footer .btn-primary{min-width:120px}.btn-stop{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:132px;min-height:46px;padding:0 20px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.22);background:linear-gradient(180deg,#ff3c50f2,#b42837fa);color:#fff;font-family:inherit;font-size:14px;font-weight:700;letter-spacing:.03em;cursor:pointer;box-shadow:0 4px 18px #dc3c4659;transition:filter .15s,transform .12s}.btn-stop:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn-stop:active{transform:translateY(0)}.btn-stop-icon{width:18px;height:18px;flex-shrink:0;opacity:.98}.btn-primary{padding:0 24px;min-height:48px;border-radius:var(--radius-tab);border:1px solid rgba(255,255,255,.2);background:linear-gradient(125deg,#8b7cff,#5f8dff 42%,#3ee0c9 115%);background-size:150% 150%;background-position:0% 45%;color:#fff;font-family:inherit;font-size:14px;font-weight:700;letter-spacing:.02em;cursor:pointer;text-shadow:0 1px 2px rgba(0,0,0,.35);box-shadow:0 8px 28px #8b7cff47;transition:transform .14s ease,filter .14s ease,opacity .14s ease}.btn-primary:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.footer{flex-shrink:0;color:var(--text-muted);font-size:clamp(11.5px,2.6vw,12.5px);line-height:1.45;padding:4px min(8px,2vw) max(8px,env(safe-area-inset-bottom,0px));text-align:center}.login-page{flex:1;min-height:0;width:100%;max-width:min(440px,100%);margin:auto;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:flex;align-items:center;justify-content:center}.login-card{width:100%;padding:clamp(22px,5vw,28px);border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.08);background:linear-gradient(155deg,#121828eb,#0c111ee0);backdrop-filter:blur(18px) saturate(140%);box-shadow:var(--shadow),inset 0 1px #ffffff0f}.login-brand{display:flex;align-items:flex-start;gap:16px;margin-bottom:22px}.login-brand-logo{flex-shrink:0;width:48px;height:48px;border-radius:14px;filter:drop-shadow(0 10px 28px rgba(139,124,255,.32))}.login-title{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.03em;color:var(--text)}.login-subtitle{margin:6px 0 0;font-size:14px;color:var(--text-muted);line-height:1.45}.login-lang{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.06)}.login-lang-label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle)}.login-lang-toggle{flex-shrink:0}.login-form{display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:8px}.login-field-label{font-size:12.5px;font-weight:600;color:var(--text-muted)}.login-input{width:100%;padding:14px 16px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.1);background:#0f1524f2;color:var(--text);font-family:inherit;font-size:15px;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.login-input:focus{border-color:#3ee0c96b;box-shadow:var(--focus-ring)}.login-error{margin:0;font-size:13px;font-weight:600;color:#fb7185}.login-submit{width:100%;margin-top:4px}.login-card--minimal{display:flex;align-items:center;justify-content:center;min-height:120px}.login-loading-msg{margin:0;text-align:center}@media (max-width: 640px){.shell-header{padding:12px 14px}.shell-header-top{flex-wrap:wrap}.shell-header-actions{width:100%;justify-content:flex-end}.titles .subtitle{max-width:100%;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.msg{margin:8px 0}}@media (max-height: 520px){.composer-row--input textarea{min-height:56px;max-height:120px}}.bubble :where(p){margin:.5rem 0}.bubble :where(p):first-child{margin-top:0}.bubble :where(p):last-child{margin-bottom:0}.bubble :where(ul,ol){margin:.5rem 0 .5rem 1.25rem}.bubble :where(code){background:#00000059;border:1px solid rgba(255,255,255,.1);padding:.12rem .4rem;border-radius:8px;font-size:.9em}.bubble :where(pre){background:#0006;border:1px solid rgba(255,255,255,.1);padding:12px;border-radius:14px;overflow:auto}.bubble :where(table){width:100%;border-collapse:collapse;margin:.65rem 0;font-size:13.5px}.bubble :where(th,td){border:1px solid rgba(255,255,255,.12);padding:8px 10px}.bubble :where(th){background:#ffffff0f}.bubble :where(blockquote){margin:.65rem 0;padding:.65rem 1rem;border-left:3px solid var(--accent-2);background:#3ee0c912;border-radius:0 12px 12px 0}
