/* A1 AI portal — warm editorial dark, champagne gold. No build step.
   Aesthetic: private members' tool. Warm near-black + old-gold, Fraunces
   display + Inter UI, inline SVG icons. All live JS class/id hooks preserved. */

:root {
  --bg:#15130f; --bg-2:#1b1813; --panel:#211d17; --panel-2:#262119;
  --line:#332c22; --line-2:#3f362a;
  --text:#efe9df; --dim:#a99f8f; --faint:#7c7365;
  --gold:#e4bd77; --gold-hi:#f0d197; --gold-ink:#2a2010;
  --gold-wash:rgba(228,189,119,.10); --gold-line:rgba(228,189,119,.34);
  --ok:#7fce9b; --danger:#e08a7d;
  --serif:"Fraunces","Iowan Old Style",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  /* aliases kept so the server-rendered login pages keep working */
  --accent:var(--gold); --accent-hi:var(--gold-hi); --accent-ink:var(--gold-ink);
  --accent-glow:var(--gold-wash); --accent-wash:var(--gold-wash);
  --line-soft:var(--line); --bg-glow:#2b2418;

  --r-sm:8px; --r-md:12px; --r-lg:16px;
  --shadow:0 10px 30px rgba(0,0,0,.32); --shadow-sm:0 1px 2px rgba(0,0,0,.25);
}

* { box-sizing:border-box; }
html, body { height:100%; }
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-size:14px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  display:flex;
  min-height:100vh;
}
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; color:inherit; border:none; background:none; }
h1, h2, h3, p { margin:0; }
::selection { background:var(--gold-wash); color:var(--text); }

* { scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
*::-webkit-scrollbar { width:9px; height:9px; }
*::-webkit-scrollbar-thumb { background:var(--line); border-radius:99px; border:2px solid transparent; background-clip:content-box; }

/* inline icon */
.i { width:18px; height:18px; stroke:currentColor; stroke-width:1.6; fill:none; stroke-linecap:round; stroke-linejoin:round; flex:none; }

.dim { color:var(--dim); }
.err { color:var(--danger); }
.eyebrow { font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--faint); font-weight:600; margin-bottom:12px; }
.eyebrow .cnt { color:var(--faint); letter-spacing:.04em; }

/* ---- sidebar ------------------------------------------------------- */
#side {
  width:230px; flex-shrink:0;
  background:linear-gradient(180deg, var(--panel), var(--bg-2));
  border-right:1px solid var(--line);
  padding:22px 14px;
  display:flex; flex-direction:column; gap:2px;
  position:sticky; top:0; height:100vh; overflow:hidden;
}
.brand { padding:6px 8px; margin-bottom:26px; }
.brand .nm { font-family:var(--serif); font-size:22px; letter-spacing:.005em; line-height:1; color:var(--text); }
.brand .nm i { font-style:italic; color:var(--gold-hi); }
.nav {
  display:flex; align-items:center; gap:11px;
  padding:10px 12px; border-radius:9px;
  color:var(--dim); font-weight:500; font-size:.92rem;
  position:relative;
  transition:background .18s ease, color .18s ease;
}
.nav .lbl { flex:1; }
.nav:hover { background:rgba(255,255,255,.035); color:var(--text); }
.nav.active { background:var(--gold-wash); color:var(--gold-hi); }
.nav.active::before {
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:3px; height:17px; border-radius:9px; background:var(--gold);
}
.side-foot { margin-top:auto; padding:10px; font-size:.72rem; color:var(--faint); }

#view { flex:1; min-width:0; height:100vh; overflow-y:auto; }

/* ---- home ---------------------------------------------------------- */
.home { max-width:760px; margin:0 auto; padding:52px 30px 80px; }
.hello, .home h1 {
  font-family:var(--serif); font-weight:500;
  font-size:40px; line-height:1.04; letter-spacing:-.015em; margin-bottom:6px;
}
.sub { color:var(--dim); font-size:15px; margin-bottom:30px; }

