/* ============================================================
   零创未来 · 设计系统（2026 规范版）
   单一字体族 / 400+600 字重 / 8px 栅格 / 语义化用色 / 深浅双模
   ============================================================ */
:root{
  /* 品牌与语义色（全系统 ≤3 色系：绿=品牌，红=错误，黄=警告，蓝=信息） */
  --pri:#d92b2b; --pri-deep:#b91c1c; --pri-bright:#ef4444;
  --pri-soft:#fdeeee; --pri-soft2:#f8d8d8;
  --red:#dc2626; --red-soft:#fdecec;
  --warn:#d97706; --info:#2563eb;
  /* 中性色 */
  --bg:#ffffff; --card:#ffffff; --line:#e6e6e6; --line-soft:#f4f4f4;
  --txt:#141414; --sub:#555555; --faint:#999999; --navy:#141414;
  --shadow:0 1px 3px rgba(0,0,0,.05),0 4px 14px rgba(0,0,0,.05);
  --shadow-lift:0 6px 22px rgba(0,0,0,.10);
  /* 登录页 · 零创未来智航员主题 Token */
  --login-bg-deep:#061a38; --login-bg-mid:#0a4a88; --login-bg-bright:#129edb;
  --login-bg-glow:rgba(67,190,255,.44); --login-grid:rgba(143,233,255,.13);
  --login-white:#fff; --login-copy:rgba(255,255,255,.88); --login-copy-soft:rgba(255,255,255,.62);
  --login-card:#fff; --login-card-text:#172033; --login-card-sub:#64748b;
  --login-card-line:#dbe3ee; --login-card-soft:#fffafa; --login-card-accent:#f2dada;
  --login-loop:#a91f25; --login-loop-soft:#d9a2a2; --login-mobile-bg:#fff7f7; --login-mobile-text:#8a5555;
  --login-action-start:#0b5ea8; --login-action-end:#169fdc;
  --agent-shadow:rgba(1,15,35,.68); --agent-ground:rgba(46,210,255,.26);
  --agent-line:rgba(143,238,255,.54); --agent-line-soft:rgba(143,238,255,.18);
  --agent-letter-depth:#09284a; --agent-letter-depth-deep:#020a16;
  --ai-core-graphite:#172433; --ai-core-graphite-light:#526577; --ai-core-graphite-deep:#050b13;
  --ai-core-metal:#8ea3b5; --ai-core-metal-light:#e8f2f8; --ai-core-metal-deep:#405464;
  --ai-core-red:#a91e2b; --ai-core-red-light:#e4434d; --ai-core-red-deep:#4e0712;
  --ai-core-energy:#7eeeff; --ai-core-energy-hot:#ecfdff; --ai-core-energy-mid:#22cee9;
  --ai-core-energy-soft:rgba(74,221,249,.3); --ai-core-energy-clear:rgba(74,221,249,0);
  --agent-motion-duration:4.8s;
  color-scheme:light;
}
html[data-theme="dark"]{
  --pri:#ef4444; --pri-deep:#f87171; --pri-bright:#ef4444;
  --pri-soft:#3a1d1d; --pri-soft2:#4a2323;
  --red:#f87171; --red-soft:#3a1d1d;
  --warn:#fbbf24; --info:#60a5fa;
  --bg:#0F172A; --card:#1A2436; --line:#2b3a55; --line-soft:#243248;
  --txt:#F1F5F9; --sub:#9fb0c4; --faint:#77879c; --navy:#f1f5f9;
  --shadow:0 1px 3px rgba(0,0,0,.4),0 4px 16px rgba(0,0,0,.35);
  --shadow-lift:0 6px 24px rgba(0,0,0,.5);
  --login-bg-deep:#031127; --login-bg-mid:#073c72; --login-bg-bright:#0b72a8;
  --login-bg-glow:rgba(45,169,235,.4); --login-grid:rgba(143,233,255,.1);
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:"Microsoft YaHei","微软雅黑","PingFang SC",-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg);color:var(--txt);line-height:1.6;font-size:15px;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--pri);text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;border-radius:10px;font-size:15px;transition:all .18s ease-out}
input,textarea,select{font-family:inherit;font-size:15px;border:1px solid var(--line);border-radius:10px;padding:11px 14px;width:100%;background:var(--card);color:var(--txt);transition:border-color .18s ease-out,box-shadow .18s ease-out}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px rgba(217,43,43,.12)}
textarea{resize:vertical;min-height:130px;line-height:1.7}
::placeholder{color:var(--faint)}

