@tailwind base;@tailwind components;@tailwind utilities;:root{color-scheme:dark;--bg:#070b14;--bg-soft:#0c1220;--panel:rgba(13,18,30,0.82);--panel-strong:rgba(18,25,40,0.95);--border:rgba(148,163,184,0.14);--border-strong:rgba(148,163,184,0.24);--text:#eef2ff;--muted:#94a3b8}html{background:var(--bg);min-height:100%}body{min-height:100vh;margin:0;color:var(--text);background:radial-gradient(circle at top left,rgba(139,92,246,.2),transparent 28%),radial-gradient(circle at top right,rgba(34,211,238,.12),transparent 22%),linear-gradient(180deg,#05070d,#070b14 55%,#06090f);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}::-moz-selection{background:rgba(139,92,246,.35);color:#fff}::selection{background:rgba(139,92,246,.35);color:#fff}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.container{width:min(1180px,calc(100% - 24px));margin:0 auto}.app-shell{height:100dvh;min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;padding:12px;box-sizing:border-box}.app-shell__content{min-height:0}.nav-shell{position:relative;top:0;margin-bottom:10px;margin-top:10px;z-index:40;border:1px solid var(--border);border-radius:999px;background:rgba(7,11,20,.76);backdrop-filter:blur(18px);box-shadow:0 18px 50px rgba(0,0,0,.24)}.nav-inner{display:flex;justify-content:space-between;gap:16px;padding:14px 16px}.brand,.nav-inner{align-items:center}.brand{display:inline-flex;gap:10px;font-weight:800;letter-spacing:-.03em}.brand-dot{width:11px;height:11px;border-radius:999px;background:linear-gradient(135deg,#8b5cf6,#22d3ee);box-shadow:0 0 0 6px rgba(139,92,246,.12)}.nav-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nav-links a,.nav-links button{border:1px solid transparent;border-radius:999px;padding:10px 14px;color:rgba(238,242,255,.72);background:transparent;transition:transform .16s ease,background .16s ease,border-color .16s ease,color .16s ease}.nav-links a:hover,.nav-links button:hover{transform:translateY(-1px);background:rgba(255,255,255,.05);border-color:var(--border);color:#fff}.page-shell{display:grid;gap:18px}.card{border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,rgba(17,23,36,.96),rgba(11,16,26,.94));box-shadow:0 20px 60px rgba(0,0,0,.28);backdrop-filter:blur(16px);padding:24px}.error-dialog-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);padding:20px;overflow-y:auto}.error-dialog-card{max-width:400px;width:100%}.card-shell,.chat-shell,.hero-shell,.list-shell{border:1px solid var(--border);border-radius:30px;background:linear-gradient(180deg,rgba(18,25,40,.92),rgba(11,16,26,.92));box-shadow:0 20px 60px rgba(0,0,0,.28);backdrop-filter:blur(16px)}.hero-shell{position:relative;overflow:hidden;padding:28px}.hero-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at top right,rgba(139,92,246,.18),transparent 28%),radial-gradient(circle at bottom left,rgba(34,211,238,.12),transparent 20%)}.hero-inner{position:relative;display:grid;gap:22px;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:stretch}.kicker{display:inline-flex;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content;padding:8px 12px;border:1px solid rgba(139,92,246,.24);border-radius:999px;background:rgba(139,92,246,.1);color:#ddd6fe;font-size:.82rem;letter-spacing:.03em}.hero-title{margin:14px 0 0;font-size:clamp(2.2rem,5vw,4.6rem);line-height:.96;letter-spacing:-.05em}.hero-subtitle{margin:14px 0 0;max-width:64ch;color:var(--muted);line-height:1.75;font-size:1rem}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 18px;transition:transform .16s ease,filter .16s ease,background .16s ease,border-color .16s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#8b5cf6,#a855f7);color:white;box-shadow:0 16px 32px rgba(139,92,246,.28)}.btn-secondary{border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text)}.hero-side{display:grid;gap:14px}.info-card{border:1px solid var(--border);border-radius:24px;background:rgba(255,255,255,.04);padding:18px}.info-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}.info-value{margin-top:10px;font-size:2rem;font-weight:800;letter-spacing:-.05em}.info-text{margin-top:8px;color:var(--muted);line-height:1.6}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title{margin:0;font-size:1.4rem;letter-spacing:-.03em}.section-subtitle{margin:6px 0 0;color:var(--muted);line-height:1.65}.search-shell{position:relative;padding:20px 24px;border-radius:30px;background:linear-gradient(180deg,rgba(18,25,40,.96),rgba(11,16,26,.94));box-shadow:0 16px 40px rgba(0,0,0,.22);backdrop-filter:blur(16px)}.search-input{position:relative;width:100%;padding:16px 20px;border-radius:18px;border:1px solid var(--border);background:rgba(7,11,20,.85);color:var(--text);font-size:1rem;line-height:1.5;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.search-input::-moz-placeholder{color:rgba(148,163,184,.55)}.search-input::placeholder{color:rgba(148,163,184,.55)}.search-input:focus{outline:none;border-color:rgba(139,92,246,.55);box-shadow:0 0 0 4px rgba(139,92,246,.18),0 0 0 1px rgba(139,92,246,.35);background:rgba(9,13,22,.95)}.search-input:before{content:"";position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;background:radial-gradient(circle,var(--text) 20%,transparent 21% 40%,rgba(148,163,184,.35) 41% 60%,transparent 61%),radial-gradient(circle,var(--text) 15%,transparent 16% 30%,rgba(148,163,184,.45) 31% 50%,transparent 51%);background-size:100% 100%;opacity:.7;pointer-events:none}.search-select{position:relative;width:100%;padding:16px 44px 16px 20px;border-radius:18px;border:1px solid var(--border);background:rgba(7,11,20,.85);color:var(--text);font-size:.95rem;line-height:1.5;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.search-select:focus{outline:none;border-color:rgba(139,92,246,.55);box-shadow:0 0 0 4px rgba(139,92,246,.18),0 0 0 1px rgba(139,92,246,.35);background:rgba(9,13,22,.95)}.search-select option{background:rgba(7,11,20,.98);color:var(--text)}.search-select::-webkit-scrollbar{width:6px}.search-select::-webkit-scrollbar-track{background:rgba(7,11,20,.85);border-radius:6px}.search-select::-webkit-scrollbar-thumb{background:rgba(148,163,184,.45);border-radius:6px}.search-select::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.65)}.search-select:after{content:"";position:absolute;right:16px;top:50%;transform:translateY(-50%) rotate(45deg);width:8px;height:8px;border:2px solid rgba(148,163,184,.6);border-bottom:none;border-left:none;pointer-events:none;transition:transform .2s ease}.search-select:focus:after,.search-select:hover:after{transform:translateY(-50%) rotate(45deg) scale(1.15)}.search-btn{padding:16px 24px;border-radius:18px;border:none;background:linear-gradient(135deg,#8b5cf6,#a855f7);color:white;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .2s ease,filter .2s ease,box-shadow .2s ease}.search-btn:hover{transform:translateY(-2px);filter:brightness(1.12);box-shadow:0 12px 32px rgba(139,92,246,.35)}.search-btn:active{transform:translateY(0)}.search-btn:focus{outline:none;box-shadow:0 0 0 4px rgba(139,92,246,.25),0 0 0 1px rgba(139,92,246,.45)}.search-label{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;color:rgba(148,163,184,.75);font-size:.8rem;letter-spacing:.02em;transition:color .2s ease}.search-label:hover{color:rgba(148,163,184,.92)}.character-card,.chat-card,.composer-card,.empty-card,.feature-card,.profile-card{border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,rgba(17,23,36,.96),rgba(11,16,26,.94));box-shadow:0 14px 32px rgba(0,0,0,.18)}.feature-card{padding:18px}.feature-card h3{margin:0;font-size:1.05rem}.feature-card p{margin:10px 0 0;color:var(--muted);line-height:1.65}.character-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.character-card{overflow:hidden;padding:8px;max-width:320px;margin:0 auto;transition:transform .16s ease,border-color .16s ease,background .16s ease}.character-card:hover{transform:translateY(-3px);border-color:rgba(139,92,246,.28);background:linear-gradient(180deg,rgba(21,29,45,.98),rgba(12,17,28,.98))}.character-cover{position:relative;aspect-ratio:4/5;max-width:280px;margin:0 auto;border-radius:16px;background:radial-gradient(circle at top,rgba(139,92,246,.22),transparent 40%),linear-gradient(135deg,rgba(139,92,246,.16),rgba(34,211,238,.1))}.character-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.72));pointer-events:none}.character-badge{position:absolute;top:8px;left:8px;z-index:2;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(8,12,20,.72);padding:5px 8px;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.character-meta{display:grid;gap:6px;padding-top:10px}.character-name{margin:0;font-size:.92rem;font-weight:700;letter-spacing:-.02em}.character-desc{margin:0;color:var(--muted);line-height:1.5;font-size:.86rem}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-flex;align-items:center;border:1px solid rgba(139,92,246,.18);border-radius:999px;padding:7px 10px;background:rgba(139,92,246,.09);color:#ddd6fe;font-size:12px}.chat-card,.chat-list-shell{display:grid;gap:14px}.chat-card{grid-template-columns:72px minmax(0,1fr) auto;align-items:center;padding:16px;transition:transform .16s ease,border-color .16s ease,background .16s ease}.chat-card:hover{transform:translateY(-2px);border-color:rgba(139,92,246,.24);background:linear-gradient(180deg,rgba(21,29,45,.98),rgba(12,17,28,.98))}.chat-avatar{position:relative;aspect-ratio:1;border-radius:22px;overflow:hidden;background:radial-gradient(circle at top,rgba(139,92,246,.25),transparent 42%),linear-gradient(135deg,rgba(139,92,246,.14),rgba(34,211,238,.12));border:1px solid rgba(255,255,255,.08)}.chat-content{min-width:0}.chat-title{margin:0;font-size:1rem;font-weight:700;letter-spacing:-.02em}.chat-meta{margin-top:4px;color:var(--muted);font-size:.92rem}.chat-preview{margin-top:10px;color:rgba(238,242,255,.68);line-height:1.6}.chat-right{display:grid;justify-items:end;gap:10px}.status-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(52,211,153,.18);border-radius:999px;background:rgba(52,211,153,.08);padding:7px 10px;color:#6ee7b7;font-size:12px}.arrow-pill{border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.04);padding:8px 11px;color:rgba(255,255,255,.72)}.empty-card{padding:28px;text-align:center}.empty-title{margin:0;font-size:1.15rem}.empty-text{margin:10px auto 0;max-width:52ch;color:var(--muted);line-height:1.7}.page-links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:18px}.muted{color:var(--muted)}@media (max-width:960px){.character-grid,.grid-2,.grid-3,.hero-inner{grid-template-columns:1fr}.chat-card{grid-template-columns:64px minmax(0,1fr)}.chat-right{grid-column:1/-1;justify-items:start}}@media (max-width:720px){.container{width:min(1180px,calc(100% - 14px))}.main-shell{padding-top:8px;padding-bottom:24px}.nav-inner{display:grid;gap:10px;justify-content:stretch}.nav-shell{border-radius:24px}.nav-links{justify-content:flex-start}.hero-shell{padding:18px;border-radius:24px}.hero-title{font-size:2rem}.card-shell,.chat-shell,.list-shell{border-radius:24px}.search-shell{padding:16px 18px}.search-input{padding:14px 18px;font-size:.95rem}.search-input:before{width:16px;height:16px}.search-select{padding:14px 40px 14px 18px;font-size:.9rem}.search-btn{padding:14px 20px;font-size:.9rem}.chat-card{grid-template-columns:64px minmax(0,1fr)}}.editor-layout,.editor-shell{display:grid;gap:18px}.editor-layout{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:start}.editor-main{display:grid;gap:16px}.editor-panel,.editor-side{border:1px solid var(--border);border-radius:28px;background:linear-gradient(180deg,rgba(17,23,36,.96),rgba(11,16,26,.95));box-shadow:0 14px 32px rgba(0,0,0,.18);backdrop-filter:blur(16px)}.editor-panel{padding:18px}.editor-side{position:sticky;top:92px;display:grid;gap:14px;padding:18px}.editor-panel-head{margin-bottom:14px}.editor-panel-title{margin:0;font-size:1.06rem;font-weight:700;letter-spacing:-.02em}.editor-panel-desc{margin:6px 0 0;color:var(--muted);line-height:1.65;font-size:.92rem}.editor-fields{display:grid;gap:14px}.editor-field{display:grid;gap:8px}.editor-field-row{display:grid;gap:12px;grid-template-columns:1fr 1fr}.editor-label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.92rem;font-weight:600;color:rgba(238,242,255,.92)}.editor-help{color:var(--muted);font-size:.84rem;line-height:1.5}.editor-input,.editor-select,.editor-textarea{width:100%;border:1px solid var(--border);border-radius:18px;background:rgba(7,11,20,.9);color:var(--text);padding:14px 16px;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.editor-input::-moz-placeholder,.editor-textarea::-moz-placeholder{color:rgba(148,163,184,.58)}.editor-input::placeholder,.editor-textarea::placeholder{color:rgba(148,163,184,.58)}.editor-input:focus,.editor-select:focus,.editor-textarea:focus{outline:none;border-color:rgba(139,92,246,.55);box-shadow:0 0 0 4px rgba(139,92,246,.16),0 0 0 1px rgba(139,92,246,.3);background:rgba(10,15,25,.98)}.editor-textarea{min-height:120px;resize:vertical}.editor-textarea.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;line-height:1.65}.editor-select{background-image:linear-gradient(45deg,transparent 50%,rgba(148,163,184,.75) 0),linear-gradient(135deg,rgba(148,163,184,.75) 50%,transparent 0);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:42px}.editor-select,.locale-switcher{-webkit-appearance:none;-moz-appearance:none;appearance:none}.locale-switcher{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:rgba(7,11,20,.65);color:var(--text);font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:transform .16s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.locale-switcher:hover{border-color:rgba(139,92,246,.35);background:rgba(7,11,20,.82);transform:translateY(-1px)}.locale-switcher:focus{outline:none;border-color:rgba(139,92,246,.55);box-shadow:0 0 0 3px rgba(139,92,246,.18),0 0 0 1px rgba(139,92,246,.35);background:rgba(9,13,22,.9)}.locale-switcher option{background:rgba(7,11,20,.98);color:var(--text);font-weight:600}.locale-switcher:after{content:"";display:inline-block;width:5px;height:5px;border-right:1.8px solid rgba(148,163,184,.7);border-bottom:1.8px solid rgba(148,163,184,.7);transform:rotate(45deg) translateY(-1px);pointer-events:none;transition:transform .18s ease}.locale-switcher:hover:after{border-color:rgba(139,92,246,.7)}.editor-toggle{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.03)}.editor-toggle input{margin-top:2px;width:18px;height:18px;accent-color:#8b5cf6}.editor-toggle strong{display:block;font-size:.92rem}.editor-toggle p{margin:4px 0 0;color:var(--muted);font-size:.84rem;line-height:1.5}.editor-alert{padding:14px 16px;border-radius:20px;border:1px solid rgba(251,113,133,.22);background:rgba(251,113,133,.1);color:#fecdd3}.editor-preview,.editor-summary{display:grid;gap:12px}.editor-preview-card{overflow:hidden;border:1px solid var(--border);border-radius:24px;background:rgba(255,255,255,.04)}.editor-preview-cover{position:relative;aspect-ratio:4/5;background:radial-gradient(circle at top,rgba(139,92,246,.24),transparent 40%),linear-gradient(135deg,rgba(139,92,246,.14),rgba(34,211,238,.1))}.editor-preview-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.78));pointer-events:none}.editor-preview-body{display:grid;gap:10px;padding:14px}.editor-preview-name{margin:0;font-size:1rem;font-weight:700;letter-spacing:-.02em}.editor-preview-desc{color:var(--muted);line-height:1.6;font-size:.92rem}.editor-preview-list{display:grid;gap:10px}.editor-mini-card{border:1px solid var(--border);border-radius:22px;background:rgba(255,255,255,.04);padding:14px}.editor-mini-label{color:rgba(255,255,255,.52);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.editor-mini-value{margin-top:8px;color:var(--text);font-size:.95rem}.editor-mini-note{margin-top:8px;color:var(--muted);line-height:1.6;font-size:.88rem}.avatar-editor,.avatar-editor-grid{display:grid;gap:14px}.avatar-editor-grid{grid-template-columns:150px minmax(0,1fr);align-items:start}.avatar-preview{position:relative;aspect-ratio:1;overflow:hidden;border-radius:24px;border:1px solid var(--border);background:radial-gradient(circle at top,rgba(139,92,246,.2),transparent 42%),linear-gradient(135deg,rgba(139,92,246,.12),rgba(34,211,238,.08))}.avatar-empty{display:grid;place-items:center;height:100%;color:rgba(238,242,255,.45);font-size:.9rem}.avatar-remove{position:absolute;inset:0;display:grid;place-items:center;background:rgba(7,11,20,.56);color:white;opacity:0;transition:opacity .16s ease}.avatar-preview:hover .avatar-remove{opacity:1}.avatar-upload{display:grid;gap:10px}.avatar-upload-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:-moz-fit-content;width:fit-content;border-radius:16px;border:1px solid var(--border);background:rgba(255,255,255,.05);color:white;padding:12px 16px;transition:transform .16s ease,background .16s ease,border-color .16s ease}.avatar-upload-button:hover{transform:translateY(-1px);background:rgba(255,255,255,.08);border-color:rgba(139,92,246,.24)}.avatar-upload-button input{display:none}.tag-editor{display:grid;gap:12px}.tag-list{display:flex;flex-wrap:wrap;gap:8px;min-height:56px;padding:12px;border:1px solid var(--border);border-radius:18px;background:rgba(7,11,20,.9)}.tag-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(139,92,246,.18);border-radius:999px;background:rgba(139,92,246,.1);color:#e9d5ff;padding:8px 11px;font-size:12px}.tag-pill button{width:18px;height:18px;border-radius:999px;background:rgba(255,255,255,.08);color:white;line-height:1}.tag-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.editor-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:2px}.editor-counter{color:var(--muted);font-size:.88rem}@media (max-width:960px){.editor-layout{grid-template-columns:1fr}.editor-side{position:static}.avatar-editor-grid,.tag-add{grid-template-columns:1fr}}@media (max-width:720px){.editor-panel,.editor-side{border-radius:22px;padding:16px}.editor-footer{flex-direction:column-reverse;align-items:stretch}.editor-footer .btn{width:100%}.editor-field-row{grid-template-columns:1fr}}.chat-shell{height:100vh;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;--chat-avatar-url:transparent}.chat-shell,.chat-stage{min-height:0;display:grid;gap:12px}.chat-stage{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}.chat-hero,.chat-mobile,.chat-panel,.composer{border:1px solid var(--border);border-radius:28px;background:linear-gradient(180deg,rgba(17,23,36,.96),rgba(11,16,26,.94));box-shadow:0 14px 32px rgba(0,0,0,.18);backdrop-filter:blur(16px)}.chat-hero{padding:16px;display:grid;align-content:start;gap:14px;min-height:0}.chat-hero,.chat-hero-avatar{position:relative;overflow:hidden}.chat-hero-avatar{width:100%;aspect-ratio:4/5;border-radius:28px;border:1px solid rgba(255,255,255,.08);background:radial-gradient(circle at top,rgba(139,92,246,.18),transparent 42%),linear-gradient(135deg,rgba(139,92,246,.12),rgba(34,211,238,.1))}.chat-hero-content{display:grid;gap:10px}.chat-kicker{margin:0;color:#c4b5fd;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}.chat-hero-name{margin:0;font-size:1.5rem;line-height:1.05;letter-spacing:-.04em}.chat-hero-text{margin:0;color:var(--muted);line-height:1.7}.chat-panel{min-height:0;overflow:hidden}.chat-panel--focus,.chat-panel--transcript{padding:0}.chat-transcript{height:100%;min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding:18px;display:grid;gap:12px;align-content:start}.chat-history-banner{border:1px solid rgba(139,92,246,.22);border-radius:18px;background:rgba(139,92,246,.08);padding:12px 14px;color:#ddd6fe;font-size:.9rem;line-height:1.55}.chat-turn-error{margin-top:8px;background:rgba(239,68,68,.1);border-left:3px solid rgba(239,68,68,.5);padding:10px 14px;line-height:1.5}.chat-regenerate-btn,.chat-turn-error{border-radius:10px;color:#fca5a5;font-size:.875rem}.chat-regenerate-btn{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:8px 14px;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);cursor:pointer;transition:background .15s,border-color .15s}.chat-regenerate-btn:hover{background:rgba(239,68,68,.25);border-color:rgba(239,68,68,.5)}.chat-turn{display:grid;gap:6px}.chat-icon-button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid transparent;background:rgba(255,255,255,.06);color:rgba(238,242,255,.55);cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.chat-icon-button:hover{background:rgba(255,255,255,.1);border-color:rgba(148,163,184,.2);color:rgba(238,242,255,.85);transform:translateY(-1px)}.chat-icon-button:active{transform:translateY(0)}.chat-icon-button--danger{color:rgba(248,113,113,.6)}.chat-icon-button--danger:hover{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.3);color:#fca5a5}.chat-turn-actions{display:flex;align-items:center;gap:6px}.chat-row{display:flex}.chat-row--user{justify-content:flex-end}.chat-row--assistant,.chat-row--system{justify-content:flex-start}.chat-bubble{max-width:min(760px,88%);border-radius:24px;border:1px solid var(--border);padding:14px 16px;box-shadow:0 14px 32px rgba(0,0,0,.18);word-break:break-word}.chat-bubble--user{background:linear-gradient(180deg,rgba(139,92,246,.66),rgba(139,92,246,.68));border-color:rgba(139,92,246,.28)}.chat-bubble--assistant{background:linear-gradient(180deg,rgba(20,28,44,.76),rgba(10,16,28,.78));border-color:rgba(148,163,184,.2);box-shadow:0 0 0 1px rgba(34,211,238,.3),0 18px 40px rgba(0,0,0,0)}.chat-bubble--assistant.chat-bubble--streaming{border-color:rgba(34,211,238,.28);box-shadow:0 0 0 1px rgba(34,211,238,.08),0 20px 48px rgba(0,0,0,.28)}.chat-bubble--system{background:rgba(255,255,255,.03);border-style:dashed;color:rgba(238,242,255,.78)}.chat-message-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.chat-message-author{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.42)}.chat-message-state{color:#67e8f9;font-size:.82rem}.chat-message-empty{min-height:24px;display:flex;align-items:center}.chat-message-empty--muted{color:var(--muted);font-size:.92rem}.chat-system-note{display:grid;gap:8px}.chat-system-label{color:rgba(255,255,255,.42);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}.chat-markdown{display:grid;gap:10px;line-height:1.72;color:#eef2ff;word-break:break-word}.chat-markdown>:first-child{margin-top:0}.chat-markdown>:last-child{margin-bottom:0}.chat-markdown p{margin:0}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3,.chat-markdown h4,.chat-markdown h5,.chat-markdown h6{margin:0;line-height:1.18;letter-spacing:-.04em}.chat-markdown ol,.chat-markdown ul{margin:0;padding-left:1.2rem;display:grid;gap:.45rem}.chat-markdown li{margin:0}.chat-markdown blockquote{margin:0;padding:.2rem 0 .2rem 1rem;border-left:3px solid rgba(148,163,184,.35);color:rgba(238,242,255,.82)}.chat-markdown code{border:1px solid rgba(148,163,184,.2);border-radius:10px;background:rgba(15,23,42,.92);padding:.15rem .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.9em}.chat-markdown pre{margin:0;overflow:auto;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:rgba(6,11,20,.96);padding:14px 16px}.chat-markdown pre code{display:block;border:none;background:transparent;padding:0;border-radius:0;white-space:pre}.chat-markdown a{color:#67e8f9;text-decoration:underline;text-underline-offset:2px}.chat-typing{display:inline-flex;align-items:center;gap:6px;min-height:16px}.chat-typing span{width:7px;height:7px;border-radius:999px;background:rgba(103,232,249,.9);animation:chatPulse 1.2s ease-in-out infinite}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chatPulse{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-2px);opacity:1}}.chat-turn--hovered,.chat-turn--hovered .chat-bubble{transition:border-color .18s ease}.chat-turn--hovered .chat-bubble{border-color:rgba(244,63,94,.35)}.chat-turn--hovered .chat-bubble--user{background:linear-gradient(180deg,rgba(244,63,94,.12),rgba(244,63,94,.06)),linear-gradient(180deg,rgba(139,92,246,.26),rgba(139,92,246,.18))}.chat-turn--hovered .chat-bubble--assistant{background:linear-gradient(180deg,rgba(244,63,94,.08),rgba(244,63,94,.04)),linear-gradient(180deg,rgba(20,28,44,.98),rgba(10,16,28,.96));box-shadow:0 0 0 1px rgba(34,211,238,.3),0 0 0 1px rgba(244,63,94,.12),0 18px 40px rgba(0,0,0,0)}.chat-focus{position:relative;height:100%;min-height:0;overflow:hidden;border-radius:28px;background:var(--chat-avatar-url) center/cover no-repeat,radial-gradient(circle at top,rgba(139,92,246,.22),transparent 42%),linear-gradient(135deg,rgba(139,92,246,.16),rgba(34,211,238,.12))}.chat-focus:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,9,15,.18),rgba(6,9,15,.68))}.chat-focus-spacer{height:100%}.chat-focus-bottom{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:18px;display:grid;gap:12px}.chat-focus-message{border:1px solid rgba(255,255,255,.14);border-radius:24px;background:rgba(10,14,24,.48);padding:14px 16px;color:#eef2ff;box-shadow:0 18px 40px rgba(0,0,0,.26)}.chat-focus-message--mobile{background:rgba(10,14,24,.68);border-color:rgba(255,255,255,.12)}.chat-mobile{position:relative;min-height:0;overflow:hidden;display:none}.chat-mobile-backdrop{position:absolute;inset:0;z-index:0;overflow:hidden;background:radial-gradient(circle at top,rgba(139,92,246,.22),transparent 42%),linear-gradient(135deg,rgba(139,92,246,.16),rgba(34,211,238,.12));filter:saturate(1.08)}.chat-mobile-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,9,15,.16),rgba(6,9,15,.5))}.chat-mobile-overlay{position:relative;z-index:1;height:100%;min-height:0;padding:12px;display:grid}.chat-mobile-scroll{min-height:0;overflow-y:auto;display:grid;gap:12px;align-content:start;padding:8px 4px 12px}.chat-transcript--mobile{background:rgba(0,0,0,0)}.chat-history-banner--mobile{background:rgba(8,12,20,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.chat-bubble--mobile{background:rgba(10,14,24,.35);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.chat-bubble--mobile.chat-bubble--user{background:rgba(139,92,246,.2)}.chat-bubble--mobile.chat-bubble--assistant{background:rgba(10,14,24,.38)}.chat-bubble--mobile.chat-bubble--system{background:rgba(255,255,255,.06)}.composer{display:grid;gap:10px;padding:14px 16px}.composer-main{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:12px;align-items:end}.composer-input{width:100%;min-height:76px;max-height:220px;resize:vertical;padding:14px 16px;border:1px solid var(--border);border-radius:20px;background:rgba(7,11,20,.9);color:var(--text);outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.composer-input::-moz-placeholder{color:rgba(148,163,184,.58);white-space:pre-line}.composer-input::placeholder{color:rgba(148,163,184,.58);white-space:pre-line}.composer-input:focus{border-color:rgba(139,92,246,.55);box-shadow:0 0 0 4px rgba(139,92,246,.16),0 0 0 1px rgba(139,92,246,.28);background:rgba(10,15,25,.98)}.composer-controls{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.composer-switch,.composer-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:999px;padding:10px 12px;background:rgba(255,255,255,.04);color:rgba(238,242,255,.85);white-space:nowrap}.composer-toggle input{accent-color:#8b5cf6}.composer-switch input{position:absolute;opacity:0;pointer-events:none}.composer-switch-track{width:28px;height:28px;border-radius:999px;background:rgba(148,163,184,.24);border:1px solid rgba(148,163,184,.24);padding:2px;transition:background .16s ease,border-color .16s ease}.composer-switch-thumb{display:block;width:18px;height:18px;border-radius:999px;background:#eef2ff;transition:transform .16s ease}.composer-switch input:checked+.composer-switch-track{background:rgba(139,92,246,.4);border-color:rgba(139,92,246,.4)}.composer-switch input:checked+.composer-switch-track .composer-switch-thumb{transform:translateX(20px)}.composer-switch-label{font-size:.9rem}.composer-send{border:none;border-radius:18px;padding:14px 18px;background:linear-gradient(135deg,#8b5cf6,#a855f7);color:white;font-weight:700;transition:transform .16s ease,filter .16s ease,opacity .16s ease}.composer-send:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08)}.composer-send:disabled{opacity:.55;cursor:not-allowed}.composer-attachments-preview{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.composer-preview-item{position:relative;width:80px;height:80px;border-radius:12px;overflow:hidden;flex-shrink:0;border:1px solid var(--border);background:rgba(7,11,20,.6)}.composer-preview-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.composer-preview-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.65);color:white;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;opacity:0;transition:opacity .12s ease;padding:0}.composer-preview-item:hover .composer-preview-remove{opacity:1}.composer-attachment-chips{display:flex;gap:6px;flex-wrap:wrap}.composer-attachment-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 10px;border-radius:999px;background:rgba(139,92,246,.15);border:1px solid rgba(139,92,246,.25);color:rgba(200,180,255,.9);font-size:.78rem;white-space:nowrap}.composer-attachment-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:transparent;border:none;color:rgba(200,180,255,.6);font-size:14px;line-height:1;cursor:pointer;padding:0;transition:color .12s ease}.composer-attachment-remove:hover{color:#f87171;background:rgba(248,113,113,.15)}.composer-attach-button,.composer-file-input-wrapper{display:flex;align-items:center}.composer-attach-button{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid var(--border);color:rgba(238,242,255,.7);cursor:pointer;justify-content:center;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}.composer-attach-button:hover{background:rgba(139,92,246,.15);border-color:rgba(139,92,246,.4);color:#eef2ff;transform:translateY(-1px)}.composer-attach-button:focus{outline:none;border-color:rgba(139,92,246,.5);box-shadow:0 0 0 3px rgba(139,92,246,.2)}.composer-attach-button:focus:hover{background:rgba(139,92,246,.2)}.composer-attach-button:active{transform:translateY(0);background:rgba(139,92,246,.25)}.composer-attach-button:disabled{opacity:.4;cursor:not-allowed;transform:none}.chat-attachments{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.chat-attachment{max-width:200px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.chat-attachment--image img{width:100%;display:block}.chat-attachment a{display:block;text-decoration:none;color:inherit}@media (max-width:720px){.chat-hero{display:none}.chat-mobile{display:block;border-radius:24px;min-height:62dvh}.chat-panel{display:none}.chat-stage{grid-template-columns:1fr}.chat-bubble{max-width:94%}.chat-turn{gap:4px}.composer{border-radius:22px;padding:14px}.composer-main{grid-template-columns:1fr}.composer-controls{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr}.composer-send,.composer-switch,.composer-toggle{width:100%;justify-content:center}}.auth-location{display:grid;gap:12px}.auth-location__choice{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;padding:10px 28px;gap:10px;background:rgba(255,255,255,.03);color:var(--text);font-size:.95rem;font-weight:500;letter-spacing:.01em;transition:transform .16s ease,filter .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease;cursor:pointer}.auth-location__choice:hover{transform:translateY(-1px);border-color:rgba(139,92,246,.35);background:rgba(139,92,246,.06)}.auth-location__choice--active{border-color:rgba(139,92,246,.5);background:linear-gradient(135deg,rgba(139,92,246,.14),rgba(168,85,247,.08));color:#ddd6fe;box-shadow:0 8px 32px rgba(139,92,246,.18)}.auth-location__choice--active:hover{background:linear-gradient(135deg,rgba(139,92,246,.2),rgba(168,85,247,.12))}.auth-provider-icon{width:42px;height:42px;margin-right:10px;flex-shrink:0}