/* Vinking AI v2.1 — secure high-tech interface */
:root {
  --bg: #071019;
  --bg2: #0b1521;
  --panel: rgba(13, 25, 38, 0.72);
  --panel-strong: rgba(15, 29, 43, 0.92);
  --glass: rgba(255,255,255,0.055);
  --glass-2: rgba(255,255,255,0.035);
  --border: rgba(255,255,255,0.085);
  --border-strong: rgba(255,255,255,0.14);
  --text: #f7fbff;
  --muted: #8fa2b7;
  --green: #31d67b;
  --cyan: #17bfe2;
  --green-soft: rgba(49,214,123,.13);
  --cyan-soft: rgba(23,191,226,.12);
  --danger: #ff6c78;
  --shadow: 0 24px 70px rgba(0,0,0,.34);
  --sidebar: 292px;
}

html[data-theme="light"] {
  --bg: #eff5f8;
  --bg2: #f8fbfd;
  --panel: rgba(255,255,255,.78);
  --panel-strong: rgba(255,255,255,.95);
  --glass: rgba(255,255,255,.72);
  --glass-2: rgba(15,23,42,.035);
  --border: rgba(15,23,42,.09);
  --border-strong: rgba(15,23,42,.14);
  --text: #0c1724;
  --muted: #64748b;
  --shadow: 0 24px 70px rgba(15,23,42,.12);
}

* { box-sizing: border-box; }
html, body { margin:0; min-height:100%; }
body {
  min-height:100vh;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 15% 0%, rgba(49,214,123,.11), transparent 26%),
    radial-gradient(circle at 100% 20%, rgba(23,191,226,.11), transparent 24%),
    linear-gradient(145deg,var(--bg),var(--bg2));
  overflow-x:hidden;
}
button,input,textarea { font:inherit; }
button { -webkit-tap-highlight-color:transparent; }

