@font-face{font-family:Geist;src:url('/geist.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{color-scheme:light;--ground:#f2f4f7;--surface:#fff;--raised:#f2f3f5;--rule:#e8eaee;--border:#dfe3e9;--control:#cbd0d8;--ink:#18191b;--muted:#616672;--accent:#1d5fbf;--bad:#a3262d;--radius:8px;--text:"Geist","PingFang SC","Microsoft YaHei",system-ui,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{height:100%;-webkit-text-size-adjust:100%}
body{min-height:100%;margin:0;background:var(--ground);color:var(--ink);font:15px/1.55 var(--text)}
button,input,textarea,select{font:inherit;color:inherit}
input,textarea,select{width:100%;background:var(--surface);border:1px solid var(--control);border-radius:6px;padding:9px 11px;min-height:44px}
textarea{resize:vertical}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:7px 12px;border:1px solid var(--control);border-radius:6px;background:var(--surface);text-decoration:none;cursor:pointer;color:var(--ink);white-space:nowrap}
button:disabled{opacity:.55;cursor:wait}
button:hover,.button:hover{background:var(--raised)}
button.primary,.button.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
button.primary:hover{background:#333}
button.text{border-color:transparent;background:transparent}
button.text:hover{background:var(--raised)}
button.danger{color:var(--bad)}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}
h1{font-size:25px;line-height:1.25;font-weight:600;letter-spacing:-.025em}
h2{font-size:17px;font-weight:600}
h3{font-size:14px;font-weight:600}
small,.small{font-size:13px}
.muted,.hint{color:var(--muted)}
.hint{font-size:13px}
.error{color:var(--bad);min-height:1.35em;font-size:14px}
.error:empty{display:none}
.top{background:var(--ground);border-bottom:1px solid var(--border)}
.top-inner{max-width:1120px;margin:auto;height:58px;padding:0 20px;display:flex;align-items:center;gap:24px}
.brand{color:var(--ink);text-decoration:none;font-weight:650;font-size:18px;display:flex;gap:8px;align-items:center;white-space:nowrap}
#nav{display:flex;gap:4px;margin-left:12px;height:100%;align-items:center}
#nav button{border:0;background:none;min-height:38px;color:var(--muted);padding-inline:13px}
#nav button[aria-current="page"]{background:#e6e9ee;color:var(--ink);font-weight:600}
.identity{margin-left:auto;color:var(--muted);font-size:13px;max-width:25ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
main{max-width:1120px;margin:0 auto;padding:30px 20px max(20px,env(safe-area-inset-bottom))}
.loading{color:var(--muted);padding:24px 0}
.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px}
.page-title .hint{margin-top:6px}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0}
.pad{padding:20px}
.stack{display:grid;gap:12px}
.rail section+section{margin-top:12px}
.workspace{display:grid;grid-template-columns:minmax(0,2.28fr) minmax(256px,1fr);gap:12px;align-items:start}
.conversation{min-height:540px;height:min(74vh,750px);display:flex;flex-direction:column;overflow:hidden}
.conversation-head{padding:17px 22px;border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:8px}
.conversation-head h1{font-size:20px}
.conversation-head small{display:block;margin-top:3px}
.messages{min-height:0;overflow:auto;flex:1;padding:20px 22px;overscroll-behavior:contain}
.empty-chat{margin:18px 0;max-width:34ch}
.empty-chat h2{margin-bottom:8px}
.message{display:grid;grid-template-columns:27px minmax(0,1fr);gap:11px;margin-bottom:16px;scroll-margin:14px}
.message .avatar{width:26px;height:26px}
.message .speaker{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.message .speaker strong{font-weight:600;color:var(--ink)}
.message-body{margin-top:4px;background:var(--raised);border-radius:6px;padding:8px 11px;width:fit-content;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
.message.mine{grid-template-columns:minmax(0,1fr)}
.message.mine .speaker{justify-content:flex-end}
.message.mine .message-body{margin-left:auto;background:#e9edf2}
.message.target .message-body{outline:2px solid var(--accent);outline-offset:2px}
.message .task-ref{padding:0 5px;font-size:12px;min-height:29px}
.composer{border-top:1px solid var(--border);padding:12px 15px;background:var(--surface)}
.composer label{display:block;margin-bottom:6px;color:var(--muted);font-size:13px}
.composer-row{display:flex;gap:8px;align-items:flex-end}
.composer-row textarea{resize:none;min-height:47px;max-height:140px;font-size:16px}
.composer-row button{min-width:58px;height:47px}
.rail h2{margin-bottom:10px}
.focus{display:grid;gap:8px;padding:10px 0 0;border-top:1px solid var(--rule)}
.focus h3{font-size:15px;overflow-wrap:anywhere}
progress{width:100%;height:5px;border:0;border-radius:5px;overflow:hidden;appearance:none;-webkit-appearance:none;background:var(--rule)}
progress::-webkit-progress-bar{background:var(--rule)}
progress::-webkit-progress-value{background:var(--accent)}
progress::-moz-progress-bar{background:var(--accent)}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:13px;margin:2px 0}
.facts dt{color:var(--muted)}
.facts dd{margin:0;overflow-wrap:anywhere}
.list{list-style:none;margin:0;padding:0}
.list li{border-top:1px solid var(--rule);min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0}
.list li:first-child{border-top:0}
.list-title{font-weight:600;overflow-wrap:anywhere}
.rows .list{padding:0 16px}
.rows .list li{padding:12px 0}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.fields label,.field{display:grid;gap:5px;font-size:14px}
.full{grid-column:1/-1}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.form-section{display:grid;gap:10px}
.form-section .hint{margin-top:4px}
.settings-row{display:grid;grid-template-columns:minmax(165px, .42fr) minmax(0, 1fr);gap:20px;margin-bottom:14px}
.settings-row>div:first-child{padding-top:12px}
.settings-row>div:first-child p{margin-top:5px}
.settings-row .panel{padding:17px}
.choice{display:flex!important;align-items:center;gap:8px}
.choice input{width:18px;min-height:18px;accent-color:var(--ink)}
.badge{font-size:12px;white-space:nowrap;padding:2px 6px;border-radius:4px;background:var(--raised);color:var(--muted)}
.inline-between{display:flex;align-items:center;justify-content:space-between;gap:8px}
.inline-between h2{margin:0}
.empty{padding:11px 0;color:var(--muted);font-size:14px}
.auth-frame{max-width:470px;margin:35px auto}
.auth-frame h1{margin-bottom:7px}
.auth-frame .form-section{margin-top:20px}
.auth-frame button.primary{width:100%;margin-top:3px}
dialog{border:1px solid var(--control);border-radius:8px;padding:20px;width:min(540px,calc(100% - 28px));max-height:90vh;overflow:auto;color:var(--ink)}
dialog::backdrop{background:rgba(20,25,34,.37)}
dialog h2{margin-bottom:14px}
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:max(20px,env(safe-area-inset-bottom));max-width:min(88vw,520px);z-index:2;background:var(--ink);color:#fff;border-radius:6px;font-size:14px}
#toast:not(:empty){padding:10px 14px}
@supports(height:100dvh){.conversation{height:min(74dvh,750px)}}
@media(max-width:720px){
  .top-inner{padding:0 16px;gap:10px;height:53px;justify-content:space-between}
  #nav{margin:0;gap:1px}
  #nav button{min-height:44px;padding:6px 9px;font-size:14px}
  .identity{display:none}
  main{padding:16px 14px max(16px,env(safe-area-inset-bottom))}
  .workspace,.settings-row{grid-template-columns:1fr;gap:10px}
  .settings-row>div:first-child{padding:0 2px}
  .rail section+section{margin-top:10px}
  .conversation{min-height:400px;height:calc(100vh - 86px)}
  @supports(height:100dvh){.conversation{height:calc(100dvh - 86px)}}
  .conversation-head{padding:12px 14px}
  .conversation-head h1{font-size:19px}
  .messages{padding:15px 14px}
  .composer{padding:10px}
  .composer label{margin-bottom:5px}
  .pad{padding:14px}
  .page-title{margin-bottom:14px}
  .page-title h1{font-size:22px}
  button,.button{min-height:44px}
  input,textarea,select{font-size:16px}
  .auth-frame{margin:19px auto}
  .fields{gap:10px}
}
@media(max-width:365px){#nav button{padding-inline:6px}.top-inner{padding-inline:10px}.fields{grid-template-columns:1fr}}