/* ---------- 登录 · 零创未来智航员 ---------- */
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(380px,1fr) minmax(460px,540px);align-items:center;gap:clamp(28px,4.5vw,78px);background:radial-gradient(circle at 25% 38%,var(--login-bg-glow),transparent 22%),linear-gradient(135deg,var(--login-bg-deep) 0%,var(--login-bg-mid) 54%,var(--login-bg-bright) 100%);padding:clamp(30px,5vw,72px) clamp(32px,7vw,112px);position:relative;overflow:hidden;isolation:isolate}
.auth-wrap[style*="display: flex"],.auth-wrap[style*="display:flex"]{display:grid!important}
.auth-wrap::before{content:"经营  →  诊断  →  行动  →  复盘  →  知识沉淀";position:absolute;z-index:3;left:clamp(32px,7vw,112px);bottom:clamp(34px,7vh,76px);color:var(--login-copy);font-size:18px;font-weight:700;letter-spacing:2px;white-space:nowrap}
.auth-wrap::after{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(var(--login-grid) 1px,transparent 1px),linear-gradient(90deg,var(--login-grid) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,var(--login-white),transparent 62%);-webkit-mask-image:linear-gradient(90deg,var(--login-white),transparent 62%);pointer-events:none}
.auth-agent-stage{position:relative;z-index:1;width:100%;height:min(74vh,690px);min-height:500px;align-self:center;pointer-events:none;user-select:none;animation:auth-agent-sequence 4.8s cubic-bezier(.2,.76,.2,1) 1 forwards}
.auth-agent-svg{position:absolute;left:50%;top:50%;display:block;width:min(100%,680px);height:auto;overflow:visible;transform:translate(-50%,-53%)}
.auth-card{position:relative;z-index:2;background:var(--login-card);color:var(--login-card-text);border-radius:20px;padding:38px;width:100%;max-width:540px;box-shadow:0 18px 50px var(--agent-shadow)}
.auth-logo{text-align:center;margin-bottom:24px}
.auth-logo .badge{font-size:40px}
.auth-logo h1{font-size:27px;line-height:1.35;color:var(--login-card-text);margin:12px auto 7px;letter-spacing:-.6px;font-weight:800;max-width:430px}
.auth-logo p{color:var(--login-card-sub);font-size:13px;margin-top:4px}
.auth-logo .auth-system-name{color:var(--pri);font-size:13px;font-weight:700;letter-spacing:.8px;margin-top:10px}
.auth-loop{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:4px 0 12px;color:var(--login-loop);font-size:13px;font-weight:700}.auth-loop i{font-style:normal;color:var(--login-loop-soft)}.auth-proposition{margin:0 0 18px;padding:12px 15px;border-top:1px solid var(--login-card-accent);border-bottom:1px solid var(--login-card-accent);background:var(--login-card-soft);color:var(--login-card-sub);font-size:13px;font-weight:500;line-height:1.7;text-align:center}
.auth-card label{display:block;font-size:13px;color:var(--login-card-sub);margin:14px 0 6px;font-weight:600}
.auth-card input{background:var(--login-card);color:var(--login-card-text);border-color:var(--login-card-line)}.auth-card .btn-primary{background:linear-gradient(90deg,var(--login-action-start),var(--login-action-end))}
.ai-stop-graphite-light{stop-color:var(--ai-core-graphite-light)}.ai-stop-graphite-mid{stop-color:var(--ai-core-graphite)}.ai-stop-graphite-deep{stop-color:var(--ai-core-graphite-deep)}.ai-stop-metal-light{stop-color:var(--ai-core-metal-light)}.ai-stop-metal-mid{stop-color:var(--ai-core-metal)}.ai-stop-metal-deep{stop-color:var(--ai-core-metal-deep)}
.ai-stop-red-light{stop-color:var(--ai-core-red-light)}.ai-stop-red-deep{stop-color:var(--ai-core-red-deep)}.ai-stop-energy-core{stop-color:var(--ai-core-energy-hot)}.ai-stop-energy-mid{stop-color:var(--ai-core-energy-mid)}.ai-stop-energy-clear{stop-color:var(--ai-core-energy-clear)}.ai-core-shadow-effect{flood-color:var(--agent-shadow);flood-opacity:.72}
.ai-data-rings{transform-box:fill-box;transform-origin:center;animation:ai-data-rings-arrive var(--agent-motion-duration) cubic-bezier(.2,.76,.2,1) 1 forwards}.ai-data-ring{fill:none;stroke:var(--agent-line-soft);stroke-width:2}.ai-data-ring-outer{stroke-dasharray:12 18}.ai-data-ring-mid{stroke:var(--agent-line);stroke-dasharray:4 14}.ai-data-ring-inner{stroke-width:3;stroke-dasharray:34 17}.ai-data-arc,.ai-data-tick{fill:none;stroke:var(--ai-core-energy);stroke-width:4;stroke-linecap:round}.ai-data-arc{stroke-dasharray:38 17}.ai-data-tick{stroke-width:3}
.ai-circuit-nodes{transform-box:fill-box;transform-origin:center;animation:ai-circuit-arrive var(--agent-motion-duration) ease-out 1 forwards}.ai-circuit-line,.ai-circuit-glyph{fill:none;stroke:var(--agent-line);stroke-width:3;stroke-linecap:square;stroke-linejoin:miter}.ai-circuit-glyph{stroke:var(--ai-core-metal);stroke-width:2}.ai-circuit-node{fill:var(--ai-core-energy-hot);stroke:var(--ai-core-energy-mid);stroke-width:3;filter:url(#ai-core-glow)}
.ai-neural-brain{transform-box:fill-box;transform-origin:center;animation:ai-neural-core-arrive var(--agent-motion-duration) cubic-bezier(.18,.78,.2,1) 1 forwards}.ai-brain-shell{fill:url(#ai-core-graphite);stroke:var(--ai-core-metal);stroke-width:4;stroke-linejoin:bevel}.ai-brain-inset{fill:var(--ai-core-graphite-deep);stroke:var(--ai-core-metal-deep);stroke-width:3;stroke-linejoin:bevel}.ai-neural-path,.ai-neural-bridge{fill:none;stroke:var(--ai-core-energy-mid);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:url(#ai-core-glow)}.ai-neural-bridge{stroke-width:2;opacity:.7}.ai-core-plate{fill:url(#ai-core-metal);stroke:var(--ai-core-graphite-deep);stroke-width:4;stroke-linejoin:bevel}.ai-core-red-accent{fill:url(#ai-core-red);stroke:var(--ai-core-red-light);stroke-width:2}.ai-neural-node{fill:var(--ai-core-energy-hot);stroke:var(--ai-core-energy-mid);stroke-width:3;filter:url(#ai-core-glow)}
.ai-core{transform-box:fill-box;transform-origin:center;animation:ai-core-power-up var(--agent-motion-duration) cubic-bezier(.2,.76,.2,1) 1 forwards}.ai-core-halo{fill:url(#ai-core-energy);opacity:.66}.ai-core-casing{fill:url(#ai-core-graphite);stroke:var(--ai-core-metal-light);stroke-width:5;stroke-linejoin:bevel}.ai-core-facet{fill:url(#ai-core-metal);stroke:var(--ai-core-energy-mid);stroke-width:3;stroke-linejoin:bevel;opacity:.78}.ai-core-crystal{fill:url(#ai-core-energy);stroke:var(--ai-core-energy-hot);stroke-width:5;stroke-linejoin:bevel}.ai-core-crystal-inner,.ai-core-point{fill:var(--ai-core-energy-hot);stroke:var(--ai-core-energy-mid);stroke-width:3;filter:url(#ai-core-glow)}
.ai-energy-pulses{transform-box:fill-box;transform-origin:center;animation:ai-energy-pulse-arrive var(--agent-motion-duration) ease-out 1 forwards}.ai-energy-beam{fill:none;stroke:var(--ai-core-energy);stroke-width:4;stroke-linecap:round;filter:url(#ai-core-glow)}.ai-energy-pulse{fill:var(--ai-core-energy-hot);stroke:var(--ai-core-energy-mid);stroke-width:3;filter:url(#ai-core-glow)}.ai-core-ground{fill:var(--agent-ground);filter:url(#ai-core-glow)}.ai-core-suspension{fill:none;stroke:var(--agent-line);stroke-width:2;stroke-linecap:round}
.auth-agent-message{position:absolute;z-index:3;left:50%;top:75%;display:flex;align-items:flex-end;gap:clamp(2px,.45vw,7px);width:max-content;padding:8px 10px 16px;transform-style:preserve-3d;opacity:1}
.auth-agent-char{display:inline-block;background:linear-gradient(180deg,var(--ai-core-energy-hot) 0%,var(--ai-core-metal-light) 34%,var(--ai-core-energy) 64%,var(--ai-core-energy-mid) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;font-size:clamp(31px,3.5vw,52px);font-weight:950;line-height:1;letter-spacing:.02em;-webkit-text-stroke:1px var(--ai-core-energy);text-shadow:2px 2px 0 var(--agent-letter-depth),4px 4px 0 var(--agent-letter-depth-deep),0 0 16px var(--ai-core-energy);opacity:0;transform:translateY(17px) scale(.2);transform-origin:center bottom;animation:auth-agent-char-reveal 1.05s cubic-bezier(.18,.78,.2,1) 1 forwards}
.auth-agent-char:nth-child(1){animation-delay:1.25s}.auth-agent-char:nth-child(2){animation-delay:1.55s}.auth-agent-char:nth-child(3){animation-delay:1.85s}.auth-agent-char:nth-child(4){animation-delay:2.15s}.auth-agent-char:nth-child(5){animation-delay:2.45s}
.auth-agent-message::after{content:"";position:absolute;left:5%;right:3%;bottom:3px;height:3px;background:linear-gradient(90deg,transparent,var(--ai-core-energy),var(--ai-core-metal-light),transparent);box-shadow:0 0 14px var(--ai-core-energy)}
@keyframes auth-agent-sequence{0%{opacity:0;transform:translateY(16px) scale(.975)}12.5%{opacity:1}48%{transform:translateY(0) scale(1)}100%{opacity:1;transform:none}}
@keyframes auth-agent-char-reveal{from{opacity:0;transform:translateY(17px) scale(.2);filter:blur(7px)}70%{opacity:1;transform:translateY(-3px) scale(1.12);filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:none}}
/* 星辰大海：人脑轮廓星海网络（点+细线相连，象征物联网与大脑） */
.ss-head-veil{animation:ss-veil-breathe 7.5s ease-in-out infinite}
.ss-node{transform-box:fill-box;transform-origin:center;animation:ss-twinkle 4.4s ease-in-out infinite}
.ss-node-core{animation-name:ss-core-pulse}
.ss-star{fill:var(--agent-line-soft);animation:ss-twinkle 3.8s ease-in-out infinite}
.ss-line{stroke-width:.9;animation:ss-line-pulse 6.5s ease-in-out infinite}
.ss-line-flow{animation:ss-line-flow 7.5s linear infinite}
@keyframes ss-twinkle{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes ss-core-pulse{0%,100%{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}
@keyframes ss-line-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes ss-line-flow{0%{stroke-dasharray:3 220;stroke-dashoffset:0}60%{stroke-dasharray:3 220;stroke-dashoffset:-220}100%{stroke-dasharray:3 220;stroke-dashoffset:-220}}
@keyframes ss-veil-breathe{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes ai-data-rings-arrive{0%{opacity:0;transform:scale(.65) rotate(-18deg)}18%{opacity:.35}58%{opacity:1;transform:scale(1.03) rotate(2deg)}100%{opacity:1;transform:none}}
@keyframes ai-circuit-arrive{0%,10%{opacity:0}32%{opacity:.45}66%,100%{opacity:1}}
@keyframes ai-neural-core-arrive{0%{opacity:0;transform:translateY(24px) scale(.78)}16%{opacity:.25}54%{opacity:1;transform:translateY(-4px) scale(1.02)}100%{opacity:1;transform:none}}
@keyframes ai-core-power-up{0%,18%{opacity:0;transform:scale(.12) rotate(-12deg)}48%{opacity:1;transform:scale(1.14) rotate(2deg)}68%,100%{opacity:1;transform:none}}
@keyframes ai-energy-pulse-arrive{0%,28%{opacity:0;transform:scale(.35)}58%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:none}}
.btn-primary{background:var(--pri);color:#fff;width:100%;padding:13px;font-weight:600;margin-top:22px;font-size:16px}
html[data-theme="dark"] .btn-primary{color:#fff}
.btn-primary:hover{filter:brightness(1.07);transform:translateY(-1px)}
.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}
.auth-err{color:var(--red);font-size:13px;margin-top:12px;text-align:center;min-height:18px}
.auth-tip{color:var(--faint);font-size:12px;text-align:center;margin-top:16px}
.auth-mobile{color:var(--login-mobile-text);background:var(--login-mobile-bg);border-radius:8px;padding:8px 10px;font-size:11.5px;text-align:center;margin-top:12px;line-height:1.55}
@media(min-width:769px) and (max-width:1199px){.auth-wrap{grid-template-columns:minmax(270px,.82fr) minmax(430px,500px);gap:clamp(18px,2.4vw,30px);padding:30px clamp(24px,4vw,48px)}.auth-agent-stage{height:min(68vh,570px);min-height:430px}.auth-agent-svg{width:min(55vw,570px)}.auth-agent-message{left:43%;top:74%;padding:7px 8px 13px}.auth-agent-char{font-size:clamp(26px,3.1vw,39px)}.auth-wrap::before{left:clamp(24px,4vw,48px);bottom:clamp(26px,5vh,52px);font-size:15px;letter-spacing:1px}.auth-card{padding:32px;max-width:500px}}
@media(min-width:769px) and (max-height:900px){.auth-wrap{padding:20px clamp(24px,5vw,72px)}.auth-agent-stage{height:min(66vh,520px);min-height:420px}.auth-agent-svg{width:min(52vw,550px)}.auth-agent-message{top:73%}.auth-wrap::before{bottom:18px;font-size:14px}.auth-card{padding:24px 30px;border-radius:18px}.auth-logo{margin-bottom:8px}.auth-logo .badge img{width:56px;height:56px}.auth-logo h1{font-size:23px;line-height:1.25;margin:6px auto 4px}.auth-logo p{font-size:11.5px;margin-top:2px}.auth-logo .auth-system-name{font-size:11.5px;margin-top:5px}.auth-loop{font-size:12px;margin:2px 0 7px}.auth-proposition{margin-bottom:8px;padding:7px 12px;font-size:11.5px;line-height:1.5}.auth-card label{margin:8px 0 4px}.auth-card input{min-height:42px;padding:9px 12px}.auth-card .btn-primary{min-height:44px;margin-top:12px;padding:9px}.auth-card #first-use-btn,.auth-card #account-import-btn{min-height:36px!important;margin-top:6px!important}.auth-mobile{margin-top:7px;padding:5px 8px;font-size:10px;line-height:1.4}.auth-tip{margin-top:7px;font-size:10px}}
@media(min-width:769px) and (max-width:1199px){.auth-agent-svg{left:42%;width:min(44vw,430px)}}
@media(max-width:768px){.auth-wrap{grid-template-columns:minmax(0,1fr);align-content:start;align-items:start;gap:8px;min-height:100vh;padding:10px 16px 26px;overflow-x:hidden;overflow-y:auto}.auth-wrap[style*="display: flex"],.auth-wrap[style*="display:flex"]{display:grid!important}.auth-wrap::before,.auth-wrap::after{display:none}.auth-agent-stage{width:100%;height:clamp(108px,16vh,132px);min-height:0;overflow:hidden;animation:none!important}.auth-agent-stage *{animation:none!important}.auth-agent-svg{position:absolute;top:0;left:calc(50% - 82px);width:auto;height:120px;max-width:none;transform:translate(-50%,0)}.auth-agent-message{left:48%;top:37%;padding:5px 4px 9px;gap:1px;opacity:1;animation:none!important}.auth-agent-char{font-size:clamp(18px,5.6vw,22px);opacity:1;transform:translateY(0) scale(1);filter:none}.auth-card{padding:20px 20px 22px;max-width:480px;border-radius:16px}.auth-logo{margin-bottom:8px}.auth-logo .badge img{width:58px;height:58px}.auth-logo h1{font-size:22px;line-height:1.3;margin-top:8px}.auth-loop{font-size:11.5px;gap:5px;margin-bottom:9px}.auth-proposition{font-size:12px;line-height:1.55;margin-bottom:8px;padding:9px 8px}.auth-card label{margin-top:10px}.auth-card .btn-primary{margin-top:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.auth-agent-stage{animation:none!important;opacity:1;transform:none}.auth-agent-stage *{animation:none!important}.auth-agent-message{opacity:1;transform:none;filter:none}.auth-agent-char{opacity:1!important;transform:translateY(0) scale(1)!important;filter:none!important}}

/* ---------- 布局：窄侧边栏 + 主区 ---------- */
.layout{display:flex;min-height:100vh}
.sidebar{width:96px;flex-shrink:0;background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:50}
.side-logo{height:64px;display:flex;align-items:center;justify-content:center;font-size:24px;border-bottom:1px solid var(--line-soft);cursor:default}
.nav{display:flex;flex-direction:column;gap:2px;padding:12px 8px;overflow-y:auto}
.nav a{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--txt);border-radius:10px;padding:10px 4px 8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .18s ease-out;border:none;background:none;line-height:1.2}
.nav a .ni{font-size:19px;line-height:1.15}
.nav a:hover{background:var(--pri-soft);color:var(--pri)}
.nav a.active{background:var(--pri);color:#fff;font-weight:700;box-shadow:0 2px 10px rgba(217,43,43,.25)}
.mainwrap{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 24px}
.brand{font-weight:600;font-size:15.5px;color:var(--txt);letter-spacing:-.2px}
.brand small{color:var(--faint);font-weight:400;font-size:12px;margin-left:8px}
.top-right{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--sub)}
.icon-btn{background:transparent;font-size:16px;padding:6px 9px;border-radius:8px;line-height:1}
.icon-btn:hover{background:var(--pri-soft)}
.userbox{color:var(--txt);font-weight:600}
.logout{background:transparent;color:var(--red);border:1px solid var(--line);padding:6px 14px;font-size:12.5px;border-radius:8px;font-weight:600}
.logout:hover{background:var(--red-soft);border-color:transparent}
.main{flex:1}
.container{max-width:1200px;margin:0 auto;padding:24px 24px 64px}
@media(max-width:768px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;position:static;flex-direction:row;align-items:center}.side-logo{display:none}.nav{flex-direction:row;overflow-x:auto;padding:8px}.topbar{position:static}}

/* ---------- 页面标题层级 ---------- */
.page-title{font-size:22px;color:var(--txt);font-weight:600;margin-bottom:4px;letter-spacing:-.3px}
.page-sub{color:var(--sub);font-size:13.5px;margin-bottom:24px}
.section-h{font-size:16px;font-weight:600;color:var(--txt);margin:32px 0 14px;display:flex;align-items:center;gap:8px;letter-spacing:-.2px}
.section-h::before{content:"";width:4px;height:16px;background:var(--pri);border-radius:2px}

/* ---------- 实时状态指示 ---------- */
.live{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--sub);font-weight:400}
.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--pri-bright);animation:pulse 1.8s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,.40)}70%{box-shadow:0 0 0 7px rgba(239,68,68,0)}100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}}
.ts{font-size:12px;color:var(--faint);margin-top:12px}

/* ---------- 仪表盘 ---------- */
.dash-top{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}
@media(max-width:900px){.dash-top{grid-template-columns:1fr}}
.news-hero{cursor:pointer;padding:20px;display:flex;flex-direction:column;gap:12px}
.news-hero:hover{border-color:var(--pri);box-shadow:var(--shadow-lift);transform:translateY(-1px)}
.nh-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.nh-label{font-size:13px;font-weight:600;color:var(--pri);background:var(--pri-soft);padding:4px 10px;border-radius:14px}
.nh-title{font-size:19px;font-weight:600;color:var(--txt);letter-spacing:-.2px;line-height:1.45}
.nh-sub{font-size:13px;color:var(--sub)}
.sys-panel{padding:20px;display:flex;flex-direction:column}
.sp-title{font-size:13px;font-weight:600;color:var(--sub);display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.metrics{display:flex;flex-direction:column;gap:12px;flex:1}
.metric{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px dashed var(--line-soft);padding-bottom:10px}
.metric:last-child{border-bottom:none;padding-bottom:0}
.metric .n{font-size:26px;font-weight:700;color:var(--txt);letter-spacing:-.5px;line-height:1.1}
.metric .n.sm{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.metric .l{font-size:12px;color:var(--sub);font-weight:400;flex-shrink:0}

.hero{background:linear-gradient(135deg,var(--pri-deep),#7f1d1d);color:#fff;border-radius:14px;padding:28px 30px;box-shadow:var(--shadow);position:relative;overflow:hidden;margin-bottom:8px}
html[data-theme="dark"] .hero{background:linear-gradient(135deg,#3a1d1d,#2b1414)}
.hero::after{content:"📊";position:absolute;right:26px;top:18px;font-size:84px;opacity:.14}
.hero h2{font-size:21px;margin-bottom:8px;font-weight:600;letter-spacing:-.3px}
.hero .philo{color:#ffd9d9;font-size:14.5px;font-weight:600;margin-bottom:14px}
.hero p{color:#fbe9e9;font-size:13.5px;max-width:660px}

/* ---------- 新媒体运营中心 ---------- */
.media-taskbar{display:flex;gap:8px;overflow-x:auto;margin-bottom:16px;padding-bottom:4px}.media-task{white-space:nowrap;background:var(--card);border:1px solid var(--line);padding:9px 15px;color:var(--txt)}.media-task.on{background:#1677c8;color:#fff;border-color:#1677c8}.media-grid{display:grid;grid-template-columns:minmax(310px,1fr) minmax(220px,.65fr);gap:16px}.media-result{grid-column:1/-1;padding:0;overflow:hidden}.media-selects{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.media-note,.media-trace{font-size:12px;color:var(--sub);line-height:1.7}.media-note{margin-top:10px;padding:10px;background:var(--line-soft);border-radius:8px}.media-trace{padding:11px 20px;background:#eef7ff;border-bottom:1px solid #d8eaff}.media-assets{min-height:300px}.media-list{min-height:190px;color:var(--sub);font-size:13px;padding:12px 0}.media-asset{display:flex;justify-content:space-between;gap:8px;padding:8px;border-bottom:1px solid var(--line-soft);color:var(--txt)}.media-asset small{color:var(--faint);white-space:nowrap}.dashboard-proposition{background:linear-gradient(120deg,#0b3b73,#138fd1);box-shadow:0 12px 30px rgba(14,99,164,.22)}
@media(max-width:760px){.media-grid{grid-template-columns:1fr}.media-result{grid-column:auto}.media-selects{grid-template-columns:1fr}.dashboard-proposition strong{font-size:17px}.nav-grid .nav-tile[data-r="retail"],.nav-grid .nav-tile[data-r="newMedia"]{display:flex}.container{padding-top:14px}}

/* ---------- 客户专属智能报表中心 v2 ---------- */
.report-v2{max-width:1180px;margin:0 auto}.r2-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0 0 16px}.r2-progress span{background:var(--card);border:1px solid var(--line);border-top:3px solid #d92b2b;padding:10px 8px;text-align:center;color:var(--sub);font-size:12px;font-weight:700}.r2-progress span.on{background:#fff6f6;color:#a91f25}.r2-step{margin-bottom:14px}.r2-step h3{display:flex;align-items:center;gap:9px;font-size:16px}.r2-step h3>b{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#d92b2b;color:#fff;font-size:13px}.r2-help{font-size:12.5px;color:var(--sub);line-height:1.65;margin:-2px 0 12px}.r2-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:9px 0}.r2-row input{flex:1;min-width:210px}.r2-row .run-btn{width:auto;min-width:220px;margin:4px 0}.r2-path-picker{display:flex;align-items:center;gap:8px;width:100%;margin-top:5px}.r2-path-picker input{flex:1;min-width:0;margin-top:0}.r2-path-picker button{min-height:44px;white-space:nowrap}.r2-list{margin-top:12px;border-top:1px solid var(--line-soft)}.r2-item{display:flex;align-items:center;gap:11px;padding:11px 8px;border-bottom:1px solid var(--line-soft);color:var(--txt);cursor:pointer}.r2-item:hover,.r2-item.selected{background:var(--pri-soft)}.r2-item>span{flex:1;min-width:0}.r2-item strong{display:block;font-size:13.5px}.r2-item small{display:block;color:var(--sub);font-size:11.5px;margin-top:3px}.r2-item em{font-style:normal;color:#a91f25;background:#fff0f0;border-radius:12px;padding:3px 9px;font-size:11px;white-space:nowrap}.r2-actions{display:flex;gap:5px;flex-wrap:wrap}.r2-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.r2-grid label{font-size:12px;color:var(--sub);font-weight:600}.r2-grid input,.r2-grid select{display:block;width:100%;margin-top:5px}.r2-grid .wide{grid-column:span 2}.r2-summary{background:#fff7f7;border-left:4px solid #d92b2b;padding:10px 12px;margin-bottom:8px;font-size:13px}.r2-map-head,.r2-map{display:grid;grid-template-columns:1fr 1fr 90px;gap:8px;padding:7px 10px;font-size:12px;border-bottom:1px solid var(--line-soft)}.r2-map-head{font-weight:700;color:var(--sub);background:var(--line-soft)}.r2-map span:last-child{color:#15803d}.empty-mini{padding:18px;text-align:center;color:var(--sub);font-size:12.5px}.r2-copyright{text-align:center;color:var(--faint);font-size:11px;padding:10px 12px 22px;line-height:1.6}
.r2-generate-box{display:grid;grid-template-columns:minmax(180px,240px) auto 1fr;gap:10px;align-items:end;margin-top:16px;padding:16px;border:1px solid #f1c7c7;border-radius:12px;background:#fff8f8}.r2-generate-box label{font-size:12px;font-weight:700;color:var(--sub)}.r2-generate-box select{margin-top:5px}.r2-generate-box>.run-btn{width:auto;min-width:190px;margin:0}.r2-generate-box>span{align-self:center;color:var(--sub);font-size:12px}.r2-generate-box #r2-generate-result{grid-column:1/-1}.r2-download-now{display:inline-block;width:auto!important;margin:0!important;padding:11px 18px}.r2-generating{color:#9a6700!important}.r2-generate-error{color:var(--red)!important;font-weight:700}
@media(max-width:760px){.r2-progress{display:flex;overflow-x:auto}.r2-progress span{min-width:116px}.r2-grid,.r2-generate-box{grid-template-columns:1fr}.r2-grid .wide{grid-column:auto}.r2-path-picker{flex-wrap:wrap}.r2-path-picker input,.r2-path-picker button{width:100%}.r2-item{align-items:flex-start;flex-wrap:wrap}.r2-actions{flex-basis:100%}.r2-map-head,.r2-map{grid-template-columns:1fr 1fr 58px}.r2-row .run-btn,.r2-generate-box>.run-btn{width:100%}.r2-generate-box #r2-generate-result{grid-column:auto}}
.report-ent-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding:10px;background:var(--line-soft);border-radius:9px;font-size:12px;color:var(--sub)}.report-ent-box label{display:flex;align-items:center;gap:5px}.report-ent-box input[type="number"]{width:62px;padding:5px}.report-ent-box .report-ent-note{flex:1;min-width:190px;padding:6px 9px}

/* ---------- 卡片与网格 ---------- */
.grid{display:grid;gap:16px}
.grid.c2{grid-template-columns:repeat(2,1fr)}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1024px){.grid.c4{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.grid.c3,.grid.c4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:var(--shadow);transition:all .18s ease-out}
.scenario{cursor:pointer;display:flex;flex-direction:column;gap:6px}
.scenario:hover{transform:translateY(-2px);border-color:var(--pri);box-shadow:var(--shadow-lift)}
.scenario .lab{font-weight:600;color:var(--txt);font-size:15px}
.scenario .hint{color:var(--sub);font-size:12.5px}
.scenario .go{color:var(--pri);font-size:13px;font-weight:600;margin-top:4px}
.skill-card{cursor:pointer}
.skill-card:hover{border-color:var(--pri);transform:translateY(-2px)}
.skill-card .ico{font-size:26px}
.skill-card .nm{font-weight:600;color:var(--txt);margin-top:8px;font-size:14.5px}
.skill-card .tl{color:var(--sub);font-size:12px;margin-top:4px}

/* ---------- 诊断/生成页 ---------- */
.diag{display:grid;grid-template-columns:380px 1fr;gap:16px;align-items:start}
@media(max-width:900px){.diag{grid-template-columns:1fr}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow)}
.panel h3{font-size:14.5px;color:var(--txt);margin-bottom:12px;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}
.chip{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:6px 13px;font-size:12.5px;color:var(--sub);cursor:pointer;transition:all .15s ease-out}
.chip:hover{border-color:var(--pri);color:var(--pri)}
.chip.on{background:var(--pri);color:#fff;border-color:var(--pri);font-weight:600}
html[data-theme="dark"] .chip.on{color:#fff}
.field-l{font-size:13px;color:var(--sub);font-weight:600;margin:16px 0 6px;display:block}
.run-btn{background:var(--pri);color:#fff;width:100%;padding:13px;font-weight:600;font-size:15.5px;margin-top:18px}
html[data-theme="dark"] .run-btn{color:#fff}
.run-btn:hover{filter:brightness(1.07)}
.run-btn:disabled{opacity:.55;cursor:not-allowed}

.report-box{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);min-height:400px;display:flex;flex-direction:column}
.report-head{padding:14px 20px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.report-head .t{font-weight:600;color:var(--txt);font-size:14px}
.report-head .dl{margin-left:auto;display:flex;gap:8px}
.dl-btn{background:var(--pri);color:#fff;padding:7px 14px;font-size:13px;font-weight:600}
html[data-theme="dark"] .dl-btn{color:#fff}
.dl-btn:hover{filter:brightness(1.07)}
.dl-btn.ghost{background:var(--card);color:var(--txt);border:1px solid var(--line)}
.dl-btn.ghost:hover{border-color:var(--pri);color:var(--pri)}
.report-body{padding:24px 28px;overflow:auto;flex:1}
.report-empty{color:var(--sub);text-align:center;padding:72px 20px;font-size:14px}
.report-empty .big{font-size:46px;opacity:.45;display:block;margin-bottom:12px}

/* ---------- Markdown 报告内容 ---------- */
.md h1{font-size:21px;color:var(--txt);border-bottom:2px solid var(--pri);padding-bottom:8px;margin:6px 0 16px;font-weight:600;letter-spacing:-.3px}
.md h2{font-size:17px;color:var(--txt);margin:22px 0 10px;padding-left:10px;border-left:4px solid var(--pri);font-weight:600}
.md h3{font-size:15px;color:var(--txt);margin:16px 0 8px;font-weight:600}
.md p{margin:8px 0}
.md p.num{margin:5px 0;padding-left:6px}
.md ul{margin:8px 0 8px 22px}
.md li{margin:4px 0}
.md strong{color:var(--pri)}
.md code{background:var(--pri-soft);padding:1px 6px;border-radius:4px;font-size:13px}
.md table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13.5px}
.md th,.md td{border:1px solid var(--line);padding:8px 11px;text-align:left}
.md th{background:var(--pri-soft);color:var(--txt);font-weight:600}
.md hr{border:none;border-top:1px dashed var(--line);margin:18px 0}
.cursor{display:inline-block;width:8px;height:17px;background:var(--pri);vertical-align:-3px;animation:blink 1s infinite}
@keyframes blink{50%{opacity:0}}

/* ---------- 手风琴（技能/模块） ---------- */
.acc{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden;box-shadow:var(--shadow)}
.acc-h{padding:15px 20px;display:flex;align-items:center;gap:12px;cursor:pointer;user-select:none;transition:background .18s ease-out}
.acc-h:hover{background:var(--line-soft)}
.acc-h .ico{font-size:22px}
.acc-h .nm{font-weight:600;color:var(--txt);font-size:15px}
.acc-h .tl{color:var(--sub);font-size:12.5px;margin-left:auto}
.acc-h .arw{color:var(--faint);transition:transform .2s ease-out;font-size:12px}
.acc.open .arw{transform:rotate(90deg)}
.acc-b{display:none;padding:0 22px 20px;border-top:1px solid var(--line-soft)}
.acc.open .acc-b{display:block}

/* ---------- 报告中心 ---------- */
.rep-row{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px 20px;margin-bottom:12px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;box-shadow:var(--shadow);transition:all .18s ease-out}
.assign-box{flex-basis:100%;display:flex;gap:8px;align-items:center;margin-top:2px}
.assign-box input{flex:1;min-width:160px}
.rep-row:hover{border-color:var(--pri)}
.rep-row .info{flex:1}
.rep-row .rt{font-weight:600;color:var(--txt);font-size:15px}
.rep-row .rm{color:var(--sub);font-size:12px;margin-top:3px}
.rep-row .acts{display:flex;gap:8px}
.mini{padding:7px 13px;font-size:13px;border-radius:8px;font-weight:600}
.mini.view{background:var(--pri);color:#fff}
html[data-theme="dark"] .mini.view{color:#fff}
.mini.md{background:var(--card);border:1px solid var(--line);color:var(--txt)}
.mini.md:hover{border-color:var(--pri);color:var(--pri)}
.mini.del{background:var(--card);border:1px solid var(--line);color:var(--red)}
.mini.del:hover{background:var(--red-soft);border-color:transparent}
.empty{text-align:center;color:var(--sub);padding:60px 20px}
.empty .big{font-size:46px;opacity:.45;display:block;margin-bottom:10px}
.tag{display:inline-block;background:var(--pri-soft);color:var(--pri-deep);border-radius:5px;padding:2px 8px;font-size:11.5px;margin:2px 3px 0 0}
html[data-theme="dark"] .tag{color:var(--pri-bright)}
.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(8px);background:#1f2937;color:#f9fafb;padding:12px 22px;border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.3);z-index:99;font-size:14px;opacity:0;transition:all .22s ease-out;pointer-events:none}
html[data-theme="dark"] .toast{background:#e5e7eb;color:#111827}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- 资料中心 ---------- */
.cnt{background:var(--pri-soft);color:var(--pri-deep);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:600;margin-left:8px}
html[data-theme="dark"] .cnt{color:var(--pri-bright)}
.acc-h .cnt{margin-left:0}
.res-zone{margin-top:20px;border-top:1px dashed var(--line);padding-top:16px}
.res-h{font-size:14.5px;font-weight:600;color:var(--txt);margin-bottom:10px}
.res-n{color:var(--sub);font-weight:400;font-size:13px}
.res-filter{margin-bottom:10px}
.res-list{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.file-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line-soft);color:var(--txt);transition:background .12s ease-out}
.file-row:last-child{border-bottom:none}
.file-row:hover{background:var(--line-soft)}
.file-row .fi{font-size:17px;flex-shrink:0}
.file-row .fn{flex:1;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-row .fe{color:var(--pri);font-size:11.5px;font-weight:700;text-transform:uppercase;flex-shrink:0}
.file-row .fs{color:var(--sub);font-size:12px;width:64px;text-align:right;flex-shrink:0}
.file-row .fd{color:var(--pri);font-size:14px;flex-shrink:0}
#rs-list{max-height:560px;overflow:auto}
#rs-list .file-row{border-radius:6px}

/* ---------- 专家工坊 ---------- */
.studio-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.studio-tab{padding:9px 18px;border-radius:10px;background:var(--line-soft);color:var(--sub);cursor:pointer;font-weight:600;font-size:13.5px;transition:all .18s ease-out}
.studio-tab:hover{color:var(--pri)}
.studio-tab.on{background:var(--pri);color:#fff}
html[data-theme="dark"] .studio-tab.on{color:#fff}
.chat-box{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;height:430px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.chat-msg{max-width:88%;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.7}
.chat-msg.user{align-self:flex-end;background:var(--pri);color:#fff;white-space:pre-wrap}
html[data-theme="dark"] .chat-msg.user{color:#fff}
.chat-msg.ai{align-self:flex-start;background:var(--line-soft);color:var(--txt)}
.chat-row{display:flex;gap:10px;margin-top:12px}
.chat-row input{flex:1}
.chat-row .run-btn{width:auto;padding:0 26px;margin-top:0}

/* ---------- 专家馆 ---------- */
.quickbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;font-size:13px}
.quickbar .qb-t{color:var(--sub)}
.quickbar a{color:var(--txt);background:var(--card);border:1px solid var(--line);padding:5px 12px;border-radius:16px;cursor:pointer;font-weight:600;font-size:12.5px;transition:all .18s ease-out}
.quickbar a:hover{border-color:var(--pri);color:var(--pri)}
.expert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.expert-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow);cursor:pointer;transition:all .18s ease-out;display:flex;flex-direction:column;gap:10px}
.expert-card:hover{transform:translateY(-2px);border-color:var(--pri);box-shadow:var(--shadow-lift)}
.ex-top{display:flex;gap:10px;align-items:flex-start}
.ex-ico{font-size:30px;line-height:1.15}
.ex-name{font-weight:600;color:var(--txt);font-size:15px}
.ex-evo{display:inline-block;background:var(--pri-soft);color:var(--pri-deep);border-radius:10px;font-size:11px;padding:1px 8px;margin-left:6px;font-weight:700;vertical-align:1px}
html[data-theme="dark"] .ex-evo{color:var(--pri-bright)}
.ex-role{color:var(--sub);font-size:12px;margin-top:2px}
.ex-abilities{display:flex;flex-wrap:wrap;gap:6px}
.ex-abilities span{background:var(--bg);border:1px solid var(--line);color:var(--sub);font-size:11.5px;padding:2.5px 9px;border-radius:12px}
.ex-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed var(--line);padding-top:9px;font-size:12px;color:var(--sub)}
.ex-go{color:var(--pri);font-weight:700}
.evo-zone{margin-top:14px;background:var(--pri-soft);border:1px solid var(--line);border-radius:12px;padding:14px}
.evo-h{font-weight:600;color:var(--txt);margin-bottom:10px;font-size:14px}
.evo-tip{font-weight:400;color:var(--sub);font-size:12px;margin-left:6px}
.evo-drop{border:2px dashed var(--pri-soft2);border-radius:12px;background:var(--card);text-align:center;padding:22px 12px;cursor:pointer;transition:all .15s ease-out}
html[data-theme="dark"] .evo-drop{border-color:#6b2b2b}
.evo-drop:hover,.evo-drop.over{border-color:var(--pri);background:var(--line-soft)}
.evo-file{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 12px;margin-top:8px;font-size:13px}
.evo-file em{color:var(--sub);font-style:normal;font-size:12px}
.evo-file .evo-remove{color:var(--red);cursor:pointer;font-size:12.5px;background:transparent;border:0;padding:5px 8px;border-radius:6px;font-family:inherit}
.evo-file .evo-remove:hover,.evo-file .evo-remove:focus-visible{background:rgba(214,69,69,.1);outline:2px solid rgba(214,69,69,.2)}
.skill-drawer-trigger{margin:14px 0 0 auto;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--card);color:var(--navy);border-radius:10px;padding:10px 14px;cursor:pointer;font-family:inherit;font-weight:700}.skill-drawer-trigger b{background:var(--pri);color:#fff;border-radius:12px;padding:1px 7px}.skill-drawer-mask{position:fixed;inset:0;background:rgba(15,23,42,.34);z-index:180;opacity:0;pointer-events:none;transition:.2s}.skill-drawer-mask.open{opacity:1;pointer-events:auto}.skill-drawer{position:fixed;right:0;top:0;bottom:0;width:min(390px,90vw);z-index:181;background:var(--card);box-shadow:-18px 0 50px rgba(15,23,42,.18);padding:20px;transform:translateX(105%);transition:transform .22s ease;overflow:auto}.skill-drawer.open{transform:none}.skill-drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.skill-drawer-head div{display:flex;flex-direction:column}.skill-drawer-head small,.skill-drawer-list small{color:var(--sub);font-weight:400}.skill-drawer-head button{border:0;background:var(--bg-soft);font-size:24px;width:34px;height:34px;border-radius:8px;cursor:pointer}.skill-drawer-list{display:grid;gap:8px;margin-top:12px}.skill-drawer-list button{display:flex;gap:10px;text-align:left;align-items:flex-start;border:1px solid var(--line);background:var(--card);padding:11px;border-radius:9px;cursor:pointer;color:var(--navy);font-family:inherit}.skill-drawer-list button div{display:flex;flex-direction:column;gap:3px}.skill-drawer-list button:hover{border-color:var(--pri);background:var(--line-soft)}
@media(max-width:700px){.skill-drawer{top:auto;left:0;width:auto;height:min(72vh,620px);border-radius:18px 18px 0 0;transform:translateY(105%)}.skill-drawer.open{transform:none}}
.news-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 160px 160px auto;gap:10px;margin:16px 0}.news-toolbar input,.news-toolbar select{min-width:0}.news-status{font-size:12.5px;color:var(--sub);margin-bottom:10px}.news-layout{display:block}.news-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.news-item,.news-detail{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:17px}.news-item{cursor:pointer;transition:.16s}.news-item:hover,.news-item:focus-visible{border-color:var(--pri);box-shadow:var(--shadow-lift);outline:none}.news-item h3{font-size:17px;line-height:1.5;margin:8px 0 6px;color:var(--navy)}.news-item p,.news-detail p{color:var(--sub);line-height:1.7;margin:0}.news-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11.5px;color:var(--sub)}.news-meta span{background:rgba(217,43,43,.09);color:var(--pri);border-radius:12px;padding:3px 8px}.news-detail-mask{position:fixed;inset:0;background:rgba(15,23,42,.28);z-index:189;opacity:0;pointer-events:none;transition:.18s}.news-detail-mask.open{opacity:1;pointer-events:auto}.news-detail{display:none;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:190;width:min(580px,calc(100vw - 32px));max-height:min(72vh,620px);overflow:auto;min-height:0;padding:24px;box-shadow:0 24px 70px rgba(15,23,42,.24)}.news-detail.open{display:block}.news-detail h2{font-size:20px;line-height:1.45;margin:14px 34px 12px 0}.news-detail-close{display:grid;place-items:center;position:absolute;right:14px;top:14px;border:0;background:var(--bg-soft);color:var(--sub);font-weight:700;font-size:20px;width:32px;height:32px;border-radius:8px;cursor:pointer}.news-detail-close:hover{background:var(--pri-soft);color:var(--pri)}.news-source-note{font-size:12px;color:var(--faint);border-top:1px solid var(--line);padding-top:12px;margin-top:16px}.news-original{display:inline-flex;width:auto;margin-top:14px;text-decoration:none;padding:9px 16px}.quote-model{font-weight:800;color:var(--navy);background:rgba(217,43,43,.045)}.quote-spec{display:inline-block;border-radius:6px;padding:3px 8px;font-weight:700;white-space:nowrap}.quote-color{background:#f4f1ff;color:#6d3bd1;border:1px solid #ded3ff}.quote-version{background:#eaf7ff;color:#096b9d;border:1px solid #c8e9fb}
@media(max-width:800px){.news-toolbar{grid-template-columns:1fr 1fr}.news-toolbar input{grid-column:1/-1}.news-list{grid-template-columns:1fr}.news-detail{width:calc(100vw - 24px);max-height:78vh;padding:20px}.news-detail h2{font-size:18px}}
#evo-note{margin-top:10px;width:100%}
.evo-item{border-bottom:1px dashed var(--line-soft);padding:9px 2px}
.evo-item:last-child{border-bottom:none}
.evo-item-h{font-weight:600;color:var(--txt);font-size:13.5px}
.evo-item-b{color:var(--sub);font-size:12.5px;margin-top:2px}

/* ---------- 权限管理 ---------- */
.perm-row{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:12px;box-shadow:var(--shadow)}
.perm-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.perm-name{font-weight:600;font-size:15px;color:var(--txt)}
.perm-badge{font-size:11.5px;background:var(--pri-soft);color:var(--pri-deep);padding:2px 10px;border-radius:10px;font-weight:600}
html[data-theme="dark"] .perm-badge{color:var(--pri-bright)}
.perm-checks{display:flex;flex-wrap:wrap;gap:8px}
.perm-check{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:16px;padding:5px 12px;font-size:12.5px;color:var(--sub);cursor:pointer;transition:all .15s ease-out;user-select:none}
.perm-check:hover{border-color:var(--pri)}
.perm-check.on{background:var(--pri-soft);border-color:var(--pri);color:var(--pri-deep);font-weight:600}
html[data-theme="dark"] .perm-check.on{color:var(--pri-bright)}
.perm-check.lock{opacity:.55;cursor:not-allowed}

/* ---------- 骨架屏 ---------- */
.skeleton{background:linear-gradient(90deg,var(--line-soft) 25%,var(--bg) 50%,var(--line-soft) 75%);background-size:200% 100%;animation:shimmer 1.3s ease-out infinite;border-radius:8px;height:16px}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---------- 零创机器人（悬浮AI） ---------- */
#fab-ai{position:fixed;right:22px;bottom:26px;z-index:80;background:var(--pri);color:#fff;padding:12px 20px;border-radius:28px;font-size:14px;font-weight:600;box-shadow:0 8px 26px rgba(217,43,43,.30);display:flex;align-items:center;gap:8px}
html[data-theme="dark"] #fab-ai{color:#fff}
#fab-ai:hover{filter:brightness(1.08);transform:translateY(-1px)}
#fab-panel{position:fixed;right:22px;bottom:88px;z-index:81;width:430px;max-width:calc(100vw - 24px);height:640px;max-height:calc(100vh - 112px);background:#ededed;border:1px solid #d7d7d7;border-radius:16px;box-shadow:0 22px 64px rgba(19,27,38,.28);display:none;flex-direction:column;overflow:hidden}
.fab-head{min-height:56px;box-sizing:border-box;background:var(--pri);color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:15px}
html[data-theme="dark"] .fab-head{color:#fff}
.fab-x{cursor:pointer;opacity:.85;font-size:15px;padding:2px 6px}
.fab-x:hover{opacity:1}
.fab-msgs{flex:1;min-height:0;overflow-y:auto;padding:20px 18px;display:flex;flex-direction:column;gap:18px;background:#ededed;scrollbar-gutter:stable}
.fab-msgs .chat-msg{position:relative;max-width:78%;box-sizing:border-box;padding:10px 13px;border-radius:5px;font-size:14px;font-weight:500;line-height:1.65;box-shadow:0 1px 1px rgba(0,0,0,.05);overflow-wrap:anywhere}
.fab-msgs .chat-msg.user{align-self:flex-end;background:#95ec69;color:#1f2329}
.fab-msgs .chat-msg.ai{align-self:flex-start;background:#fff;color:#1f2329}
.fab-msgs .chat-msg.user:after,.fab-msgs .chat-msg.ai:before{content:"";position:absolute;top:13px;width:0;height:0;border:6px solid transparent}
.fab-msgs .chat-msg.user:after{right:-11px;border-left-color:#95ec69}
.fab-msgs .chat-msg.ai:before{left:-11px;border-right-color:#fff}
.fab-composer{flex:none;border-top:1px solid #d7d7d7;background:#f7f7f7;padding:9px 12px 10px}
#fab-hint{display:none;margin:0 0 7px;padding:7px 9px;border-radius:7px;background:#eef5ff;color:#526273;font-size:11px;font-weight:500;line-height:1.45;cursor:pointer}
#fab-example{color:#326fa8}
.fab-row{display:flex;align-items:center;gap:8px;padding:0;background:transparent}
#fab-input{flex:1;min-width:0;height:44px;box-sizing:border-box;padding:10px 12px;border:1px solid #d2d2d2;border-radius:7px;background:#fff;color:#1f2329!important;-webkit-text-fill-color:#1f2329;font-size:15px;font-weight:500;line-height:22px;caret-color:#07c160;outline:none}
#fab-input::placeholder{color:#9a9a9a;-webkit-text-fill-color:#9a9a9a}
#fab-input:focus{border-color:#07c160;box-shadow:0 0 0 3px rgba(7,193,96,.12)}
.fab-row button{height:44px;min-width:68px;background:#07c160;color:#fff;padding:0 14px;border-radius:7px;font-size:14px;font-weight:700}
html[data-theme="dark"] .fab-row button{color:#fff}
.fab-row button:disabled{opacity:.5}
.fab-voice-tools{margin:7px 0 0;border-top:1px solid #e4e4e4;color:#69717a;font-size:11px}.fab-voice-tools>summary{display:inline-flex;align-items:center;min-height:30px;padding:0 4px;cursor:pointer;list-style:none;font-weight:600}.fab-voice-tools>summary::-webkit-details-marker{display:none}.fab-voice-tools[open]>summary{color:#087c40}.fab-voice-tools .lc-voice-mount{margin:4px 0 0!important;padding:0!important;background:transparent!important}

/* 全局字体升级：微软雅黑 + 加粗，更清晰 */
body{font-family:"Microsoft YaHei","微软雅黑","PingFang SC","Hiragino Sans GB","Heiti SC",sans-serif;font-weight:600;}
h1,h2,h3,h4,h5,h6,.page-title,.page-sub,.nl,.chip,.run-btn,.dl-btn,button,th,label,.metric .n{font-weight:700;}
textarea,input,select{font-family:inherit;font-weight:600;}

/* 设置页列表行 */
.set-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #f0f0f0;cursor:pointer}
.set-row:hover{background:#f7f7f7}
.set-ic{width:34px;height:34px;border-radius:50%;background:#f5f5f5;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none}
.set-ar{margin-left:auto;color:#999999;font-size:18px}
.set-det{padding:14px 16px;border-bottom:1px solid #f0f0f0;background:#fbfbfb;font-size:13.5px}

/* ---- 零创智能导航 ---- */
.side-logo img{width:40px;height:40px;border-radius:10px;object-fit:contain;background:#fff}
.auth-logo .badge img{width:72px;height:72px;object-fit:contain;border-radius:14px}
.dash-head{display:flex;align-items:center;gap:14px;padding:16px 18px;margin-bottom:14px;flex-wrap:wrap}
.dh-logo{width:52px;height:52px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid var(--line);flex-shrink:0}
.dh-title{font-size:20px;font-weight:800;color:var(--navy);letter-spacing:-.3px}
.dashboard-proposition{margin-bottom:14px;padding:22px 26px;border-radius:16px;background:linear-gradient(120deg,#8f1019,#d92b2b 58%,#ee4b42);color:#fff;box-shadow:0 12px 30px rgba(180,31,38,.25)}
.dashboard-proposition>span{display:block;margin-bottom:7px;color:#ffdada;font-size:11px;font-weight:700;letter-spacing:.12em}
.dashboard-proposition>strong{display:block;max-width:1200px;font-size:clamp(17px,1.6vw,24px);line-height:1.65}
.dashboard-proposition>div{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;color:#ffe5e5;font-size:13px;font-weight:700}
.dashboard-proposition i{color:#ffaaa5;font-style:normal}
html[data-theme="dark"] .dh-title{color:var(--txt)}
.dh-sub{color:var(--sub);font-size:12.5px;margin-top:3px;font-weight:600}
.cust-box{display:flex;align-items:center;gap:8px}
.cust-box label{font-size:12.5px;color:var(--sub)}
.cust-box select{padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--txt);font-weight:700;font-size:13px;outline:none;cursor:pointer}
.cust-box select:focus{border-color:var(--pri)}
.ai-compact{padding:14px 16px;margin-bottom:16px}
.ai-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.ai-t{font-size:15px;font-weight:800}
.ai-hint{color:var(--sub);font-size:12px}
.ai-cust{margin-left:auto;font-size:12px;color:var(--pri-deep);font-weight:700;background:var(--pri-soft);border-radius:999px;padding:3px 10px}
html[data-theme="dark"] .ai-cust{color:var(--pri-bright)}
.chat-box.compact{height:380px;padding:12px;border-radius:10px}
.chat-box.compact .chat-msg{font-size:13px;padding:8px 12px}
@media(max-width:768px){.chat-box.compact{height:min(300px,46vh)}}
.chips.compact .chip{font-size:12px;padding:5px 10px}
.conversation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 9px;color:var(--sub);font-size:11px}.conversation-toolbar button{min-height:36px;padding:6px 11px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--txt);font-size:11px;cursor:pointer}.conversation-toolbar button:hover,.conversation-toolbar button:focus-visible{border-color:#c33333;color:#a51f1f;outline:3px solid rgba(217,43,43,.13)}
.capability-review-queue{margin-bottom:15px;padding:16px;border:1px solid #e2c3bf;border-left:5px solid #b42323;border-radius:13px;background:linear-gradient(145deg,#fffafa,#fff)}.capability-queue-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.capability-queue-head b,.capability-queue-head span{display:block}.capability-queue-head span{margin-top:4px;color:var(--sub);font-size:11px}.capability-queue-head button,.capability-queue-item button{min-height:36px;padding:7px 11px;border:1px solid #d5b5b0;border-radius:8px;background:#fff;color:#8f1f1f;font-weight:750;cursor:pointer}.capability-queue-item{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--card)}.capability-queue-item>div:last-child{display:flex;gap:7px;flex-wrap:wrap}.capability-queue-item b,.capability-queue-item span{display:block}.capability-queue-item span,.capability-queue-empty{margin-top:3px;color:var(--sub);font-size:11px}.capability-queue-empty{padding:13px 0 2px}.evo-review-action{display:grid;gap:7px;margin-top:18px;padding:15px;border:1px solid #e0bd73;border-radius:10px;background:#fff8e8;color:#5f4b21}.evo-review-action span{font-size:12px}.evo-review-action button{min-height:44px;border:0;border-radius:8px;background:#a52b25;color:#fff;font-weight:800;cursor:pointer}@media(max-width:600px){.capability-queue-head,.capability-queue-item{align-items:stretch;flex-direction:column}.capability-queue-item>div:last-child{display:grid;grid-template-columns:1fr 1fr}.capability-queue-item button{min-height:44px}}
.nav-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}
@media(max-width:1100px){.nav-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:768px){.nav-grid{grid-template-columns:repeat(2,1fr)}}
.nav-tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 8px;text-align:center;cursor:pointer;transition:all .18s ease-out}
.nav-tile:hover{border-color:var(--pri);box-shadow:var(--shadow-lift);transform:translateY(-2px)}
.nav-tile .t-ico{font-size:22px}
.nav-tile .t-nm{font-size:13px;font-weight:800;margin-top:6px;color:var(--txt)}
.nav-tile .t-ds{font-size:11px;color:var(--sub);margin-top:3px;line-height:1.4}

/* Folder Browser Modal */
.fb-overlay { position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:2000;display:flex;align-items:center;justify-content:center; }
.fb-panel { background:#fff;border-radius:14px;width:600px;max-width:92vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3); }
.fb-header { padding:16px 20px;border-bottom:1px solid #e5e7eb;font-weight:700;font-size:15px;display:flex;justify-content:space-between;align-items:center; }
.fb-close { background:none;border:none;font-size:18px;cursor:pointer;color:#666;padding:4px 8px; }
.fb-close:hover { color:#333; }
.fb-body { flex:1;overflow-y:auto;padding:8px 12px;max-height:50vh; }
.fb-item { padding:10px 14px;cursor:pointer;border-radius:8px;font-size:14px;transition:background .15s; }
.fb-item:hover { background:#e8f0fe; }
.fb-footer { padding:14px 20px;border-top:1px solid #e5e7eb; }

/* Diagnostic Progress Bar */
.diag-progress { width:100%;height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden;margin-bottom:12px; }
.diag-progress-bar { height:100%;background:linear-gradient(90deg,#2196F3,#4CAF50,#FF9800,#2196F3);background-size:300% 100%;border-radius:2px;animation:diagProgress 2s ease-in-out infinite; }
@keyframes diagProgress { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }

/* Report Refinement Section */
.report-refine { border:2px solid #2196F3;border-radius:12px;background:linear-gradient(135deg,#f0f7ff,#fff); }


/* === Chat Upgrade: Message Actions === */
.msg-actions{display:flex;gap:6px;margin-top:4px;opacity:0;transition:opacity .2s}
.chat-msg:hover .msg-actions{opacity:1}
.msg-actions button{background:none;border:1px solid var(--line);border-radius:6px;padding:3px 8px;font-size:11px;cursor:pointer;color:var(--sub);transition:all .15s}
.msg-actions button:hover{background:var(--pri);color:#fff;border-color:var(--pri)}

/* === Tool Steps Visualization === */
.tool-steps{background:var(--line-soft);border-radius:10px;padding:10px 14px;margin-bottom:10px;font-size:12.5px}
.tool-step{display:flex;align-items:center;gap:8px;padding:4px 0;color:var(--sub)}
.tool-step.active{color:var(--pri);font-weight:600}
.tool-step.done{color:#4CAF50}
.tool-step .step-ico{width:20px;text-align:center}

/* === Quick Chips (expert chat suggestions) === */
.quick-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;padding:0 2px}
.quick-chip{background:var(--line-soft);border:1px solid var(--line);border-radius:16px;padding:4px 12px;font-size:12px;cursor:pointer;color:var(--txt);transition:all .15s;white-space:nowrap}
.quick-chip:hover{background:var(--pri);color:#fff;border-color:var(--pri)}

/* === Conversation History Sidebar === */
.conv-history{max-width:180px;border-left:1px solid var(--line);padding:8px 10px;overflow-y:auto;font-size:12px}
.conv-history-item{padding:6px 8px;border-radius:6px;cursor:pointer;margin-bottom:4px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-history-item:hover,.conv-history-item.active{background:var(--line-soft);color:var(--txt)}
.conv-history-title{font-weight:600;font-size:11px;color:var(--sub);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}

/* === Followup Box (diagnosis continuation) === */
.followup-box{margin-top:14px;border-top:2px solid var(--pri);padding-top:12px}
.followup-box .followup-header{font-weight:600;font-size:14px;margin-bottom:8px;color:var(--pri)}
.followup-input-row{display:flex;gap:8px;align-items:center}
.followup-input-row input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:10px;font-size:14px}
.followup-input-row button{background:var(--pri);color:#fff;border:none;padding:10px 20px;border-radius:10px;font-size:13px;cursor:pointer;white-space:nowrap}
.followup-input-row button:disabled{opacity:.5}
.followup-result{margin-top:10px;padding:12px;background:var(--line-soft);border-radius:10px}

/* === Expert Chat Upload === */
.chat-upload-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.chat-upload-btn{background:var(--line-soft);border:1px dashed var(--line);border-radius:8px;padding:6px 14px;font-size:12px;cursor:pointer;color:var(--sub);transition:all .15s}
.chat-upload-btn:hover{background:var(--pri);color:#fff;border-color:var(--pri);border-style:solid}
.chat-upload-files{font-size:11px;color:var(--sub);display:flex;flex-wrap:wrap;gap:4px}

/* === Workflow Steps === */
.workflow-steps{display:flex;flex-direction:column;gap:12px}
.step-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
.step-head{display:flex;align-items:center;gap:8px;padding:14px 18px;cursor:pointer;font-weight:600;font-size:15px;background:var(--line-soft);user-select:none;transition:background .15s}
.step-head:hover{background:var(--line)}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--pri);color:#fff;font-size:12px;font-weight:700;flex-shrink:0}
.step-status{margin-left:auto;font-size:12px;color:#4CAF50;font-weight:400}
.step-arrow{font-size:11px;color:var(--sub);margin-left:6px}
.step-body{padding:16px 18px}

/* Template cards */
.tpl-card{border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer;transition:all .15s;min-width:120px}
.tpl-card:hover{border-color:var(--pri);background:#f0f7ff}
.tpl-card.selected{border-color:var(--pri);background:#e3f2fd;box-shadow:0 0 0 2px rgba(33,150,243,.2)}

/* Data source folder items */
.ds-folder-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--line-soft);border-radius:6px;margin-bottom:4px;font-size:12px}
.ds-folder-item button{background:none;border:none;cursor:pointer;color:#d64545;font-size:14px;padding:2px 6px}
.ds-folder-item button:hover{background:#fee;border-radius:4px}


/* Chat export bar - always visible */
.chat-export-bar{display:flex !important;gap:8px;margin-top:8px;flex-wrap:wrap;padding:6px 0;opacity:1 !important;position:relative;z-index:10}
.chat-export-bar .dl-btn{font-size:11px !important;padding:4px 10px !important}
.chat-msg.ai .chat-export-bar{margin-top:6px}

/* ============================================================
   DESKTOP ENHANCEMENTS — 视觉层次 & 交互优化
   ============================================================ */

/* 胶囊式Tab导航 */
.studio-tabs { display:flex; gap:10px; flex-wrap:wrap; padding:4px 0 18px; }
.studio-tab {
  border-radius:20px; padding:7px 18px; font-size:13px; font-weight:500;
  border:1px solid var(--line); background:var(--bg); color:var(--text-sub);
  cursor:pointer; transition:all .25s ease; white-space:nowrap;
}
.studio-tab:hover { border-color:#d92b2b33; color:#d92b2b; background:#fef2f2; }
.studio-tab.on {
  background:#d92b2b; color:#fff; border-color:#d92b2b;
  box-shadow:0 4px 12px rgba(217,43,43,.25);
}

/* 诊断面板视觉分离 */
.diag { gap:24px; }
.diag .panel {
  background:var(--bg-soft, #f8f9fb); border:1px solid var(--line);
  border-radius:14px; padding:20px; transition:box-shadow .2s;
}
.diag .panel:hover { box-shadow:0 4px 16px rgba(0,0,0,.06); }

/* 卡片悬停微动效 */
.card, .grid .card, .m-card {
  transition:transform .2s ease, box-shadow .2s ease;
}
.card:hover, .grid .card:hover, .m-card:hover {
  transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.08);
}

/* 报告区域工具栏 */
.report-box {
  border:1px solid var(--line); border-radius:14px;
  background:var(--bg); overflow:hidden;
}

/* 页面标题增强 */
.page-hd { margin-bottom:24px; }
.page-hd h2 { font-size:24px; font-weight:700; letter-spacing:-.3px; }
.page-hd p { color:var(--text-sub); margin-top:4px; font-size:13.5px; }

/* 文件上传拖拽样式 */
.upload-zone {
  border:2px dashed var(--line); border-radius:12px; padding:24px;
  text-align:center; color:var(--text-sub); cursor:pointer;
  transition:border-color .2s, background .2s;
}
.upload-zone:hover, .upload-zone.dragover {
  border-color:#d92b2b; background:#fef2f2;
}

/* 按钮加载动画 */
.btn-loading { pointer-events:none; opacity:.7; }
.btn-loading::after {
  content:''; display:inline-block; width:14px; height:14px;
  border:2px solid #fff; border-top-color:transparent; border-radius:50%;
  animation:spin .6s linear infinite; margin-left:8px; vertical-align:middle;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* 闪烁光标（流式输出） */
.cursor {
  display:inline-block; width:2px; height:1em; background:#d92b2b;
  animation:blink .8s infinite; vertical-align:text-bottom; margin-left:2px;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }

/* 间距优化 */
.container { padding:28px 32px; }
.section-gap { margin-bottom:24px; }

/* ============================================================
   MOBILE RESPONSIVE — 移动端适配
   ============================================================ */

/* 底部导航栏 */
.mobile-nav {
  display:none; position:fixed; bottom:0; left:0; right:0; z-index:900;
  background:var(--bg); border-top:1px solid var(--line);
  padding:6px 0 env(safe-area-inset-bottom, 8px); /* iPhone notch */
  box-shadow:0 -2px 12px rgba(0,0,0,.06);
}
.mobile-nav .mnav-row {
  display:flex; justify-content:space-around; align-items:center;
}
.mobile-nav .mnav-item {
  display:flex; flex-direction:column; align-items:center; gap:2px;
  padding:6px 12px; border-radius:8px; cursor:pointer;
  color:var(--text-sub); font-size:10px; text-decoration:none;
  transition:color .2s; min-width:56px; min-height:44px;
}
.mobile-nav .mnav-item .mnav-icon { font-size:20px; line-height:1; }
.mobile-nav .mnav-item.on { color:#d92b2b; font-weight:600; }
.mobile-nav .mnav-item:active { transform:scale(.92); }

/* 汉堡菜单按钮 */
.hamburger-btn {
  display:none; background:none; border:none; font-size:22px;
  cursor:pointer; padding:8px; margin-right:8px; color:var(--text);
  border-radius:8px; transition:background .2s;
}
.hamburger-btn:hover { background:var(--line-soft, #f0f0f0); }

/* 抽屉导航 */
.mobile-drawer-overlay {
  display:none; position:fixed; inset:0; z-index:950;
  background:rgba(0,0,0,.4); opacity:0; transition:opacity .3s;
}
.mobile-drawer-overlay.show { display:block; opacity:1; }
.mobile-drawer {
  position:fixed; top:0; left:0; bottom:0; width:280px; z-index:960;
  background:var(--bg); transform:translateX(-100%); transition:transform .3s ease;
  box-shadow:4px 0 20px rgba(0,0,0,.1); overflow-y:auto;
  padding:20px 0;
}
.mobile-drawer.open { transform:translateX(0); }
.mobile-drawer .drawer-head {
  padding:16px 20px; border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:12px; margin-bottom:8px;
}
.mobile-drawer .drawer-head img { width:36px; height:36px; border-radius:8px; }
.mobile-drawer .drawer-head h3 { font-size:15px; font-weight:600; }
.mobile-drawer .drawer-nav a {
  display:flex; align-items:center; gap:12px; padding:14px 20px;
  color:var(--text); text-decoration:none; font-size:14px;
  transition:background .2s;
}
.mobile-drawer .drawer-nav a:hover,
.mobile-drawer .drawer-nav a.on { background:#fef2f2; color:#d92b2b; }
.mobile-drawer .drawer-nav a .ni { font-size:18px; }

/* 折叠面板按钮 */
.mobile-collapse-btn {
  display:none; width:100%; padding:10px; background:var(--line-soft, #f0f0f0);
  border:none; border-radius:8px; font-size:13px; color:var(--text-sub);
  cursor:pointer; margin-bottom:12px; text-align:center;
}

/* ---- 768px 平板适配 ---- */
@media (max-width: 768px) {
  /* 侧边栏隐藏，使用抽屉 */
  .sidebar { display:none !important; }
  .hamburger-btn { display:block; }
  .mobile-nav { display:block; }
  
  /* 主内容区域全宽 */
  .mainwrap { margin-left:0 !important; }
  .layout { display:block; }
  
  /* 顶栏调整 */
  .topbar { padding:12px 16px; }
  .topbar .brand { font-size:15px; }
  .topbar .brand small { display:none; }
  .top-right .userbox { display:none; }
  
  /* 容器内边距缩小 */
  .container { padding:16px; }
  
  /* 诊断区域上下堆叠 */
  .diag { flex-direction:column !important; display:flex !important; }
  .diag .panel { width:100% !important; min-width:0 !important; }
  
  /* Tab横向滑动 */
  .studio-tabs {
    flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scrollbar-width:none; padding-bottom:12px;
  }
  .studio-tabs::-webkit-scrollbar { display:none; }
  
  /* 折叠按钮显示 */
  .mobile-collapse-btn { display:block; }
  
  /* 底部留出导航栏空间 */
  .main { padding-bottom:72px; }
  
  /* 网格单列 */
  .grid-2, .grid-3, .grid-4 { grid-template-columns:1fr !important; }
  
  /* 卡片全宽 */
  .card, .m-card { padding:16px; }
  
  /* 悬浮机器人缩小 */
  #fab-ai { bottom:76px; right:12px; font-size:12px; padding:10px 14px; }
  #fab-panel { bottom:120px; right:12px; left:12px; width:auto; }
  
  /* 报告区域 */
  .report-box { border-radius:10px; }
  
  /* 专家对话 */
  .expert-card { flex-direction:column; }
  .expert-card .expert-info { padding-left:0; padding-top:12px; }
}

/* ---- 480px 小屏手机 ---- */
@media (max-width: 480px) {
  .container { padding:12px; }
  .page-hd h2 { font-size:20px; }
  .topbar { padding:10px 12px; }
  .topbar .brand { font-size:14px; }
  
  /* 更紧凑的卡片 */
  .card, .m-card { padding:12px; border-radius:10px; }
  
  /* 按钮全宽 */
  .btn-primary, .btn-outline { width:100%; text-align:center; }
  
  /* 底部导航更紧凑 */
  .mobile-nav .mnav-item { padding:4px 8px; min-width:48px; }
  .mobile-nav .mnav-item .mnav-icon { font-size:18px; }
  .mobile-nav .mnav-item { font-size:9px; }
  
  /* 悬浮机器人更小 */
  #fab-ai { bottom:72px; right:8px; padding:8px 12px; font-size:11px; }
}

/* 触摸优化：确保所有可点击区域 >= 44px */
@media (pointer: coarse) {
  .btn-primary, .btn-outline, .icon-btn, .studio-tab,
  .nav a, .mnav-item, .logout {
    min-height:44px; min-width:44px;
    display:inline-flex; align-items:center; justify-content:center;
  }
  .nav a { padding:12px 14px; }
}

/* 大模型页面优化 */
.page-hd {
  margin-bottom: 24px;
}
.page-hd h2 {
  font-size: 22px;
  font-weight: 600;
  color: #111827;
  margin: 0 0 6px 0;
}
.page-hd p {
  font-size: 13px;
  color: #6b7688;
  margin: 0;
  line-height: 1.5;
}

.card input,
.card select {
  padding: 9px 12px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 13.5px;
  transition: border-color 0.2s;
}

.card input:focus,
.card select:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.card .btn-primary,
.card .btn-outline {
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 500;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.card .btn-primary {
  background: #22c55e;
  color: white;
  border: none;
}

.card .btn-primary:hover {
  background: #16a34a;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(34, 197, 94, 0.25);
}

.card .btn-outline {
  background: white;
  color: #374151;
  border: 1px solid #d1d5db;
}

.card .btn-outline:hover {
  background: #f9fafb;
  border-color: #9ca3af;
}

#md-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

#md-list .rep-row {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 14px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: box-shadow 0.2s;
}

#md-list .rep-row:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

#md-list .info .rt {
  font-size: 14.5px;
  font-weight: 500;
  color: #111827;
  margin-bottom: 4px;
}

#md-list .info .rm {
  font-size: 12px;
  color: #6b7688;
  font-family: 'Courier New', monospace;
}

#md-list .tag {
  display: inline-block;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: 8px;
  font-weight: 500;
}

#md-list .acts {
  display: flex;
  gap: 8px;
}

#md-list .mini {
  padding: 6px 12px;
  font-size: 12.5px;
  border-radius: 6px;
  border: 1px solid #d1d5db;
  background: white;
  cursor: pointer;
  transition: all 0.2s;
}

#md-list .mini:hover {
  background: #f3f4f6;
}

#md-list .mini.view {
  background: #3b82f6;
  color: white;
  border-color: #3b82f6;
}

#md-list .mini.view:hover {
  background: #2563eb;
}

#md-list .mini.md {
  background: #8b5cf6;
  color: white;
  border-color: #8b5cf6;
}

#md-list .mini.md:hover {
  background: #7c3aed;
}

#md-list .mini.del {
  background: white;
  color: #dc2626;
  border-color: #fca5a5;
}

#md-list .mini.del:hover {
  background: #fef2f2;
}

@media (max-width: 768px) {
  .page-hd h2 {
    font-size: 20px;
  }
}

@media (max-width: 768px) {
  .page-hd {
    margin-bottom: 20px;
  }
  .page-hd p {
    font-size: 12.5px;
  }
  
  /* 大模型页面两列变单列 */
  [style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  
  .card {
    padding: 16px;
  }
  
  .card input,
  .card select {
    font-size: 13px;
    padding: 8px 10px;
  }
  
  .card .btn-primary,
  .card .btn-outline {
    font-size: 13.5px;
    padding: 9px 14px;
  }
  
  #md-list .rep-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
  }
  
  #md-list .acts {
    width: 100%;
    justify-content: flex-start;
  }
  
  #md-list .mini {
    flex: 1;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .page-hd h2 {
    font-size: 18px;
  }
  
  .card {
    padding: 14px;
  }
  
  #md-list .info .rt {
    font-size: 13.5px;
  }
  
  #md-list .info .rm {
    font-size: 11px;
    word-break: break-all;
  }
}

/* ====== v1.2 新增样式（工作流+通知+进度） ====== */
.wf-panel{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-top:12px}
.wf-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.wf-header h3{margin:0;font-size:16px}
.wf-body{padding:20px}
.wf-body .diag{display:grid;gap:16px;align-items:start}
.wf-history{padding:12px 16px;border-top:1px solid var(--border)}
.wf-history-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:13px;transition:background .15s}
.wf-history-item:hover{background:var(--hover)}
.wf-history-item span:first-child{flex:1}
.file-drop{border:2px dashed var(--border);border-radius:10px;padding:24px 16px;text-align:center;color:var(--sub);cursor:pointer;transition:all .2s;font-size:13px}
.file-drop:hover,.file-drop.drag{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.file-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.file-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--bg);border:1px solid var(--border);border-radius:16px;font-size:12px}
.file-chip .x{cursor:pointer;color:var(--sub);font-size:14px;line-height:1;margin-left:2px}
.file-chip .x:hover{color:#e74c3c}
textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg);color:var(--txt);resize:vertical;font-family:inherit;box-sizing:border-box}
textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
#notif-panel{position:fixed;top:56px;right:16px;width:360px;max-height:480px;overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.12);z-index:900;padding:0}
#notif-panel:empty::after{content:'暂无通知';display:block;padding:24px;text-align:center;color:var(--sub);font-size:13px}
.notif-item{padding:12px 16px;border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer;transition:background .15s}
.notif-item:last-child{border-bottom:none}
.notif-item:hover{background:var(--hover)}
.notif-item.unread{background:var(--accent-bg)}
.notif-item .notif-t{font-size:13px;font-weight:600;margin-bottom:2px}
.notif-item .notif-d{font-size:12px;color:var(--sub)}
.notif-item .notif-time{font-size:11px;color:var(--faint);margin-top:4px}
.notif-badge{position:relative}
.notif-badge[data-count]:not([data-count="0"])::after{content:attr(data-count);position:absolute;top:-4px;right:-4px;background:#e74c3c;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.status-bar{display:flex;align-items:center;gap:10px;padding:16px;color:var(--sub);font-size:14px}
.status-bar .spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:16px 0}
.dash-stat{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;text-align:center}
.dash-stat .n{font-size:24px;font-weight:700;color:var(--accent)}
.dash-stat .l{font-size:12px;color:var(--sub);margin-top:4px}

/* ===== v1.2: 诊断类别与使用步骤样式 ===== */
.diag-steps { display:flex; gap:8px; align-items:center; margin-bottom:20px; padding:14px 20px; background:var(--bg-soft,#f8f9fb); border-radius:10px; border:1px solid var(--line-soft,#e5e7eb); }
.step-card-mini { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--txt,#1a1a2e); padding:8px 14px; background:#fff; border-radius:8px; border:1px solid var(--line-soft,#e5e7eb); box-shadow:0 1px 3px rgba(0,0,0,.04); }
.step-num-sm { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:var(--pri,#2e7d32); color:#fff; font-size:12px; font-weight:700; }
.step-arrow-sm { color:var(--faint,#b0b8c4); font-size:16px; }
.diag-cats { display:flex; flex-wrap:wrap; gap:8px; }
.diag-cat { display:inline-flex; align-items:center; gap:4px; padding:7px 14px; border-radius:8px; border:1px solid var(--line-soft,#e5e7eb); background:#fff; font-size:13px; cursor:pointer; transition:all .2s; font-weight:500; }
.diag-cat:hover { border-color:var(--pri,#2e7d32); color:var(--pri,#2e7d32); background:var(--pri-soft,#f0fdf4); }
.diag-cat.on { border-color:var(--pri,#2e7d32); background:var(--pri,#2e7d32); color:#fff; }
.diag-questions { display:flex; flex-wrap:wrap; gap:6px; }
.q-btn { display:inline-block; padding:5px 12px; border-radius:6px; border:1px solid #e5e7eb; background:#fff; font-size:12px; cursor:pointer; transition:all .2s; color:var(--txt,#1a1a2e); }
.q-btn:hover { border-color:var(--pri,#2e7d32); color:var(--pri,#2e7d32); background:var(--pri-soft,#f0fdf4); }
.q-btn.on { border-color:var(--pri,#2e7d32); background:var(--pri-soft,#f0fdf4); color:var(--pri,#2e7d32); font-weight:600; }
.expert-pick { display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:8px; border:1px solid var(--line-soft,#e5e7eb); margin-bottom:6px; cursor:pointer; transition:all .2s; }
.expert-pick:hover { border-color:var(--pri,#2e7d32); background:var(--pri-soft,#f0fdf4); }
.expert-pick.on { border-color:var(--pri,#2e7d32); background:var(--pri-soft,#f0fdf4); }
.expert-pick-icon { font-size:20px; flex-shrink:0; }

/* ===== v1.2: 工作流增强样式 ===== */
.wf-panel { margin-top:16px; }
.wf-header { display:flex; align-items:center; gap:10px; margin-bottom:12px; padding:10px 14px; background:var(--bg-soft,#f8f9fb); border-radius:8px; }
.wf-header h3 { margin:0; font-size:15px; font-weight:700; }
.wf-body { display:flex; flex-direction:column; gap:12px; }
.wf-upload-zone { border:2px dashed var(--line-soft,#e5e7eb); border-radius:10px; padding:16px; text-align:center; cursor:pointer; transition:all .2s; }
.wf-upload-zone:hover, .wf-upload-zone.drag { border-color:var(--pri,#2e7d32); background:var(--pri-soft,#f0fdf4); }
.wf-data-table { width:100%; border-collapse:collapse; font-size:12.5px; margin-top:8px; }
.wf-data-table th { background:var(--bg-soft,#f8f9fb); padding:8px 10px; text-align:left; font-weight:600; border-bottom:2px solid var(--line-soft,#e5e7eb); }
.wf-data-table td { padding:7px 10px; border-bottom:1px solid var(--line-soft,#e5e7eb); }
.wf-data-table tr:hover td { background:var(--pri-soft,#f0fdf4); }
.wf-history-item { display:flex; justify-content:space-between; align-items:center; padding:8px 10px; border-bottom:1px solid var(--line-soft,#e5e7eb); cursor:pointer; font-size:12.5px; }
.wf-history-item:hover { background:var(--pri-soft,#f0fdf4); }
.wf-template-btn { display:inline-flex; align-items:center; gap:4px; padding:6px 12px; background:#fff; border:1px solid var(--pri,#2e7d32); color:var(--pri,#2e7d32); border-radius:6px; font-size:12px; cursor:pointer; transition:all .2s; }
.wf-template-btn:hover { background:var(--pri,#2e7d32); color:#fff; }

/* ===== v1.2: 任务板块样式 ===== */
.task-tabs { display:flex; gap:8px; margin-bottom:16px; }
.task-tab { padding:8px 18px; border-radius:8px; border:1px solid var(--line-soft,#e5e7eb); font-size:13px; cursor:pointer; transition:all .2s; font-weight:500; }
.task-tab.on { background:var(--pri,#2e7d32); color:#fff; border-color:var(--pri,#2e7d32); }
.task-card { padding:12px 16px; border-radius:8px; border:1px solid var(--line-soft,#e5e7eb); margin-bottom:8px; transition:all .2s; }
.task-card:hover { box-shadow:0 2px 8px rgba(0,0,0,.06); }
.task-card.done { opacity:.6; }
.task-card .task-actions { display:flex; gap:6px; margin-top:8px; }
.dept-select { padding:6px 12px; border:1px solid var(--line-soft,#e5e7eb); border-radius:6px; font-size:12.5px; background:#fff; }

/* ===== v1.2: 模型卡片样式 ===== */
.model-card { display:flex; align-items:center; gap:12px; padding:14px 18px; border-radius:10px; border:1px solid var(--line-soft,#e5e7eb); margin-bottom:8px; transition:all .2s; }
.model-card:hover { box-shadow:0 2px 8px rgba(0,0,0,.06); }
.model-status { display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:600; }
.model-status.connected { color:#16a34a; }
.model-status.disconnected { color:#dc2626; }
.model-dot { width:8px; height:8px; border-radius:50%; }
.model-dot.green { background:#16a34a; }
.model-dot.red { background:#dc2626; }

/* ===== v1.2: 政企分销模块样式 ===== */
.bizdist-header { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.bizdist-header h3 { margin:0; font-size:16px; font-weight:700; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-day { padding:8px 4px; border-radius:6px; border:1px solid var(--line-soft,#e5e7eb); text-align:center; font-size:12px; min-height:50px; transition:all .2s; }
.cal-day:hover { border-color:var(--pri,#2e7d32); background:var(--pri-soft,#f0fdf4); }
.cal-day .day-num { font-weight:700; font-size:13px; }
.cal-day .day-price { font-size:10px; color:var(--sub,#6b7688); margin-top:2px; }
.cal-day .day-change { font-size:9px; font-weight:600; }
.cal-day .day-change.up { color:#dc2626; }
.cal-day .day-change.down { color:#16a34a; }
.cal-day.weekend { background:var(--bg-soft,#f8f9fb); }
.cal-day.today { border-color:var(--pri,#2e7d32); background:var(--pri-soft,#f0fdf4); }

/* ===== v1.2: AI 停止按钮 ===== */
.lc-stop-btn {
  display:inline-flex; align-items:center; gap:4px;
  padding:8px 18px; margin-left:8px;
  background:#fee2e2; color:#dc2626; border:1px solid #fca5a5;
  border-radius:8px; font-size:13px; font-weight:600;
  cursor:pointer; transition:all .2s;
  animation: lc-stop-pulse 1.5s infinite;
}
.lc-stop-btn:hover { background:#dc2626; color:#fff; border-color:#dc2626; }
@keyframes lc-stop-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(220,38,38,.3); }
  50% { box-shadow: 0 0 0 6px rgba(220,38,38,0); }
}

/* ===== v1.2: AI 流式输出横幅 + 绿色脉动状态条 + 闪烁光标 ===== */
.lc-stream-banner {
  position:fixed; left:50%; bottom:24px; transform:translateX(-50%);
  z-index:1000;
  display:inline-flex; align-items:center; gap:10px;
  padding:11px 22px;
  background:rgba(46,125,50,.95); color:#fff;
  border-radius:24px;
  box-shadow:0 6px 24px rgba(46,125,50,.32), 0 0 0 4px rgba(46,125,50,.15);
  font-size:13.5px; font-weight:600;
  animation:lc-banner-in .35s ease-out, lc-banner-pulse 2s ease-in-out infinite .35s;
  backdrop-filter:saturate(140%) blur(6px);
}
.lc-stream-banner .lc-stream-dot {
  width:6px; height:6px; background:#fff; border-radius:50%;
  animation:lc-stream-dot 1.2s ease-in-out infinite;
}
.lc-stream-banner .lc-stream-dot:nth-child(2) { animation-delay:.15s; }
.lc-stream-banner .lc-stream-dot:nth-child(3) { animation-delay:.30s; }
@keyframes lc-banner-in { from { opacity:0; transform:translate(-50%,10px); } to { opacity:1; transform:translate(-50%,0); } }
@keyframes lc-banner-pulse {
  0%,100% { box-shadow:0 6px 24px rgba(46,125,50,.32), 0 0 0 4px rgba(46,125,50,.15); }
  50%     { box-shadow:0 6px 28px rgba(46,125,50,.45), 0 0 0 8px rgba(46,125,50,.06); }
}
@keyframes lc-stream-dot {
  0%,80%,100% { opacity:.3; transform:scale(.7); }
  40%         { opacity:1;  transform:scale(1.15); }
}

.metric.metric-wide{flex:1}.metric.metric-wide .n.sm{max-width:none}

/* ===== v1.2: 诊断搜索面板 ===== */
.diag-assistant-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.diag-assistant-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 16px;background:var(--card);color:var(--txt);border:1px solid var(--line);border-radius:11px;font-size:13px;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.diag-assistant-toggle:hover,.diag-assistant-toggle[aria-expanded="true"]{border-color:var(--pri);background:var(--pri-soft);color:var(--pri);box-shadow:0 4px 14px rgba(217,43,43,.12)}
.diag-search-panel{background:linear-gradient(135deg,var(--card),#fff8f8);border:1px solid #f0d7d7;border-radius:14px;padding:16px;margin:-8px 0 18px;box-shadow:0 8px 24px rgba(106,25,25,.07)}
.diag-search-panel[hidden]{display:none!important}
.diag-assistant-search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}
.diag-assistant-search-field{min-width:0;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:0 12px;transition:border-color .18s,box-shadow .18s}
.diag-assistant-search-field:focus-within{border-color:var(--pri);box-shadow:0 0 0 3px rgba(217,43,43,.10)}
.diag-assistant-search-field input{border:0;box-shadow:none;padding:10px 0;background:transparent;min-width:0}
.diag-assistant-search-field input:focus{box-shadow:none}
.diag-assistant-search-btn{height:42px;padding:0 21px;background:var(--pri);color:#fff;border-radius:10px;font-size:13px;font-weight:700}
.diag-assistant-search-btn:hover{background:var(--pri-deep);transform:translateY(-1px)}
.diag-assistant-close{width:42px;height:42px;background:var(--card);color:var(--sub);border:1px solid var(--line);border-radius:10px;font-size:16px}
.diag-assistant-close:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft)}
.diag-assistant-faq-title{display:flex;align-items:center;gap:9px;margin:15px 2px 9px;color:var(--txt)}
.diag-assistant-faq-title strong{display:block;font-size:13px}.diag-assistant-faq-title small{display:block;color:var(--sub);font-size:11px;font-weight:400;margin-top:1px}
.diag-assistant-faq{display:flex;flex-wrap:wrap;gap:7px}
.diag-assistant-faq-chip{max-width:100%;padding:7px 11px;background:var(--card);color:var(--txt);border:1px solid var(--line);border-radius:9px;font-size:12px;text-align:left;white-space:normal;line-height:1.45}
.diag-assistant-faq-chip span{color:var(--pri);font-size:10px;font-weight:700;margin-right:5px}
.diag-assistant-faq-chip:hover{border-color:var(--pri);background:var(--pri-soft);transform:translateY(-1px)}
.diag-assistant-results{max-height:210px;overflow:auto;margin-top:10px;border-radius:10px}
.diag-assistant-result{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--card);color:var(--txt);border:0;border-bottom:1px solid var(--line-soft);border-radius:0;text-align:left}
.diag-assistant-result:hover{background:var(--pri-soft)}.diag-assistant-result strong{font-size:13px}.diag-assistant-result small{color:var(--sub);font-size:11px;white-space:nowrap}
.diag-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.diag-main-column{display:flex;flex-direction:column;gap:16px;min-width:0}
@media(max-width:960px){.diag-workspace{grid-template-columns:1fr}.diag-workspace>div:last-child{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:760px){.diag-assistant-head{align-items:flex-start}.diag-assistant-toggle{min-height:38px;padding:8px 12px}.diag-assistant-search{grid-template-columns:minmax(0,1fr) auto}.diag-assistant-search-btn{padding:0 15px}.diag-assistant-close{grid-column:2;width:auto;height:34px}.diag-assistant-faq{display:grid;grid-template-columns:1fr}.diag-workspace>div:last-child{display:flex}.diag-search-panel{padding:12px;margin-top:-4px}}

/* ===== v1.2: 云端同步卡片 ===== */
.cloud-sync-card { padding:14px; border:1px solid var(--line-soft,#e5e7eb); border-radius:10px; background:#fff; transition:all .2s; }
.cloud-sync-card:hover { border-color:var(--pri,#2e7d32); box-shadow:0 2px 8px rgba(0,0,0,.06); }

/* ===== v1.2: 全局搜索结果 ===== */
#global-search-results .card { border-left:3px solid var(--pri,#2e7d32); }

/* ===== v1.2: 运营商智能自动化 ===== */
#cr-body .wf-board { background:var(--card,#fff); border-radius:12px; padding:20px; border:1px solid var(--border,#e8eaed); }
#cr-body .wf-title { font-size:18px; font-weight:700; margin-bottom:4px; }
#cr-body .wf-sub { font-size:13px; color:var(--faint,#888); margin-bottom:12px; }
#cr-body .wf-select { width:100%; padding:8px 12px; border:1px solid var(--border,#e8eaed); border-radius:6px; font-size:13px; background:#fff; }
#cr-body .wf-input { width:100%; padding:8px 12px; border:1px solid var(--border,#e8eaed); border-radius:6px; font-size:13px; }
#cr-body .upload-zone { border:2px dashed var(--border,#e8eaed); border-radius:8px; padding:16px; text-align:center; cursor:pointer; transition:all .2s; position:relative; }
#cr-body .upload-zone:hover, #cr-body .upload-zone.dragover { border-color:var(--pri,#2e7d32); background:rgba(46,125,50,.03); }
#cr-body .upload-zone input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; }
#cr-body .upload-icon { font-size:24px; margin-bottom:4px; }
#cr-body .upload-label { font-size:13px; font-weight:600; }
#cr-body .upload-hint { font-size:11px; color:var(--faint,#888); }
#cr-body .wf-history-item { display:flex; justify-content:space-between; align-items:center; padding:10px 14px; border-bottom:1px solid var(--border,#e8eaed); transition:background .15s; }
#cr-body .wf-history-item:hover { background:var(--bg-alt,#f5f5f5); }
.carrier-history-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) 112px;gap:10px;align-items:center;margin-bottom:14px}.carrier-history-toolbar .wf-select{width:100%;height:44px;margin:0}.carrier-history-refresh{width:112px;height:44px;margin:0!important;padding:0 16px;background:var(--pri);color:#fff;border:1px solid var(--pri);border-radius:9px;font-size:13px;font-weight:700;box-shadow:0 3px 10px rgba(217,43,43,.18)}.carrier-history-refresh:hover{background:var(--pri-deep);border-color:var(--pri-deep);transform:translateY(-1px);box-shadow:0 5px 14px rgba(217,43,43,.24)}
#cr-body .carrier-history-item{width:100%;background:var(--card);color:var(--txt);border-radius:0;text-align:left;gap:16px}
#cr-body .carrier-history-item:first-child{border-radius:10px 10px 0 0}#cr-body .carrier-history-item:last-child{border-radius:0 0 10px 10px}
#cr-body .carrier-history-type{display:inline-block;font-size:11px;color:var(--pri);background:var(--pri-soft);padding:3px 8px;border-radius:12px;margin-right:9px;font-weight:700}
#cr-body .carrier-history-title{font-size:13px;font-weight:600}.carrier-history-open{display:flex;gap:10px;align-items:center;color:var(--faint);font-size:11px;white-space:nowrap}.carrier-history-view{display:inline-flex;align-items:center;justify-content:center;min-width:58px;height:32px;padding:0 12px;color:var(--pri);background:var(--card);border:1px solid var(--pri);border-radius:7px;font-size:12px;font-weight:700}.carrier-history-item:hover .carrier-history-view{background:var(--pri);color:#fff}
.carrier-history-detail{border:1px solid #efd4d4;background:var(--card);border-radius:12px;margin:12px 0 16px;overflow:hidden;box-shadow:0 8px 24px rgba(106,25,25,.08)}.carrier-history-detail[hidden]{display:none!important}
.carrier-history-detail-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:linear-gradient(100deg,var(--pri-soft),var(--card));border-bottom:1px solid var(--line)}.carrier-history-detail-head strong{display:block;font-size:16px}.carrier-history-detail-head small{display:block;color:var(--sub);font-size:11px;margin-top:3px}.carrier-history-detail-head button{width:34px;height:34px;background:var(--card);color:var(--sub);border:1px solid var(--line)}
.carrier-history-detail-actions{display:flex;gap:8px;padding:12px 18px 0}.carrier-history-detail .report-body{min-height:180px;max-height:520px}
@media(max-width:760px){.carrier-history-toolbar{grid-template-columns:minmax(0,1fr) 96px}.carrier-history-refresh{width:96px}.carrier-history-toolbar .wf-select{min-width:0}#cr-body .carrier-history-item{align-items:flex-start;flex-direction:column}.carrier-history-open{width:100%;justify-content:space-between}.carrier-history-detail-actions{flex-wrap:wrap}.carrier-history-detail-actions .dl-btn{flex:1;text-align:center}}

/* Carrier number analysis card */
.cr-num-score { font-size:48px; font-weight:800; color:var(--pri,#2e7d32); text-align:center; margin:16px 0; }
.cr-num-label { font-size:13px; color:var(--faint,#888); text-align:center; }

/* Carrier checkbox group */
#cr-body label input[type=checkbox] { accent-color:var(--pri,#2e7d32); width:16px; height:16px; }

/* ===== v1.2: AI streaming typing cursor ===== */
@keyframes lc-blink { 0%,100%{opacity:1} 50%{opacity:0} }
.lc-typing-cursor { display:inline; font-size:inherit; line-height:inherit; }

/* Enhanced status-bar with pulse animation */
.status-bar { display:flex; align-items:center; gap:10px; padding:14px 20px; color:#1b5e20; font-size:14px; font-weight:600; background:linear-gradient(90deg,rgba(46,125,50,.06),rgba(46,125,50,.14),rgba(46,125,50,.06)); background-size:200% 100%; animation:lc-status-pulse 2s ease-in-out infinite; border:1px solid rgba(46,125,50,.18); border-radius:8px; margin:8px 0; }
@keyframes lc-status-pulse { 0%,100%{background-position:0% 50%} 50%{background-position:100% 50%} }
.status-bar .spinner { width:18px; height:18px; border:2.5px solid rgba(46,125,50,.2); border-top-color:#2e7d32; border-radius:50%; animation:spin .7s linear infinite; flex-shrink:0; }

/* 真实分析工作轨迹：只呈现可验证阶段，不展示模型内部思维 */
.analysis-trace{margin:10px 0 14px;border:1px solid #dfe5e2;border-radius:14px;background:linear-gradient(180deg,#fbfdfc,#f5f9f7);box-shadow:0 8px 24px rgba(28,70,49,.06);overflow:hidden;color:var(--txt)}
.analysis-trace-summary{list-style:none;cursor:pointer;padding:13px 16px;font-size:13px;font-weight:750;color:#245c40;display:flex;align-items:center;gap:8px;outline:none}
.analysis-trace-summary::-webkit-details-marker{display:none}.analysis-trace-summary::after{content:'⌄';margin-left:auto;color:#769184;transition:transform .18s ease}.analysis-trace[open] .analysis-trace-summary::after{transform:rotate(180deg)}
.analysis-trace-summary:focus-visible{box-shadow:inset 0 0 0 3px rgba(35,126,76,.24)}
.analysis-trace-list{list-style:none;margin:0;padding:0 16px 14px;display:grid;gap:4px}
.analysis-trace-step{display:grid;grid-template-columns:22px minmax(0,1fr) 44px;gap:8px;align-items:start;min-height:31px;padding:5px 0;color:#8a9690;font-size:12px}
.analysis-trace-mark{width:18px;height:18px;border:1px solid #cbd6d0;border-radius:50%;display:grid;place-items:center;font-size:10px;line-height:1;background:#fff}.analysis-trace-copy{min-width:0}.analysis-trace-copy strong{display:block;font-weight:650;white-space:normal;overflow-wrap:anywhere}.analysis-trace-copy small{display:block;color:#7b8981;margin-top:2px;overflow-wrap:anywhere}.analysis-trace-step time{text-align:right;color:#98a39d;font-variant-numeric:tabular-nums}
.analysis-trace-step.is-running{color:#17683b}.analysis-trace-step.is-running .analysis-trace-mark{background:#1f8b4c;border-color:#1f8b4c;color:#fff;animation:tracePulse 1.4s ease-in-out infinite}.analysis-trace-step.is-completed{color:#365c47}.analysis-trace-step.is-completed .analysis-trace-mark{background:#e5f5eb;border-color:#96caaa;color:#19713f}.analysis-trace-step.is-warning{color:#9a6400}.analysis-trace-step.is-warning .analysis-trace-mark{background:#fff4d6;border-color:#e3bd64;color:#9a6400}.analysis-trace-step.is-failed{color:#b3261e}.analysis-trace-step.is-failed .analysis-trace-mark{background:#ffe9e7;border-color:#e4a09b;color:#b3261e}.analysis-trace-step.is-cancelled{color:#606a65}
.analysis-trace[data-state="completed"]{background:#f7fbf8}.analysis-trace[data-state="failed"]{border-color:#e7b1ad}.analysis-trace[data-state="cancelled"]{border-color:#cbd2ce}
.analysis-trace[data-state="completed"] .analysis-trace-step.is-waiting{display:none}
@keyframes tracePulse{0%,100%{box-shadow:0 0 0 0 rgba(31,139,76,.22)}50%{box-shadow:0 0 0 5px rgba(31,139,76,0)}}
@media(max-width:600px){.analysis-trace{border-radius:11px;margin:8px 0 12px}.analysis-trace-summary{padding:12px 13px}.analysis-trace-list{padding:0 13px 12px}.analysis-trace-step{grid-template-columns:20px minmax(0,1fr) 38px;gap:6px}}
@media(prefers-reduced-motion:reduce){.analysis-trace *{animation:none!important;transition:none!important}}

/* Progress dots animation for "thinking" state */
.lc-thinking { display:inline-flex; gap:4px; margin-left:8px; }
.lc-thinking span { width:6px; height:6px; background:var(--pri,#2e7d32); border-radius:50%; animation:lc-dots 1.4s ease-in-out infinite; }
.lc-thinking span:nth-child(2) { animation-delay:.2s; }
.lc-thinking span:nth-child(3) { animation-delay:.4s; }
@keyframes lc-dots { 0%,80%,100%{transform:scale(0);opacity:.3} 40%{transform:scale(1);opacity:1} }
.media-config{margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:10px}.media-config summary{cursor:pointer;font-weight:600}.media-config input{margin-top:8px}.media-config button{margin-top:8px}
.auth-card{animation:auth-enter .48s cubic-bezier(.2,.75,.25,1) both}.auth-wrap::before{animation:auth-glow .7s ease-out both}@keyframes auth-enter{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@keyframes auth-glow{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
.authorization-console,#perm-host{--auth-forest:#123c2f;--auth-graphite:#27312d;--auth-amber:#a76500;--auth-danger:#a92d27;--auth-mist:#edf3ef;--card:#fff;--txt:#27312d;--sub:#5d6b64;--faint:#6f7d76;--line:#d5dfda;--line-soft:#e6ece9;color:#27312d;color-scheme:light}.vendor-console-head{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:28px 30px;background:linear-gradient(125deg,#123c2f,#1b5744);color:#fff;border-radius:16px 16px 0 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}.vendor-console-head h2{margin:5px 0 6px;color:#fff;font-size:29px;line-height:1.25;font-weight:850;letter-spacing:-.02em}.vendor-console-head p{margin:0;color:#d9eee3;font-size:13px;font-weight:600;line-height:1.65}.auth-eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#2b7453}.vendor-console-head .auth-eyebrow{color:#b5e8cc;font-size:12px;letter-spacing:.14em}.vendor-cloud-state{padding:8px 12px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(255,255,255,.11);color:#fff;font-size:12px;font-weight:750;white-space:nowrap}.auth-level-guide{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:13px;padding:15px 20px;border:1px solid #cfdcd5;border-top:0;background:#f8fbf9}.auth-level-guide>div{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:10px;align-items:center}.auth-level-guide>div>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#123c2f;color:#fff;font-size:15px;font-weight:900}.auth-level-guide b{color:#1d2e26;font-size:13px}.auth-level-guide small{margin-top:2px;color:#5d6b64;font-size:11px}.auth-level-guide>i{color:#7c9186;font-style:normal;font-size:18px}.vendor-console-nav{display:flex;gap:6px;padding:10px 12px;background:#edf3ef;border:1px solid #cfdcd5;border-top:0;overflow:auto;margin-bottom:18px;border-radius:0 0 16px 16px}.vendor-console-nav button{min-height:44px;border:1px solid transparent;background:transparent;color:#24342c;padding:10px 15px;white-space:nowrap;border-radius:9px;font-size:14px;font-weight:750}.vendor-console-nav button:hover{background:#e1ebe6;color:#123c2f}.vendor-console-nav button.is-active,.vendor-console-nav button:focus-visible{border-color:#d6e1db;background:#fff;color:#123c2f;box-shadow:inset 0 -3px 0 var(--auth-forest),0 3px 10px rgba(18,60,47,.07);outline:3px solid rgba(31,109,79,.15);outline-offset:1px}.auth-self-card{margin-top:20px;padding:20px;border:1px solid #d7e2dc;border-left:5px solid var(--auth-forest);border-radius:14px;background:#fff}.auth-self-card h3{margin:3px 0 12px}.auth-status-line{display:flex;align-items:center;gap:8px;margin-bottom:14px}.auth-status-dot{width:10px;height:10px;border-radius:50%;background:var(--auth-amber)}.auth-status-dot.is-active{background:#218554;box-shadow:0 0 0 4px #dff2e7}.auth-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px}.auth-facts div,.auth-self-grid>div{padding:12px;background:var(--auth-mist);border-radius:10px}.auth-facts dt{font-size:11px;color:#5f6e66}.auth-facts dd{margin:4px 0 0;color:#27312d;font-weight:750}.auth-self-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.auth-self-grid p{font-size:12px;color:#596960;line-height:1.6;margin:5px 0 0}@media(max-width:700px){.vendor-console-head{padding:22px 20px;display:block}.vendor-console-head h2{font-size:25px}.vendor-cloud-state{display:inline-block;margin-top:16px}.auth-level-guide{grid-template-columns:1fr;gap:8px}.auth-level-guide>i{display:none}.auth-facts,.auth-self-grid{grid-template-columns:1fr}.vendor-console-nav{gap:3px;border-radius:0 0 12px 12px}.vendor-console-nav button{padding:9px 12px;font-size:13px}}
.vendor-cloud-state i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#72d29a;box-shadow:0 0 0 4px rgba(114,210,154,.14)}
.vendor-head-actions{display:flex;align-items:center;gap:10px}.vendor-head-actions>button{padding:9px 15px;border:1px solid rgba(255,255,255,.75);border-radius:9px;background:#fff;color:var(--auth-forest);font-weight:800;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.12)}.vendor-head-actions>button:hover,.vendor-head-actions>button:focus-visible{background:#eaf4ef;outline:3px solid rgba(255,255,255,.2)}
.auth-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 16px}.auth-kpis article,.auth-kpis button{min-width:0;padding:15px 16px;border:1px solid #dce6e1;border-top:3px solid #2a7658;border-radius:12px;background:var(--card);color:inherit;text-align:left}.auth-kpis button{cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.auth-kpis button:hover,.auth-kpis button:focus-visible{transform:translateY(-2px);box-shadow:0 8px 22px rgba(18,60,47,.12);outline:2px solid #78b697;outline-offset:2px}.auth-kpis .is-warning{border-top-color:var(--auth-amber)}.auth-kpis .is-danger{border-top-color:var(--auth-danger)}.auth-kpis small,.auth-kpis span{display:block;color:var(--sub);font-size:11px}.auth-kpis strong{display:block;margin:7px 0 4px;color:var(--auth-graphite);font-size:22px;font-variant-numeric:tabular-nums}.auth-filter-summary{margin:0 2px 8px;color:var(--sub);font-size:11px}
.auth-workspace{display:grid;grid-template-columns:minmax(245px,29%) minmax(0,1fr);min-height:490px;border:1px solid #dbe5e0;border-radius:15px;background:var(--card);overflow:hidden}.auth-workspace-side{padding:14px;border-right:1px solid #dbe5e0;background:#f3f7f5}.auth-list-tools{display:grid;grid-template-columns:1fr 105px;gap:7px;margin-bottom:10px}.auth-list-tools input,.auth-list-tools select{min-width:0;padding:9px 10px;font-size:12px}.auth-customer-list{display:grid;gap:6px;max-height:600px;overflow:auto}.auth-customer-item{display:block;width:100%;padding:12px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--txt);text-align:left;cursor:pointer}.auth-customer-item:hover,.auth-customer-item.is-selected{border-color:#b7cec2;background:#fff;box-shadow:0 5px 16px rgba(18,60,47,.07)}.auth-customer-item>span:last-child{display:block;margin-top:6px;color:var(--sub);font-size:11px}.auth-customer-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.auth-customer-line strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-side-create{width:100%;margin-bottom:10px;padding:10px 12px;border:1px dashed #66977f;border-radius:9px;background:#e7f1ec;color:#111;font-weight:800;cursor:pointer}.auth-side-create:hover,.auth-side-create:focus-visible{border-style:solid;background:#dbece3;color:#111;outline:2px solid rgba(21,83,59,.18)}
.auth-state{display:inline-flex;align-items:center;width:max-content;padding:3px 8px;border-radius:999px;background:#e5f3eb;color:#176840;font-size:11px;font-weight:750;white-space:nowrap}.auth-state.is-pending{background:#fff3d8;color:#8a5a05}.auth-state.is-suspended,.auth-state.is-expired,.auth-state.is-revoked{background:#fde8e6;color:#a52f29}
.auth-customer-overview{padding:26px;min-width:0}.auth-overview-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.auth-overview-head h3,.auth-section-head h3{margin:4px 0;font-size:22px;color:var(--auth-graphite)}.auth-overview-head p,.auth-section-head p{margin:0;color:var(--sub);font-size:12px}.auth-status-axis{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:36px 0 26px}.auth-status-axis:before{content:'';position:absolute;left:6%;right:6%;top:7px;height:2px;background:#d8e2dd}.auth-status-axis>div{position:relative;z-index:1;display:grid;justify-items:center;text-align:center}.auth-status-axis i{width:15px;height:15px;border:3px solid #d5dfda;border-radius:50%;background:#fff}.auth-status-axis .is-done i,.auth-status-axis .is-current i{border-color:#267453;background:#267453;box-shadow:0 0 0 5px #e1f0e8}.auth-status-axis .is-alert i{border-color:var(--auth-danger);background:var(--auth-danger);box-shadow:0 0 0 5px #fae7e5}.auth-status-axis b{margin-top:11px;font-size:12px}.auth-status-axis span{margin-top:4px;color:var(--sub);font-size:10px}.auth-fact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.auth-fact-grid>div{padding:13px;border:1px solid #e0e7e3;border-radius:10px;background:#fafcfb}.auth-fact-grid small{display:block;color:var(--sub);font-size:10px}.auth-fact-grid b{display:block;margin-top:5px;font-size:14px}.auth-primary-actions{display:flex;gap:9px;align-items:center;margin-top:22px;flex-wrap:wrap}.auth-primary-actions>button,.auth-section-head>button,.auth-empty button,.auth-add-account,.auth-plan-editor>button{padding:9px 14px;border:1px solid var(--auth-forest);border-radius:8px;background:var(--auth-forest);color:#fff;font-weight:700;cursor:pointer}.auth-primary-actions>button+button{background:#fff;color:var(--auth-forest)}.auth-primary-actions details{position:relative;margin-left:auto}.auth-primary-actions summary{padding:9px 12px;border:1px solid #ccd8d2;border-radius:8px;cursor:pointer;list-style:none}.auth-primary-actions details>div{position:absolute;right:0;top:42px;z-index:4;width:150px;padding:6px;border:1px solid #d8e1dd;border-radius:9px;background:#fff;box-shadow:0 14px 36px rgba(18,40,31,.17)}.auth-primary-actions details button{width:100%;padding:8px;border:0;background:#fff;text-align:left;cursor:pointer}.auth-primary-actions .is-danger{color:var(--auth-danger)}
.auth-section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 14px}.auth-table-wrap{overflow:auto;border:1px solid #dce5e1;border-radius:12px;background:var(--card)}.auth-table-wrap table{width:100%;border-collapse:collapse}.auth-table-wrap th,.auth-table-wrap td{padding:13px 15px;border-bottom:1px solid #e6ece9;text-align:left;font-size:12px}.auth-table-wrap th{background:#f2f6f4;color:#627068}.auth-table-action{border:0;background:transparent;color:#176840;font-weight:750;cursor:pointer}.auth-plan-row{display:grid;grid-template-columns:190px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px;border-bottom:1px solid #e2e9e5;background:var(--card)}.auth-plan-row>div:first-child span{display:block;margin-top:4px;color:var(--sub);font-size:11px}.auth-plan-row>button{border:1px solid #c9d6d0;border-radius:7px;background:#fff;padding:8px 12px;cursor:pointer}.auth-route-pills{display:flex;flex-wrap:wrap;gap:5px}.auth-route-pills span{padding:3px 8px;border-radius:999px;background:#eaf2ee;color:#365b49;font-size:10px}.auth-audit-list{display:grid;border:1px solid #dce5e1;border-radius:12px;background:var(--card);overflow:hidden}.auth-audit-list article{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid #e7edea}.auth-audit-list article:last-child{border-bottom:0}.auth-audit-list i{width:8px;height:8px;border-radius:50%;background:#2c7859}.auth-audit-list b,.auth-audit-list span{display:block}.auth-audit-list span,.auth-audit-list time{color:var(--sub);font-size:11px}.auth-policy-note{margin-top:14px;padding:18px;border-left:4px solid var(--auth-amber);border-radius:8px;background:#fff7e6}.auth-policy-note p{margin:6px 0 0;color:#6f624b;font-size:12px}.auth-empty{padding:20px;color:var(--sub);text-align:center}.auth-empty-large{display:grid;place-content:center;gap:10px;min-height:360px}.auth-empty-large b{color:var(--txt);font-size:18px}
.auth-drawer-mask{position:fixed;inset:0;z-index:310;background:rgba(18,33,27,.32);opacity:0;pointer-events:none;transition:.18s}.auth-drawer-mask.is-open{opacity:1;pointer-events:auto}.auth-detail-drawer{position:fixed;top:0;right:0;bottom:0;z-index:311;display:flex;flex-direction:column;width:min(560px,94vw);padding:0;background:#fff;box-shadow:-24px 0 60px rgba(18,36,28,.2);transform:translateX(105%);transition:transform .22s ease;overflow:hidden}.auth-detail-drawer.is-open{transform:none}.auth-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 24px;background:#153f32;color:#fff;flex:none}.auth-drawer-head h3{margin:4px 0 0;font-size:22px}.auth-drawer-head button{border:0;background:rgba(255,255,255,.12);color:#fff;width:34px;height:34px;border-radius:8px;font-size:22px;cursor:pointer}.auth-drawer-tabs{display:flex;padding:8px 12px;border-bottom:1px solid #dde5e1;overflow:auto;flex:none}.auth-drawer-tabs button{padding:9px 11px;border:0;border-bottom:2px solid transparent;background:#fff;white-space:nowrap;cursor:pointer}.auth-drawer-tabs button.is-active{border-bottom-color:#1f6d4f;color:#15543b}.auth-drawer-body{padding:20px;overflow:auto;flex:1;min-height:0}.auth-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.auth-detail-list>div{padding:13px;border-radius:9px;background:#f2f6f4}.auth-detail-list dt{color:var(--sub);font-size:10px}.auth-detail-list dd{margin:5px 0 0;font-size:13px}.auth-drawer-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border-bottom:1px solid #e4ebe7}.auth-drawer-card b,.auth-drawer-card span{display:block}.auth-drawer-card span{margin-top:3px;color:var(--sub);font-size:11px}.auth-drawer-card summary{cursor:pointer;color:#1d674c;font-size:12px}.auth-drawer-card details>div{display:flex;gap:5px;margin-top:7px}.auth-drawer-card button{padding:6px 8px;border:1px solid #d4ded9;border-radius:6px;background:#fff;cursor:pointer}.auth-add-account{margin-bottom:10px}.auth-plan-editor{display:grid;gap:16px}.auth-plan-editor>label{display:grid;gap:6px}.auth-plan-editor fieldset{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:15px;border:1px solid #dce5e1;border-radius:10px}.auth-plan-editor legend{padding:0 6px}.auth-edit-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-top:1px solid #d8e2dd;background:#fff;box-shadow:0 -10px 28px rgba(18,50,37,.08);flex:none}.auth-edit-footer[hidden]{display:none}.auth-edit-footer>span{color:#728078;font-size:12px}.auth-edit-footer.is-dirty>span{color:#9a650a;font-weight:750}.auth-edit-footer>div{display:flex;gap:8px}.auth-edit-footer button{padding:10px 15px;border:1px solid #cdd9d3;border-radius:8px;background:#fff;color:#35433c;font-weight:750;cursor:pointer}.auth-edit-footer [data-confirm-edit]{border-color:#14533b;background:#14533b;color:#fff}.auth-edit-footer [data-confirm-edit]:disabled{border-color:#d8dfdc;background:#e8ecea;color:#95a09a;cursor:not-allowed}.auth-edit-hint,.auth-action-hint{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding:12px 14px;border-left:4px solid #287557;border-radius:7px;background:#edf6f1;color:#39584a}.auth-edit-hint span,.auth-action-hint{font-size:12px}.auth-action-hint{border-left-color:#c88719;background:#fff7e7;color:#6f5d36}.auth-profile-editor{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.auth-profile-editor label{display:grid;gap:6px;font-size:12px}.auth-profile-editor label:last-child{grid-column:1/-1}.auth-profile-editor input,.auth-profile-editor textarea{width:100%;box-sizing:border-box}.auth-readonly-facts{padding-top:16px;border-top:1px solid #e1e8e4}.vendor-dialog-error{min-height:20px;margin-top:8px;color:var(--auth-danger);font-size:12px}#vendor-dialog-reason{width:100%;box-sizing:border-box;margin-bottom:8px}
@media(max-width:1100px){.auth-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.vendor-head-actions{margin-top:14px;justify-content:space-between}.auth-kpis{grid-template-columns:repeat(2,1fr)}.auth-workspace{grid-template-columns:1fr}.auth-workspace-side{border-right:0;border-bottom:1px solid #dbe5e0}.auth-customer-list{display:flex;overflow:auto}.auth-customer-item{min-width:220px}.auth-customer-overview{padding:18px}.auth-status-axis{grid-template-columns:repeat(4,120px);overflow:auto;justify-content:start}.auth-fact-grid{grid-template-columns:1fr 1fr}.auth-plan-row{grid-template-columns:1fr}.auth-detail-list,.auth-profile-editor{grid-template-columns:1fr}.auth-profile-editor label:last-child{grid-column:auto}.auth-section-head{align-items:flex-start}.auth-table-wrap{margin:0 -4px}.auth-primary-actions{position:sticky;bottom:0;padding:10px;background:rgba(255,255,255,.94)}.auth-edit-footer{align-items:stretch;flex-direction:column}.auth-edit-footer>div{display:grid;grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.auth-detail-drawer,.auth-drawer-mask{transition:none}}
.knowledge-access-lock{display:grid;justify-items:center;max-width:650px;margin:70px auto;padding:44px 34px;border:1px solid #dfE6e2;border-top:5px solid #b83a32;border-radius:16px;background:var(--card);box-shadow:0 18px 48px rgba(32,50,41,.1);text-align:center}.knowledge-access-lock>span{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:#fbe9e7;font-size:32px}.knowledge-access-lock h2{margin:18px 0 8px;color:#29352f}.knowledge-access-lock p{margin:0;color:#b83a32;font-size:17px;font-weight:800}.knowledge-access-lock div{max-width:560px;margin:16px 0;color:var(--sub);font-size:13px;line-height:1.8}.knowledge-access-lock small{padding-top:14px;border-top:1px solid #e3e9e6;color:#77837d;line-height:1.6}
.dashboard-start{margin:16px 0 18px}.dashboard-section-copy>span{display:block;color:#b42323;font-size:11px;font-weight:850;letter-spacing:.08em}.dashboard-section-copy h2{margin:5px 0 5px;color:var(--txt);font-size:24px}.dashboard-section-copy p{margin:0 0 14px;color:var(--sub);font-size:13px;line-height:1.65}.dashboard-primary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard-task-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:11px;align-items:center;min-height:124px;padding:17px;border:1px solid var(--line);border-top:4px solid #d92b2b;border-radius:14px;background:var(--card);color:var(--txt);text-align:left;box-shadow:0 8px 24px rgba(36,48,42,.07);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.dashboard-task-card:hover,.dashboard-task-card:focus-visible{transform:translateY(-3px);border-color:#c83a3a;box-shadow:0 14px 32px rgba(110,32,32,.13);outline:3px solid rgba(217,43,43,.16);outline-offset:2px}.dashboard-task-card.is-primary{background:linear-gradient(145deg,#a81720,#d92b2b);border-color:#a81720;color:#fff}.dashboard-task-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#fff2f1;font-size:24px}.dashboard-task-card.is-primary .dashboard-task-icon{background:rgba(255,255,255,.16)}.dashboard-task-copy{min-width:0}.dashboard-task-copy b,.dashboard-task-copy small,.dashboard-task-copy em{display:block}.dashboard-task-copy b{font-size:16px}.dashboard-task-copy small{margin-top:5px;color:var(--sub);font-size:11.5px;line-height:1.55;font-weight:600}.dashboard-task-copy em{margin-top:6px;color:#8c342f;font-size:10.5px;font-style:normal;line-height:1.4}.dashboard-task-card.is-primary small,.dashboard-task-card.is-primary em{color:#ffe5e5}.dashboard-task-card>i{font-style:normal;font-size:19px}.dashboard-tools{margin:18px 0 22px;border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden}.dashboard-tools>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:60px;padding:10px 16px;cursor:pointer;list-style:none}.dashboard-tools>summary::-webkit-details-marker{display:none}.dashboard-tools>summary span b,.dashboard-tools>summary span small{display:block}.dashboard-tools>summary span b{font-size:15px}.dashboard-tools>summary span small{margin-top:4px;color:var(--sub);font-size:11px}.dashboard-tools>summary>i{color:#a52b2b;font-size:11px;font-style:normal;font-weight:750}.dashboard-tools .nav-grid{padding:0 14px 14px;margin-bottom:0}.dashboard-tools:not([open])>summary{border-bottom:0}
@media(max-width:1080px){.dashboard-primary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.dashboard-primary{grid-template-columns:1fr;gap:9px}.dashboard-task-card{min-height:96px;padding:14px}.dashboard-section-copy h2{font-size:21px}.dashboard-tools>summary{min-height:64px}.brand small{display:none}}
.perm-resetpw,.perm-del{appearance:none;border:0;background:transparent;padding:5px 4px;font:inherit;font-weight:650;color:#b52d2d;cursor:pointer;border-radius:6px}.perm-resetpw:hover,.perm-del:hover,.perm-resetpw:focus-visible,.perm-del:focus-visible{background:#fff0ef;outline:2px solid rgba(184,58,50,.25);outline-offset:1px}.account-action-dialog{position:fixed;inset:0;z-index:10020;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(20,31,26,.48);backdrop-filter:blur(4px)}.account-action-dialog.is-open{display:flex}.account-action-panel{width:min(440px,100%);padding:24px;border-radius:16px;background:#fff;box-shadow:0 24px 70px rgba(15,35,26,.28)}.account-action-panel h3{margin:0 0 8px;color:#123c2f}.account-action-panel p{margin:0 0 16px;color:#65716b;line-height:1.7}.account-action-panel label{display:block;margin-bottom:6px;font-size:13px;font-weight:700}.account-action-panel input{width:100%;box-sizing:border-box}.account-action-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.account-action-buttons button{padding:9px 16px;border:1px solid #ccd7d1;border-radius:9px;background:#fff;font-weight:700;cursor:pointer}.account-action-buttons #account-action-confirm{border-color:#123c2f;background:#123c2f;color:#fff}.account-action-buttons #account-action-confirm.is-danger{border-color:#b83a32;background:#b83a32}.account-action-buttons button:disabled{opacity:.6;cursor:wait}#account-action-error{min-height:20px;margin-top:8px;color:#b83a32;font-size:13px}
/* Device-bound license issuance inside the customer workbench */
.device-license-issuer{margin-bottom:18px;padding:18px;border:1px solid #b9d8c9;border-radius:14px;background:linear-gradient(145deg,#f3faf6,#e8f4ee);box-shadow:0 10px 24px rgba(21,84,59,.08)}
.device-license-issuer h4{margin:5px 0 7px;color:#123c2f;font-size:18px}.device-license-issuer p{margin:0 0 14px;color:#52685d;font-size:13px;line-height:1.65}.device-license-issuer button,.issued-copy-button{border:1px solid #14533b!important;border-radius:9px!important;background:#14533b!important;color:#fff!important;font-weight:800!important;cursor:pointer}
.device-license-issuer button{width:100%;padding:11px 14px}.issued-license-panel{width:min(620px,100%)}.issued-license-panel textarea{width:100%;box-sizing:border-box;margin-top:6px;padding:12px;border:1px solid #b9c9c1;border-radius:10px;background:#f7faf8;color:#173e30;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}.issued-license-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.issued-license-facts span{padding:10px;border-radius:9px;background:#eef5f1;color:#68796f;font-size:11px}.issued-license-facts b{display:block;margin-top:4px;color:#173e30;font-size:12px;overflow-wrap:anywhere}.issued-copy-state{margin-top:8px;color:#53685e;font-size:12px}
@media(max-width:600px){.issued-license-facts{grid-template-columns:1fr}.issued-license-panel{padding:18px}.issued-license-panel textarea{min-height:150px}}

.chat-trace-foot { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--line); font-size: 12px; color: var(--faint); }

/* 语音先转为可编辑文字；朗读默认关闭。所有触控目标保持 44px。 */
.lc-voice-mount{margin:8px 0 10px;min-height:0}.lc-voice-input-controls,.lc-speech-output-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg-soft);color:var(--txt);font-size:11px}.lc-voice-input-controls button,.lc-speech-output-controls button,.lc-speech-output-controls select{min-height:44px!important;border:1px solid #d7dfdb;border-radius:8px;background:var(--card);color:var(--txt);font:inherit;font-weight:700;padding:0 10px;cursor:pointer}.lc-voice-input-controls button:first-child{border-color:#bb2c32;background:#bb2c32;color:#fff}.lc-voice-input-controls button:disabled,.lc-speech-output-controls button:disabled,.lc-speech-output-controls select:disabled{opacity:.46;cursor:not-allowed}.lc-voice-input-controls [role=status],.lc-speech-output-controls [role=status]{flex:1 1 210px;color:var(--sub);line-height:1.45}.lc-speech-output-controls label{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--sub);font-weight:700}.lc-speech-output-controls input[type=checkbox]{width:20px;min-width:20px!important;height:20px;min-height:20px!important;accent-color:#bb2c32}.lc-voice-mount-input+.lc-voice-mount-output{margin-top:4px}#fab-panel .lc-voice-mount{margin:0;padding:0 8px 8px;background:#16243a}#fab-panel .lc-voice-input-controls,#fab-panel .lc-speech-output-controls{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff}#fab-panel .lc-voice-input-controls [role=status],#fab-panel .lc-speech-output-controls [role=status],#fab-panel .lc-speech-output-controls label{color:rgba(255,255,255,.76)}#fab-panel .lc-voice-input-controls button,#fab-panel .lc-speech-output-controls button,#fab-panel .lc-speech-output-controls select{border-color:rgba(255,255,255,.22);background:#fff;color:#26364e}
@media(max-width:600px){.lc-voice-input-controls,.lc-speech-output-controls{gap:5px;padding:7px}.lc-voice-input-controls [role=status],.lc-speech-output-controls [role=status]{flex-basis:100%;font-size:10px}.lc-speech-output-controls label{margin-left:0}}

/* 悬浮机器人保留语音输入，但默认收起，展开后仍采用浅色微信式工具区。 */
#fab-panel .fab-voice-tools .lc-voice-mount{margin:4px 0 0;padding:0;background:transparent}
#fab-panel .fab-voice-tools .lc-voice-input-controls{padding:7px;border-color:#d8ddd9;background:#fff;color:#263238}
#fab-panel .fab-voice-tools .lc-voice-input-controls [role=status]{color:#68736d}
#fab-panel .fab-voice-tools .lc-voice-input-controls button{min-height:38px!important;border-color:#d8ddd9;background:#fff;color:#263238}
#fab-panel .fab-voice-tools .lc-voice-input-controls button:first-child{border-color:#07c160;background:#07c160;color:#fff}
@media(max-width:600px){#fab-panel{right:8px;left:8px;bottom:116px;width:auto;height:min(640px,calc(100vh - 132px));max-width:none}.fab-msgs{padding:16px 14px}.fab-msgs .chat-msg{max-width:82%;font-size:13.5px}.fab-composer{padding:8px}.fab-row button{min-width:60px;padding:0 10px}}

/* 修改锁统一入口：替代可能被浏览器拦截的原生 prompt。 */
.modify-lock-dialog{position:fixed;inset:0;z-index:10050;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(20,28,34,.52);backdrop-filter:blur(5px)}.modify-lock-dialog.is-open{display:flex}.modify-lock-panel{width:min(430px,100%);box-sizing:border-box;padding:26px;border-radius:16px;background:#fff;color:#1f2933;box-shadow:0 28px 80px rgba(0,0,0,.3)}.modify-lock-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:14px;border-radius:14px;background:#fff1f0;font-size:24px}.modify-lock-panel h3{margin:0 0 8px;font-size:21px}.modify-lock-panel p{margin:0 0 18px;color:#66727c;font-size:13px;line-height:1.65}.modify-lock-panel label{display:block;margin-bottom:7px;font-size:13px;font-weight:700}.modify-lock-panel input{width:100%;height:46px;box-sizing:border-box;padding:10px 12px;border:1px solid #cbd3d8;border-radius:8px;background:#fff;color:#1f2329!important;-webkit-text-fill-color:#1f2329;font-size:16px}.modify-lock-panel input:focus{border-color:#d92b2b;outline:3px solid rgba(217,43,43,.12)}.modify-lock-error{min-height:20px;margin-top:7px;color:#c22d2d;font-size:12px}.modify-lock-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.modify-lock-actions button{min-height:42px;padding:0 16px;border:1px solid #d5dade;border-radius:8px;background:#fff;color:#34414a;font-weight:700;cursor:pointer}.modify-lock-actions button[type=submit]{border-color:#d92b2b;background:#d92b2b;color:#fff}.modify-lock-panel small{display:block;margin-top:14px;color:#879098;font-size:10.5px;line-height:1.5}@media(max-width:520px){.modify-lock-dialog{padding:12px}.modify-lock-panel{padding:21px}.modify-lock-actions button{flex:1}}

/* 企业微信按能力分别展示，不用一个“已连接”掩盖部分通道失效。 */
.wc-channel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 16px}.wc-channel-card{display:flex;align-items:center;gap:11px;min-height:74px;padding:13px 14px;border:1px solid var(--line);border-left:4px solid #aeb8b3;border-radius:12px;background:var(--card);color:var(--txt);box-shadow:0 6px 18px rgba(29,49,40,.05)}.wc-channel-card[data-state="ready"]{border-left-color:#218554;background:linear-gradient(135deg,#fff,#f1faf5)}.wc-channel-card[data-state="waiting"]{border-left-color:#c07b12;background:linear-gradient(135deg,#fff,#fff8e8)}.wc-channel-card[data-state="error"]{border-left-color:#b52f2f;background:linear-gradient(135deg,#fff,#fff1f0)}.wc-channel-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:10px;background:var(--bg-soft);font-size:20px}.wc-channel-card b,.wc-channel-card small{display:block}.wc-channel-card b{font-size:13px}.wc-channel-card small{margin-top:5px;color:var(--sub);font-size:10.5px;line-height:1.35}.wc-sync-feedback{margin:-4px 0 16px;padding:13px 15px;border:1px solid #e0b16b;border-left:4px solid #b87716;border-radius:9px;background:#fff8e8;color:#694d20;font-size:12px;line-height:1.65}.wc-sync-feedback b{color:#754d0b}.wc-sync-feedback details{margin-top:6px}.wc-sync-feedback summary{cursor:pointer;font-weight:700}.wc-sync-feedback details div{padding:4px 0;border-top:1px solid rgba(117,77,11,.12)}
@media(max-width:900px){.wc-channel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.wc-channel-grid{grid-template-columns:1fr}.wc-channel-card{min-height:68px}.wc-channel-grid+.panel .grid.c2{grid-template-columns:1fr!important}.wc-channel-grid+.panel input,.wc-channel-grid+.panel button{min-height:44px}}

/* 报告专业依据：只展示服务端校验后的公开 DTO，不展示私有方法论正文。 */
.professional-trace-badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 9px;border-radius:999px;background:#eef1f0;color:#4f5e57;font-size:10.5px;font-weight:800;vertical-align:middle}.professional-trace-badge.is-professional{background:#e2f4e9;color:#17653c}.professional-trace-badge.is-materials_incomplete{background:#fff1d5;color:#835407}.professional-trace-badge.is-basic_ai{background:#e9eef5;color:#36526e}.professional-trace-badge.is-unverified_legacy{background:#f0eeee;color:#685f5f}
.professional-trace-card{margin:0 0 16px;padding:20px;border:1px solid #d8e1dd;border-left:5px solid #697870;border-radius:15px;background:linear-gradient(145deg,#fff,#f8faf9);color:var(--txt);box-shadow:0 10px 28px rgba(28,52,41,.07)}.professional-trace-card.is-professional{border-left-color:#218554;background:linear-gradient(145deg,#fff,#f0faf4)}.professional-trace-card.is-materials_incomplete{border-left-color:#c07a11;background:linear-gradient(145deg,#fff,#fff9ec)}.professional-trace-card.is-basic_ai{border-left-color:#537796}.professional-trace-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.professional-trace-card h3{margin:3px 0 5px;font-size:19px}.professional-trace-card header p{margin:0;color:var(--sub);font-size:12px;line-height:1.65}.professional-trace-eyebrow{color:#267453;font-size:10px;font-weight:900;letter-spacing:.12em}.professional-trace-facts{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:8px;margin:16px 0}.professional-trace-facts span{padding:10px 12px;border:1px solid #e0e7e3;border-radius:9px;background:rgba(255,255,255,.8);color:var(--sub);font-size:10px;overflow-wrap:anywhere}.professional-trace-facts b{display:block;margin-top:4px;color:var(--txt);font-size:12px}.professional-trace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.professional-trace-group{min-width:0;padding:13px;border-radius:10px;background:rgba(255,255,255,.82);border:1px solid #e0e7e3}.professional-trace-group:last-child:nth-child(odd){grid-column:1/-1}.professional-trace-group h4{margin:0 0 8px;font-size:12px}.professional-trace-group article{padding:8px 0;border-top:1px solid #e8eeeb}.professional-trace-group article:first-of-type{border-top:0}.professional-trace-group b,.professional-trace-group span{display:block}.professional-trace-group span,.professional-trace-group p{margin:3px 0;color:var(--sub);font-size:10.5px;line-height:1.55}.professional-trace-group code{display:block;padding:5px 7px;border-radius:5px;background:#f0f3f2;color:#3f4e47;font-size:9.5px;overflow-wrap:anywhere;white-space:normal}.professional-trace-statements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:11px}.professional-trace-statements>div{padding:11px;border-radius:9px;background:#fff;border:1px solid #e1e7e4}.professional-trace-statements b{font-size:11px}.professional-trace-statements ul{margin:7px 0 0;padding-left:17px;color:var(--sub);font-size:10.5px;line-height:1.6}.professional-trace-actions{margin-top:10px;padding:10px 12px;border:1px solid #dce5e1;border-radius:9px;background:#fff}.professional-trace-actions summary{cursor:pointer;font-size:11px;font-weight:800}.professional-trace-actions article{padding:8px 0;border-top:1px solid #e6ece9}.professional-trace-actions article:first-child{margin-top:8px}.professional-trace-actions b,.professional-trace-actions span{display:block}.professional-trace-actions span{margin-top:3px;color:var(--sub);font-size:10px;line-height:1.5}
@media(max-width:700px){.professional-trace-card{padding:15px}.professional-trace-card>header{display:block}.professional-trace-card>header .professional-trace-badge{margin-top:10px}.professional-trace-facts{grid-template-columns:1fr 1fr}.professional-trace-grid,.professional-trace-statements{grid-template-columns:1fr}.professional-trace-group:last-child:nth-child(odd){grid-column:auto}}

/* 登录页动效的最终无障碍兜底放在样式表末尾，确保后续模块样式无法重新启动动画。 */
@media(prefers-reduced-motion:reduce){.auth-agent-stage,.auth-agent-stage *{animation:none!important}.auth-agent-stage,.auth-agent-message{opacity:1;transform:none;filter:none}.auth-agent-char{opacity:1!important;transform:translateY(0) scale(1)!important;filter:none!important}}