body:before {
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.25;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,black,transparent 78%);
}
html[data-theme="light"] body:before {
  background-image:
    linear-gradient(rgba(15,23,42,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(15,23,42,.025) 1px,transparent 1px);
}

.ambient {
  position:fixed;
  width:420px;height:420px;border-radius:50%;
  filter:blur(100px);opacity:.11;pointer-events:none;z-index:-1;
}
.ambient-one { background:var(--green);left:20%;top:-180px; }
.ambient-two { background:var(--cyan);right:-160px;bottom:5%; }

.app-shell { min-height:100vh; display:flex; }

.sidebar {
  position:fixed; inset:0 auto 0 0; width:var(--sidebar);
  padding:22px 16px;
  display:flex; flex-direction:column; gap:17px;
  background:rgba(7,16,25,.74);
  border-right:1px solid var(--border);
  backdrop-filter:blur(24px) saturate(130%);
  z-index:30;
}
html[data-theme="light"] .sidebar { background:rgba(246,250,252,.80); }

.brand { display:flex;align-items:center;gap:12px;padding:4px 6px 2px; }
.brand-logo {
  width:46px;height:46px;border-radius:15px;
  display:grid;place-items:center;
  color:white;font-weight:800;font-size:19px;
  background:linear-gradient(140deg,var(--green),var(--cyan));
  box-shadow:0 12px 32px rgba(23,191,226,.16),0 0 0 1px rgba(255,255,255,.12) inset;
}
.brand h1 { margin:0;font-size:17px;letter-spacing:-.02em; }
.brand p { margin:3px 0 0;color:var(--muted);font-size:11.5px; }

.new-chat-btn {
  width:100%;height:48px;border:1px solid rgba(49,214,123,.25);
  border-radius:15px;padding:0 13px;
  display:flex;align-items:center;gap:9px;
  color:white;background:linear-gradient(135deg,rgba(49,214,123,.92),rgba(23,191,226,.86));
  cursor:pointer;font-weight:700;
  box-shadow:0 12px 32px rgba(23,191,226,.13);
  transition:.2s ease;
}
.new-chat-btn:hover { transform:translateY(-1px);filter:brightness(1.05); }
.new-chat-btn .plus { font-size:21px;line-height:1; }
.new-chat-btn kbd {
  margin-left:auto;background:rgba(0,0,0,.15);border:1px solid rgba(255,255,255,.14);
  border-radius:8px;padding:4px 7px;font-size:10px;font-weight:600;color:rgba(255,255,255,.82);
}

.sidebar-section {
  background:var(--glass-2);border:1px solid var(--border);
  border-radius:18px;padding:12px;
}
.section-title {
  color:var(--muted);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;font-weight:700;padding:2px 7px 8px;
}
.mode-btn {
  width:100%;height:42px;border:0;border-radius:12px;padding:0 10px;
  display:flex;align-items:center;gap:10px;
  background:transparent;color:var(--muted);cursor:pointer;text-align:left;
  transition:.18s ease;
}
.mode-btn:hover { color:var(--text);background:var(--glass); }
.mode-btn.active {
  color:var(--text);
  background:linear-gradient(90deg,var(--green-soft),rgba(23,191,226,.06));
  box-shadow:inset 0 0 0 1px rgba(49,214,123,.16);
}
.mode-icon {
  width:27px;height:27px;border-radius:9px;display:grid;place-items:center;
  background:var(--glass);border:1px solid var(--border);font-size:12px;
}
.mode-btn.active .mode-icon { color:var(--green);border-color:rgba(49,214,123,.24); }

.history-section { flex:1;min-height:150px;display:flex;flex-direction:column;overflow:hidden; }
.history-heading { display:flex;align-items:center;justify-content:space-between; }
.mini-btn {
  border:0;background:transparent;color:var(--muted);font-size:10px;cursor:pointer;
  text-transform:none;letter-spacing:0;padding:3px 0;
}
.mini-btn:hover { color:var(--text); }
.history-list { overflow:auto;display:flex;flex-direction:column;gap:5px;padding-right:2px; }
.history-item {
  border:0;background:transparent;color:var(--muted);border-radius:11px;
  padding:9px 10px;text-align:left;cursor:pointer;display:block;width:100%;
}
.history-item:hover,.history-item.active { background:var(--glass);color:var(--text); }
.history-item span { display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px; }
.history-item small { display:block;margin-top:3px;font-size:9.5px;color:var(--muted); }
.empty-history { color:var(--muted);font-size:11px;padding:12px 7px;line-height:1.5; }

.sidebar-footer { margin-top:auto;display:grid;gap:9px; }
.provider-card,.profile-card {
  display:flex;align-items:center;gap:10px;border:1px solid var(--border);
  background:var(--glass-2);border-radius:15px;padding:11px;
}
.provider-icon {
  width:33px;height:33px;border-radius:11px;background:var(--green-soft);
  display:grid;place-items:center;border:1px solid rgba(49,214,123,.18);
}
.provider-card strong,.profile-card strong { display:block;font-size:11.5px; }
.provider-card small,.profile-card span { display:block;color:var(--muted);font-size:9.5px;margin-top:2px; }
.status-dot {
  width:7px;height:7px;border-radius:50%;background:var(--green);
  box-shadow:0 0 12px var(--green);display:inline-block;
}
.profile-avatar {
  width:34px;height:34px;border-radius:11px;display:grid;place-items:center;
  font-size:12px;font-weight:800;color:white;
  background:linear-gradient(135deg,var(--green),var(--cyan));
}
.profile-copy { min-width:0;flex:1; }
.logout-btn {
  width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  text-decoration:none;color:var(--muted);background:var(--glass);border:1px solid var(--border);
}
.logout-btn:hover { color:var(--text); }

.main-panel { margin-left:var(--sidebar);min-height:100vh;width:calc(100% - var(--sidebar));padding:0 24px 28px; }
.topbar {
  height:82px;display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;
  background:linear-gradient(to bottom,rgba(7,16,25,.86),rgba(7,16,25,.62));
  backdrop-filter:blur(18px);
}
html[data-theme="light"] .topbar { background:linear-gradient(to bottom,rgba(247,251,253,.91),rgba(247,251,253,.72)); }
.topbar-left { display:flex;align-items:center;gap:13px; }
.workspace-label { font-size:9.5px;letter-spacing:.13em;color:var(--muted);font-weight:700;margin-bottom:4px; }
.topbar h2 { margin:0;font-size:15px;font-weight:650; }
.topbar-right { display:flex;align-items:center;gap:9px; }
.online-badge {
  display:flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;
  border:1px solid var(--border);background:var(--glass);color:var(--muted);font-size:10.5px;
}
.theme-btn,.menu-toggle {
  width:38px;height:38px;border-radius:12px;border:1px solid var(--border);
  background:var(--glass);color:var(--text);cursor:pointer;
}
.menu-toggle { display:none;font-size:17px; }

.workspace { max-width:1180px;margin:0 auto;padding:27px 0 0; }
.hero {
  position:relative;overflow:hidden;border:1px solid var(--border);
  background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,255,255,.025));
  border-radius:26px;padding:30px 30px 26px;margin-bottom:18px;
  box-shadow:var(--shadow);
}
.hero:after {
  content:"";position:absolute;width:320px;height:320px;border-radius:50%;
  right:-120px;top:-160px;background:radial-gradient(circle,rgba(23,191,226,.18),transparent 68%);
}
.hero-orb {
  position:absolute;right:44px;top:25px;width:90px;height:90px;border-radius:29px;
  padding:1px;background:linear-gradient(145deg,rgba(49,214,123,.7),rgba(23,191,226,.7),rgba(255,255,255,.08));
  box-shadow:0 0 42px rgba(23,191,226,.12);
}
.hero-orb-core {
  width:100%;height:100%;border-radius:28px;display:grid;place-items:center;
  background:rgba(8,18,29,.88);font-size:29px;font-weight:800;
}
html[data-theme="light"] .hero-orb-core { background:rgba(255,255,255,.9); }
.eyebrow {
  margin:0 0 9px;color:var(--green);font-size:9.5px;letter-spacing:.16em;
  font-weight:800;text-transform:uppercase;
}
.hero h1 { margin:0;font-size:clamp(28px,4vw,46px);line-height:1.07;letter-spacing:-.045em;max-width:700px; }
.hero-copy { margin:12px 0 22px;color:var(--muted);font-size:13.5px;line-height:1.65;max-width:690px; }
.quick-actions { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;position:relative;z-index:2; }
.quick-card {
  min-height:88px;border:1px solid var(--border);border-radius:16px;background:var(--glass);
  color:var(--text);padding:13px;display:grid;grid-template-columns:34px 1fr auto;gap:10px;
  align-items:center;text-align:left;cursor:pointer;transition:.18s ease;
}
.quick-card:hover {
  transform:translateY(-2px);border-color:rgba(49,214,123,.23);
  background:linear-gradient(135deg,var(--green-soft),rgba(23,191,226,.05));
}
.quick-icon {
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:var(--glass);border:1px solid var(--border);color:var(--green);
}
.quick-card strong { display:block;font-size:11.5px; }
.quick-card small { display:block;color:var(--muted);font-size:9.5px;margin-top:3px;line-height:1.35; }
.quick-card b { font-size:13px;color:var(--muted);font-weight:500; }

