:root{--royal:#03499D;--logo:#1C5195;--navy:#0F2B53;--beak:#F9930B;--tutu:#F5DAD3;--paper:#F4F6FA;--line:#E1E6EF;--ink:#14213A;--mute:#6B7690}
*{box-sizing:border-box}body{margin:0;font:15px/1.55 -apple-system,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;background:var(--paper);color:var(--ink);height:100dvh;-webkit-font-smoothing:antialiased}
.hidden{display:none!important}button{font:inherit;cursor:pointer}a{color:var(--logo)}
/* 登录 */
.login{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;gap:clamp(16px,3vw,48px);padding:24px;overflow:auto;background:radial-gradient(120% 90% at 50% 40%,#0A55B4 0%,var(--royal) 45%,#013A85 100%)}
.login{--gh:min(56vh,420px,calc((100vw - 540px)/2.2))}.goose{flex:0 0 auto;height:var(--gh);width:calc(var(--gh) * 1.04);object-fit:contain;object-position:center bottom;pointer-events:none;user-select:none;filter:drop-shadow(0 18px 24px rgba(1,30,80,.35))}
.card{position:relative;z-index:2;flex:0 0 auto;background:#fff;width:min(380px,100%);border-radius:22px;text-align:center;box-shadow:0 24px 60px rgba(6,24,64,.35);overflow:hidden}
.hero{position:relative;background:#074C9A;aspect-ratio:570/360;line-height:0}
.hero video,.hero img{width:100%;height:100%;object-fit:cover;display:block}
#snd{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:5px;height:28px;padding:0 11px 0 9px;border-radius:99px;border:1px solid rgba(255,255,255,.55);background:rgba(15,43,83,.35);color:#fff;font-size:12px;letter-spacing:1px;cursor:pointer;backdrop-filter:blur(6px);transition:.15s}
#snd:hover{background:rgba(15,43,83,.55)}
#snd .on{display:none}#snd[aria-pressed="true"]{background:rgba(15,43,83,.35);border-color:rgba(255,255,255,.55)}#snd[aria-pressed="true"] .on{display:inline}#snd[aria-pressed="true"] .off{display:none}
.card .body{padding:20px 30px 22px}
.card h1{margin:0;font-size:26px;letter-spacing:6px;color:var(--navy);font-weight:700}
.card .sub{display:inline-block;margin:6px 0 16px;font-size:13px;letter-spacing:4px;color:var(--logo);padding:2px 12px;border-radius:99px;background:var(--tutu)}
.card input{display:block;width:100%;margin:10px 0;padding:13px 14px;border:1px solid var(--line);border-radius:12px;font-size:16px;background:#F8FAFD;outline:none;transition:.15s}
.card input:focus{border-color:var(--logo);background:#fff;box-shadow:0 0 0 3px rgba(28,81,149,.12)}
.card .body>button,.primary{background:var(--royal);color:#fff;border:0;border-radius:12px;padding:12px 14px;width:100%;font-weight:600;letter-spacing:2px}
.card .body>button{margin-top:6px}.card .body>button:hover,.primary:hover{background:var(--logo)}
.err{color:#C0392B;min-height:1.4em;font-size:13px;margin-top:6px}.tip{color:var(--mute);font-size:12px}
@media(max-width:820px){.login{flex-wrap:wrap;align-content:flex-start;padding:16px 12px 20px;gap:12px}.card{order:0;width:100%;max-width:420px}
 .login{--gh:min(24vh,200px,calc((100vw - 48px)/2.1))}.goose{order:1}.g-left{margin-left:auto}.g-right{margin-right:auto}
 .card .body{padding:14px 24px 16px}}
/* 主界面 */
#app{display:flex;flex-direction:column;height:100dvh}
header{background:var(--royal);color:#fff;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));display:flex;align-items:center;gap:10px;font-weight:600;box-shadow:0 1px 0 rgba(0,0,0,.06)}
.hlogo{height:26px}#title{flex:1;letter-spacing:1px}
.bud{font-weight:400;font-size:12px;background:rgba(255,255,255,.14);padding:2px 10px;border-radius:99px}.bud.warn{background:var(--beak);color:#fff}
main{flex:1;overflow:hidden}.view{height:100%;overflow:auto}#v-chat{display:flex;overflow:hidden}
aside{width:232px;background:#fff;border-right:1px solid var(--line);overflow:auto;padding:12px}
aside .primary{margin-bottom:10px}
aside .it{padding:10px 12px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:var(--navy);border-left:3px solid transparent;margin-bottom:2px}
aside .it:hover{background:var(--paper)}aside .it.on{background:#EAF0FA;border-left-color:var(--beak)}aside .it small{color:var(--mute);display:block;font-weight:400;font-size:12px}
.chat{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--paper)}#msgs{flex:1;overflow:auto;padding:16px}
.m{display:flex;margin:12px 0}.m .b{max-width:80%;padding:10px 14px;border-radius:14px;white-space:pre-wrap;word-break:break-word;background:#fff;box-shadow:0 1px 2px rgba(15,43,83,.08);border-top-left-radius:4px}
.m.user{justify-content:flex-end}.m.user .b{background:var(--logo);color:#fff;border-top-left-radius:14px;border-top-right-radius:4px}.m.user .b a{color:#fff}
.b a{color:var(--logo);word-break:break-all}
.send{display:flex;gap:8px;padding:10px 12px;background:#fff;border-top:1px solid var(--line);padding-bottom:max(10px,env(safe-area-inset-bottom))}
.send textarea{flex:1;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:10px 12px;font:inherit;resize:none;outline:none}.send textarea:focus{border-color:var(--logo)}
.send button{background:var(--beak);color:#fff;border:0;border-radius:12px;padding:0 20px;font-weight:600}
.intake{background:#fff;margin:14px;padding:16px;border-radius:16px;overflow:auto;box-shadow:0 1px 3px rgba(15,43,83,.08)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.intake label{font-size:12px;color:var(--mute)}.intake input,.intake select,.intake textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#F8FAFD;margin-top:3px}
.intake textarea{margin:10px 0;height:64px}.chk{display:flex;align-items:center;gap:6px}.chk input{width:auto}
.hint{font-size:12px;color:var(--navy);background:var(--tutu);padding:6px 10px;border-radius:8px;margin-bottom:12px}
.side{width:340px;border-left:1px solid var(--line);background:#fff;overflow:auto;padding:12px;font-size:13px}.side>b{color:var(--navy)}
.pc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}.pc b{display:block;color:var(--navy)}
#sres .pc{cursor:pointer}#sres .pc:hover{border-color:var(--logo)}
.tag{display:inline-block;background:#EAF0FA;color:var(--logo);border-radius:6px;padding:0 6px;margin:2px 2px 2px 0;font-size:11px}.tag.r{background:#FDEBD8;color:#A85A00}.tag.g{background:var(--tutu);color:var(--navy)}
.kpi{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;padding:14px}.kpi div{background:#fff;border-radius:14px;padding:14px;text-align:center;color:var(--mute);font-size:13px;box-shadow:0 1px 3px rgba(15,43,83,.08)}.kpi b{font-size:24px;display:block;color:var(--royal)}
#v-panel h3{color:var(--navy)}table{width:calc(100% - 28px);margin:0 14px 14px;border-collapse:collapse;background:#fff;font-size:13px;border-radius:12px;overflow:hidden}th{background:#EAF0FA;color:var(--navy)}td,th{padding:8px;border-bottom:1px solid var(--line);text-align:left}
.sbar{padding:12px 14px;position:sticky;top:0;background:var(--paper);z-index:1}.sbar input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-size:16px;outline:none}.sbar input:focus{border-color:var(--logo)}#sres{padding:0 14px}#sres>button{border:0;background:none;color:var(--logo);padding:4px 0 10px}
nav{display:flex;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}nav button{flex:1;border:0;background:none;padding:7px 4px;font-size:12px;color:var(--mute);display:flex;flex-direction:column;align-items:center;gap:1px}nav button i{font-style:normal;font-size:18px;filter:grayscale(1);opacity:.6}
nav button.on{color:var(--royal);font-weight:600}nav button.on i{filter:none;opacity:1}
@media(max-width:820px){aside{position:absolute;z-index:3;left:0;top:48px;bottom:58px;transform:translateX(-100%);transition:.2s;box-shadow:4px 0 20px rgba(0,0,0,.12)}aside.open{transform:none}.side{display:none}#title::before{content:"☰  ";cursor:pointer}.m .b{max-width:88%}}
