/* ══════════════════════════════════════════════════════════════════
   Zypherius Chat V2 — LUXURY Dark Theme
   Premium glass morphism + neon accents + smooth gradients
   ══════════════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:       #05050f;
  --bg2:      #0a0b18;
  --bg3:      #10112a;
  --bg4:      #181a3a;
  --glass:    rgba(255,255,255,0.03);
  --glass2:   rgba(255,255,255,0.06);
  --glass3:   rgba(255,255,255,0.09);
  --border:   rgba(255,255,255,0.06);
  --border2:  rgba(255,255,255,0.10);
  --border3:  rgba(255,255,255,0.16);
  --txt:      #eef0ff;
  --txt2:     #9ea3c2;
  --txt3:     #5c6088;
  --accent:   #7c5cff;
  --accent2:  #a78bfa;
  --neon:     #c084fc;
  --neon2:    #e879f9;
  --cyan:     #22d3ee;
  --green:    #34d399;
  --red:      #fb7185;
  --amber:    #fbbf24;
  --gold:     #f5c842;
  --radius:   14px;
  --fast:     .15s;
  --smooth:   .3s;
  --glow-sm:  0 0 20px rgba(124,92,252,0.15);
  --glow-md:  0 0 40px rgba(124,92,252,0.2);
  --glow-lg:  0 4px 60px rgba(124,92,252,0.25);
}

/* ─── Light Theme ─── */
.light{
  --bg:       #f5f5fa;
  --bg2:      #ffffff;
  --bg3:      #eeeef5;
  --bg4:      #e4e4ee;
  --glass:    rgba(0,0,0,0.03);
  --glass2:   rgba(0,0,0,0.05);
  --glass3:   rgba(0,0,0,0.08);
  --border:   rgba(0,0,0,0.08);
  --border2:  rgba(0,0,0,0.12);
  --border3:  rgba(0,0,0,0.18);
  --txt:      #1a1a2e;
  --txt2:     #4a4a6a;
  --txt3:     #8888a4;
  --accent:   #6d4cef;
  --accent2:  #7c5cfc;
  --neon:     #9b6dff;
  --neon2:    #c054e8;
  --cyan:     #0891b2;
  --green:    #059669;
  --red:      #e11d48;
  --amber:    #d97706;
  --gold:     #b45309;
  --glow-sm:  0 2px 12px rgba(109,76,239,0.12);
  --glow-md:  0 4px 24px rgba(109,76,239,0.15);
  --glow-lg:  0 6px 36px rgba(109,76,239,0.18);
}
.light .app{background:var(--bg)}
.light .top-bar{background:rgba(255,255,255,0.85)}
.light .code-block{background:rgba(0,0,0,0.03)}
.light .msg-content code:not(.hljs){background:rgba(109,76,239,0.08);color:var(--accent);border-color:rgba(109,76,239,0.12)}
.light .user-msg .msg-body{background:linear-gradient(135deg,rgba(109,76,239,0.1),rgba(156,84,232,0.06));border-color:rgba(109,76,239,0.15)}
.light .logo-text{-webkit-text-fill-color:var(--txt)}
.light #modelSelect{background:var(--bg3)}
.light .sug-card{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.light .composer{background:var(--bg2);border-color:var(--border2)}
.light .dropdown{background:var(--bg2);box-shadow:0 8px 32px rgba(0,0,0,.12)}
.light .modal-box{background:var(--bg2);box-shadow:0 16px 48px rgba(0,0,0,.15)}
.light .streaming-dot{box-shadow:0 0 8px rgba(109,76,239,0.3)}
.light ::selection{background:rgba(109,76,239,0.2)}
.light ::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.12)}

html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--txt);font-family:'Inter',system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent2);text-decoration:none}
a:hover{color:var(--neon)}
button{font-family:inherit;cursor:pointer;font-size:14px;padding:8px 12px;border-radius:6px;transition:all var(--fast)}
::selection{background:rgba(124,92,252,0.3)}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.08);border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.15)}
.hide{display:none!important}

/* ─── Layout ─── */
.app{display:flex;height:100vh;overflow:hidden;background:radial-gradient(ellipse at 20% 50%, rgba(124,92,252,0.04) 0%, transparent 60%),radial-gradient(ellipse at 80% 80%, rgba(232,121,249,0.03) 0%, transparent 50%),var(--bg)}
.main-area{flex:1;display:flex;flex-direction:column;position:relative;min-width:0}