.ask-bar {
  display:flex; gap:9px; align-items:center;
  background:var(--panel); border:1px solid var(--line-2);
  border-radius:16px; padding:8px 8px 8px 18px;
  box-shadow:var(--shadow);
  transition:border-color .18s ease;
}
.ask-bar:focus-within { border-color:var(--gold-line); }
#ask-input {
  flex:1; background:none; border:none; color:var(--text);
  font-size:16px; outline:none; font-family:inherit;
}
#ask-input::placeholder { color:var(--faint); }
.ask-bar button, .composer button[type="submit"] {
  background:linear-gradient(150deg, var(--gold-hi), var(--gold));
  color:var(--gold-ink); font-weight:600; font-size:.92rem;
  padding:11px 20px; border-radius:11px;
  display:flex; align-items:center; gap:7px;
  transition:transform .12s ease, filter .18s ease;
}
.ask-bar button:hover, .composer button[type="submit"]:hover { filter:brightness(1.06); transform:translateY(-1px); }
.ask-bar button:active, .composer button[type="submit"]:active { transform:translateY(0); }

/* suggested-prompt cards */
.prompts { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:18px 0 40px; }
.pc {
  display:flex; align-items:center; gap:12px; text-align:left;
  padding:14px 16px; background:var(--panel); border:1px solid var(--line);
  border-radius:12px; color:var(--text); transition:.15s;
}
.pc:hover { border-color:var(--gold-line); background:var(--panel-2); transform:translateY(-1px); }
.pc .pi {
  width:32px; height:32px; border-radius:8px; background:var(--gold-wash);
  color:var(--gold); display:flex; align-items:center; justify-content:center; flex:none;
}
.pc-tx { display:flex; flex-direction:column; gap:1px; }
.pc .pt { font-size:13.5px; font-weight:500; line-height:1.3; }
.pc .pd { font-size:11.5px; color:var(--faint); }

/* business-at-a-glance stat tiles */
.stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:0 0 40px; }
.stat { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px; text-align:left; }
.stat .k { font-size:11px; color:var(--faint); text-transform:uppercase; letter-spacing:.08em; margin-bottom:9px; }
.stat .v { font-family:var(--serif); font-size:26px; line-height:1.1; font-variant-numeric:tabular-nums; color:var(--text); }
.stat.empty { border-style:dashed; border-color:var(--line-2); transition:.15s; }
.stat.empty:hover { border-color:var(--gold-line); }
.stat.empty .v { font-size:14px; color:var(--dim); font-family:var(--sans); font-weight:450; line-height:1.35; margin-top:2px; }

/* action items */
.action-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.action-item {
  display:flex; align-items:center; gap:13px;
  background:var(--panel); border:1px solid var(--line);
  border-radius:11px; padding:13px 16px;
  transition:border-color .18s ease;
}
.action-item .ri { color:var(--gold); display:flex; flex:none; }
.action-item .rt { flex:1; font-size:13.5px; }
.action-item .rm { font-size:11.5px; color:var(--faint); }
.action-item.overdue { border-color:rgba(224,138,125,.35); background:rgba(224,138,125,.05); }
.action-item.overdue .ri { color:var(--danger); }
.done-btn {
  background:transparent; border:1px solid var(--line-2); color:var(--dim);
  border-radius:8px; padding:6px 12px; font-size:12px; flex-shrink:0;
  transition:border-color .18s ease, color .18s ease;
}
.done-btn:hover { border-color:var(--ok); color:var(--ok); }
.done-btn:disabled { opacity:.5; cursor:default; }

/* ---- proposal "save this" block (home + chat) ---------------------- */
.proposals { display:flex; flex-direction:column; gap:8px; margin:0 0 40px; }
.pill.save {
  display:flex; align-items:center; gap:12px;
  background:var(--gold-wash); border:1px solid var(--gold-line);
  border-radius:12px; padding:13px 15px;
}
.pill.save .save-ic { color:var(--gold); display:flex; flex:none; }
.pill.save .pill-text { flex:1; font-size:12.5px; display:flex; flex-direction:column; gap:2px; max-width:none; white-space:normal; overflow:visible; }
.pill.save .pill-text b { color:var(--gold-hi); font-weight:600; }
.pill.save .save-what { color:var(--dim); }
.pill-btn.confirm {
  background:linear-gradient(150deg, var(--gold-hi), var(--gold));
  color:var(--gold-ink); font-weight:600; font-size:12px;
  padding:8px 14px; border-radius:8px; flex:none;
  transition:filter .18s ease;
}
.pill-btn.confirm:hover { filter:brightness(1.06); }
.pill-btn.dismiss { color:var(--faint); font-size:12px; padding:8px 6px; flex:none; }
.pill-btn.dismiss:hover { color:var(--text); }
.pill.resolved {
  display:inline-flex; align-items:center;
  background:transparent; border:1px solid var(--line);
  color:var(--faint); border-radius:9px; padding:10px 15px; font-size:12.5px;
}