.chat-card {
  min-height:520px;border:1px solid var(--border);border-radius:26px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.025));
  box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;
}
.chat-card-head {
  min-height:69px;border-bottom:1px solid var(--border);padding:12px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.assistant-status { display:flex;align-items:center;gap:10px; }
.assistant-mark {
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--green-soft),var(--cyan-soft));
  border:1px solid rgba(49,214,123,.18);font-size:10.5px;font-weight:800;color:var(--green);
}
.assistant-status strong { display:block;font-size:12px; }
.assistant-status small { display:block;color:var(--muted);font-size:9.5px;margin-top:3px; }
.mode-pills { display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end; }
.mode-pill {
  border:1px solid var(--border);background:var(--glass-2);color:var(--muted);
  border-radius:999px;padding:7px 10px;font-size:9.5px;cursor:pointer;
}
.mode-pill.active { color:var(--text);border-color:rgba(49,214,123,.24);background:var(--green-soft); }

.messages {
  flex:1;min-height:300px;max-height:55vh;overflow:auto;padding:22px;
  display:flex;flex-direction:column;gap:16px;
}
.message-row { display:flex;align-items:flex-start;gap:10px;max-width:92%; }
.message-row.user { margin-left:auto;flex-direction:row-reverse; }
.message-row .avatar {
  flex:0 0 34px;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;
  background:var(--glass);border:1px solid var(--border);font-size:9.5px;font-weight:800;color:var(--muted);
}
.message-row.assistant .avatar {
  color:var(--green);background:var(--green-soft);border-color:rgba(49,214,123,.17);
}
.message-bubble {
  max-width:min(780px,100%);padding:13px 15px;border:1px solid var(--border);
  border-radius:16px;background:var(--glass);font-size:12.5px;line-height:1.72;color:var(--text);
  overflow-wrap:anywhere;
}
.message-row.user .message-bubble {
  background:linear-gradient(135deg,rgba(49,214,123,.12),rgba(23,191,226,.09));
  border-color:rgba(49,214,123,.15);
}
.message-bubble pre {
  overflow:auto;background:rgba(0,0,0,.22);border:1px solid var(--border);
  border-radius:11px;padding:12px;margin:10px 0;font-size:11px;
}
.message-bubble code { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.message-bubble > code { padding:2px 5px;border-radius:6px;background:var(--glass);border:1px solid var(--border); }
.thinking { display:flex;align-items:center;gap:5px;min-width:62px; }
.thinking i {
  width:6px;height:6px;border-radius:50%;background:var(--muted);
  animation:pulse 1.2s infinite ease-in-out;
}
.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}
@keyframes pulse { 0%,80%,100%{opacity:.25;transform:scale(.85)}40%{opacity:1;transform:scale(1)} }

