/* Fonts: Playfair Display + Inter (Google Fonts, SIL OFL), self-hosted in /fonts */
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400 900;font-display:swap;src:url(fonts/playfair-display-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400 900;font-display:swap;src:url(fonts/playfair-display-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#f6f6f7;
  --panel:#ffffff;
  --line:#ececf0;
  --ink:#14161c;
  --muted:#6c7080;
  --soft:#f1f2f6;
  --active:#eceef8;
  --cta-top:#1f2232;
  --cta-bot:#0c0e16;
  --amber:#f5a524;
  --green:#3a9d6b;
  --danger:#c0392b;
  --shadow:0 1px 2px rgba(20,22,28,.04),0 4px 14px rgba(20,22,28,.05);
  --serif:"Playfair Display","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
svg.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

.app{display:grid;grid-template-columns:272px 1fr;height:100dvh;transition:grid-template-columns .2s}
.app.collapsed{grid-template-columns:76px 1fr}

/* ---------- sidebar ---------- */
.side{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 14px;gap:6px;min-width:0;overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 14px;font-family:var(--serif);font-weight:700;font-size:20px;letter-spacing:-.005em}
.mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(180deg,var(--cta-top),var(--cta-bot));color:#fff;display:grid;place-items:center;font:700 20px var(--serif);flex:none;box-shadow:0 1px 0 rgba(255,255,255,.18) inset}
.btn-cta{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:12px 16px;color:#fff;font-weight:500;background:linear-gradient(180deg,var(--cta-top),var(--cta-bot));box-shadow:0 1px 0 rgba(255,255,255,.14) inset,0 6px 14px rgba(12,14,22,.22)}
.btn-cta:hover{filter:brightness(1.15)}
.btn-cta:disabled{opacity:.55;cursor:default;filter:none}
.side .btn-cta{margin-bottom:12px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:#2a2d3a;font-size:14.5px;white-space:nowrap}
.nav a:hover{background:var(--soft)}
.nav a.on{background:var(--active);font-weight:500}
.soon{margin-left:auto;font-size:11px;color:var(--muted);background:var(--soft);border-radius:8px;padding:2px 8px}
.spacer{flex:1}
.ghost{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:11px 14px;font-size:14px;color:#2a2d3a;white-space:nowrap}
.ghost:hover{background:var(--soft)}
.plain{display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;color:#2a2d3a;padding:10px;white-space:nowrap}
.collapsed .label,.collapsed .soon,.collapsed .brand span.t{display:none}
.collapsed .nav a,.collapsed .ghost,.collapsed .plain,.collapsed .btn-cta{justify-content:center;padding-left:0;padding-right:0}
.collapsed .brand{justify-content:center;padding-left:0;padding-right:0}

/* ---------- main ---------- */
.main{display:flex;flex-direction:column;min-width:0;min-height:0}

.stage{flex:1;min-height:0;display:flex;flex-direction:column}
[data-view="home"] #chatView{display:none}
[data-view="chat"] #homeView{display:none}

/* ---------- home ---------- */
#homeView{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;padding:clamp(28px,11vh,120px) 20px 28px}
.col{width:100%;max-width:690px;display:flex;flex-direction:column;align-items:center;margin:0 auto}

h1{margin:0;font-family:var(--serif);font-variant-numeric:lining-nums;font-size:clamp(32px,4.6vw,46px);line-height:1.1;letter-spacing:-.01em;font-weight:600;text-align:center}
.sub{margin:12px 0 30px;font-size:17px;text-align:center;color:#2a2d3a}

.ask{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:10px 10px 10px 18px;display:flex;align-items:center;gap:12px}
.ask:focus-within{border-color:#c8cbe0;box-shadow:0 0 0 4px rgba(91,61,245,.08),var(--shadow)}
.ask input{flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:15.5px;padding:10px 0;min-width:0}
.ask input::placeholder{color:#9a9eaf}
.ask .btn-cta{padding:11px 20px;border-radius:10px}
.tools{width:100%;display:flex;align-items:center;gap:10px;margin:18px 0 30px}
.chip{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid transparent;border-radius:10px;padding:8px 14px;font-size:13.5px;box-shadow:var(--shadow)}
.chip:hover{border-color:var(--line);background:#fcfcfd}
.chip svg.i{width:17px;height:17px}
.tools .end{margin-left:auto}

.list{width:100%;display:flex;flex-direction:column;gap:10px}
.row{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--panel);border:1px solid transparent;border-radius:10px;padding:14px 16px;font-size:14.5px;box-shadow:0 1px 1px rgba(20,22,28,.03);transition:border-color .12s,transform .12s}
.row:hover{border-color:var(--line);transform:translateY(-1px)}
.row svg.bolt{width:20px;height:20px;flex:none;fill:var(--amber);stroke:none}
.row .go{margin-left:auto;color:#8a8ea0;display:flex;align-items:center}
.row .go svg{width:18px;height:18px}
.note{margin:22px 0 0;text-align:center;font-size:12.5px;color:var(--muted)}
.note a{text-decoration:underline;text-underline-offset:2px}

/* ---------- chat ---------- */
#chatView{flex:1;min-height:0;display:flex;flex-direction:column}
#log{flex:1;min-height:0;overflow-y:auto;padding:26px 18px 10px}
.msgs{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.msg{padding:14px 18px;border-radius:14px;word-wrap:break-word;overflow-wrap:anywhere}
.msg.user{align-self:flex-end;max-width:85%;color:#fff;white-space:pre-wrap;background:linear-gradient(180deg,var(--cta-top),var(--cta-bot));box-shadow:0 1px 0 rgba(255,255,255,.12) inset}
.msg.bot{align-self:flex-start;max-width:100%;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);line-height:1.6}
.msg.bot p{margin:0 0 .7em}
.msg.bot p:last-child{margin-bottom:0}
.msg.bot h4{margin:1em 0 .4em;font-family:var(--serif);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:1.12rem;font-weight:700}
.msg.bot h4:first-child{margin-top:0}
.msg.bot ul{margin:.4em 0 .8em;padding-left:1.3em}
.msg.bot hr{border:0;border-top:1px solid var(--line);margin:1em 0}
.msg.err{border-color:#e6b8b2;color:var(--danger);background:#fff7f6}
.composer{flex:none;padding:10px 18px 14px;background:var(--bg)}
.composer form{max-width:760px;margin:0 auto;display:flex;gap:10px;align-items:flex-end;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px 8px 8px 16px}
.composer form:focus-within{border-color:#c8cbe0;box-shadow:0 0 0 4px rgba(91,61,245,.08),var(--shadow)}
.composer textarea{flex:1;resize:none;border:0;outline:0;background:transparent;font:inherit;font-size:15.5px;padding:9px 0;max-height:160px;min-width:0}
.composer .btn-cta{padding:11px 20px}
.composer .note{max-width:760px;margin:8px auto 0}

/* ---------- dialog + toast ---------- */
dialog{border:1px solid var(--line);border-radius:16px;padding:22px;width:min(440px,92vw);box-shadow:0 20px 60px rgba(12,14,22,.25);color:var(--ink);background:var(--panel)}
dialog::backdrop{background:rgba(12,14,22,.4)}
dialog h3{margin:0 0 6px;font-family:var(--serif);font-size:21px}
dialog p{margin:0 0 14px;color:var(--muted);font-size:14px}
dialog p a{text-decoration:underline;text-underline-offset:2px}
dialog label{display:block;font-size:13px;font-weight:500;margin-bottom:6px}
dialog input{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font:inherit;font-size:14.5px;background:var(--bg);outline:0}
dialog input:focus{border-color:#c8cbe0;background:#fff}
.actions{display:flex;flex-direction:row-reverse;gap:8px;margin-top:16px;flex-wrap:wrap}
.actions .btn-cta{padding:10px 18px}
.actions .ghost{padding:10px 14px}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--cta-bot);color:#fff;padding:10px 16px;border-radius:10px;font-size:13.5px;box-shadow:0 8px 24px rgba(12,14,22,.3);transition:.2s;z-index:50}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- responsive ---------- */
.newmini{display:none;flex:none;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--panel);place-items:center;margin-bottom:2px}
.newmini:hover{background:var(--soft)}
@media (max-width:860px){
  .app,.app.collapsed{grid-template-columns:1fr}
  .side{display:none}
  #homeView{padding-top:clamp(24px,7vh,60px)}
  .ask{padding-left:14px}
  .tools .chip span.l2{display:none}
  .newmini{display:grid}
}