/* ─── Sidebar ─── */
.sidebar{width:280px;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;z-index:90;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.sb-head{display:flex;align-items:center;justify-content:space-between;padding:20px 18px 10px}
.sb-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--txt)}
.logo-mark{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--neon2));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:#fff;box-shadow:var(--glow-sm);transition:transform var(--fast)}
.logo-mark:hover{transform:scale(1.08)}
.logo-text{font-weight:700;font-size:17px;background:linear-gradient(135deg,var(--txt),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.sb-close-btn{display:none;background:0;border:0;color:var(--txt3);padding:4px;border-radius:8px}.sb-close-btn:hover{background:var(--glass2)}

.new-chat-btn{margin:10px 14px;padding:11px;background:linear-gradient(135deg,rgba(124,92,252,0.12),rgba(232,121,249,0.08));border:1px solid rgba(124,92,252,0.2);border-radius:var(--radius);color:var(--accent2);font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:center;gap:8px;transition:all var(--smooth)}
.new-chat-btn:hover{background:linear-gradient(135deg,rgba(124,92,252,0.22),rgba(232,121,249,0.15));border-color:rgba(124,92,252,0.4);color:var(--neon);box-shadow:var(--glow-sm)}
.new-chat-btn svg{opacity:.7}

.sb-search{margin:0 12px 10px;display:flex;align-items:center;gap:8px;background:var(--glass);border:1px solid var(--border);border-radius:12px;padding:9px 14px;transition:border-color var(--fast)}
.sb-search:focus-within{border-color:rgba(124,92,252,0.3)}
.sb-search svg{color:var(--txt3);flex-shrink:0}
.sb-search input{background:0;border:0;color:var(--txt);outline:0;width:100%;font-size:13px}
.sb-search input::placeholder{color:var(--txt3)}

/* Ref types grid */
.ref-types-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 2px}
.ref-type-slot{padding:12px;border-radius:12px;border:1.5px dashed #d4d0e8;cursor:pointer;transition:all .2s;text-align:center;position:relative;min-height:80px}
.ref-type-slot:hover{border-color:rgba(124,92,252,0.4);background:rgba(124,92,252,0.03)}
.ref-type-slot.has-ref{border-style:solid;border-color:rgba(124,92,252,0.4);background:rgba(124,92,252,0.05)}
.ref-slot-icon{margin-bottom:4px}
.ref-slot-label{font-size:12px;font-weight:600;color:#1a1a2e}
.ref-slot-desc{font-size:10px;color:#8b8b9e}
.ref-slot-preview{margin-top:6px;position:relative}
.ref-slot-preview img{width:100%;height:50px;object-fit:cover;border-radius:6px}
.ref-slot-remove{position:absolute;top:-4px;right:-4px;width:18px;height:18px;background:rgba(0,0,0,0.5);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;cursor:pointer;line-height:1}
.ref-slot-remove:hover{background:#ef4444}

/* Chat list */
.chat-list{flex:1;overflow-y:auto;padding:0 8px}
.chat-item{display:flex;align-items:center;padding:11px 14px;border-radius:12px;cursor:pointer;transition:all var(--fast);gap:8px;margin-bottom:2px;position:relative;border:1px solid transparent}
.chat-item:hover{background:var(--glass2);border-color:var(--border)}
.chat-item.active{background:linear-gradient(135deg,rgba(124,92,252,0.1),rgba(232,121,249,0.06));border-color:rgba(124,92,252,0.25);box-shadow:inset 0 0 20px rgba(124,92,252,0.05)}
.chat-item-title{font-size:13px;font-weight:500;color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.chat-item.active .chat-item-title{color:var(--txt);font-weight:600}
.chat-item-actions{display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity var(--fast)}
.chat-item:hover .chat-item-actions{opacity:1}
.chat-act-btn{background:var(--glass);border:0;color:var(--txt3);padding:8px;border-radius:6px;cursor:pointer;font-size:14px;transition:all var(--fast)}
.chat-act-btn:hover{color:var(--txt);background:var(--glass3)}
.chat-act-del:hover{color:var(--red);background:rgba(251,113,133,0.1)}

/* Sidebar footer */
.sb-footer{padding:12px 14px;border-top:1px solid var(--border)}
.credits-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--txt2);padding:8px 0}
.credits-row svg{color:var(--gold)}
#creditsAmount{font-weight:700;color:var(--gold)}
.buy-link{margin-left:auto;font-size:12px;font-weight:600;color:var(--accent);padding:4px 12px;border-radius:8px;background:rgba(124,92,252,0.1);border:1px solid rgba(124,92,252,0.2);transition:all var(--fast)}
.buy-link:hover{background:rgba(124,92,252,0.2);border-color:rgba(124,92,252,0.4);color:var(--neon);box-shadow:var(--glow-sm)}
.user-row{display:flex;align-items:center;gap:10px;padding:8px 0;cursor:pointer;border-radius:10px;transition:background var(--fast)}
.user-row:hover{background:var(--glass)}
.user-avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--neon2));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0}
.user-avatar img{width:100%;height:100%;border-radius:10px;object-fit:cover}
.user-meta{flex:1;min-width:0}
.user-name{font-size:13px;font-weight:600;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-email{font-size:11px;color:var(--txt3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dots-btn{background:0;border:0;color:var(--txt3);padding:6px;border-radius:8px;transition:all var(--fast)}
.dots-btn:hover{color:var(--txt);background:var(--glass2)}

/* Sidebar overlay mobile */
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:85;backdrop-filter:blur(4px)}
.sb-overlay.open{display:block}

/* ─── Top Bar ─── */
.top-bar{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);background:rgba(10,11,24,0.8);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:9999;position:relative}
.hamburger{display:none;background:0;border:0;color:var(--txt2);padding:6px;border-radius:8px}
.hamburger:hover{background:var(--glass2)}
.top-title{flex:1;font-size:15px;font-weight:600;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ─── Mode Switcher (Chat / Montage) ─── */
.mode-switcher{display:flex;align-items:center;background:var(--glass);border:1px solid var(--border);border-radius:12px;padding:3px;gap:2px;flex-shrink:0}
.mode-tab{display:flex;align-items:center;gap:6px;padding:8px 14px;border:none;background:transparent;color:var(--txt3);font-size:14px;font-weight:500;font-family:inherit;border-radius:6px;cursor:pointer;transition:all .2s ease;white-space:nowrap}
.mode-tab:hover{color:var(--txt2);background:var(--glass2)}
.mode-tab.active{background:linear-gradient(135deg,rgba(124,92,252,0.2),rgba(232,121,249,0.1));color:var(--txt);font-weight:600;box-shadow:0 0 16px rgba(124,92,252,0.15)}
.mode-tab.active[data-mode="montage"]{background:linear-gradient(135deg,rgba(251,113,133,0.2),rgba(232,121,249,0.12));box-shadow:0 0 16px rgba(251,113,133,0.15)}
.mode-tab svg{width:16px;height:16px;opacity:.7;flex-shrink:0}
.mode-tab.active svg{opacity:1}

/* Montage mode body state */
body.montage-mode .composer-hint{display:none!important}
.montage-hint{display:none;padding:2px 10px 4px;text-align:center;font-size:12px;color:var(--txt3)}
body.montage-mode .montage-hint{display:block}
body.montage-mode #modelPicker{opacity:.35;pointer-events:none}
body.montage-mode #imagePicker{opacity:.35;pointer-events:none}
body.montage-mode #searchToggle{display:none}
body.montage-mode #creativeBtn{display:none}
body.montage-mode #refToggle{display:none}
body.montage-mode #imageBtn{display:none}

.top-right{display:flex;align-items:center;gap:8px}

.model-pill{display:none}
#modelSelect{background:var(--glass2);border:1px solid var(--border2);color:var(--txt);padding:7px 30px 7px 12px;border-radius:10px;font-size:13px;font-family:inherit;cursor:pointer;outline:0;appearance:none;-webkit-appearance:none;transition:all var(--fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ea3c2' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
#modelSelect:hover{border-color:rgba(124,92,252,0.3)}
#modelSelect:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,252,0.1)}
#modelSelect option{background:var(--bg2);color:var(--txt);padding:8px}
.model-tag{font-size:11px;font-weight:700;padding:3px 10px;border-radius:8px;white-space:nowrap;letter-spacing:.5px}

.icon-btn{background:var(--glass2);border:1px solid var(--border);color:var(--txt2);padding:8px 12px;border-radius:6px;font-size:14px;transition:all var(--fast)}
.icon-btn:hover{color:var(--txt);background:var(--glass3);border-color:var(--border2)}

/* ─── Messages Area ─── */
.messages-scroll{flex:1;overflow-y:auto;scroll-behavior:smooth}
.messages{max-width:860px;margin:0 auto;padding:24px 20px 100px}

/* ─── Messages ─── */
.message{display:flex;gap:12px;padding:18px 0;position:relative;animation:msgIn .3s ease}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.user-msg{justify-content:flex-end}
.user-msg .msg-body{background:linear-gradient(135deg,rgba(124,92,255,0.15),rgba(192,132,252,0.08));border:1px solid rgba(124,92,255,0.2);border-radius:18px 18px 4px 18px;padding:16px 20px;max-width:75%;backdrop-filter:blur(8px)}
.user-msg .msg-role{display:none}

.ai-msg .msg-avatar{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--neon2));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff;flex-shrink:0;box-shadow:var(--glow-sm)}
.ai-msg .msg-body{flex:1;min-width:0}
.ai-msg .msg-role{font-size:12px;font-weight:700;color:var(--accent2);margin-bottom:6px;text-transform:uppercase;letter-spacing:1px}
.ai-msg .msg-content{color:var(--txt);line-height:1.7}

/* User avatar */
.user-msg .msg-avatar-u{width:28px;height:28px;border-radius:8px;background:var(--glass3);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--txt2);flex-shrink:0}

/* Message content styles */
.msg-content p{margin:0 0 10px}
.msg-content p:last-child{margin:0}
.msg-content strong{color:var(--txt);font-weight:600}
.msg-content em{color:var(--txt2)}
.msg-content ul,.msg-content ol{margin:8px 0;padding-left:24px}
.msg-content li{margin:3px 0}
.msg-content a{color:var(--cyan);border-bottom:1px solid rgba(34,211,238,0.3)}
.msg-content a:hover{color:#67e8f9;border-bottom-color:rgba(34,211,238,0.6)}
.msg-content blockquote{border-left:3px solid var(--accent);padding:8px 16px;margin:12px 0;background:var(--glass);border-radius:0 8px 8px 0;color:var(--txt2)}
.msg-content table{border-collapse:collapse;width:100%;margin:12px 0;font-size:14px}
.msg-content th{background:var(--glass2);padding:10px 14px;text-align:left;font-weight:600;border-bottom:2px solid var(--border2)}
.msg-content td{padding:8px 14px;border-bottom:1px solid var(--border)}
.msg-content hr{border:0;height:1px;background:var(--border2);margin:16px 0}

/* Code blocks */
.code-block{margin:14px 0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border2);background:rgba(0,0,0,0.4)}
.code-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:rgba(255,255,255,0.03);border-bottom:1px solid var(--border)}
.code-lang{font-size:12px;font-weight:600;color:var(--txt3);text-transform:uppercase;letter-spacing:.5px}
.code-copy-btn{display:flex;align-items:center;gap:4px;background:0;border:0;color:var(--txt3);font-size:12px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all var(--fast)}
.code-copy-btn:hover{color:var(--txt);background:var(--glass2)}
.code-copy-btn.copied{color:var(--green)}
.code-block pre{margin:0;padding:14px;overflow-x:auto;font-size:13.5px;line-height:1.6}
.code-block code{font-family:'JetBrains Mono',monospace}
.msg-content code:not(.hljs){background:rgba(124,92,252,0.12);padding:2px 7px;border-radius:6px;font-size:0.88em;font-family:'JetBrains Mono',monospace;color:var(--neon);border:1px solid rgba(124,92,252,0.15)}

/* ─── Message actions ─── */
.msg-actions{display:flex;gap:2px;margin-top:10px;opacity:0;transition:opacity var(--fast)}
.message:hover .msg-actions{opacity:1}
.act-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:0;border:0;color:var(--txt3);font-size:12px;border-radius:8px;cursor:pointer;transition:all var(--fast)}
.act-btn:hover{background:var(--glass2);color:var(--txt)}
.act-btn.copied{color:var(--green)}

/* Attached files */
.msg-files{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.msg-file-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:var(--glass);border:1px solid var(--border);border-radius:10px;font-size:12px;color:var(--txt2)}
.msg-img-thumb{max-width:320px;max-height:320px;border-radius:var(--radius);cursor:pointer;transition:all var(--smooth);border:1px solid var(--border)}
.msg-img-thumb:hover{border-color:var(--accent);box-shadow:var(--glow-sm)}

/* Streaming */
.streaming-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--neon);animation:glow-pulse 1.2s ease-in-out infinite;vertical-align:middle;margin-left:4px;box-shadow:0 0 12px rgba(192,132,252,0.5)}
@keyframes glow-pulse{0%,100%{opacity:.3;box-shadow:0 0 6px rgba(192,132,252,0.3)}50%{opacity:1;box-shadow:0 0 18px rgba(192,132,252,0.6)}}