.composer-zone { border-top:1px solid var(--border);padding:14px 16px 12px; }
.composer {
  display:grid;grid-template-columns:40px 1fr auto;gap:9px;align-items:end;
  border:1px solid var(--border-strong);background:rgba(255,255,255,.045);
  border-radius:18px;padding:8px;box-shadow:0 10px 35px rgba(0,0,0,.10);
}
.composer:focus-within { border-color:rgba(49,214,123,.28);box-shadow:0 0 0 3px rgba(49,214,123,.055); }
.attach-btn {
  width:40px;height:40px;border-radius:12px;border:1px solid var(--border);
  background:var(--glass);color:var(--muted);font-size:18px;cursor:pointer;
}
#promptInput {
  width:100%;min-height:40px;max-height:180px;resize:none;padding:9px 4px 6px;
  border:0;outline:0;background:transparent;color:var(--text);font-size:12.5px;line-height:1.55;
}
#promptInput::placeholder { color:var(--muted); }
.composer-actions { display:flex;align-items:center;gap:9px; }
.key-hint { color:var(--muted);font-size:8.5px;white-space:nowrap; }
.send-btn {
  width:42px;height:42px;border:0;border-radius:13px;color:white;cursor:pointer;
  background:linear-gradient(135deg,var(--green),var(--cyan));font-size:18px;font-weight:800;
  box-shadow:0 8px 25px rgba(23,191,226,.14);
}
.send-btn:disabled { opacity:.55;cursor:not-allowed; }
.composer-note { color:var(--muted);font-size:9px;text-align:center;margin-top:8px; }