/* ---- chat ---------------------------------------------------------- */
.chat-layout { display:flex; height:100vh; }
.conv-list {
  width:250px; flex-shrink:0;
  border-right:1px solid var(--line); background:var(--bg-2);
  padding:16px 12px; overflow-y:auto;
  display:flex; flex-direction:column; gap:3px;
}
.new-conv-btn {
  display:flex; align-items:center; justify-content:center; gap:8px;
  border:1px dashed var(--gold-line); color:var(--gold-hi);
  border-radius:9px; padding:11px; font-weight:600; font-size:13px; margin-bottom:12px;
  transition:background .18s ease, border-color .18s ease;
}
.new-conv-btn:hover { background:var(--gold-wash); border-color:var(--gold); }
.conv-row {
  padding:11px 12px; border-radius:9px; color:var(--dim); font-size:13px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  transition:background .15s ease, color .15s ease;
}
.conv-row:hover { background:rgba(255,255,255,.035); color:var(--text); }
.conv-row.active { background:var(--gold-wash); color:var(--gold-hi); }

.chat-main { flex:1; display:flex; flex-direction:column; min-width:0; }
.messages { flex:1; overflow-y:auto; padding:30px 32px; display:flex; flex-direction:column; gap:22px; }
.empty-chat { margin:auto; text-align:center; color:var(--faint); font-family:var(--serif); font-size:1.2rem; }

