@font-face{font-family:Mongolian;src:url("/assets/MQG8200.ttf") format("truetype");font-display:swap}
:root{
  --paper:#f5f0e4;--surface:#fffdf7;--ink:#1d2433;--navy:#22344f;
  --muted:#6b6455;--faint:#948b7a;--line:#dcd2bc;--gold:#b48c4c;--gold-soft:#e7dbbf;
  --seal:#9a1d20;--seal-deep:#5e1214;
  --mn:Mongolian,serif;
  --cn:"Songti SC","STSong","SimSun","Noto Serif SC",serif;
  --rail-w:96px;--header-h:76px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--cn);overflow:hidden}
button,textarea{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.5}
button:focus-visible,a:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
[hidden]{display:none!important}
.vertical{writing-mode:vertical-lr;text-orientation:mixed;font-family:var(--mn);line-height:1.7;letter-spacing:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- frame & rail ---------- */
.frame{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);height:100vh;height:100dvh;overflow:hidden}
.rail{display:flex;flex-direction:column;align-items:center;padding:22px 0 26px;background:linear-gradient(180deg,var(--seal) 0%,var(--seal-deep) 100%);color:var(--gold-soft);box-shadow:inset -1px 0 0 var(--gold)}
.seal{display:grid;place-items:center;width:44px;height:44px;border:2px solid var(--gold);border-radius:4px;background:rgba(255,255,255,.06);color:#fff3d6;font-family:var(--cn);font-size:22px;text-decoration:none}
.site-name{margin:28px 0 0;font-size:26px;letter-spacing:4px;color:#f1d9a6;line-height:1.5}
.rail-actions{margin-top:36px;display:flex;flex-direction:column;gap:14px}
.rail-button{width:44px;height:44px;border:1px solid rgba(231,219,191,.5);border-radius:4px;background:rgba(255,255,255,.08);color:#fff3d6;font-size:22px;line-height:1}
.rail-button:hover:not(:disabled){background:rgba(255,255,255,.2)}

/* ---------- main column ---------- */
main{position:relative;display:flex;flex-direction:column;min-width:0;height:100%;padding:0 40px 18px;overflow:hidden}
.topbar{flex-shrink:0;height:var(--header-h);margin:0 -40px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--gold)}
.title{margin:0;font-family:var(--cn);font-size:26px;font-weight:600;letter-spacing:8px;color:var(--navy)}
.subtitle{margin:4px 0 0;font-size:13px;letter-spacing:1px;color:var(--muted)}
.connection{display:flex;align-items:flex-start;gap:8px;height:56px}
#connection-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:#b9b19f}
#connection-dot.ready{background:#3f7d5c}
#connection-dot.offline{background:var(--seal)}
#connection-label{font-size:18px;color:var(--muted)}

/* ---------- history shelf (drops below the header) ---------- */
.drawer{position:absolute;left:0;right:0;top:var(--header-h);z-index:5;display:flex;gap:18px;height:44vh;min-height:260px;max-height:420px;padding:18px 40px;background:var(--surface);border-bottom:1px solid var(--gold);box-shadow:0 18px 40px rgba(40,30,10,.16)}
.drawer-label{margin:0;padding-right:16px;border-right:1px solid var(--gold-soft);font-size:24px;color:var(--seal-deep)}
.drawer-close{align-self:flex-start;padding:14px 8px;border:1px solid var(--line);border-radius:4px;background:none;color:var(--muted);font-size:17px}
.shelf{flex:1;min-width:0;display:flex;gap:14px;overflow-x:auto;align-items:stretch;padding-bottom:6px}
.shelf-empty{margin:auto;font-size:20px;color:var(--muted)}
.book{position:relative;flex:none;width:168px;display:flex;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:4px;background:#fbf8f0}
.book.current{border-top-color:var(--seal);background:#fbf1ea}
.book-open{flex:1;min-width:0;display:flex;gap:12px;padding:44px 14px 16px;border:0;background:none;text-align:start}
.book-title{font-size:20px;color:var(--ink);overflow:hidden;white-space:nowrap}
.book-date{font-size:15px;color:var(--muted)}
.book-remove{position:absolute;top:6px;right:6px;width:28px;height:28px;border:0;background:none;color:var(--muted);font-size:18px;line-height:1}

/* ---------- welcome ---------- */
.welcome{flex:1;min-height:0;width:min(860px,100%);margin:0 auto;display:flex;align-items:center;justify-content:center;gap:56px;padding-bottom:12px}
.hero{display:flex;gap:22px;height:300px;padding-left:22px;border-left:2px solid var(--gold)}
.hero-title{margin:0;font-family:var(--mn);font-size:40px;font-weight:normal;color:var(--seal-deep)}
.hero-sub{margin:0;font-family:var(--mn);font-size:22px;color:var(--muted)}
.suggestions{display:flex;gap:12px;height:230px}
.suggestion{display:flex;align-items:center;gap:12px;height:230px;padding:18px 10px;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:4px;background:var(--surface);color:var(--navy);font-size:22px;transition:background .2s,transform .2s}
.suggestion:hover:not(:disabled){background:#fbf5e6;transform:translateY(-3px)}
.suggestion-icon{font-family:Arial,sans-serif;color:var(--seal);font-size:22px}

/* ---------- messages: one column per message, strip scrolls left to right ---------- */
.messages{flex:1;min-height:0;display:flex;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding:26px 6px 22px;scrollbar-width:thin;scrollbar-color:var(--gold-soft) transparent}
.message{flex:none;display:flex;align-items:stretch;height:100%;margin-right:46px}
.meta{writing-mode:vertical-lr;flex:none;margin-right:12px;padding:18px 0;border-right:1px solid var(--gold-soft);font-size:17px;line-height:1.4;color:var(--muted);white-space:nowrap}
.meta>*{display:inline;margin-inline-end:16px}
.meta-role{font-size:19px;color:var(--seal)}
.meta-name{color:var(--navy)}
.meta-state{color:var(--seal)}
.message.user .meta-role{color:var(--gold)}

.thought-panel{writing-mode:vertical-lr;flex:none;max-width:340px;margin-right:14px;border:1px solid var(--gold-soft);border-top:2px solid var(--gold);border-radius:4px;background:#fbf7ec;color:#6f6a5c;font-family:var(--mn);font-size:19px;line-height:1.8}
.thought-panel summary{display:block;list-style:none;cursor:pointer;padding:14px 8px;color:var(--gold)}
.thought-panel summary::-webkit-details-marker{display:none}
.thought-label{font-size:18px}
.thought-scroll{max-width:300px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--gold-soft) transparent}
.thought-text{margin:0;padding:12px 10px;white-space:pre-wrap;overflow-wrap:anywhere}
.thought-wait{display:block;padding:12px 10px;color:var(--gold);animation:breathe 1.8s ease-in-out infinite}

.bubble{flex:none;writing-mode:vertical-lr;min-width:240px;padding:20px 22px;border:1px solid var(--line);border-top:3px solid var(--seal);border-radius:4px;background:var(--surface);box-shadow:0 8px 24px rgba(60,44,20,.06)}
.message.user .bubble{background:#f1eadb;border-top-color:var(--gold)}
.message.incomplete .bubble{border-style:dashed}
.answer-text{margin:0;font-family:var(--mn);font-size:22px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}
.generating .answer-text:not(:empty)::after{content:"";display:inline-block;width:2px;height:16px;margin-inline-start:2px;background:var(--seal);animation:breathe 1s infinite}

/* ---------- composer ---------- */
.dock{flex-shrink:0;width:min(900px,100%);margin:0 auto}
.composer{padding:16px 20px 14px;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:6px;background:var(--surface);box-shadow:0 12px 30px rgba(60,44,20,.07)}
.composer:focus-within{border-color:var(--gold)}
textarea{display:block;width:100%;height:150px;min-height:130px;resize:none;border:0;outline:none;background:transparent;writing-mode:vertical-lr;text-orientation:mixed;font:24px/1.7 var(--mn);color:var(--ink);padding:0 4px 10px;white-space:pre-wrap;overflow:auto}
textarea::placeholder{color:#a79f8e}
.composer-controls{display:flex;justify-content:space-between;align-items:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid #efe8d6}
.switches{display:flex;gap:12px;align-items:flex-start}
.toggle{height:110px;display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:4px;background:#fbf8f0;color:var(--muted);transition:background .2s,color .2s}
.toggle .vertical{display:block;height:88px;font-size:17px;line-height:1.2}
.toggle[aria-checked=true]{color:var(--seal);border-color:#d8b8a0;background:#fbf1ea}
.switch-track{position:relative;flex-shrink:0;width:24px;height:12px;margin-top:3px;border-radius:12px;background:#cfc6b1}
.switch-track::after{content:"";position:absolute;left:2px;top:2px;width:8px;height:8px;border-radius:50%;background:#fff;transition:transform .2s}
[aria-checked=true] .switch-track{background:var(--seal)}
[aria-checked=true] .switch-track::after{transform:translateX(12px)}
.soon{font-size:16px;color:var(--faint)}
.send{display:grid;place-items:center;width:46px;height:46px;border:0;border-radius:4px;background:var(--seal);color:#fff;font-size:24px;box-shadow:0 4px 12px rgba(154,29,32,.25)}
.send:hover:not(:disabled){background:var(--seal-deep)}
.send.stop{background:var(--navy);font-size:16px}

/* ---------- footnote: centred ---------- */
.footnote{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 24px;margin-top:14px;padding-top:12px;border-top:1px solid var(--gold-soft);min-height:72px;text-align:center;color:var(--muted)}
.notice{margin:0;height:112px;font-size:16px;line-height:1.5;color:var(--muted)}
.notice:empty{display:none}
.notice.error{color:var(--seal)}
.model-note{margin:0;height:112px;font-size:15px;line-height:1.5;color:var(--faint)}
.cn-note{margin:0;font-family:var(--cn);font-size:13px;letter-spacing:.5px;color:var(--faint)}

@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes breathe{50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- narrow screens ---------- */
@media (max-width:760px){
  :root{--rail-w:64px;--header-h:64px}
  .site-name{font-size:20px;margin-top:20px}
  .rail-actions{margin-top:24px}
  main{padding:0 14px 12px}
  .topbar{margin:0 -14px;padding:0 14px}
  .title{font-size:20px;letter-spacing:4px}
  .subtitle{display:none}
  .drawer{padding:14px}
  .welcome{gap:22px;flex-wrap:wrap}
  .hero{height:220px;gap:14px}
  .hero-title{font-size:30px}
  .hero-sub{font-size:20px}
  .suggestions{height:170px;gap:10px}
  .suggestion{height:170px;font-size:19px;padding:10px 8px}
  .message{margin-right:28px}
  .answer-text{font-size:20px}
  textarea{height:150px}
  .composer{padding:14px}
  .toggle{height:100px;padding:8px;gap:6px}
  .toggle .vertical{height:80px;font-size:16px}
}
@media (max-width:400px){
  .soon{display:none}
  .send{width:40px;height:40px}
}