.auth-shell {
  min-height:100vh;display:grid;place-items:center;padding:24px;
  background:
    radial-gradient(circle at 20% 10%,rgba(49,214,123,.12),transparent 26%),
    radial-gradient(circle at 90% 70%,rgba(23,191,226,.12),transparent 25%);
}
.auth-card {
  width:min(470px,100%);position:relative;overflow:hidden;
  border:1px solid var(--border);border-radius:28px;padding:30px;
  background:rgba(11,22,34,.80);backdrop-filter:blur(24px);box-shadow:var(--shadow);
}
html[data-theme="light"] .auth-card { background:rgba(255,255,255,.88); }
.auth-glow {
  position:absolute;width:200px;height:200px;border-radius:50%;right:-90px;top:-100px;
  background:radial-gradient(circle,rgba(23,191,226,.22),transparent 70%);pointer-events:none;
}
.auth-brand { display:flex;align-items:center;gap:12px;margin-bottom:34px;position:relative;z-index:2; }
.auth-brand strong { display:block;font-size:14px; }
.auth-brand small { display:block;color:var(--muted);font-size:10px;margin-top:3px; }
.auth-card h1 { margin:0;font-size:34px;letter-spacing:-.04em; }
.auth-copy { color:var(--muted);font-size:12.5px;line-height:1.65;margin:10px 0 22px; }
.auth-card code { font-size:10.5px;color:var(--green); }
.setup-grid { display:grid;gap:10px; }
.setup-item {
  display:flex;gap:12px;border:1px solid var(--border);border-radius:15px;
  background:var(--glass);padding:12px;
}
.setup-item > span {
  width:31px;height:31px;border-radius:10px;display:grid;place-items:center;
  background:var(--green-soft);color:var(--green);font-size:9px;font-weight:800;
}
.setup-item strong { display:block;font-size:11px; }
.setup-item small { display:block;color:var(--muted);font-size:9.5px;margin-top:3px; }
.login-form { display:grid;gap:10px; }
.login-form label { color:var(--muted);font-size:10px;font-weight:700; }
.password-field {
  display:flex;align-items:center;border:1px solid var(--border-strong);border-radius:14px;
  background:var(--glass);padding:0 12px;
}
.password-field:focus-within { border-color:rgba(49,214,123,.3);box-shadow:0 0 0 3px rgba(49,214,123,.055); }
.password-field input {
  width:100%;height:48px;border:0;outline:0;background:transparent;color:var(--text);font-size:12px;
}
.password-field span { color:var(--green);font-size:13px; }
.login-submit {
  height:49px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--green),var(--cyan));
  color:white;font-weight:750;cursor:pointer;margin-top:5px;
  display:flex;align-items:center;justify-content:center;gap:9px;
}
.secure-note { color:var(--muted);font-size:9.5px;margin-top:15px;display:flex;align-items:center;gap:7px; }
.alert {
  margin:0 0 14px;padding:10px 12px;border:1px solid rgba(255,108,120,.22);
  background:rgba(255,108,120,.08);border-radius:11px;color:#ff9ba4;font-size:10.5px;
}

@media (max-width:1050px) {
  .quick-actions { grid-template-columns:repeat(2,1fr); }
  .key-hint { display:none; }
}
@media (max-width:820px) {
  :root { --sidebar:280px; }
  .sidebar {
    transform:translateX(-102%);transition:transform .22s ease;
    box-shadow:20px 0 50px rgba(0,0,0,.28);
  }
  .sidebar.open { transform:translateX(0); }
  .main-panel { margin-left:0;width:100%;padding:0 14px 18px; }
  .menu-toggle { display:block; }
  .topbar { height:70px; }
  .workspace { padding-top:16px; }
  .hero { padding:24px 18px 20px; }
  .hero-orb { display:none; }
  .hero h1 { font-size:32px; }
  .chat-card-head { align-items:flex-start;flex-direction:column; }
  .mode-pills { justify-content:flex-start; }
  .messages { max-height:none;min-height:340px;padding:16px 13px; }
}
@media (max-width:560px) {
  .quick-actions { grid-template-columns:1fr; }
  .online-badge span:last-child { display:none; }
  .composer { grid-template-columns:36px 1fr auto; }
  .attach-btn { width:36px;height:36px; }
  .send-btn { width:39px;height:39px; }
  .mode-pills { gap:4px; }
  .mode-pill { padding:6px 8px;font-size:8.7px; }
  .auth-card { padding:24px 20px;border-radius:23px; }
}