.bubble {
  max-width:76%; padding:14px 18px; border-radius:16px; line-height:1.6;
  animation:rise .32s cubic-bezier(.22,1,.36,1);
}
@keyframes rise { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.bubble.user {
  align-self:flex-end;
  background:linear-gradient(150deg, var(--gold-hi), var(--gold));
  color:var(--gold-ink); font-weight:450; border-bottom-right-radius:5px;
  box-shadow:0 4px 14px var(--gold-wash);
}
.bubble.assistant {
  align-self:flex-start; background:var(--panel);
  border:1px solid var(--line); border-bottom-left-radius:5px; box-shadow:var(--shadow-sm);
}
.bubble p { margin:0 0 9px; }
.bubble p:last-child { margin-bottom:0; }
.bubble.assistant strong { color:var(--gold-hi); font-weight:600; }
.bubble pre {
  background:#100e0a; border:1px solid var(--line);
  border-radius:8px; padding:12px 14px; overflow-x:auto; font-size:.85rem; margin:10px 0;
}
.bubble code { background:rgba(255,255,255,.08); border-radius:5px; padding:1px 6px; font-size:.9em; }
.bubble pre code { background:none; padding:0; }
.bubble.user code { background:rgba(0,0,0,.14); }

.status-line { font-size:.85rem; color:var(--faint); margin-bottom:4px; font-style:italic; }
.status-line:empty { display:none; margin:0; }

/* source cards */
.sources { margin-top:13px; padding-top:11px; border-top:1px solid var(--line); display:flex; gap:8px; flex-wrap:wrap; }
.src {
  display:flex; align-items:center; gap:7px;
  background:var(--panel-2); border:1px solid var(--line-2);
  border-radius:8px; padding:6px 10px; font-size:11.5px; color:var(--dim);
  transition:border-color .18s ease, color .18s ease;
}
.src:hover { border-color:var(--gold-line); color:var(--text); }
.src .si { color:var(--gold); display:flex; flex:none; }

.composer-wrap {
  border-top:1px solid var(--line);
  background:linear-gradient(180deg, transparent, rgba(27,24,19,.4));
}
.attach-chips { display:flex; flex-wrap:wrap; gap:8px; padding:0 22px; }
.attach-chips:not(:empty) { padding-top:14px; }
.attach-chip {
  display:inline-flex; align-items:center; gap:6px;
  background:var(--panel); border:1px solid var(--line); border-radius:8px;
  padding:5px 9px; font-size:.82rem; max-width:240px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.attach-x { color:var(--dim); padding:0 2px; font-size:.9rem; }
.attach-x:hover { color:var(--danger); }
.attach-note { font-size:.8rem; }
.attach-note.err { color:var(--danger); }
.bubble .attach-note { margin-top:6px; }

.composer { display:flex; gap:10px; align-items:flex-end; padding:16px 22px 20px; }
.composer .attach-btn {
  width:44px; height:44px; border:1px solid var(--line-2); border-radius:12px;
  color:var(--dim); display:flex; align-items:center; justify-content:center; flex:none;
  transition:border-color .18s ease, color .18s ease;
}
.composer .attach-btn:hover { border-color:var(--gold-line); color:var(--gold-hi); }
.composer textarea {
  flex:1; resize:none; background:var(--panel);
  border:1px solid var(--line-2); border-radius:12px;
  padding:13px 15px; color:var(--text); font-family:inherit; font-size:15px;
  line-height:1.5; min-height:44px; max-height:150px; outline:none;
  transition:border-color .18s ease;
}
.composer textarea:focus { border-color:var(--gold-line); }
.composer button[type="submit"] { height:44px; padding:0 22px; }

/* ---- library ------------------------------------------------------- */
.library { max-width:860px; margin:0 auto; padding:52px 30px 80px; }
.lib-header { display:flex; flex-direction:column; gap:16px; margin-bottom:26px; }
.lib-header h1 { font-family:var(--serif); font-weight:500; font-size:34px; letter-spacing:-.01em; }
#lib-filter {
  width:100%; background:var(--panel); border:1px solid var(--line-2);
  border-radius:11px; padding:12px 16px; color:var(--text); font-size:14px; outline:none;
  transition:border-color .18s ease;
}
#lib-filter:focus { border-color:var(--gold-line); }
#lib-filter::placeholder { color:var(--faint); }
.lib-group { margin-bottom:32px; }
.lib-rows { display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.lib-row.card {
  text-align:left; background:var(--panel); border:1px solid var(--line);
  border-radius:13px; padding:16px 17px; transition:.15s; display:flex; flex-direction:column;
}
.lib-row.card:hover { border-color:var(--gold-line); transform:translateY(-2px); }
.lib-row .ch { display:flex; align-items:center; gap:9px; margin-bottom:9px; }
.lib-row .cbadge {
  font-size:10px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--gold); background:var(--gold-wash); padding:3px 8px; border-radius:6px; font-weight:600;
}
.lib-row.playbooks .cbadge { color:var(--ok); background:rgba(127,206,155,.1); }
.lib-row.skills .cbadge { color:var(--dim); background:rgba(255,255,255,.05); }
.lib-row .cti { margin-left:auto; color:var(--faint); display:flex; }
.lib-row .ct { font-size:14px; font-weight:600; line-height:1.3; margin-bottom:6px; }
.lib-row .cs {
  font-size:12.5px; color:var(--dim); line-height:1.5;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

.doc-view { max-width:760px; margin:0 auto; padding:40px 30px 80px; }
.doc-view .back-btn {
  background:transparent; border:1px solid var(--line-2); color:var(--dim);
  border-radius:8px; padding:8px 15px; margin-bottom:22px; font-size:13px;
  transition:border-color .18s ease, color .18s ease;
}
.doc-view .back-btn:hover { border-color:var(--gold-line); color:var(--gold-hi); }
.doc-view h1 { font-family:var(--serif); font-weight:500; margin-bottom:20px; }

/* ---- my business --------------------------------------------------- */
.business { max-width:820px; margin:0 auto; padding:52px 30px 80px; }
.business > h1 { font-family:var(--serif); font-weight:500; font-size:34px; letter-spacing:-.01em; margin-bottom:6px; }
.business .rows { display:flex; flex-direction:column; gap:8px; }

/* profile field editor */
.pf-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; margin-bottom:4px; }
.pf-row { display:flex; flex-direction:column; gap:5px; min-width:0; }
.pf-label { font-size:11px; color:var(--faint); letter-spacing:.02em; }
.pf-input-wrap { display:flex; align-items:center; gap:8px; min-width:0; }
.pf-input {
  flex:1; min-width:0; background:var(--panel); border:1px solid var(--line);
  border-radius:9px; padding:9px 12px; color:var(--text);
  font-family:inherit; font-size:13px; outline:none; transition:border-color .18s ease, background .18s ease;
}
.pf-input:focus { border-color:var(--gold-line); background:var(--panel-2); }
.pf-input::placeholder { color:var(--faint); }
.pf-save {
  opacity:0; pointer-events:none; flex:none;
  background:var(--gold-wash); border:1px solid var(--gold-line); color:var(--gold-hi);
  font-size:11px; font-weight:600; padding:6px 11px; border-radius:8px;
  transition:opacity .15s ease, filter .18s ease;
}
.pf-input-wrap:focus-within .pf-save { opacity:1; pointer-events:auto; }
.pf-save:hover { filter:brightness(1.08); }
.pf-status { font-size:11px; flex:none; white-space:nowrap; }
.pf-status.ok { color:var(--ok); }
.pf-status.err { color:var(--danger); }
.pf-status.saving { color:var(--faint); }

/* add-knowledge: drop zone + paste + process */
.drop {
  border:1.5px dashed var(--line-2); border-radius:16px; padding:34px 30px;
  text-align:center; background:var(--panel); cursor:pointer; transition:.15s;
}
.drop:hover, .drop.dragover { border-color:var(--gold-line); background:var(--panel-2); }
.drop .di {
  width:46px; height:46px; border-radius:12px; background:var(--gold-wash);
  color:var(--gold); display:flex; align-items:center; justify-content:center; margin:0 auto 14px;
}
.drop .dt { font-family:var(--serif); font-size:18px; margin-bottom:5px; }
.drop .dd { font-size:13px; color:var(--dim); }
.drop .dtypes { font-size:11.5px; color:var(--faint); margin-top:9px; }
.paste {
  width:100%; background:var(--panel); border:1px solid var(--line-2); border-radius:13px;
  padding:15px; color:var(--text); font-family:inherit; font-size:14px; line-height:1.6;
  min-height:96px; resize:vertical; outline:none; margin-top:12px; transition:border-color .18s ease;
}
.paste:focus { border-color:var(--gold-line); }
.paste::placeholder { color:var(--faint); }
.processbtn {
  margin-top:12px; width:100%; padding:13px; border-radius:12px;
  background:linear-gradient(150deg, var(--gold-hi), var(--gold)); color:var(--gold-ink);
  font-weight:600; font-size:.92rem; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  transition:filter .18s ease, transform .12s ease;
}
.processbtn:hover { filter:brightness(1.06); transform:translateY(-1px); }
.processbtn:active { transform:translateY(0); }
.processbtn:disabled, .processbtn.loading { opacity:.65; cursor:default; transform:none; filter:none; }

/* structured preview card */
.kb-preview-card {
  background:var(--panel-2); border:1px solid var(--gold-line); border-radius:14px;
  padding:18px 18px 16px; margin-top:14px; box-shadow:var(--shadow-sm);
}
.kbp-head { margin-bottom:14px; }
.kbp-eyebrow { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-hi); font-weight:600; }
.kbp-l { display:block; font-size:11px; color:var(--faint); text-transform:uppercase; letter-spacing:.08em; margin:12px 0 5px; }
.kbp-title, .kbp-cat, .kbp-content {
  width:100%; background:var(--panel); border:1px solid var(--line-2); border-radius:10px;
  padding:11px 13px; color:var(--text); font-family:inherit; font-size:14px; outline:none; transition:border-color .18s ease;
}
.kbp-title:focus, .kbp-cat:focus, .kbp-content:focus { border-color:var(--gold-line); }
.kbp-cat { appearance:none; -webkit-appearance:none; cursor:pointer; }
.kbp-content { min-height:150px; resize:vertical; line-height:1.6; }
.kbp-msg { font-size:12.5px; margin-top:10px; }
.kbp-msg.err { color:var(--danger); }
.kbp-actions { display:flex; align-items:center; gap:10px; margin-top:16px; }
.kbp-save { width:auto; margin-top:0; padding:11px 20px; }
.kbp-discard { color:var(--faint); font-size:13px; padding:11px 10px; transition:color .18s ease; }
.kbp-discard:hover { color:var(--text); }
.kb-msg {
  font-size:13px; padding:14px 16px; border-radius:11px; margin-top:12px;
  background:var(--panel); border:1px solid var(--line); color:var(--dim);
}
.kb-msg.err { color:var(--danger); border-color:rgba(224,138,125,.35); background:rgba(224,138,125,.05); }
.kb-empty { padding:20px 4px; font-size:13px; }