/* ─── Welcome screen ─── */
.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:48px 24px 40px;text-align:center;min-height:60vh}
.welcome-heading{font-size:24px;font-weight:600;color:#1a1a2e;margin-bottom:28px;letter-spacing:-0.3px}
.welcome-prompt-bar{width:100%;max-width:600px;background:#fff;border:1.5px solid #e4e4ea;border-radius:16px;padding:16px 18px 12px;margin-bottom:40px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;box-shadow:0 2px 12px rgba(0,0,0,0.04)}
.welcome-prompt-area{flex:1;min-width:280px}
.wpa-input{font-size:15px;color:#b0b0c0;padding:4px 0 12px;cursor:text;text-align:left}
.wpa-tools{display:flex;gap:8px;flex-wrap:wrap}
.wpa-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border:1px solid #e8e8ed;border-radius:100px;font-size:12.5px;color:#666;cursor:pointer;transition:all 0.15s;background:transparent}
.wpa-chip:hover{border-color:#7c5cfc;color:#7c5cfc}
.wpa-chip svg{opacity:0.7}
.wpa-generate{padding:10px 24px;background:#1a1a2e;color:#fff;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all 0.2s;align-self:flex-end}
.wpa-generate:hover{background:#2d2d44;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.15)}
.welcome-tools{width:100%;max-width:640px;text-align:left}
.wt-label{font-size:13px;font-weight:600;color:#9494a8;margin-bottom:18px;text-transform:uppercase;letter-spacing:1px}
.wt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:500px){.wt-grid{grid-template-columns:repeat(2,1fr)}}
.wt-card{display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;transition:all 0.3s cubic-bezier(0.34,1.56,0.64,1);text-decoration:none;padding:24px 16px 20px;border-radius:20px;background:#fff;border:1px solid #ebebf0;position:relative;transform-style:preserve-3d;perspective:600px}
.wt-card::after{content:'';position:absolute;inset:0;border-radius:20px;box-shadow:0 6px 0 -1px rgba(0,0,0,0.06),0 10px 20px -4px rgba(0,0,0,0.06);transition:all 0.3s;z-index:-1}
.wt-card:hover{transform:translateY(-6px) scale(1.03);border-color:transparent}
.wt-card:hover::after{box-shadow:0 12px 0 -2px rgba(0,0,0,0.04),0 20px 40px -8px rgba(0,0,0,0.12)}
.wt-card:active{transform:translateY(-2px) scale(0.98)}
.wt-card span{font-size:13.5px;font-weight:600;color:#2a2a3a;letter-spacing:-0.2px}
.wt-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;box-shadow:0 4px 12px rgba(0,0,0,0.12),inset 0 1px 1px rgba(255,255,255,0.3);transform:translateZ(8px)}
.wt-icon::before{content:'';position:absolute;inset:0;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,0.25) 0%,transparent 50%);pointer-events:none}
.wt-card:hover .wt-icon{transform:translateZ(12px) scale(1.08);box-shadow:0 8px 20px rgba(0,0,0,0.18),inset 0 1px 1px rgba(255,255,255,0.3)}
.wt-icon-img{background:none!important;box-shadow:none!important;overflow:hidden;padding:0}
.wt-icon-img::before{display:none}
.wt-icon-img img{width:100%;height:100%;object-fit:cover;border-radius:20px;transition:transform .3s cubic-bezier(0.34,1.56,0.64,1)}
.wt-card:hover .wt-icon-img{background:none!important;box-shadow:0 8px 20px rgba(0,0,0,0.12)!important}
.wt-card:hover .wt-icon-img img{transform:scale(1.05)}
.suggestions{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:540px;width:100%}


/* ─── Composer ─── */
.composer-wrap{padding:0 20px 16px;max-width:860px;margin:0 auto;width:100%}
.file-chips{display:none;flex-wrap:wrap;gap:8px;padding-bottom:10px}
.file-chips.show{display:flex}
.f-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--glass);border:1px solid var(--border);border-radius:12px;font-size:13px;color:var(--txt2);max-width:220px}
.f-chip img{width:34px;height:34px;border-radius:8px;object-fit:cover}
.f-chip-icon{font-size:18px;flex-shrink:0}
.f-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.f-chip-x{background:0;border:0;color:var(--txt3);font-size:14px;cursor:pointer;padding:0 2px;line-height:1;border-radius:4px;transition:all var(--fast)}.f-chip-x:hover{color:var(--red);background:rgba(251,113,133,0.1)}

.composer{display:flex;align-items:flex-end;gap:6px;background:var(--glass);border:1px solid var(--border2);border-radius:20px;padding:6px 14px;transition:all var(--smooth);position:relative}
.composer::before{content:'';position:absolute;inset:-1px;border-radius:21px;background:linear-gradient(135deg,rgba(124,92,252,0.15),rgba(232,121,249,0.1),transparent,transparent);opacity:0;transition:opacity var(--smooth);pointer-events:none;z-index:-1}
.composer:focus-within{border-color:rgba(124,92,252,0.35);box-shadow:0 0 0 4px rgba(124,92,252,0.08)}
.composer:focus-within::before{opacity:1}

.attach-btn{background:0;border:0;color:var(--txt3);padding:8px;border-radius:10px;flex-shrink:0;margin-bottom:2px;transition:all var(--fast)}
.attach-btn:hover{color:var(--accent2);background:rgba(124,92,252,0.1)}

.tool-btn{background:0;border:0;color:var(--txt3);padding:7px;border-radius:10px;flex-shrink:0;margin-bottom:2px;cursor:pointer;transition:all var(--fast);position:relative}
.tool-btn:hover{color:var(--accent2);background:rgba(124,92,252,0.1)}
.tool-btn[data-active="true"]{color:var(--cyan);background:rgba(34,211,238,0.1)}
.tool-btn[data-active="true"]::after{content:'';position:absolute;bottom:1px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
#voiceBtn.recording{color:var(--red);animation:pulse-voice .8s ease-in-out infinite}
@keyframes pulse-voice{0%,100%{opacity:1}50%{opacity:.4}}

#chatInput{flex:1;background:0;border:0;color:var(--txt);font-size:15px;line-height:1.5;padding:10px 0;resize:none;outline:0;max-height:200px;overflow-y:auto;font-family:'Inter',system-ui,sans-serif}
#chatInput::placeholder{color:var(--txt3)}

.send-btn,.stop-btn{width:40px;height:40px;border-radius:12px;border:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:2px;transition:all var(--smooth)}
.send-btn{background:linear-gradient(135deg,var(--accent),var(--neon));color:#fff;box-shadow:var(--glow-sm)}
.send-btn:hover:not(:disabled){transform:scale(1.08);box-shadow:var(--glow-md)}
.send-btn:disabled{opacity:.25;cursor:default;transform:none;box-shadow:none}
.stop-btn{background:linear-gradient(135deg,#e11d48,#fb7185);color:#fff;box-shadow:0 0 20px rgba(251,113,133,0.2)}
.stop-btn:hover{transform:scale(1.08);box-shadow:0 0 30px rgba(251,113,133,0.3)}
.composer-hint{text-align:center;padding-top:10px;font-size:11px;color:var(--txt3);letter-spacing:.3px}

/* Generated images */
.gen-image{max-width:512px;border-radius:16px;margin:10px 0;box-shadow:0 8px 32px rgba(0,0,0,.4);border:1px solid var(--border2);transition:all var(--smooth)}
.msg-content img:not(.msg-img-thumb){max-width:512px;max-height:512px;border-radius:12px;cursor:pointer;margin:8px 0;display:block;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.gen-image:hover{border-color:var(--accent);box-shadow:var(--glow-lg)}

/* ─── Drop zone ─── */
.drop-zone{position:absolute;inset:0;z-index:50;background:rgba(124,92,252,0.06);border:2px dashed rgba(124,92,252,0.4);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:20px;margin:8px}
.drop-zone:not(.hide){display:flex}
.drop-inner{text-align:center;color:var(--accent2)}
.drop-inner svg{filter:drop-shadow(0 0 20px rgba(124,92,252,0.4))}
.drop-inner p{font-size:18px;font-weight:700;margin-top:12px}
.drop-inner small{color:var(--txt3);font-size:13px}

/* ─── Dropdown ─── */
.dropdown{position:fixed;z-index:200;background:var(--bg2);border:1px solid var(--border2);border-radius:16px;padding:8px;min-width:200px;box-shadow:0 12px 48px rgba(0,0,0,.5);backdrop-filter:blur(20px)}
.dd-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;font-size:14px;color:var(--txt2);background:0;border:0;width:100%;text-align:left;cursor:pointer;text-decoration:none;transition:all var(--fast)}
.dd-item:hover{background:var(--glass2);color:var(--txt)}
.dd-sep{height:1px;background:var(--border);margin:4px 0}
.dd-danger{color:var(--red)!important}
.dd-danger:hover{background:rgba(251,113,133,0.08)!important}

/* ─── Modal ─── */
.modal-bg{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.modal-bg:not(.hide){display:flex}
.modal-box{background:var(--bg2);border:1px solid var(--border2);border-radius:20px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.6)}
.modal-top{display:flex;align-items:center;justify-content:space-between;padding:22px 26px 12px}
.modal-top h3{font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--txt),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.modal-x{background:0;border:0;color:var(--txt3);font-size:18px;padding:4px 8px;border-radius:8px;cursor:pointer}.modal-x:hover{background:var(--glass2)}
.modal-body{padding:0 26px 26px}
.field-label{font-size:14px;font-weight:600;color:var(--txt);display:block;margin-bottom:2px;margin-top:16px}
.field-hint{font-size:12px;color:var(--txt3);margin-bottom:8px}
.field-textarea{width:100%;background:var(--glass);border:1px solid var(--border2);border-radius:12px;color:var(--txt);padding:12px 14px;font-size:14px;resize:vertical;outline:0;font-family:inherit;transition:border-color var(--fast)}
.field-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,252,0.1)}
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}
.toggle{position:relative;width:46px;height:26px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.tog-slider{position:absolute;inset:0;background:var(--bg4);border-radius:26px;cursor:pointer;transition:.25s;border:1px solid var(--border)}
.tog-slider::before{content:'';position:absolute;width:20px;height:20px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:.25s}
.toggle input:checked+.tog-slider{background:var(--accent);border-color:var(--accent)}
.toggle input:checked+.tog-slider::before{transform:translateX(20px)}



/* ─── Artifacts (file previews) ─── */
.artifact{margin:16px 0;border:1px solid var(--border2);border-radius:16px;overflow:hidden;background:var(--glass);transition:border-color var(--smooth)}
.artifact:hover{border-color:rgba(124,92,252,0.3)}
.artifact-header{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--glass2);border-bottom:1px solid var(--border)}
.artifact-icon{font-size:20px}
.artifact-info{flex:1;min-width:0}
.artifact-name{font-size:13px;font-weight:600;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.artifact-type{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.5px}
.artifact-actions{display:flex;gap:6px}
.artifact-btn{display:flex;align-items:center;gap:5px;padding:6px 14px;border-radius:10px;border:1px solid var(--border2);background:var(--glass);color:var(--txt2);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--fast);font-family:inherit}
.artifact-btn:hover{background:var(--glass3);color:var(--txt);border-color:var(--border3)}
.artifact-btn-primary{background:linear-gradient(135deg,var(--accent),var(--neon));color:#fff;border-color:transparent}
.artifact-btn-primary:hover{opacity:.9;box-shadow:var(--glow-sm)}
.artifact-preview{display:none}
.artifact-preview iframe{display:none}
.artifact-preview-table{max-height:300px;overflow:auto;padding:0}
.artifact-preview-table table{width:100%;border-collapse:collapse;font-size:13px}
.artifact-preview-table th{background:var(--glass2);padding:8px 12px;text-align:left;font-weight:600;color:var(--txt);border-bottom:2px solid var(--border2);position:sticky;top:0}
.artifact-preview-table td{padding:7px 12px;border-bottom:1px solid var(--border);color:var(--txt2)}
.artifact-preview-table tr:hover td{background:var(--glass)}
.artifact-preview-svg{display:flex;justify-content:center;padding:20px;background:#fff;border-radius:0}
.artifact-preview-svg svg{max-width:100%;max-height:360px}
.artifact-preview-code{max-height:350px;overflow:auto}
.artifact-expand{display:flex;justify-content:center;padding:6px;border-top:1px solid var(--border);cursor:pointer;font-size:12px;color:var(--txt3);transition:all var(--fast)}
.artifact-expand:hover{background:var(--glass);color:var(--txt)}
.artifact-modal{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.artifact-modal-inner{background:var(--bg2);border:1px solid var(--border2);border-radius:20px;width:95vw;max-width:1200px;height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.5)}
.artifact-modal-header{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);flex-shrink:0}
.artifact-modal-header .artifact-name{font-size:15px}
.artifact-modal-close{margin-left:auto;background:0;border:0;color:var(--txt3);font-size:20px;cursor:pointer;padding:4px 10px;border-radius:8px}
.artifact-modal-close:hover{background:var(--glass2);color:var(--txt)}
.artifact-modal-body{flex:1;overflow:hidden}
.artifact-modal-body iframe{width:100%;height:100%;border:0;background:#fff}


/* ─── Preview Panel (right side) ─── */
.preview-panel{width:50%;max-width:700px;min-width:380px;background:var(--bg2);border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;z-index:20;animation:panelIn .25s ease}
@keyframes panelIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
.preview-header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--glass)}
.preview-header-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.preview-icon{font-size:22px;flex-shrink:0}
.preview-name{font-size:14px;font-weight:600;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.preview-type{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.5px}
.preview-actions{display:flex;gap:6px;flex-shrink:0}
.preview-close{background:0;border:0;color:var(--txt3);font-size:18px;cursor:pointer;padding:6px 10px;border-radius:8px;transition:all var(--fast);flex-shrink:0}
.preview-close:hover{background:var(--glass2);color:var(--txt)}
.preview-body{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column}
.preview-body iframe{width:100%;flex:1;min-height:0;border:0;background:#fff}
.preview-body .preview-table{height:100%;overflow:auto}
.preview-body .preview-table table{width:100%;border-collapse:collapse;font-size:13px}
.preview-body .preview-table th{background:var(--glass2);padding:10px 14px;text-align:left;font-weight:600;color:var(--txt);border-bottom:2px solid var(--border2);position:sticky;top:0;z-index:1}
.preview-body .preview-table td{padding:8px 14px;border-bottom:1px solid var(--border);color:var(--txt2)}
.preview-body .preview-table tr:hover td{background:var(--glass)}
.preview-body .preview-svg{display:flex;align-items:center;justify-content:center;height:100%;padding:30px;background:#fff}
.preview-body .preview-svg svg{max-width:100%;max-height:100%}
.preview-body .preview-code{height:100%;overflow:auto}
.preview-body .preview-code pre{margin:0;padding:18px;font-size:13.5px;line-height:1.6;min-height:100%}

/* Make artifact in chat compact - just a clickable card */
.artifact{margin:16px 0;border:1px solid var(--border2);border-radius:14px;overflow:hidden;background:var(--glass);cursor:pointer;transition:all var(--smooth)}
.artifact:hover{border-color:rgba(124,92,252,0.35);box-shadow:var(--glow-sm);transform:translateY(-1px)}
.artifact-header{display:flex;align-items:center;gap:10px;padding:12px 16px}
.artifact-icon{font-size:22px}
.artifact-info{flex:1;min-width:0}
.artifact-name{font-size:13px;font-weight:600;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.artifact-type{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.5px}
.artifact-open-hint{font-size:12px;color:var(--accent2);font-weight:500;flex-shrink:0;opacity:0;transition:opacity var(--fast)}
.artifact:hover .artifact-open-hint{opacity:1}
.artifact-actions{display:none}
.artifact-preview-table,.artifact-preview-svg,.artifact-preview-code{display:none}


/* ─── Preview Panel Navigation ─── */
.preview-nav{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 16px;border-top:1px solid var(--border);background:var(--glass);flex-shrink:0}
.preview-nav-btn{padding:8px 20px;border-radius:10px;border:1px solid var(--border2);background:var(--glass2);color:var(--txt);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--fast);font-family:inherit}
.preview-nav-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--glow-sm)}
.preview-nav-counter{font-size:13px;font-weight:600;color:var(--txt2);min-width:100px;text-align:center}

/* ─── Theme toggle ─── */
.theme-btn{background:var(--glass2);border:1px solid var(--border);color:var(--txt2);padding:8px 12px;border-radius:6px;transition:all var(--fast);cursor:pointer;font-size:16px}
.theme-btn:hover{color:var(--txt);background:var(--glass3);border-color:var(--border2)}

/* ─── Responsive ─── */
@media(max-width:768px){
    .preview-panel{position:fixed;inset:0;width:100%!important;max-width:100%!important;min-width:0!important;z-index:100;animation:none}
    .preview-close{font-size:22px;padding:8px 14px}
    .sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:90;width:300px}
    .sidebar.open{transform:translateX(0)}
    .sb-close-btn{display:block}
    .sb-overlay.open{display:block}
    .hamburger{display:block}
    .suggestions{grid-template-columns:1fr}
    .composer-wrap{padding:0 10px 10px}
    .messages{padding:16px 12px 100px}
    .user-msg .msg-body{max-width:85%}
}

/* ─── Enhanced Presentation Slide Navigation ─── */
.preview-slide-nav{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;border-top:1px solid var(--border);background:var(--bg2);flex-shrink:0}
.pnav-btn{width:42px;height:42px;border-radius:12px;border:1px solid var(--border2);background:var(--glass2);color:var(--txt);font-size:22px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-family:inherit;line-height:1}
.pnav-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--accent),var(--neon));color:#fff;border-color:transparent;box-shadow:0 4px 16px rgba(124,92,252,0.3);transform:scale(1.05)}
.pnav-btn:disabled{opacity:.25;cursor:default;transform:none}
.pnav-counter{font-size:14px;font-weight:600;color:var(--txt2);min-width:70px;text-align:center;letter-spacing:.5px}
.pnav-full{width:36px;height:36px;border-radius:10px;border:1px solid var(--border2);background:var(--glass);color:var(--txt3);font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;margin-left:8px}
.pnav-full:hover{background:var(--glass3);color:var(--txt);border-color:var(--border3)}
.preview-nav{display:none!important}
.preview-panel{width:55%;max-width:820px}
.preview-body iframe{background:#0a0a1a;border-radius:0}

/* === MODEL PICKER === */
.model-picker{position:relative}
.model-picker-btn{display:flex;align-items:center;gap:8px;background:var(--glass2);border:1px solid var(--border2);color:var(--txt);padding:6px 12px;border-radius:12px;cursor:pointer;font-family:inherit;font-size:13px;transition:all var(--fast);height:36px;box-sizing:border-box}
.model-picker-btn:hover{border-color:rgba(124,92,252,0.4);background:var(--glass)}
.mp-icon{font-size:15px}
.mp-name{font-weight:600;white-space:nowrap}
.mp-cost{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:rgba(124,92,252,0.15);color:var(--accent);white-space:nowrap}
.mp-cost.free{background:rgba(16,185,129,0.15);color:#10b981}
.mp-arrow{transition:transform .2s;flex-shrink:0}
.model-picker.open .mp-arrow{transform:rotate(180deg)}
.model-dropdown{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:280px;background:var(--bg2);border:1px solid var(--border2);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,0.3);z-index:999;max-height:400px;overflow-y:auto}
.model-picker.open .model-dropdown{display:block;opacity:1!important}
@keyframes dropIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.md-section{padding:4px 10px 2px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--txt3);margin-top:4px}
.md-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .15s}
.md-item:hover{background:var(--glass)}
.md-item.active{background:rgba(124,92,252,0.12)}
.md-item .md-icon{font-size:18px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--glass2);flex-shrink:0}
.md-item .md-info{flex:1;min-width:0}
.md-item .md-name{font-size:13px;font-weight:600;color:var(--txt)}
.md-item .md-desc{font-size:11px;color:var(--txt3);margin-top:1px}
.md-item .md-price{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;white-space:nowrap;flex-shrink:0}
.md-item .md-price.free{background:rgba(16,185,129,0.12);color:#10b981}
.md-item .md-price.paid{background:rgba(124,92,252,0.12);color:var(--accent)}
.md-item .md-price.premium{background:rgba(251,191,36,0.12);color:#f59e0b}
.md-item.unavailable{opacity:0.45;cursor:not-allowed}
.md-item.unavailable:hover{background:transparent}
.md-item.unavailable .md-price::after{content:' 🔒';font-size:10px}
.light .model-dropdown{background:#fff;box-shadow:0 12px 40px rgba(0,0,0,0.12)}

/* ═══════ MEDIA PICKER ═══════ */
.media-picker-overlay { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.6); backdrop-filter:blur(4px); z-index:9999; display:flex; align-items:center; justify-content:center; animation:fadeIn .2s; }
.media-picker { background:var(--bg2,#1a1a2e); border:1px solid var(--border,#333); border-radius:16px; padding:20px; min-width:340px; max-width:420px; max-height:80vh; overflow-y:auto; }
.mp-title { font-size:16px; font-weight:600; color:var(--txt1,#fff); margin-bottom:16px; text-align:center; }
.mp-section { font-size:12px; font-weight:600; color:var(--txt3,#888); text-transform:uppercase; letter-spacing:1px; margin:12px 0 8px 4px; }
.mp-item { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:10px; cursor:pointer; transition:all .15s; border:1px solid transparent; }
.mp-item:hover { background:var(--bg3,#252545); border-color:var(--accent,#6c5ce7); }
.mp-item.active { background:rgba(108,92,231,0.15); border-color:var(--accent,#6c5ce7); }
.mp-icon { font-size:22px; flex-shrink:0; }
.mp-info { flex:1; min-width:0; }
.mp-name { font-size:14px; font-weight:500; color:var(--txt1,#fff); }
.mp-desc { font-size:11px; color:var(--txt3,#888); margin-top:2px; }
.mp-cost { font-size:12px; font-weight:600; padding:3px 8px; border-radius:6px; background:rgba(108,92,231,0.2); color:var(--accent,#a29bfe); white-space:nowrap; }

/* Generated media */
.gen-image { max-width:100%; border-radius:12px; cursor:pointer; transition:transform .2s; }
.gen-image:hover { transform:scale(1.02); }
.gen-video { max-width:100%; border-radius:12px; }

/* Generated media container */
.gen-media { margin-top:12px; display:inline-block; max-width:100%; }
.gen-media .gen-image { max-width:512px; max-height:512px; border-radius:12px; cursor:pointer; transition:transform .2s; display:block; }
.gen-media .gen-image:hover { transform:scale(1.02); }
.gen-media .gen-video { max-width:512px; border-radius:12px; display:block; }
.gen-meta { font-size:11px; color:var(--txt3,#888); margin-top:4px; padding:2px 0; }
.gen-dl{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--glass2);border:1px solid var(--border);color:var(--txt3);font-size:14px;text-decoration:none;position:absolute;top:8px;right:8px;opacity:0;transition:opacity .2s}
.gen-media{position:relative;display:inline-block}
.gen-media:hover .gen-dl{opacity:1}
.gen-dl:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ═══ Creative Studio Panel ═══ */
/* ═══════════════════════════════════════════════════════ */
/*  CREATIVE STUDIO — Premium Redesign                    */
/* ═══════════════════════════════════════════════════════ */

.creative-overlay {
    position:fixed; top:0; left:0; right:0; bottom:0;
    background:rgba(0,0,0,0); backdrop-filter:blur(0px);
    z-index:9999; display:flex; align-items:center; justify-content:center;
    transition: all .35s cubic-bezier(.16,1,.3,1);
}
.creative-overlay.show {
    background:rgba(0,0,0,0.65); backdrop-filter:blur(12px);
}

/* ═══════════════════════════════════════════════════════════════════
   CREATIVE STUDIO — Premium Ad Creator Panel
   ═══════════════════════════════════════════════════════════════════ */

.creative-panel {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%) translateY(12px) scale(0.97);
    width: 580px;
    max-width: 95vw;
    max-height: 70vh;
    overflow: hidden;
    background: var(--bg-secondary, rgba(22,20,48,0.98));
    border: 1px solid rgba(108,92,231,0.25);
    border-radius: 20px;
    box-shadow:
        0 24px 80px rgba(0,0,0,0.5),
        0 0 0 1px rgba(255,255,255,0.04) inset,
        0 0 60px rgba(108,92,231,0.06);
    opacity: 0;
    pointer-events: none;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 100;
}
.creative-panel.show {
    opacity: 1 !important;
    transform: translateX(-50%) translateY(0) scale(1) !important;
    pointer-events: auto !important;
}
@media (max-width: 640px) {
    .creative-panel { width: 95vw; left: 50%; bottom: 70px; }
}

/* Header */
.cp-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px 10px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.cp-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary, #fff);
}
.cp-close {
    background: none;
    border: none;
    color: var(--text-dim, rgba(255,255,255,0.4));
    font-size: 16px;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 8px;
    transition: all 0.15s;
}
.cp-close:hover {
    background: rgba(255,255,255,0.08);
    color: var(--text-primary, #fff);
}

/* Body */
.cp-body {
    padding: 12px 18px 16px;
    overflow-y: auto;
    max-height: calc(70vh - 50px);
}

/* Section */
.cp-section-title {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-dim, rgba(255,255,255,0.5));
    margin-bottom: 8px;
}

.cp-divider {
    height: 1px;
    background: rgba(255,255,255,0.06);
    margin: 12px 0;
}

/* Platform Tabs */
.cp-tabs {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.cp-tab {
    padding: 5px 10px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.03);
    color: var(--text-dim, rgba(255,255,255,0.55));
    font-size: 12px;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}
.cp-tab:hover {
    background: rgba(108,92,231,0.12);
    border-color: rgba(108,92,231,0.3);
    color: var(--text-primary, #fff);
}
.cp-tab.active {
    background: rgba(108,92,231,0.2);
    border-color: rgba(108,92,231,0.5);
    color: #a78bfa;
    font-weight: 500;
}

/* Preset Grid */
.cp-presets {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
    gap: 6px;
    max-height: 160px;
    overflow-y: auto;
    padding-right: 4px;
}
.cp-presets::-webkit-scrollbar { width: 4px; }
.cp-presets::-webkit-scrollbar-thumb { background: rgba(108,92,231,0.25); border-radius: 4px; }

.cp-preset-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,0.06);
    background: rgba(255,255,255,0.02);
    color: var(--text-secondary, rgba(255,255,255,0.75));
    font-size: 12px;
    cursor: pointer;
    transition: all 0.15s;
    text-align: left;
}
.cp-preset-btn:hover {
    background: rgba(108,92,231,0.08);
    border-color: rgba(108,92,231,0.25);
}
.cp-preset-btn.selected {
    background: rgba(108,92,231,0.15);
    border-color: rgba(108,92,231,0.5);
    color: #c4b5fd;
    box-shadow: 0 0 12px rgba(108,92,231,0.1);
}
.cp-preset-icon {
    font-size: 16px;
    flex-shrink: 0;
}
.cp-preset-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.cp-preset-name {
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.cp-preset-size {
    font-size: 10px;
    color: var(--text-dim, rgba(255,255,255,0.4));
}

/* Ad Template Grid */
.cp-templates {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 6px;
}
.cp-tpl-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 8px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.06);
    background: rgba(255,255,255,0.02);
    color: var(--text-secondary, rgba(255,255,255,0.7));
    font-size: 12px;
    cursor: pointer;
    transition: all 0.15s;
    text-align: center;
}
.cp-tpl-btn:hover {
    background: rgba(108,92,231,0.08);
    border-color: rgba(108,92,231,0.25);
}
.cp-tpl-btn.selected {
    background: rgba(108,92,231,0.15);
    border-color: rgba(108,92,231,0.5);
    color: #c4b5fd;
}
.cp-tpl-icon {
    font-size: 20px;
}
.cp-tpl-name {
    font-size: 11px;
    font-weight: 500;
}
.cp-tpl-desc {
    font-size: 9px;
    color: var(--text-dim, rgba(255,255,255,0.4));
}

/* Status bar */
.cp-status {
    margin-top: 8px;
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 11px;
    color: var(--text-dim, rgba(255,255,255,0.5));
    background: rgba(108,92,231,0.06);
    text-align: center;
    display: none;
}
.cp-status.visible {
    display: block;
}

/* Light theme */
.light .creative-panel {
    background: rgba(255,255,255,0.99);
    border-color: rgba(108,92,231,0.2);
    box-shadow: 0 24px 80px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.06) inset;
}
.light .cp-header { border-color: rgba(0,0,0,0.08); }
.light .cp-title { color: #1a1a2e; }
.light .cp-close { color: rgba(0,0,0,0.4); }
.light .cp-close:hover { background: rgba(0,0,0,0.06); color: #1a1a2e; }
.light .cp-section-title { color: rgba(0,0,0,0.55); }
.light .cp-divider { background: rgba(0,0,0,0.08); }
.light .cp-tab { border-color: rgba(0,0,0,0.1); background: rgba(0,0,0,0.02); color: rgba(0,0,0,0.6); }
.light .cp-tab:hover { background: rgba(108,92,231,0.08); color: rgba(0,0,0,0.85); border-color: rgba(108,92,231,0.25); }
.light .cp-tab.active { background: rgba(108,92,231,0.12); color: #7c3aed; border-color: rgba(108,92,231,0.4); font-weight: 600; }
.light .cp-preset-btn { border-color: rgba(0,0,0,0.08); background: rgba(0,0,0,0.015); color: rgba(0,0,0,0.75); }
.light .cp-preset-btn:hover { background: rgba(108,92,231,0.06); border-color: rgba(108,92,231,0.2); }
.light .cp-preset-btn.selected { background: rgba(108,92,231,0.1); border-color: rgba(108,92,231,0.45); color: #7c3aed; }
.light .cp-preset-size { color: rgba(0,0,0,0.4); }
.light .cp-tpl-btn { border-color: rgba(0,0,0,0.08); background: rgba(0,0,0,0.015); color: rgba(0,0,0,0.75); }
.light .cp-tpl-btn:hover { background: rgba(108,92,231,0.06); border-color: rgba(108,92,231,0.2); }
.light .cp-tpl-btn.selected { background: rgba(108,92,231,0.1); border-color: rgba(108,92,231,0.45); color: #7c3aed; }
.light .cp-tpl-desc { color: rgba(0,0,0,0.4); }
.light .cp-status { background: rgba(108,92,231,0.06); color: rgba(0,0,0,0.5); }

.ref-panel{display:none;padding:10px 12px;background:var(--glass);border:1px solid var(--border);border-radius:16px;margin-bottom:8px;transition:all .25s ease}
.ref-panel.show{display:block;animation:refSlide .2s ease}
@keyframes refSlide{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.ref-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ref-title{font-size:13px;font-weight:600;color:var(--txt)}
.ref-hint{font-size:11px;color:var(--txt3);flex:1}
.ref-clear-btn{background:0;border:0;color:var(--txt3);font-size:11px;cursor:pointer;padding:2px 8px;border-radius:6px;transition:all .15s}
.ref-clear-btn:hover{color:var(--red);background:rgba(251,113,133,0.1)}
.ref-images{display:flex;flex-wrap:wrap;gap:8px;min-height:60px;padding:6px;border:2px dashed var(--border);border-radius:12px;transition:border-color .15s}
.ref-images:hover{border-color:rgba(124,92,252,0.3)}
.ref-empty{width:100%;text-align:center;padding:14px;font-size:12px;color:var(--txt3);cursor:pointer;display:block;border-radius:8px;transition:all .15s}
.ref-empty:hover{color:var(--purple)}
.ref-thumb{position:relative;width:64px;height:64px;border-radius:10px;overflow:hidden;border:2px solid var(--border);transition:all .15s}
.ref-thumb:hover{border-color:var(--purple);transform:scale(1.05)}
.ref-thumb.uploading{opacity:0.6}
.ref-thumb.error{border-color:var(--red)}
.ref-thumb img{width:100%;height:100%;object-fit:cover}
.ref-thumb-x{position:absolute;top:2px;right:2px;width:18px;height:18px;background:rgba(0,0,0,0.7);border:0;border-radius:50%;color:#fff;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}
.ref-thumb:hover .ref-thumb-x{opacity:1}
.ref-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.3)}
.ref-loader::after{content:'';width:18px;height:18px;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ref-add-btn{width:64px;height:64px;border-radius:10px;border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--txt3);cursor:pointer;transition:all .15s;background:0}
.ref-add-btn:hover{border-color:var(--purple);color:var(--purple);background:rgba(124,92,252,0.05)}
.ref-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;background:var(--purple);color:#fff;font-size:10px;font-weight:700;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}
#refToggle{position:relative}
#refToggle.active{color:var(--purple);background:rgba(124,92,252,0.1)}

.ref-empty:hover{color:var(--purple);background:rgba(124,92,252,0.04)}
/* ═══ Creative Studio ═══ */
/* duplicate creative-panel removed */
.cs-tab {
    padding: 3px 8px;
    border-radius: 6px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text);
    font-size: 11px;
    cursor: pointer;
    transition: all 0.15s;
}
.cs-tab:hover { background: rgba(139,92,246,0.1); }
.cs-tab.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.cs-preset {
    padding: 4px 8px;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text);
    font-size: 10px;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
}
.cs-preset:hover { border-color: var(--primary); background: rgba(139,92,246,0.08); }
.cs-preset.selected { background: var(--primary); color: #fff; border-color: var(--primary); }
.cs-preset .cs-ratio { opacity: 0.6; font-size: 9px; }
.cs-template {
    padding: 4px 8px;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text);
    font-size: 10px;
    cursor: pointer;
    transition: all 0.15s;
}
.cs-template:hover { border-color: #f59e0b; background: rgba(245,158,11,0.08); }
.cs-template.selected { background: #f59e0b; color: #fff; border-color: #f59e0b; }

/* ═══ Settings Panel ═══ */
/* ═══ Settings Panel — Horizontal MJ-style ═══ */
.settings-panel {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%) translateY(12px) scale(0.97);
    width: 720px;
    max-width: 95vw;
    max-height: 65vh;
    overflow-y: auto;
    background: var(--bg-secondary, rgba(22,20,48,0.98));
    border: 1px solid rgba(108,92,231,0.25);
    border-radius: 20px;
    box-shadow: 0 24px 80px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.04) inset;
    opacity: 0;
    pointer-events: none;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 101;
    padding: 0;
}
.settings-panel.show {
    opacity: 1 !important;
    transform: translateX(-50%) translateY(0) scale(1) !important;
    pointer-events: auto !important;
}
.sp-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px 12px;
    border-bottom: 1px solid rgba(108,92,231,0.12);
}
.sp-title { font-size: 15px; font-weight: 600; color: var(--text); }
.sp-close {
    background: none; border: none; color: var(--text-dim);
    cursor: pointer; font-size: 18px; padding: 4px 8px; border-radius: 8px;
    transition: all 0.15s;
}
.sp-close:hover { background: rgba(139,92,246,0.15); color: var(--text); }
.sp-content {
    padding: 16px 20px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 24px;
}
.sp-section-title {
    grid-column: 1 / -1;
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.8px; color: var(--text-dim); opacity: 0.7;
    padding: 4px 0 2px; margin: 0;
    border-top: 1px solid rgba(108,92,231,0.08);
}
.sp-section-title:first-child { border-top: none; padding-top: 0; }
.sp-footer {
    display: flex; justify-content: space-between; align-items: center;
    padding: 12px 20px 16px;
    border-top: 1px solid rgba(108,92,231,0.12);
}
.sp-reset {
    background: none; border: 1px solid var(--border); color: var(--text-dim);
    padding: 7px 16px; border-radius: 8px; font-size: 12px; cursor: pointer;
    transition: all 0.15s;
}
.sp-reset:hover { border-color: rgba(139,92,246,0.4); color: var(--text); }
.sp-apply {
    background: var(--primary); border: none; color: #fff;
    padding: 7px 22px; border-radius: 8px; font-size: 12px; font-weight: 600;
    cursor: pointer; transition: all 0.15s;
}
.sp-apply:hover { filter: brightness(1.15); }

/* Setting row — horizontal: label left, control right */
.sp-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; min-height: 36px;
}
.sp-row.wide { grid-column: 1 / -1; }
.sp-label {
    display: flex; flex-direction: column; gap: 1px;
    font-size: 13px; color: var(--text); font-weight: 500;
    white-space: nowrap; min-width: 100px;
}
.sp-label-desc { font-size: 10px; color: var(--text-dim); opacity: 0.6; font-weight: 400; }
.sp-select {
    width: 160px; padding: 7px 30px 7px 10px; border-radius: 8px;
    background: var(--bg-primary, rgba(15,14,30,0.6));
    border: 1px solid var(--border);
    color: var(--text); font-size: 13px;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 5l3 3 3-3' fill='none' stroke='%23999' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 8px center;
    cursor: pointer; transition: border-color 0.15s; flex-shrink: 0;
}
.sp-select:focus { border-color: var(--primary); outline: none; }

.sp-slider-wrap {
    display: flex; align-items: center; gap: 8px; flex: 1; max-width: 200px;
}
.sp-slider {
    flex: 1; -webkit-appearance: none; height: 4px;
    border-radius: 2px; background: var(--border);
    outline: none;
}
.sp-slider::-webkit-slider-thumb {
    -webkit-appearance: none; width: 16px; height: 16px;
    border-radius: 50%; background: var(--primary); cursor: pointer;
    border: 2px solid rgba(255,255,255,0.2);
}
.sp-slider-val {
    min-width: 36px; text-align: center; font-size: 12px;
    color: var(--primary); font-weight: 600;
    background: rgba(139,92,246,0.1); padding: 2px 8px; border-radius: 6px;
}
.sp-number {
    width: 120px; padding: 7px 10px; border-radius: 8px;
    background: var(--bg-primary, rgba(15,14,30,0.6));
    border: 1px solid var(--border); color: var(--text); font-size: 13px;
    flex-shrink: 0;
}
.sp-number:focus { border-color: var(--primary); outline: none; }
.sp-toggle {
    display: flex; align-items: center; gap: 8px; cursor: pointer;
}
.sp-toggle-track {
    width: 36px; height: 20px; border-radius: 10px;
    background: var(--border); position: relative; transition: background 0.2s;
}
.sp-toggle-track.on { background: var(--primary); }
.sp-toggle-track::after {
    content: ''; position: absolute; top: 2px; left: 2px;
    width: 16px; height: 16px; border-radius: 50%;
    background: #fff; transition: transform 0.2s;
}
.sp-toggle-track.on::after { transform: translateX(16px); }
.sp-toggle-label { font-size: 13px; color: var(--text); }

@media (max-width: 640px) {
    .settings-panel { width: 95vw; }
    .sp-content { grid-template-columns: 1fr; gap: 10px; }
}

/* Settings button next to send */
.settings-btn {
    background: none; border: 1px solid var(--border);
    width: 36px; height: 36px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; font-size: 16px; transition: all 0.15s;
    color: var(--text-dim); flex-shrink: 0;
}
.settings-btn:hover { border-color: var(--primary); color: var(--primary); background: rgba(139,92,246,0.08); }
.settings-btn.has-settings { border-color: var(--primary); color: var(--primary); }

/* Light mode */

/* ═══ Prompt Bar under generated images — Krea-style ═══ */
.gen-prompt-bar {
    display: flex; align-items: center; gap: 8px;
    margin-top: 8px; padding: 6px 10px;
    background: rgba(108,92,231,0.06);
    border: 1px solid rgba(108,92,231,0.12);
    border-radius: 10px;
    max-width: 520px;
}
.gen-prompt-text {
    flex: 1; font-size: 12px; color: var(--text-dim);
    cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    padding: 4px 8px; border-radius: 6px;
    transition: all 0.15s;
}
.gen-prompt-text:hover {
    background: rgba(139,92,246,0.12); color: var(--text);
}
.gen-model-tag {
    font-size: 10px; padding: 2px 8px; border-radius: 6px;
    background: rgba(139,92,246,0.15); color: var(--primary);
    font-weight: 600; white-space: nowrap; flex-shrink: 0;
}
.gen-heart {
    background: none; border: none; font-size: 18px;
    cursor: pointer; padding: 2px 4px; border-radius: 6px;
    color: var(--text-dim); transition: all 0.2s; flex-shrink: 0;
    line-height: 1;
}
.gen-heart:hover { color: #ff4d6a; transform: scale(1.2); }
.gen-heart.liked { color: #ff4d6a; }

.light .gen-prompt-bar { background: rgba(108,92,231,0.04); border-color: rgba(108,92,231,0.1); }
.light .gen-prompt-text:hover { background: rgba(139,92,246,0.08); }

.light .settings-panel {
    background: rgba(255,255,255,0.99);
    border-color: rgba(108,92,231,0.2);
    box-shadow: 0 20px 60px rgba(0,0,0,0.12);
}
.light .sp-select, .light .sp-number {
    background: rgba(245,243,255,0.8);
}

@media (max-width: 640px) {
    .settings-panel { width: 90vw; right: 5vw; bottom: 70px; }
}

/* === KREA-STYLE TOP BAR === */
.top-bar { justify-content: flex-start !important; gap: 8px !important; padding: 8px 16px !important; }
.top-bar #themeBtn { display: none !important; }
.top-bar #exportBtn { display: none !important; }
.top-bar .top-title { display: block !important; flex: 1; min-width: 0; }
.top-bar .top-right { margin-left: 0 !important; flex: none !important; display: flex; align-items: center; gap: 6px; width: 100%; flex-wrap: nowrap; overflow-x: visible; overflow-y: visible; }

/* -- Top-bar: unified button style --
   Background: #F0F0F0 | Text: #333333 | Radius: 8px
   Padding: 10px 15px | Font: Arial 14px weight 500
   All text+icons centered vertically+horizontally */
.top-bar button,
.top-bar .model-picker-btn,
.top-bar .mini-picker-btn {
    background: #F0F0F0 !important;
    color: #333333 !important;
    border-radius: 8px !important;
    padding: 10px 15px !important;
    font-family: Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: none !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    transition: all 0.2s !important;
    box-sizing: border-box !important;
}
.top-bar button:hover,
.top-bar .model-picker-btn:hover,
.top-bar .mini-picker-btn:hover {
    background: #E0E0E0 !important;
}
.top-bar button svg,
.top-bar .model-picker-btn svg,
.top-bar .mini-picker-btn svg {
    vertical-align: middle;
    flex-shrink: 0;
    color: #333333;
    stroke: #333333;
}

/* Main text model picker */
.top-bar #modelPicker { order: -1; display: flex !important; align-items: center; position: relative; }
.top-bar #modelPicker .model-picker-btn .mp-icon { display: none !important; }
.top-bar #modelPicker .model-picker-btn .mp-name { font-size: 14px !important; font-weight: 500 !important; color: #333333 !important; font-family: Arial, sans-serif !important; }
.top-bar #modelPicker .model-picker-btn .mp-cost { display: none !important; }
.top-bar #modelPicker::before { content: "Model"; font-size: 13px; color: #666; margin-right: 6px; font-weight: 400; font-family: Arial, sans-serif; }
.top-bar #modelPicker .model-dropdown { z-index: 99999; right: auto; left: 0; }

/* Mini pickers -- image, video, audio */
.top-bar .mini-picker { display: flex !important; align-items: center; position: relative; }
.top-bar .mini-picker .mini-picker-btn {
    display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 5px;
    background: #F0F0F0 !important;
    border: none !important;
    border-radius: 8px !important; padding: 10px 15px !important;
    cursor: pointer !important; transition: all 0.2s !important;
    white-space: nowrap;
    font-family: Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #333333 !important;
}
.top-bar .mini-picker .mini-picker-btn:hover {
    background: #E0E0E0 !important;
}
.top-bar .mini-picker .mini-picker-btn .mp-icon { display: inline !important; font-size: 14px !important; flex-shrink: 0; }
.top-bar .mini-picker .mini-picker-btn .mp-name { font-size: 14px !important; font-weight: 500 !important; color: #333333 !important; font-family: Arial, sans-serif !important; }
.top-bar .mini-picker .mini-picker-btn .mp-cost {
    font-size: 11px !important; font-weight: 500 !important;
    padding: 1px 5px !important; border-radius: 4px !important;
    background: rgba(51,51,51,0.1) !important; color: #555 !important;
    font-family: Arial, sans-serif !important;
}
.top-bar .mini-picker .mini-picker-btn .mp-arrow { display: none !important; }
.top-bar .mini-picker .model-dropdown { z-index: 99999; left: 0; right: auto; min-width: 300px; }

/* Separator before mini pickers */
.top-bar .mini-picker:first-of-type::before {
    content: ""; display: block; width: 1px; height: 18px;
    background: #CCCCCC; margin-right: 2px; flex-shrink: 0;
}

/* Settings / icon buttons */
.top-bar .icon-btn {
    background: #F0F0F0 !important;
    color: #333333 !important;
    border-radius: 8px !important;
    padding: 10px !important;
}
.top-bar .icon-btn:hover {
    background: #E0E0E0 !important;
    color: #111 !important;
}
.top-bar .icon-btn svg { color: #333333; stroke: #333333; }
.top-bar #settingsBtn { margin-left: auto !important; }

/* Mode tabs */
.top-bar .mode-tab {
    background: #F0F0F0 !important;
    color: #333333 !important;
    border-radius: 8px !important;
    padding: 10px 15px !important;
    font-family: Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    border: none !important;
}
.top-bar .mode-tab:hover { background: #E0E0E0 !important; }
.top-bar .mode-tab.active {
    background: linear-gradient(135deg, rgba(124,92,252,0.2), rgba(232,121,249,0.1)) !important;
    color: #333333 !important;
    font-weight: 600 !important;
}
.top-bar .mode-tab svg { color: #333333; stroke: #333333; }

/* Hamburger (mobile) */
.top-bar .hamburger {
    background: #F0F0F0 !important;
    color: #333333 !important;
    border-radius: 8px !important;
    padding: 10px !important;
    border: none !important;
}
.top-bar .hamburger:hover { background: #E0E0E0 !important; }
.top-bar .hamburger svg { color: #333333; stroke: #333333; }

/* Dark theme overrides */
html:not(.light) .top-bar button,
html:not(.light) .top-bar .model-picker-btn,
html:not(.light) .top-bar .mini-picker-btn {
    background: rgba(255,255,255,0.08) !important;
    border: 1px solid rgba(255,255,255,0.15) !important;
    color: var(--txt, #fff) !important;
}
html:not(.light) .top-bar button:hover,
html:not(.light) .top-bar .model-picker-btn:hover,
html:not(.light) .top-bar .mini-picker-btn:hover {
    background: rgba(255,255,255,0.12) !important;
    border-color: rgba(124,92,252,0.4) !important;
}
html:not(.light) .top-bar button svg,
html:not(.light) .top-bar .model-picker-btn svg,
html:not(.light) .top-bar .mini-picker-btn svg {
    color: var(--txt2, #ccc); stroke: var(--txt2, #ccc);
}
html:not(.light) .top-bar #modelPicker .model-picker-btn .mp-name { color: var(--txt, #fff) !important; }
html:not(.light) .top-bar .mini-picker .mini-picker-btn .mp-name { color: var(--txt2, #ccc) !important; }
html:not(.light) .top-bar .mini-picker .mini-picker-btn .mp-cost {
    background: rgba(124,92,252,0.15) !important; color: var(--accent, #a29bfe) !important;
}
html:not(.light) .top-bar .icon-btn { background: rgba(255,255,255,0.08) !important; color: var(--txt3) !important; }
html:not(.light) .top-bar .icon-btn:hover { background: rgba(255,255,255,0.12) !important; color: var(--txt) !important; }
html:not(.light) .top-bar .icon-btn svg { color: var(--txt3); stroke: var(--txt3); }
html:not(.light) .top-bar .mode-tab { background: transparent !important; color: var(--txt3) !important; }
html:not(.light) .top-bar .mode-tab:hover { background: var(--glass2) !important; color: var(--txt2) !important; }
html:not(.light) .top-bar .mode-tab.active {
    background: linear-gradient(135deg,rgba(124,92,252,0.2),rgba(232,121,249,0.1)) !important;
    color: var(--txt) !important;
}
html:not(.light) .top-bar .hamburger { background: transparent !important; color: var(--txt2) !important; }
html:not(.light) .top-bar .hamburger:hover { background: var(--glass2) !important; }
html:not(.light) .top-bar .hamburger svg { color: var(--txt2); stroke: var(--txt2); }
html:not(.light) .top-bar .mini-picker:first-of-type::before { background: var(--border2, rgba(255,255,255,0.1)); }

/* Mobile responsive */
@media (max-width: 768px) {
    .top-bar .top-right { flex-wrap: wrap; gap: 4px; }
    .top-bar .mini-picker .mini-picker-btn .mp-name { max-width: 60px; overflow: hidden; text-overflow: ellipsis; }
    .top-bar .mini-picker .mini-picker-btn .mp-cost { display: none !important; }
}
@media (max-width: 480px) {
    .top-bar .mini-picker .mini-picker-btn .mp-name { display: none !important; }
    .top-bar .mini-picker .mini-picker-btn { padding: 10px !important; }
}

/* FIX: Model dropdown positioning — absolute relative to picker, high z-index */
.model-picker.open .model-dropdown,
.mini-picker.open .model-dropdown {
    position: absolute !important;
    top: calc(100% + 6px) !important;
    z-index: 99999 !important;
    display: block !important;
    animation: dropIn .15s ease;
}
/* On small screens, dropdown fills available width */
@media (max-width: 480px) {
    .model-picker.open .model-dropdown,
    .mini-picker.open .model-dropdown {
        left: 0 !important;
        right: auto !important;
        min-width: 260px;
        max-width: calc(100vw - 32px);
    }
}

/* ─── Clean Avatars ─── */
.user-avatar-circle{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--neon));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0}
.ai-avatar-circle{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#7c5cfc,#e879f9);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#fff;flex-shrink:0;box-shadow:0 0 12px rgba(124,92,252,0.3)}

/* ─── Welcome Suggestions ─── */
.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:40px 20px}
.welcome-heading{font-size:28px;font-weight:700;margin-bottom:32px;background:linear-gradient(135deg,var(--txt),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.welcome-suggestions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:480px;width:100%}
.sug-card{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--glass2);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;color:var(--txt);font-size:14px;text-align:left;font-family:inherit}
.sug-card:hover{background:var(--glass3);border-color:var(--border2);transform:translateY(-1px)}
.sug-icon{font-size:20px;flex-shrink:0}
@media(max-width:600px){.welcome-suggestions{grid-template-columns:1fr}.welcome-heading{font-size:22px}}

/* ─── Hide removed elements (safety) ─── */
.mode-switcher,.montage-hint,.creative-panel,.ref-panel,.settings-panel{display:none!important}

/* ─── Enhanced AI message appearance ─── */
.ai-msg{animation:aiMsgIn .5s cubic-bezier(0.16,1,0.3,1)}
@keyframes aiMsgIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

/* Typing cursor instead of dot */
.streaming-dot{display:inline-block;width:2px;height:18px;background:var(--accent);animation:blink-cursor .8s step-end infinite;vertical-align:text-bottom;margin-left:2px;border-radius:1px;box-shadow:0 0 8px rgba(124,92,252,0.4)}
@keyframes blink-cursor{0%,100%{opacity:1}50%{opacity:0}}

/* Smooth text reveal for streaming */
.ai-msg .msg-content{animation:textReveal .3s ease}
@keyframes textReveal{from{opacity:0.4}to{opacity:1}}

/* ─── Smooth streaming text ─── */
.ai-msg .msg-content{transition:none;will-change:contents;contain:layout style}
.ai-msg .msg-content *{animation:none!important}
.ai-msg .msg-content p,.ai-msg .msg-content li,.ai-msg .msg-content h1,.ai-msg .msg-content h2,.ai-msg .msg-content h3{margin-bottom:0.5em}

/* ─── Smooth streaming appearance ─── */
.ai-msg .msg-content{line-height:1.75;font-size:15px}
.ai-msg .msg-content p:last-child,.ai-msg .msg-content li:last-child{animation:fadeWord .3s ease}
@keyframes fadeWord{from{opacity:0.3}to{opacity:1}}

/* ─── Stream text (plain during typing, markdown after) ─── */
.stream-text{white-space:pre-wrap;word-break:break-word;line-height:1.75;font-size:15px}
