/* ===== 全局补充样式（登录页 / toast / 表单 / 管理后台） ===== */

/* toast */
#toastBox{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:999;display:flex;flex-direction:column;gap:8px;align-items:center}
.toast{padding:10px 18px;border-radius:10px;font-size:13px;color:#fff;background:#1A1D29;box-shadow:0 6px 20px rgba(20,24,40,.2);animation:toastIn .2s ease;max-width:70vw}
.toast.ok{background:var(--ok)}.toast.err{background:var(--danger)}
.toast.out{opacity:0;transition:opacity .25s}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* 登录页 */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#191C28 0%,#232842 55%,#3A2F6B 100%);position:relative;overflow:hidden}
.login-page::before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(108,92,231,.28),transparent 65%);top:-160px;right:-120px}
.login-page::after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(61,125,235,.18),transparent 65%);bottom:-120px;left:-80px}
.login-card{width:400px;background:var(--card);border-radius:18px;box-shadow:0 24px 64px rgba(10,12,24,.4);padding:36px 36px 30px;position:relative;z-index:1}
.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:26px}
.login-logo .logo-mark{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#6C5CE7,#8B7CF6);display:flex;align-items:center;justify-content:center;color:#fff}
.login-logo b{font-size:18px;color:var(--ink);display:block;line-height:1.3}
.login-logo span{font-size:12px;color:var(--muted)}
.login-card .field{margin-bottom:16px}
.login-card .field input{height:42px}
.login-btn{width:100%;height:42px;border-radius:10px;background:var(--accent);color:#fff;font-size:14px;font-weight:600;margin-top:6px;transition:background .15s}
.login-btn:hover{background:var(--accent-deep)}
.login-btn:disabled{opacity:.6;cursor:not-allowed}
.login-tip{margin-top:18px;font-size:12px;color:var(--muted);text-align:center;line-height:1.8}
.login-err{display:none;background:var(--danger-soft);color:var(--danger);border-radius:9px;padding:9px 12px;font-size:12px;margin-bottom:14px}

/* 表单增强 */
.field textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:13px;color:var(--ink);background:#FAFAFC;resize:vertical;min-height:80px;line-height:1.7}
.field .hint{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.6}
.switch{position:relative;width:40px;height:22px;border-radius:11px;background:#D6D8E0;cursor:pointer;transition:background .15s;flex:none;border:none}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch.on{background:var(--accent)}
.switch.on::after{left:20px}
.switch-row{display:flex;align-items:center;gap:10px}
.switch-row .lb{font-size:13px;color:var(--ink);font-weight:500}
.switch-row .desc{font-size:11px;color:var(--muted)}

/* 管理后台布局 */
.admin-section{display:none}
.admin-section.active{display:block;animation:fadeIn .15s ease}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.form-grid .span2{grid-column:span 2}
.cfg-card{max-width:760px}
.kv-url{display:flex;align-items:center;gap:8px;background:#F7F8FB;border:1px dashed var(--line);border-radius:9px;padding:10px 12px;font-size:12px;color:var(--text);font-family:ui-monospace,Menlo,monospace;word-break:break-all}
.kv-url button{flex:none;color:var(--accent);font-size:12px;font-weight:600}
.log-q{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle}
.empty{padding:48px 0;text-align:center;color:var(--muted);font-size:13px}
.empty .ic{width:40px;height:40px;margin-bottom:10px;color:#C9CCD6}

/* 会话列表滚动区在模块内占满 */
.conv-loading{padding:20px;text-align:center;color:var(--muted);font-size:12px}

/* 文档卡片操作按钮 */
.doc-card .acts span.danger:hover{color:var(--danger)}
.doc-status{margin-left:auto}

/* 消息里的加载点 */
.typing{display:inline-flex;gap:4px;padding:4px 0}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:blink 1.2s infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}

/* 弹窗加宽 */
.modal.wide{width:640px}
.modal .modal-bd{max-height:64vh;overflow-y:auto}