/* saved knowledge items */
.asset { display:flex; align-items:center; gap:13px; background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:13px 16px; }
.asset .aic {
  width:36px; height:36px; border-radius:9px; background:var(--panel-2); border:1px solid var(--line-2);
  color:var(--gold); display:flex; align-items:center; justify-content:center; flex:none;
}
.asset .an { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; font-size:13.5px; font-weight:500; }
.asset .am { font-size:11.5px; color:var(--faint); font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.asset .chip { font-size:11px; padding:4px 9px; border-radius:6px; flex:none; font-weight:600; letter-spacing:.02em; }
.chip.cat-offer { color:var(--gold-hi); background:var(--gold-wash); }
.chip.cat-icp { color:#9ec8e4; background:rgba(158,200,228,.12); }
.chip.cat-process { color:var(--ok); background:rgba(127,206,155,.1); }
.chip.cat-script { color:#d9b1e0; background:rgba(217,177,224,.12); }
.chip.cat-notes { color:var(--dim); background:rgba(255,255,255,.05); }
.chip.cat-other { color:var(--faint); background:rgba(255,255,255,.04); }
.asset .kb-x { color:var(--faint); font-size:14px; padding:4px 6px; flex:none; border-radius:6px; transition:color .15s ease; }
.asset .kb-x:hover { color:var(--danger); }
.asset .kb-x:disabled { opacity:.5; cursor:default; }

/* private-to-you reassurance */
.note {
  background:var(--gold-wash); border:1px solid var(--gold-line); border-radius:12px;
  padding:14px 16px; font-size:12.5px; color:var(--dim); margin-top:26px;
  display:flex; gap:11px; align-items:flex-start;
}
.note .i { color:var(--gold); flex:none; }
.note b { color:var(--gold-hi); font-weight:600; }
.doc-body {
  white-space:pre-wrap; word-wrap:break-word;
  background:var(--panel); border:1px solid var(--line);
  border-radius:12px; padding:26px 28px; font-size:.9rem; line-height:1.75; box-shadow:var(--shadow-sm);
}

/* ---- settings / account ------------------------------------------------- */
.settings { max-width:640px; margin:0 auto; padding:52px 30px 80px; }
.settings > h1 { font-family:var(--serif); font-weight:500; font-size:34px; letter-spacing:-.01em; margin-bottom:6px; }
.acct-card { background:var(--panel); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.acct-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 16px; }
.acct-row + .acct-row { border-top:1px solid var(--line); }
.acct-k { font-size:12px; color:var(--faint); letter-spacing:.02em; text-transform:uppercase; }
.acct-v { font-size:14px; color:var(--text); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cp-form { display:flex; flex-direction:column; max-width:400px; }
.cp-l { font-size:11px; color:var(--faint); text-transform:uppercase; letter-spacing:.08em; margin:12px 0 5px; }
.cp-l:first-child { margin-top:0; }
.cp-input {
  width:100%; background:var(--panel); border:1px solid var(--line-2); border-radius:10px;
  padding:11px 13px; color:var(--text); font-family:inherit; font-size:14px; outline:none; transition:border-color .18s ease;
}
.cp-input:focus { border-color:var(--gold-line); background:var(--panel-2); }
.cp-input::placeholder { color:var(--faint); }
.cp-form .processbtn { width:auto; align-self:flex-start; padding:12px 22px; margin-top:16px; }
.cp-msg { font-size:12.5px; margin-top:12px; min-height:1em; }
.cp-msg.err { color:var(--danger); }
.cp-msg.ok { color:var(--ok); }
.logout-btn {
  background:var(--panel); border:1px solid var(--line-2); color:var(--text);
  font-family:inherit; font-size:13px; font-weight:600; padding:11px 20px; border-radius:10px;
  cursor:pointer; transition:border-color .18s ease, color .18s ease;
}
.logout-btn:hover { border-color:var(--danger); color:var(--danger); }
.side-logout {
  display:block; margin-top:8px; color:var(--faint); font-size:.72rem; transition:color .15s ease;
}
.side-logout:hover { color:var(--danger); }

/* ---- login (static shell + server-rendered pages share this) ------- */
body.login {
  display:flex; align-items:center; justify-content:center; min-height:100vh;
  background-image:radial-gradient(100% 80% at 50% -10%, var(--bg-glow) 0%, transparent 50%);
}
.login-card {
  max-width:400px; width:100%;
  background:linear-gradient(180deg, var(--panel) 0%, var(--bg-2) 100%);
  border:1px solid var(--line); border-radius:22px;
  padding:44px 40px; text-align:center; margin:16px;
  box-shadow:var(--shadow), 0 0 60px rgba(228,189,119,.06);
}
.login-mark {
  font-family:var(--sans); font-weight:700; font-size:1.05rem; letter-spacing:.02em;
  color:var(--gold-ink);
  background:linear-gradient(150deg, var(--gold-hi), var(--gold));
  width:52px; height:52px; border-radius:15px;
  display:inline-flex; align-items:center; justify-content:center;
  margin-bottom:22px; box-shadow:0 6px 20px var(--gold-wash);
}
.login-card h1 {
  font-family:var(--serif); font-weight:500; font-size:1.9rem; letter-spacing:-.01em;
  color:var(--text); margin-bottom:12px;
}
.login-card p { color:var(--dim); line-height:1.6; font-size:.94rem; }
.login-card form { margin-top:26px; }
.login-btn {
  display:inline-block; width:100%;
  background:linear-gradient(150deg, var(--gold-hi), var(--gold));
  color:var(--gold-ink); border:none; border-radius:var(--r-md);
  padding:14px 22px; font-family:var(--sans); font-weight:600; font-size:1rem;
  cursor:pointer; transition:transform .12s ease, filter .18s ease;
}
.login-btn:hover { filter:brightness(1.06); transform:translateY(-1px); }
.login-notice {
  color:var(--gold-hi); background:var(--gold-wash);
  border:1px solid rgba(228,189,119,.35); border-radius:var(--r-sm);
  padding:10px 14px; margin-bottom:22px; font-size:.86rem;
}

/* ---- mobile -------------------------------------------------------- */
@media (max-width:760px) {
  #side { width:66px; padding:18px 6px; gap:8px; }
  .brand { margin:0 0 16px; padding:6px 0; text-align:center; }
  .brand .nm { font-size:0; }
  .brand .nm i { font-size:0; }
  .brand .nm::before { content:"A1"; font-size:18px; color:var(--gold-hi); }
  .nav { flex-direction:column; gap:4px; font-size:.62rem; text-align:center; padding:9px 2px; }
  .nav .lbl { flex:none; line-height:1.15; }
  .nav.active::before { display:none; }
  .side-foot { display:none; }
  .home { padding:40px 18px 56px; }
  .hello, .home h1 { font-size:30px; }
  .prompts { grid-template-columns:1fr; }
  .stats { grid-template-columns:1fr 1fr; }
  .library { padding:36px 18px 56px; }
  .lib-rows { grid-template-columns:1fr; }
  .business { padding:36px 18px 56px; }
  .pf-grid { grid-template-columns:1fr; }
  .pf-save { opacity:1; pointer-events:auto; }
  .doc-view { padding:28px 18px 56px; }
  .chat-layout { flex-direction:column; height:auto; min-height:100vh; }
  .conv-list {
    width:100%; flex-direction:row; overflow-x:auto; overflow-y:hidden;
    border-right:none; border-bottom:1px solid var(--line); padding:10px; align-items:center; gap:6px;
  }
  .new-conv-btn { white-space:nowrap; margin-bottom:0; margin-right:6px; padding:9px 14px; }
  .conv-row { white-space:nowrap; }
  .bubble { max-width:90%; }
  .messages { padding:18px 16px; }
  .composer { padding:12px 14px 16px; }
  .attach-chips { padding:0 14px; }
}
