/* ===== 小禾志愿 · 设计系统 x2（源自 Claude Design pc2 三件套：极简/清爽/数据仪表感）=====
 * 纯白底 + 新芽绿单品牌色；冲/稳/保 = 红/琥珀/绿语义色（只在语义处出现）；
 * 数字一律 Space Grotesk 等宽；细线图标随文字色；发丝线代替边框，留白代替分割线。 */

/* Space Grotesk 自托管（可变字体 500-700）——Google Fonts 国内不可达，绝不能引外链。
 * 中文不加载 webfont：Noto Sans SC 留在字体栈里给已安装用户，未装回退 PingFang/雅黑（观感一致）。 */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500 700;font-display:swap;src:url(/static/fonts/sg-3.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500 700;font-display:swap;src:url(/static/fonts/sg-2.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500 700;font-display:swap;src:url(/static/fonts/sg-1.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
:root{
  /* ★设计系统「刻度 / Caliper」：暖纸基底 + 仪器绿 + 冲稳保语义场。与 home 的 k.css 同源对齐。
   * 变量名保持不变（全站组件复用），只重调取值——一处切换整个 App 的色彩世界。 */
  --bg:#ffffff;
  --backdrop:#FBFAF6;        /* 暖中性纸，非冷灰 */

  --ink:#16181C;             /* 近黑（去掉旧的绿偏） */
  --ink-2:#595E66;
  --ink-3:#9AA0A6;
  --ink-4:#B7BBC0;

  --line:#ECEAE2;            /* 暖发丝线 */
  --line-2:#DAD6C9;
  --fill:#F4F2EC;
  --fill-2:#EBE8DF;

  --green:#0B5C3B;           /* 仪器绿（品牌主色，深而锐） */
  --green-deep:#094A30;
  --green-soft:#E4EFE9;
  --green-line:#BFD9CC;
  --brand:#0B5C3B;           /* m.css 多处 var(--brand) 回退到旧亮绿，这里对齐 */
  --brand-deep:#094A30;

  --reach:#D8472A; --reach-deep:#B53A20; --reach-soft:#FBE7E1; --reach-line:#F1C7BC;
  --match:#C2861B; --match-deep:#9E6D12; --match-soft:#FAF0DA; --match-line:#EDD8AA;
  --safe:#1E8F5E;  --safe-deep:#157A4D;  --safe-soft:#E2F2EA;  --safe-line:#BBE0CC;
  --risk:#A7ACB2;  --risk-deep:#6B7178;  --risk-soft:#EEEDE9;

  --mono:'Space Grotesk',ui-monospace,'SF Mono',Menlo,monospace;
  --ease:cubic-bezier(.22,.61,.36,1);
  --chat-w:430px;
  font-family:"Noto Sans SC",-apple-system,system-ui,"PingFang SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
body{background:var(--backdrop);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:14px;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}
:focus-visible{outline:2px solid var(--green);outline-offset:2px;}
input:focus-visible,textarea:focus-visible{outline:none;}
.num{font-family:"Space Grotesk","Noto Sans SC",sans-serif;font-variant-numeric:tabular-nums;}
.microlbl{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--ink-4);font-family:"Space Grotesk","Noto Sans SC",sans-serif;text-transform:uppercase;}
.av-sprout{flex:0 0 auto;}

/* ================= 应用框架 ================= */
.pc-app{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;}

/* ---- 顶栏 ---- */
.topbar{flex:0 0 56px;display:flex;align-items:center;gap:14px;padding:0 22px;background:var(--bg);border-bottom:1px solid var(--line-2);z-index:10;min-width:0;}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:inherit;}
.brand .av-sprout{width:27px;height:33px;}
.brand .bname{font-size:15.5px;font-weight:800;letter-spacing:.01em;white-space:nowrap;}
.profile-seg{display:flex;align-items:stretch;border:1px solid var(--line-2);border-radius:999px;overflow:hidden;background:var(--bg);min-width:0;overflow-x:auto;scrollbar-width:none;}
.profile-seg::-webkit-scrollbar{display:none;}
.pseg{display:flex;align-items:center;gap:5px;padding:6px 14px;font-size:12px;font-weight:600;color:var(--ink-3);white-space:nowrap;}
.pseg + .pseg{border-left:1px solid var(--line);}
.pseg b{color:var(--ink);font-weight:800;}
.pseg.hero{background:var(--green-soft);color:var(--green-deep);}
.pseg.hero b{color:var(--green-deep);}
.pseg.edit{color:var(--ink-3);cursor:pointer;transition:color .15s,background .15s;border:none;background:transparent;}
.pseg.edit:hover{color:var(--green-deep);background:var(--green-soft);}
.pseg.muted{color:var(--ink-4);}
.topbar .sp{flex:1;}
.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:999px;background:transparent;border:1px solid var(--line-2);white-space:nowrap;font-size:12.5px;font-weight:700;color:var(--ink-2);transition:all .15s;}
.btn-ghost:hover{border-color:var(--green);color:var(--green-deep);background:var(--green-soft);}

/* ---- 两栏 ---- */
.pc-body{flex:1;min-height:0;display:flex;}
.chat-col{flex:0 0 var(--chat-w);min-width:0;display:flex;flex-direction:column;background:var(--bg);border-right:1px solid var(--line-2);}
.work-col{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--backdrop);}

/* ================= 左：对话（裸排） ================= */
.chat-scroll{flex:1;overflow-y:auto;padding:24px 22px 10px;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;-webkit-overflow-scrolling:touch;}
.chat-scroll::-webkit-scrollbar{width:5px;}
.chat-scroll::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px;}

.msg{display:flex;gap:10px;margin-bottom:22px;animation:msgIn .35s var(--ease) both;}
@keyframes msgIn{from{transform:translateY(8px);}to{transform:translateY(0);}}
.msg .av-sprout{width:24px;height:30px;flex:0 0 24px;margin-top:1px;}
.msg-body{min-width:0;max-width:92%;}
.msg.u{justify-content:flex-end;}
.msg.u .msg-body{max-width:78%;}
.bub{font-size:13.5px;line-height:1.8;color:var(--ink);word-break:break-word;white-space:pre-wrap;}
.bub .cursor{display:inline-block;width:2px;height:1em;margin-left:1px;vertical-align:-2px;background:var(--brand,#0B5C3B);border-radius:1px;animation:blink 1s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}
/* 颜色=语义不=强调：粗体回归墨色（满屏绿=强调失效）；颜色只给 档位胶囊/警示/小节头/数字 */
.bub b{font-weight:700;color:var(--ink);}
.bub .num{color:var(--ink);font-weight:700;}
.bub .tc{display:inline-block;font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:6px;letter-spacing:.03em;white-space:nowrap;vertical-align:1px;font-family:"Space Grotesk","Noto Sans SC",sans-serif;}
.bub .tc-reach{background:var(--reach-soft);color:var(--reach-deep);}
.bub .tc-match{background:var(--match-soft);color:var(--match-deep);}
.bub .tc-safe{background:var(--safe-soft);color:var(--safe-deep);}
.bub .tc-risk{background:var(--risk-soft);color:var(--risk-deep);}
.bub .warnline{color:var(--match-deep);font-weight:600;}
.bub .bsec{display:inline-block;font-weight:800;color:var(--green-deep);margin-top:4px;}
.msg.u .bub{background:var(--green);color:#fff;font-weight:600;padding:9px 15px;border-radius:15px;border-top-right-radius:5px;width:max-content;max-width:100%;margin-left:auto;white-space:pre-wrap;}
.msg.u .bub b,.msg.u .bub .num{color:#fff;}
.msg.err .bub{background:var(--reach-soft);color:var(--reach-deep);padding:9px 14px;border-radius:13px;border:1px solid var(--reach-line);}
.msg.err .bub b,.msg.err .bub .num{color:var(--reach-deep);}

/* 工具运行 chip（小禾正在干活） */
.toolchip{display:none;align-items:center;gap:8px;margin:0 22px 8px;padding:7px 13px;border-radius:999px;background:var(--green-soft);width:max-content;max-width:calc(100% - 44px);font-size:12px;font-weight:700;color:var(--green-deep);}
.toolchip.on{display:inline-flex;}
.toolchip .tdots{display:inline-flex;gap:3px;}
.toolchip .tdots i{width:5px;height:5px;border-radius:50%;background:var(--green);animation:typb 1s infinite var(--ease);}
.toolchip .tdots i:nth-child(2){animation-delay:.15s;}
.toolchip .tdots i:nth-child(3){animation-delay:.3s;}
@keyframes typb{0%,60%,100%{transform:translateY(0);opacity:.5;}30%{transform:translateY(-3px);opacity:1;}}

/* 快捷提问 */
.chat-quick{display:flex;gap:7px;padding:4px 22px 10px;flex-wrap:wrap;}
.qchip{padding:6px 12px;border-radius:999px;background:var(--fill);border:1px solid transparent;font-size:12px;font-weight:600;color:var(--ink-2);transition:all .15s;white-space:nowrap;}
.qchip:hover{border-color:var(--green-line);color:var(--green-deep);background:var(--green-soft);}

/* 输入区 */
.chat-input{flex:0 0 auto;display:flex;gap:9px;padding:12px 22px 16px;border-top:1px solid var(--line);background:var(--bg);}
.ci-field{flex:1;display:flex;align-items:center;padding:0 16px;min-height:42px;border-radius:13px;background:var(--fill);border:1.5px solid transparent;transition:border-color .15s,background .15s;}
.ci-field:focus-within{border-color:var(--green);background:var(--bg);}
.ci-field textarea{flex:1;border:none;outline:none;background:transparent;font-size:13.5px;color:var(--ink);resize:none;max-height:96px;line-height:1.6;padding:10px 0;}
.ci-field textarea::placeholder{color:var(--ink-4);}
.ci-send{flex:0 0 46px;width:46px;height:42px;align-self:flex-end;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:13px;border:none;background:var(--green);color:#fff;transition:background .15s,transform .12s;}
.ci-send:hover{background:var(--green-deep);}
.ci-send:active{transform:scale(.96);}
.ci-send:disabled{opacity:.45;cursor:default;}

/* ================= 右：工作区 ================= */
.tabs{flex:0 0 50px;display:flex;align-items:stretch;gap:2px;padding:0 18px;background:var(--bg);border-bottom:1px solid var(--line-2);overflow-x:auto;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{position:relative;display:flex;align-items:center;gap:6px;padding:0 12px;border:none;background:none;font-size:13px;font-weight:600;color:var(--ink-3);transition:color .15s;white-space:nowrap;}
.tab:hover{color:var(--ink-2);}
.tab.on{color:var(--ink);font-weight:800;}
.tab.on::after{content:"";position:absolute;left:11px;right:11px;bottom:-1px;height:2.5px;border-radius:3px 3px 0 0;background:var(--green);}
.tab .badge{font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--fill-2);color:var(--ink-3);font-family:"Space Grotesk","Noto Sans SC",sans-serif;}
.tab.on .badge{background:var(--green-soft);color:var(--green-deep);}
.tab .badge:empty{display:none;}
@keyframes badgePop{0%{transform:scale(1);}45%{transform:scale(1.3);}100%{transform:scale(1);}}
.tab .badge.pop{animation:badgePop .32s var(--ease);}
.tab.hid{display:none;}
.tabs .sp{flex:1;}
.ask-page{align-self:center;display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;border:1px solid var(--line-2);background:transparent;font-size:11.5px;font-weight:700;color:var(--ink-3);white-space:nowrap;transition:all .15s;}
.ask-page:hover{border-color:var(--green);color:var(--green-deep);background:var(--green-soft);}

.work-scroll{flex:1;overflow-y:auto;padding:22px 28px 32px;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;-webkit-overflow-scrolling:touch;}
.work-scroll::-webkit-scrollbar{width:6px;}
.work-scroll::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px;}

/* ---- 搜索：一条整合栏 ---- */
.search-bar{display:flex;align-items:stretch;height:50px;border-radius:15px;background:var(--bg);border:1.5px solid var(--line-2);overflow:hidden;transition:border-color .15s;}
.search-bar:focus-within{border-color:var(--green);}
.sb-cell{display:flex;align-items:center;gap:9px;padding:0 16px;min-width:0;}
.sb-cell svg{color:var(--ink-4);flex:0 0 auto;}
.sb-cell input{border:none;outline:none;background:transparent;font-size:13.5px;color:var(--ink);width:100%;}
.sb-cell input::placeholder{color:var(--ink-4);}
.sb-cell.kw{flex:1;}
.sb-cell select{border:none;outline:none;background:transparent;font-size:13px;font-weight:600;color:var(--ink-2);max-width:110px;}
.sb-cell + .sb-cell{border-left:1px solid var(--line);}
.sb-go{flex:0 0 52px;margin:6px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:none;background:var(--green);color:#fff;transition:background .15s;}
.sb-go:hover{background:var(--green-deep);}

/* ---- 筛选：分面胶囊 + 浮层 ---- */
.facet-bar{margin:16px 2px 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.facet{position:relative;}
.facet-btn{display:inline-flex;align-items:center;gap:6px;height:33px;padding:0 13px;border-radius:999px;border:1px solid var(--line-2);background:var(--bg);font-size:12.5px;font-weight:600;color:var(--ink-2);transition:all .14s;white-space:nowrap;}
.facet-btn > svg{color:var(--ink-4);}
.facet-btn .cv{display:inline-flex;color:var(--ink-4);transition:transform .18s var(--ease);}
.facet.open .facet-btn .cv{transform:rotate(180deg);}
.facet-btn:hover{border-color:var(--green-line);color:var(--ink);}
.facet-btn.on{border-color:var(--green-line);background:var(--green-soft);color:var(--green-deep);}
.facet-btn.on > svg,.facet-btn.on .cv{color:var(--green-deep);}
.facet-btn b{font-weight:800;}
.facet-pop{position:absolute;top:39px;left:0;z-index:20;display:flex;flex-wrap:wrap;gap:2px;width:max-content;max-width:min(440px,calc(100vw - 40px));padding:8px;border-radius:14px;background:var(--bg);border:1px solid var(--line-2);box-shadow:0 14px 36px rgba(22,32,27,.12);animation:msgIn .18s var(--ease) both;}
/* ★地区：大区分组方格网格（替代一行一行下拉，一目了然省空间） */
.facet-pop.rgn-pop{display:block;width:440px;max-width:min(440px,calc(100vw - 40px));max-height:72vh;overflow-y:auto;padding:11px;}
.rgn-pop .rgn-cell.all{display:block;width:100%;margin-bottom:8px;}
.rgn-pop .rgn-zone{font-family:var(--mono);font-size:10px;letter-spacing:.1em;font-weight:800;color:var(--ink-4);padding:8px 2px 5px;}
.rgn-pop .rgn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:4px;}
.rgn-pop .rgn-cell{padding:8px 4px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:13px;font-weight:700;color:var(--ink);text-align:center;cursor:pointer;transition:all .12s;}
.rgn-pop .rgn-cell:hover{border-color:var(--green);background:#f4fbf7;}
.rgn-pop .rgn-cell.on{border-color:var(--green);background:var(--safe-soft,#e7f6ee);color:var(--brand-deep,#094A30);}
.fchip{padding:5px 12px;border-radius:999px;border:1px solid transparent;background:transparent;font-size:12.5px;font-weight:600;color:var(--ink-2);transition:all .13s;white-space:nowrap;}
.fchip:hover{background:var(--fill);color:var(--ink);}
.fchip.on{background:var(--green-soft);color:var(--green-deep);font-weight:800;border-color:var(--green-line);}
.facet-clear{flex:0 0 28px;width:28px;height:28px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--ink-4);transition:all .14s;}
.facet-clear:hover{color:var(--reach-deep);background:var(--reach-soft);}
/* 语义扩展 chips（查专业：已按X扩展→可点掉的专业词） */
.exp-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 2px 4px;}
.exp-lab{font-size:11.5px;font-weight:700;color:var(--green-deep);flex:0 0 auto;}
.expchip{padding:4px 11px;border-radius:999px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink-4);font:600 12px/1.2 inherit;transition:all .13s;}
.expchip:hover{border-color:var(--green-line);}
.expchip.on{border-color:var(--green-line);background:var(--green-soft);color:var(--green-deep);font-weight:700;}
.expchip.on::after{content:" ✓";font-size:10px;}
/* 相关院校（查录取线：四维分组可点院校 chips） */
.rel-box{margin:18px 2px 4px;padding:15px 16px;border:1px solid var(--line-2);border-radius:14px;background:var(--bg);}
.rel-h{font-size:13.5px;font-weight:800;color:var(--ink);margin-bottom:11px;}
.rel-grp{margin-bottom:12px;}.rel-grp:last-child{margin-bottom:0;}
.rel-reason{font-size:12px;font-weight:700;color:var(--green-deep);margin-bottom:7px;}
.rel-chips{display:flex;flex-wrap:wrap;gap:8px;}
.relchip{padding:5px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--backdrop);color:var(--ink-2);font:600 13px/1.3 inherit;display:inline-flex;align-items:center;gap:5px;transition:all .13s;}
.relchip:hover{border-color:var(--green-line);background:var(--green-soft);}
.relchip .rb{font-style:normal;font-size:9px;font-weight:800;color:#fff;padding:1px 4px;border-radius:4px;}
.relchip .rb.b985{background:var(--reach);}.relchip .rb.b211{background:var(--match-deep);}.relchip .rb.bsy{background:var(--green);}

/* ---- 结果头：sticky 通栏毛玻璃 ---- */
.res-head{position:sticky;top:-22px;z-index:5;display:flex;align-items:center;gap:14px;margin:14px -28px 0;padding:13px 30px 11px;background:rgba(251,250,246,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);flex-wrap:wrap;}
.res-head .cnt{font-size:14px;font-weight:800;white-space:nowrap;}
.res-head .cnt .num{color:var(--green-deep);font-size:17px;}
.tier-counts{display:flex;gap:12px;font-size:11.5px;font-weight:700;white-space:nowrap;}
.tier-counts span,.tier-counts button{display:inline-flex;align-items:center;gap:5px;border:none;background:none;padding:2px 0;font-size:11.5px;font-weight:700;cursor:pointer;transition:opacity .13s;}
.tier-counts button:hover{opacity:.7;}
.tier-counts i{width:7px;height:7px;border-radius:50%;}
.tier-counts .r{color:var(--reach-deep);} .tier-counts .r i{background:var(--reach);}
.tier-counts .m{color:var(--match-deep);} .tier-counts .m i{background:var(--match);}
.tier-counts .s{color:var(--safe-deep);} .tier-counts .s i{background:var(--safe);}

/* ★位次卡尺（桌面签名）：概率轴，带校名刻痕 */
.dcal{margin:30px 0 6px;padding:0 6px;}
.dcal-axis{position:relative;height:104px;}
.dcal-band{position:absolute;left:0;right:0;top:50px;height:10px;border-radius:5px;
  background:linear-gradient(90deg,var(--risk) 0%,var(--reach) 22%,var(--match) 52%,var(--safe) 84%);}
.dcal-tick{position:absolute;top:42px;width:1px;height:26px;background:var(--line-2);}
.dcal-you{position:absolute;left:50%;top:30px;bottom:18px;width:2px;background:var(--ink);z-index:5;}
.dcal-you::after{content:"";position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-bottom-color:var(--ink);}
.dcal-youL{position:absolute;top:-22px;left:50%;transform:translateX(-50%);background:var(--ink);
  color:var(--bg);font-family:var(--mono);font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:4px;white-space:nowrap;}
.dcal-notch{position:absolute;border:none;background:none;cursor:pointer;padding:0;
  transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;z-index:3;
  animation:dcalRise .5s var(--ease) both;}
@keyframes dcalRise{from{opacity:0;transform:translateX(-50%) translateY(6px);}to{opacity:1;transform:translateX(-50%);}}
.dcal-notch.up{top:6px;}
.dcal-notch.dn{top:60px;flex-direction:column-reverse;}
.dcal-notch .dn-nm{font-size:10.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;
  background:var(--backdrop);padding:0 3px;border-radius:3px;max-width:72px;overflow:hidden;text-overflow:ellipsis;transition:color .15s;}
.dcal-notch .dn-stem{width:1.5px;height:16px;background:var(--ink-3);}
.dcal-notch .dn-pin{width:9px;height:9px;border-radius:50%;background:var(--bg);border:2.5px solid var(--c);transition:transform .15s;}
.dcal-notch:hover .dn-pin{transform:scale(1.5);}
.dcal-notch:hover .dn-nm{color:var(--ink);}
.dcal-notch.bare{top:46px;}
.dcal-notch.bare.dn{top:54px;}
.dcal-notch.bare .dn-stem{height:7px;}
.dcal-lbl{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);
  font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin-top:8px;}
.dcal-lbl .mid{letter-spacing:.02em;text-transform:none;color:var(--ink-4);font-weight:600;}
@media(max-width:560px){.dcal-notch .dn-nm{max-width:40px;font-size:9px;}}
.res-head .sp{flex:1;}
.rh-note{font-size:11.5px;color:var(--ink-4);font-weight:600;white-space:nowrap;}
.sort-seg{display:flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:var(--fill-2);overflow-x:auto;scrollbar-width:none;max-width:100%;}
.sort-seg::-webkit-scrollbar{display:none;}
.sort-seg .sort-ic{display:inline-flex;align-items:center;padding:0 4px 0 8px;color:var(--ink-4);}
.sort-seg .sopt{padding:4px 12px;border-radius:999px;border:none;background:transparent;font-size:11.5px;font-weight:700;color:var(--ink-3);transition:all .13s;white-space:nowrap;}
.sort-seg .sopt:hover{color:var(--ink);}
.sort-seg .sopt.on{background:var(--bg);color:var(--ink);box-shadow:0 1px 3px rgba(30,45,38,.1);}
.sort-seg .sopt small{font-size:10px;font-weight:700;color:var(--ink-4);letter-spacing:.04em;margin-left:4px;}
.sort-seg .sopt.on small{color:var(--green-deep);}

/* ---- 表格式列表 ---- */
.uni-table{border-radius:14px;background:var(--bg);border:1px solid var(--line-2);overflow:hidden;margin-top:14px;}
.uthead{display:grid;grid-template-columns:1fr 150px 130px 60px;gap:14px;align-items:center;padding:11px 22px 9px;border-bottom:1px solid var(--line);}
.uthead .ta-r{text-align:right;}
.uthead .ta-c{text-align:center;}
.urow{display:grid;grid-template-columns:1fr 150px 130px 60px;gap:14px;align-items:center;padding:15px 22px;transition:background .14s;animation:msgIn .3s var(--ease) both;}
.uthead.lgrid,.urow.lgrid{grid-template-columns:1fr 150px 92px 44px;}
.uthead.mgrid,.urow.mgrid{grid-template-columns:1fr 130px 92px 120px 56px;}
.uthead.pgrid,.urow.pgrid{grid-template-columns:30px 1fr 170px 52px 86px;}
.uthead.egrid,.urow.egrid{grid-template-columns:1fr 150px 92px;}
.urow + .urow{border-top:1px solid var(--line);}
.urow:hover{background:#F4F2EC;}
.urow.added{background:#f7fcf9;}
.urow.added:hover{background:#f2faf6;}
.urow.click{cursor:pointer;}
.urow.flash{box-shadow:inset 0 0 0 2px var(--green);}
.urow.wopen{background:#F4F2EC;}

.ucell-name{min-width:0;}
.uni-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.uni-name{font-size:15px;font-weight:800;letter-spacing:.01em;white-space:nowrap;}
.mrow-name{font-size:13.5px;font-weight:800;}
.ubadge{font-size:10px;font-weight:800;padding:1.5px 7px;border-radius:6px;letter-spacing:.03em;white-space:nowrap;}
.ubadge.b985{background:var(--reach-soft);color:var(--reach-deep);}
.ubadge.b211{background:var(--match-soft);color:var(--match-deep);}
.ubadge.bsy{background:var(--green-soft);color:var(--green-deep);}
.ubadge.bpv{background:var(--fill-2);color:var(--ink-3);}
.ubadge.req{background:var(--reach-soft);color:var(--reach-deep);font-weight:700;}
.uni-meta{margin-top:4px;font-size:11.5px;color:var(--ink-3);font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.uni-meta > span{white-space:nowrap;}
.uni-meta .d{width:3px;height:3px;border-radius:50%;background:var(--ink-4);flex:0 0 3px;}
.uni-meta b{color:var(--ink-2);font-weight:700;font-family:"Space Grotesk","Noto Sans SC",sans-serif;}
.uni-meta .grp{font-weight:800;color:var(--ink-2);font-family:"Space Grotesk","Noto Sans SC",sans-serif;background:var(--fill-2);padding:1px 7px;border-radius:6px;font-size:10.5px;}
.seq{font-size:12px;font-weight:800;color:var(--ink-4);letter-spacing:.02em;}

.ucell-score{text-align:right;white-space:nowrap;}
.ucell-score .sc{font-size:16px;font-weight:700;font-family:"Space Grotesk","Noto Sans SC",sans-serif;}
.ucell-score .sc small{font-size:11px;color:var(--ink-3);font-weight:700;margin-left:2px;font-family:"Noto Sans SC",sans-serif;}
.ucell-score .rk{font-size:11px;color:var(--ink-3);font-weight:600;margin-top:2px;}
.ucell-fee{text-align:right;white-space:nowrap;}
.ucell-fee .fv{font-size:13.5px;font-weight:700;}
.ucell-fee .fv small{font-size:11px;color:var(--ink-3);font-weight:600;font-family:"Noto Sans SC",sans-serif;}
.ucell-fee .rk{font-size:11px;color:var(--ink-3);font-weight:600;margin-top:2px;}

/* 概率环 */
.ucell-prob{display:flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;}
.pring{position:relative;width:42px;height:42px;flex:0 0 42px;}
.pring svg{transform:rotate(-90deg);display:block;}
.pring circle.val{transition:stroke-dashoffset .7s var(--ease);}
.pring .pv{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;font-family:"Space Grotesk","Noto Sans SC",sans-serif;letter-spacing:-.02em;white-space:nowrap;}
.pring.sm{width:36px;height:36px;flex:0 0 36px;}
.pring.sm .pv{font-size:10px;}
.ptier{font-size:11px;font-weight:800;letter-spacing:.1em;}
.tier-reach .pv,.ptier.tier-reach{color:var(--reach-deep);}
.tier-match .pv,.ptier.tier-match{color:var(--match-deep);}
.tier-safe .pv,.ptier.tier-safe{color:var(--safe-deep);}
.tier-risk .pv,.ptier.tier-risk{color:var(--risk-deep);}
.pdash{color:var(--ink-4);font-weight:700;}

.ucell-act{display:flex;justify-content:flex-end;gap:7px;}
.icbtn{flex:0 0 32px;width:32px;height:32px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-2);background:var(--bg);color:var(--ink-3);transition:all .15s;}
.icbtn:hover{border-color:var(--green);color:var(--green-deep);background:var(--green-soft);}
.icbtn.on{background:var(--fill-2);color:var(--ink);}
.icbtn.added{border-color:transparent;background:var(--green);color:#fff;}
.icbtn.added:hover{background:var(--green-deep);}
.icbtn.sm{flex-basis:28px;width:28px;height:28px;background:transparent;border-color:transparent;}
.icbtn.sm:hover{border-color:var(--green-line);background:var(--green-soft);}
.icbtn.danger:hover{border-color:var(--reach);color:var(--reach-deep);background:var(--reach-soft);}

/* 空状态 / 提示 */
.empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:64px 0 48px;text-align:center;}
.empty .av-sprout{width:50px;height:62px;opacity:.9;}
.empty .et{font-size:14px;font-weight:700;color:var(--ink-2);}
.empty .es{font-size:12.5px;color:var(--ink-3);line-height:1.7;}
.panel-hint{margin:18px 4px 0;font-size:12px;color:var(--ink-3);line-height:1.7;font-weight:500;}
.warn-note{margin-top:14px;padding:10px 14px;border-radius:12px;background:var(--match-soft);border:1px solid var(--match-line);font-size:12px;color:var(--match-deep);font-weight:600;line-height:1.7;}

/* ================= 查录取线 ================= */
.school-card{display:flex;align-items:center;gap:24px;margin-top:16px;padding:18px 22px;border-radius:14px;background:var(--bg);border:1px solid var(--line-2);}
.sc-main{flex:1;min-width:0;}
.sc-note{margin-top:8px;font-size:11.5px;color:var(--ink-3);font-weight:600;display:inline-block;padding:4px 10px;border-radius:8px;background:var(--fill);}
.sc-me{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px;padding-left:24px;border-left:1px solid var(--line);white-space:nowrap;}
.sc-me .big{font-size:22px;font-weight:700;color:var(--green-deep);letter-spacing:-.01em;}
.sc-me-sub{font-size:11px;color:var(--ink-3);font-weight:600;white-space:nowrap;}

.yr-stack{display:flex;flex-direction:column;gap:10px;margin-top:14px;}
.yr-group{border-radius:14px;background:var(--bg);border:1px solid var(--line-2);overflow:hidden;}
.yr-head{display:flex;align-items:center;gap:9px;width:100%;padding:13px 20px;border:none;background:none;text-align:left;transition:background .14s;}
.yr-head:hover{background:#F4F2EC;}
.yr-head .chev{display:inline-flex;color:var(--ink-4);transition:transform .2s var(--ease);transform:rotate(-90deg);}
.yr-head .chev.dn{transform:rotate(0);}
.yr-head .yr{font-size:14.5px;font-weight:700;white-space:nowrap;}
.yr-head .yr-n{font-size:11.5px;color:var(--ink-3);font-weight:600;white-space:nowrap;}
.yr-body{border-top:1px solid var(--line);}
.ghead2{display:flex;align-items:center;gap:8px;padding:11px 22px 9px;background:var(--fill);font-size:13px;font-weight:800;flex-wrap:wrap;}
.ghead2 .gln{margin-left:auto;font-weight:700;color:var(--ink-2);font-size:12.5px;white-space:nowrap;display:flex;align-items:center;gap:8px;}
.cand-list{margin-top:14px;}

/* ================= 报志愿（冲稳保方案） ================= */
.plan-head{top:-22px;}
.strat-seg{display:flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:var(--fill-2);}
.strat-seg .sopt{display:inline-flex;align-items:baseline;gap:5px;padding:5px 13px;border-radius:999px;border:none;background:transparent;font-size:12px;font-weight:700;color:var(--ink-3);transition:all .13s;white-space:nowrap;}
.strat-seg .sopt small{font-size:10px;font-weight:700;color:var(--ink-4);letter-spacing:.04em;}
.strat-seg .sopt:hover{color:var(--ink);}
.strat-seg .sopt.on{background:var(--bg);color:var(--ink);font-weight:800;box-shadow:0 1px 3px rgba(30,45,38,.1);}
.strat-seg .sopt.on small{color:var(--green-deep);}
.fill-btn{flex:0 0 auto;border:none;border-radius:999px;padding:7px 14px;background:var(--green-soft);color:var(--green-deep);font-size:12.5px;font-weight:800;cursor:pointer;white-space:nowrap;transition:background .14s;}
.fill-btn:hover{background:#ddf2e7;}
.tier-empty{margin:8px 2px 2px;padding:14px 16px;border-radius:13px;background:var(--fill,#f6f7f5);border:1px dashed var(--line-2,#e2e5e3);color:var(--ink-3,#555);font-size:13px;line-height:1.6;}
.tier-more{padding:11px 4px 2px;text-align:center;color:var(--ink-4,#9aa0a6);font-size:12.5px;}
.regen-ic{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:none;padding:0;background:var(--green);color:#fff;transition:background .15s,transform .12s;}
.regen-ic:hover{background:var(--green-deep);}
.regen-ic:active{transform:rotate(80deg) scale(.95);}
.cap{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;color:var(--ink-3);white-space:nowrap;}
.cap b{color:var(--ink);font-size:13px;}
.cap .of{color:var(--ink-4);margin-left:-5px;}
.cap .bar{width:72px;height:5px;border-radius:3px;background:var(--fill-2);overflow:hidden;}
.cap .bar i{display:block;height:100%;border-radius:3px;background:var(--green);transition:width .4s var(--ease);}

.tier-sec{margin-top:20px;}
.tsec-head{display:flex;align-items:center;gap:9px;padding:0 4px 9px;}
.tsec-head .tdot{width:9px;height:9px;border-radius:50%;flex:0 0 9px;}
.tier-sec.reach .tdot{background:var(--reach);}
.tier-sec.match .tdot{background:var(--match);}
.tier-sec.safe  .tdot{background:var(--safe);}
.tier-sec.risk  .tdot{background:var(--risk);}
.tsec-t{font-size:16px;font-weight:900;letter-spacing:.02em;}
.tier-sec.reach .tsec-t{color:var(--reach-deep);}
.tier-sec.match .tsec-t{color:var(--match-deep);}
.tier-sec.safe  .tsec-t{color:var(--safe-deep);}
.tier-sec.risk  .tsec-t{color:var(--risk-deep);}
.tsec-n{font-size:12px;font-weight:700;color:var(--ink-3);}
.tsec-head .sp{flex:1;}

/* 「为什么」展开 */
.why-wrap{grid-column:1 / -1;display:grid;grid-template-columns:250px 1fr;gap:22px;margin-top:6px;padding:15px 18px;border-radius:13px;background:var(--fill);animation:msgIn .25s var(--ease) both;}
.why-col{display:flex;flex-direction:column;gap:8px;min-width:0;}
.wt-rows{display:flex;flex-direction:column;gap:2px;}
.wt-row{display:grid;grid-template-columns:44px 52px 1fr;gap:10px;align-items:baseline;padding:4.5px 0;font-size:12px;color:var(--ink-2);}
.wt-row + .wt-row{border-top:1px dashed var(--line-2);}
.wt-row .y{font-weight:700;color:var(--ink-3);}
.wt-row .s{font-weight:800;color:var(--ink);font-size:13px;}
.wt-row .s small{font-size:10.5px;color:var(--ink-3);font-weight:600;margin-left:1px;font-family:"Noto Sans SC",sans-serif;}
.wt-row .r{font-weight:600;color:var(--ink-2);}
.wt-row.cur .y{color:var(--green-deep);}
.wt-row.cur .s,.wt-row.cur .r{color:var(--green-deep);}
.why-basis{font-size:11px!important;color:var(--ink-4,#9aa0a6)!important;line-height:1.6!important;margin-top:2px;}
.wt-me{font-size:11px;color:var(--ink-3);font-weight:600;padding-top:2px;}
.wt-me b{color:var(--green-deep);}
.why-col.reason p{font-size:12.5px;line-height:1.8;color:var(--ink-2);font-weight:500;text-wrap:pretty;}
.why-ask{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;border:1px solid var(--line-2);background:var(--bg);font-size:11.5px;font-weight:700;color:var(--ink-2);transition:all .15s;margin-top:2px;}
.why-ask:hover{border-color:var(--green);color:var(--green-deep);background:var(--green-soft);}

/* ================= 报志愿：画像填空条 ================= */
.ap-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 18px;border-radius:14px;background:var(--bg);border:1px solid var(--line-2);}
.ap-bar .lb{font-size:12.5px;font-weight:700;color:var(--ink-3);}
.ap-score{width:96px;border:none;outline:none;background:var(--green-soft);box-shadow:inset 0 -2px 0 var(--green-line);border-radius:9px;padding:6px 10px;font-size:15px;font-weight:800;color:var(--green-deep);text-align:center;transition:background .14s;}
.ap-score:focus{background:#ddf2e7;box-shadow:inset 0 -2px 0 var(--green);}
.ap-score::placeholder{color:#aeddc4;font-weight:700;}
.ap-go{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 20px;border-radius:999px;border:none;background:var(--green);color:#fff;font-size:13px;font-weight:800;transition:background .15s,transform .12s;}
.ap-go:hover{background:var(--green-deep);}
.ap-go:active{transform:scale(.97);}
.ap-err{margin-top:10px;padding:9px 13px;border-radius:11px;background:var(--reach-soft);border:1px solid var(--reach-line);font-size:12.5px;color:var(--reach-deep);font-weight:600;}

/* ================= 工具 tab ================= */
.tool-card{margin-top:16px;padding:18px 22px;border-radius:14px;background:var(--bg);border:1px solid var(--line-2);}
.tool-card h4{font-size:14px;font-weight:800;margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.tool-card h4 svg{color:var(--green-deep);}
.tool-card .trow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.tool-card select,.tool-card input{border:1px solid var(--line-2);border-radius:10px;padding:8px 11px;font-size:13px;outline:none;background:var(--bg);transition:border-color .14s;}
.tool-card select:focus,.tool-card input:focus{border-color:var(--green);}
.bl-tb{width:100%;border-collapse:collapse;font-size:12.5px;}
.bl-tb td,.bl-tb th{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;}
.bl-tb th{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--ink-4);text-transform:uppercase;font-family:"Space Grotesk","Noto Sans SC",sans-serif;}
.bl-tb td b{font-family:"Space Grotesk","Noto Sans SC",sans-serif;}
.cvres{margin-top:11px;font-size:13.5px;background:var(--green-soft);border-radius:11px;padding:11px 14px;line-height:1.7;color:var(--ink);}
.cvres b{color:var(--green-deep);font-family:"Space Grotesk","Noto Sans SC",sans-serif;}
.tbtn{border:1px solid var(--line-2);background:var(--bg);color:var(--ink-2);border-radius:999px;padding:7px 15px;font-size:12.5px;font-weight:700;transition:all .15s;}
.tbtn:hover{border-color:var(--green);color:var(--green-deep);background:var(--green-soft);}

/* ================= 志愿表 tab ================= */
.wish-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}

/* ================= 宽屏（≥1400px）：左栏比例化加宽 + 右栏内容限宽居中 =================
 * 设计稿基准是 1440px（左430+右1010）。更宽的屏上若不处理：左栏显挤、右栏行被无限拉宽，
 * 名称与分数列之间扯出大片空白。两个杠杆：左栏 30vw（封顶620）、右栏内容 1100px 居中。 */
@media (min-width:1400px){
  :root{--chat-w:clamp(430px, 30vw, 620px);}
  .work-scroll > *{max-width:1100px;margin-left:auto;margin-right:auto;}
  /* res-head 原是负 margin 通栏，限宽布局下改为与内容同宽的圆角悬浮条 */
  .res-head{margin:14px auto 0;padding:13px 20px 11px;border-radius:14px;border:1px solid var(--line);}
  .msg-body{max-width:88%;}
  .bub{font-size:14px;}
}

/* ================= ★控制台 Console（报志愿桌面签名：位次光谱主索引 + 台账↔详情三联动） =================
 * 手机=握在手里读的仪器；桌面=坐在前面操作的控制台（同时性/悬停/对比/密度，手机做不到）。
 * 共用全套 token；报志愿页有结果时 work-col 加 .con 类，切换成三区固定布局（panes 各自滚）。 */
.work-col.con .work-scroll{overflow:hidden;display:flex;flex-direction:column;padding:0;}
.work-col.con .work-scroll > *{max-width:none;margin:0;}   /* 覆盖 1400px 限宽居中：控制台要通栏 */
.console{flex:1;display:flex;flex-direction:column;min-height:0;}
.con-top{flex:0 0 auto;background:var(--bg);}
.con-top .ap-bar{margin:0;padding:11px 22px;border-bottom:1px solid var(--line);border-radius:0;}
.con-top .res-head{margin:0;border-radius:0;border:none;border-bottom:1px solid var(--line);padding:8px 22px;top:auto;}
/* —— 位次光谱（签名）—— */
.con-spectrum{padding:13px 26px 11px;border-bottom:1px solid var(--line-2);background:var(--bg);}
.spec-head{display:flex;align-items:baseline;gap:10px;}
.spec-t{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);font-weight:700;}
.spec-sub{font-size:11.5px;color:var(--ink-3);}
.spec-sub b{color:var(--ink-2);font-weight:700;}
.spec-swarm{position:relative;height:98px;margin-top:6px;}
.sdot{position:absolute;width:9px;height:9px;border-radius:50%;border:2px solid var(--c);background:var(--bg);transform:translate(-50%,-50%);cursor:pointer;padding:0;transition:transform .16s var(--ease),box-shadow .16s,opacity .16s;z-index:2;}
.sdot.faint{opacity:.36;}
.sdot:hover,.sdot.lit{transform:translate(-50%,-50%) scale(1.7);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 22%,transparent);z-index:5;opacity:1;}
.sdot.pin{background:var(--c);}
.spec-band{position:absolute;left:0;right:0;bottom:18px;height:12px;border-radius:7px;background:linear-gradient(90deg,var(--risk) 0%,var(--reach) 22%,var(--match) 52%,var(--safe) 84%);}
.spec-band::before{content:"";position:absolute;inset:0;border-radius:7px;background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.5) 0 1px,transparent 1px 6.66%);}
.spec-you{position:absolute;left:50%;top:2px;bottom:30px;width:2px;background:var(--ink);z-index:4;}
.spec-youcap{position:absolute;left:50%;top:-3px;transform:translateX(-50%);white-space:nowrap;font-size:9.5px;font-weight:700;color:var(--ink);background:var(--bg);padding:1px 6px;border:1px solid var(--line-2);border-radius:5px;z-index:6;}
.spec-zones{position:absolute;left:0;right:0;bottom:0;height:14px;font-size:10px;color:var(--ink-3);}
.spec-zones .z{position:absolute;transform:translateX(-50%);font-weight:600;}
.spec-zones .zr{color:var(--reach);} .spec-zones .zm{color:var(--match);} .spec-zones .zs{color:var(--safe);} .spec-zones .zx{color:var(--ink-4);}
.spec-foot{display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-4);margin-top:8px;}
.spec-foot .num{color:var(--ink-3);}
/* —— 台账 ↔ 详情 两栏 —— */
.con-panes{flex:1;display:flex;min-height:0;}
.con-ledger{flex:1;min-width:0;overflow-y:auto;border-right:1px solid var(--line-2);}
.con-ledger .facet-bar{position:sticky;top:0;z-index:6;background:color-mix(in srgb,var(--backdrop) 94%,transparent);backdrop-filter:blur(6px);margin:0;}
.con-ledger .tier-sec{margin:0;}
.con-ledger .uni-table{border:none;background:none;margin:0;border-radius:0;}
.con-ledger .tsec-head{padding:13px 22px 6px;margin:0;}
.con-ledger .tsec-head .ds{font-size:11px;color:var(--ink-4);font-weight:400;margin-left:4px;}
.con-ledger .tier-empty,.con-ledger .tier-more{padding:10px 22px;}
.con-ledger .ap-maj-chips{padding:8px 22px;}
/* 读数行（去框·发丝线·概率环+mono数字） */
.lrow{display:grid;grid-template-columns:28px 42px 1fr auto 34px;gap:13px;align-items:center;padding:12px 22px;border-top:1px solid var(--line);cursor:pointer;position:relative;transition:background .12s;}
.lrow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:.12s;}
.lrow.hov{background:#FCFBF7;}
.lrow.sel{background:var(--backdrop);}
.lrow.sel::before{background:var(--c);}
.lrow.added{background:#F6FBF8;}
.l-seq{font-size:11px;color:var(--ink-4);font-weight:700;text-align:center;}
.l-ring{justify-self:center;}
.l-main{min-width:0;}
.l-nm{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.l-nm .nm{font-size:14.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink);}
.l-ng{font-size:11px;color:var(--green);font-weight:700;background:var(--safe-soft);padding:1px 8px;border-radius:20px;}
.l-meta .l-more{color:var(--match);font-weight:600;}
.l-meta{display:flex;flex-wrap:wrap;gap:3px 11px;margin-top:4px;font-size:11.5px;color:var(--ink-3);}
.l-meta .l-grp{color:var(--ink-2);}
.l-meta .l-req{color:var(--reach);font-weight:600;}
.l-meta .maj-hit{color:var(--green);font-weight:600;}
.l-meta .msat{color:var(--match);}
.l-line{text-align:right;}
.l-line .sc{font-size:16px;font-weight:700;color:var(--ink);}
.l-line .sc small{font-size:10px;color:var(--ink-3);font-weight:500;margin-left:1px;}
.l-line .rk{font-size:11px;color:var(--ink-3);margin-top:1px;}
.l-add{flex:0 0 auto;}
/* —— 详情常驻栏（替代手机"点→抽屉"）—— */
.con-detail{flex:0 0 366px;overflow-y:auto;background:var(--bg);display:flex;flex-direction:column;}
.cd-empty{margin:auto;text-align:center;color:var(--ink-4);font-size:12.5px;padding:36px;}
.cd-empty .av-sprout{width:40px;height:48px;opacity:.5;margin-bottom:12px;}
.cd-empty p{line-height:1.7;}
.cd-head{padding:16px 20px 13px;border-bottom:1px solid var(--line);}
.cd-nm{font-size:17px;font-weight:800;letter-spacing:-.01em;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.cd-sub{font-size:11.5px;color:var(--ink-3);margin-top:6px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.cd-sub .num{color:var(--ink-2);font-weight:700;}
.cd-star{color:var(--match);font-weight:700;}
.cd-cap{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12px;color:var(--ink-2);}
.cd-cap .tdot{width:8px;height:8px;border-radius:2px;flex:0 0 auto;}
.cd-cap .tdot.reach{background:var(--reach);} .cd-cap .tdot.match{background:var(--match);} .cd-cap .tdot.safe{background:var(--safe);} .cd-cap .tdot.risk{background:var(--risk);}
.cd-cap b,.cd-cap .num{font-weight:800;color:var(--ink);}
/* ★2026今年 / 2025去年 双锚横幅：报什么看计划(今年)、够不够看分数线(去年) */
.cd-yrnote{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:9px 20px;font-size:11px;color:var(--ink-3);background:var(--safe-soft);border-bottom:1px solid var(--line);}
.cd-yrnote .yn-now{font-weight:800;color:#fff;background:var(--green);padding:1px 7px;border-radius:5px;font-family:var(--mono);letter-spacing:.01em;}
.cd-yrnote .yn-last{font-weight:700;color:var(--ink-2);background:var(--fill-2);padding:1px 7px;border-radius:5px;font-family:var(--mono);}
.cd-yrnote i{width:1px;height:11px;background:var(--line-2);margin:0 2px;}
.cd-yrnote.single{background:var(--fill);}
.con-detail .groups-sec{background:linear-gradient(180deg,#FCFBF7,transparent 60px);}
.con-detail .groups-sec .microlbl{color:var(--green);}
.cd-sec{padding:13px 20px;border-bottom:1px solid var(--line);}
.cd-sec .microlbl{display:block;margin-bottom:9px;}
.cd-sec.reason p{font-size:12.5px;line-height:1.65;color:var(--ink-2);}
.cd-trend{display:flex;gap:16px;}
.cd-trend .tcol{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;}
.cd-trend .tv{font-size:13px;font-weight:700;color:var(--ink-2);}
.cd-trend .tcol.last .tv{color:var(--green);}
.cd-trend .tr{font-size:10px;color:var(--ink-3);}
.cd-trend .ty{font-size:9.5px;color:var(--ink-4);}
.cd-foot{margin-top:auto;display:flex;gap:9px;padding:13px 20px;border-top:1px solid var(--line);position:sticky;bottom:0;background:var(--bg);}
.cd-foot button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:10px;border-radius:10px;font-size:12.5px;font-weight:700;cursor:pointer;border:1px solid var(--line-2);}
.cd-add{background:var(--green);color:#fff;border-color:var(--green);}
.cd-ask{background:var(--bg);color:var(--ink-2);}
/* 详情内的院校全景（复用 dSchoolHtml）紧凑化：366px 窄栏专用网格 */
.con-detail .cd-groups{font-size:12px;}
.con-detail .dsch-head{font-size:11px;padding:0 0 9px;line-height:1.6;}
.con-detail .ghead2{padding:9px 0 3px;flex-wrap:wrap;gap:4px 6px;}
.con-detail .ghead2 .gln{margin-left:0;width:100%;justify-content:flex-start;gap:6px;}
.con-detail .urow.lgrid{grid-template-columns:minmax(0,1fr) auto 30px 26px;gap:8px;padding:8px 0;border-top:1px dashed var(--line);background:none;}
.con-detail .urow.lgrid .ucell-name{min-width:0;}
.con-detail .urow.lgrid .mrow-name{white-space:normal;font-size:12px;line-height:1.3;}
.con-detail .urow.lgrid .uni-meta{font-size:10.5px;}
.con-detail .urow.lgrid .ucell-score .sc{font-size:13px;}
.con-detail .urow.lgrid .ucell-score .rk{white-space:nowrap;font-size:10px;}
.con-detail .urow.lgrid .pring{width:30px;height:30px;}
.con-detail .urow.lgrid .pring .pv{font-size:9px;}
.con-detail .sch-more{margin:8px 0;font-size:11px;}
.con-detail .sch-other{margin-top:4px;}
/* —— 窄屏（≤1080：强制桌面/平板竖屏）：两栏改上下堆叠 —— */
@media (max-width:1080px){
  .con-panes{flex-direction:column;}
  .con-ledger{flex:1 1 auto;border-right:none;border-bottom:1px solid var(--line-2);}
  .con-detail{flex:0 0 auto;max-height:48vh;}
}

/* ================= 移动端（≤ 860px：上下堆叠，左对话/右工作区可切） ================= */
.mob-switch{display:none;}
@media (max-width:860px){
  .pc-app{height:100dvh;}
  .topbar{flex:0 0 50px;padding:0 12px;gap:8px;}
  .brand .bname{display:none;}
  .btn-ghost{padding:6px 11px;font-size:11.5px;}
  .pc-body{flex-direction:column;position:relative;}
  .chat-col{flex:1;border-right:none;min-height:0;}
  .work-col{flex:1;min-height:0;}
  /* 移动端模式切换：对话 / 工作台 二选一全屏 */
  body.m-work .chat-col{display:none;}
  body.m-chat .work-col{display:none;}
  .mob-switch{display:flex;position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:50;gap:2px;padding:3px;border-radius:999px;background:var(--bg);border:1px solid var(--line-2);box-shadow:0 10px 30px rgba(22,32,27,.16);}
  .mob-switch button{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;border:none;background:transparent;font-size:12.5px;font-weight:800;color:var(--ink-3);}
  .mob-switch button.on{background:var(--green);color:#fff;}
  .mob-switch .mdot{min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--reach);color:#fff;font-size:10px;font-weight:800;display:none;align-items:center;justify-content:center;}
  .mob-switch .mdot.on{display:inline-flex;}
  body.m-chat .chat-input{padding-bottom:calc(64px + env(safe-area-inset-bottom));}
  .mob-switch{bottom:calc(14px + env(safe-area-inset-bottom));}
  .work-scroll{padding:16px 14px calc(96px + env(safe-area-inset-bottom));}
  .res-head{margin:12px -14px 0;padding:11px 16px 9px;top:-16px;}
  /* ★iOS 聚焦防缩放：输入控件字号 <16px 时 iOS Safari 聚焦会强制放大整页不回弹 */
  input,select,textarea{font-size:16px !important;}
  /* tabs：可横滑 + 右缘渐隐暗示还有更多页签 */
  .tabs{padding:0 8px;flex-basis:46px;mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent);}
  .tab{padding:0 11px;font-size:13px;}
  .ask-page{display:none;}
  /* 顶栏画像：JS 已聚合为一颗，超长省略 */
  .profile-seg .pseg{max-width:58vw;overflow:hidden;}
  .profile-seg .pseg b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  /* 分面浮层：fixed 占满屏宽（top 由 JS 按按钮位置设），不再溢出右屏 */
  .facet-pop{position:fixed;left:12px;right:12px;width:auto;max-width:none;}
  .fchip{padding:9px 14px;font-size:13px;}
  /* ★表格列收缩：列数必须与该 grid 的单元格数一致（少一列=末格换行漂移，曾全线破碎） */
  .uthead{display:none;}
  .urow{grid-template-columns:1fr minmax(78px,auto) 40px;gap:8px;padding:13px 14px;}
  .ucell-prob + .ucell-prob{display:none;}   /* 找大学行第4格"›"箭头：手机省宽（整行可点） */
  .urow.lgrid{grid-template-columns:1fr minmax(74px,auto) 38px 32px;}
  .urow.mgrid{grid-template-columns:1fr minmax(74px,auto) 38px 32px;}
  .urow.mgrid .ucell-fee{display:none;}
  .urow.egrid{grid-template-columns:1fr minmax(74px,auto) 38px;}
  /* 报志愿卡：两段式区域布局（序号隐藏，左=校名+meta，右=分位|环|操作 三列贴齐） */
  .urow.pgrid{grid-template-columns:1fr minmax(76px,auto) 42px 36px;gap:8px;grid-template-areas:"name score prob act";}
  .urow.pgrid .seq{display:none;}
  .urow.pgrid .ucell-name{grid-area:name;}
  .urow.pgrid .ucell-score{grid-area:score;}
  .urow.pgrid .ucell-prob{grid-area:prob;}
  .urow.pgrid .ucell-act{grid-area:act;flex-direction:column;align-items:flex-end;justify-content:center;gap:6px;}
  .urow.pgrid .why-wrap{grid-area:auto;grid-column:1 / -1;}
  .urow.pgrid .ucell-act .icbtn{flex-basis:34px;width:34px;height:34px;}
  .urow.pgrid .ucell-prob .ptier{display:none;}
  .urow.pgrid .ucell-prob .pring{width:40px;height:40px;flex-basis:40px;}
  .urow.pgrid .rk{font-size:10px;white-space:normal;line-height:1.4;}
  .ucell-prob{justify-content:flex-end;gap:5px;}
  .ucell-prob .ptier{display:none;}
  .pring{width:40px;height:40px;flex-basis:40px;}
  .pring svg{width:100%;height:100%;}
  .pring .pv{font-size:10.5px;}
  .uni-name{font-size:14px;white-space:normal;}
  .uni-meta{font-size:11px;row-gap:3px;}
  .uni-meta > span{white-space:normal;}
  .ucell-score .sc{font-size:14.5px;}
  .ucell-score .rk{white-space:normal;line-height:1.4;}
  .ucell-act .icbtn{flex-basis:34px;width:34px;height:34px;}
  .why-wrap{grid-template-columns:1fr;gap:14px;}
  .school-card{flex-direction:column;align-items:stretch;gap:12px;}
  .sc-me{flex-direction:row;align-items:baseline;gap:8px;padding-left:0;border-left:none;border-top:1px solid var(--line);padding-top:10px;}
  .search-bar{height:46px;}
  .madlib{padding:24px 18px 22px;}
  .ml-sent{font-size:17px;line-height:2.5;}
  .hslot-btn{font-size:16px;}
  .ml-score{font-size:16px;width:86px;}
  .home-h1{font-size:23px;}
  .hgrid.p4{grid-template-columns:repeat(4,minmax(64px,1fr));}
  .hpop{max-width:calc(100vw - 32px);}
}

/* ================= 首页（madlib） ================= */
.home{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--backdrop);overflow:auto;}
.home-top{flex:0 0 auto;display:flex;align-items:center;gap:9px;padding:20px 28px;}
.home-top .av-sprout{width:26px;height:32px;}
.home-top .bname{font-size:15px;font-weight:800;letter-spacing:.01em;white-space:nowrap;}
.home-top .sp{flex:1;}
.home-resume{font-size:12.5px;font-weight:600;color:var(--ink-3);text-decoration:none;transition:color .14s;white-space:nowrap;}
.home-resume:hover{color:var(--green-deep);}
.home-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 18px 40px;text-align:center;}
.home-mark .av-sprout{width:54px;height:66px;}
.home-h1{margin-top:16px;font-size:30px;font-weight:900;letter-spacing:.01em;color:var(--ink);text-wrap:balance;max-width:640px;}
/* position+z-index：入场动画 fill-mode 的残留 transform 会让后续区块(CTA)形成同级堆叠上下文，
   不抬高 madlib 的话选科浮层会被 CTA 按钮穿透。 */
.madlib{margin-top:36px;padding:36px 50px 30px;border-radius:18px;background:var(--bg);border:1px solid var(--line-2);box-shadow:0 18px 50px rgba(22,32,27,.06);max-width:780px;position:relative;z-index:40;}
.ml-sent{font-size:22px;font-weight:700;line-height:2.4;color:var(--ink);}
.ml-seg{white-space:nowrap;}   /* 词组级折行："今年考了 590 分"永远整组换行，不在"分"前断开 */
.hslot{position:relative;display:inline-block;margin:0 5px;}
.hslot-btn.err{background:var(--reach-soft);color:var(--reach-deep);box-shadow:inset 0 -2px 0 var(--reach-line),0 0 0 1.5px var(--reach-line);}
.hslot-btn.err:hover{background:#fbdcd5;}
.hslot .hslot-btn.err + .cv{color:var(--reach-deep);}
.hslot-btn{display:inline-flex;align-items:center;gap:5px;border:none;background:var(--green-soft);color:var(--green-deep);font-size:21px;font-weight:800;font-family:inherit;padding:3px 12px;border-radius:10px;box-shadow:inset 0 -2px 0 var(--green-line);cursor:pointer;transition:background .14s;white-space:nowrap;}
.hslot-btn:hover{background:#ddf2e7;}
.hslot .cv{display:inline-flex;color:var(--green-deep);opacity:.55;}
.hslot .cv svg{transition:transform .18s var(--ease);}
.hslot.open .cv svg{transform:rotate(180deg);}
.hpop{position:absolute;left:50%;top:48px;z-index:30;display:block;padding:12px;width:max-content;border-radius:14px;background:var(--bg);border:1px solid var(--line-2);box-shadow:0 14px 36px rgba(22,32,27,.12);animation:hpopIn .18s var(--ease) both;}
@keyframes hpopIn{from{transform:translateX(-50%) translateY(5px) scale(.97);}to{transform:translateX(-50%) translateY(0) scale(1);}}
.hpop{transform:translateX(-50%);}
.hpop-head{display:flex;align-items:baseline;gap:10px;padding:2px 6px 10px;font-size:11px;font-weight:700;color:var(--ink-4);text-align:left;white-space:nowrap;}
.hpop-head .sp{flex:1;min-width:18px;}
.hpop-head .warn{color:var(--reach-deep);}
.hpop-count{font-size:13px;font-weight:800;color:var(--ink-3);}
.hpop-count small{font-size:10px;color:var(--ink-4);}
.hpop-count.ok{color:var(--green-deep);}
.hgrid{display:grid;gap:5px;}
.hgrid.p4{grid-template-columns:repeat(4,86px);}
.hgrid.p3{grid-template-columns:repeat(3,96px);}
.hcell{position:relative;height:40px;border-radius:11px;border:1px solid var(--line);background:var(--bg);font-size:13.5px;font-weight:600;color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;gap:5px;transition:all .13s;white-space:nowrap;}
.hcell:hover{border-color:var(--green-line);background:var(--green-soft);color:var(--green-deep);}
.hcell.on{border-color:transparent;background:var(--green);color:#fff;font-weight:800;}
.hcell.on:hover{background:var(--green-deep);}
.hcell.anchor::after{content:"";position:absolute;top:6px;right:7px;width:4.5px;height:4.5px;border-radius:50%;background:var(--green-line);}
.hcell.anchor.on::after{background:rgba(255,255,255,.55);}
.ml-score{display:inline-block;width:118px;margin:0 5px;border:none;outline:none;background:var(--green-soft);box-shadow:inset 0 -2px 0 var(--green-line);border-radius:10px;padding:3px 12px;font-size:21px;font-weight:800;color:var(--green-deep);text-align:center;font-family:"Space Grotesk","Noto Sans SC",sans-serif;transition:background .14s,box-shadow .14s;}
.ml-score:focus{background:#ddf2e7;box-shadow:inset 0 -2px 0 var(--green);}
.ml-score::placeholder{color:#aeddc4;font-weight:700;}
.ml-rank{margin-top:14px;font-size:13px;color:var(--ink-3);font-weight:600;min-height:20px;}
.ml-rank b{color:var(--green-deep);font-size:15px;}
.ml-rank .warn{color:var(--reach-deep);}
.home-cta-row{margin-top:28px;display:flex;flex-direction:column;align-items:center;gap:16px;}
.home-cta{display:inline-flex;align-items:center;gap:9px;height:48px;padding:0 30px;border-radius:999px;border:none;background:var(--green);color:#fff;font-size:15px;font-weight:800;letter-spacing:.02em;text-decoration:none;transition:background .15s,transform .12s,opacity .2s;}
.home-cta:hover{background:var(--green-deep);}
.home-cta:active{transform:scale(.97);}
.home-cta.mute{opacity:.35;pointer-events:none;}
.home-alt{font-size:13px;color:var(--ink-3);font-weight:600;text-decoration:none;border-bottom:1px dashed var(--line-2);padding-bottom:1px;transition:all .14s;background:none;border-top:none;border-left:none;border-right:none;}
.home-alt:hover{color:var(--green-deep);border-color:var(--green-line);}
.home-caps{flex:0 0 auto;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 30px;padding:24px 20px 30px;}
.hcap{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-3);text-decoration:none;white-space:nowrap;border:none;background:none;transition:color .14s;}
.hcap:hover{color:var(--green-deep);}
@media (prefers-reduced-motion:no-preference){
  .home-mark,.home-h1,.madlib,.home-cta-row,.home-caps{animation:homeIn .5s var(--ease) both;}
  .home-h1{animation-delay:.05s;}
  .madlib{animation-delay:.14s;}
  .home-cta-row{animation-delay:.22s;}
  .home-caps{animation-delay:.3s;}
}
@keyframes homeIn{from{transform:translateY(10px);}to{transform:translateY(0);}}

@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;}}

/* ---- 专业三级树（查专业·按门类浏览，对标夸克选专业） ---- */
.mt-toggle { font-weight: 800; }
.mtree { margin-top: 10px; }
.mt-cats { display: flex; gap: 7px; flex-wrap: wrap; padding-bottom: 10px; border-bottom: 1px solid var(--line, #eef0f1); }
.mt-cat { padding: 7px 15px; border-radius: 999px; border: 1px solid var(--line, #e6e8ea); background: #fff; font-size: 13.5px; font-weight: 700; color: var(--ink-3, #555); cursor: pointer; }
.mt-cat.on { background: var(--brand, #0B5C3B); border-color: var(--brand, #0B5C3B); color: #fff; }
.mt-cols { display: grid; grid-template-columns: 150px 1fr; gap: 16px; margin-top: 12px; }
.mt-subs { display: flex; flex-direction: column; gap: 2px; max-height: 540px; overflow-y: auto; border-right: 1px solid var(--line, #eee); padding-right: 8px; }
.mt-sub { text-align: left; padding: 9px 10px; border: 0; background: none; font-size: 13.5px; color: var(--ink-3, #555); border-radius: 8px; cursor: pointer; }
.mt-sub:hover { background: #F4F2EC; }
.mt-sub.on { background: var(--green-soft); color: var(--brand, #0B5C3B); font-weight: 800; }
.mt-majors { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 4px 18px; align-content: start; max-height: 540px; overflow-y: auto; }
.mt-major { display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; padding: 10px 8px; border: 0; border-bottom: 1px solid var(--line, #f0f1f2); background: none; cursor: pointer; }
.mt-major:hover { background: #F4F2EC; }
.mm-name { font-size: 14px; font-weight: 600; color: var(--ink, #1a1a1a); }
.mm-code { font-size: 12px; color: var(--ink-4, #999); flex: 0 0 auto; }

/* ---- 报志愿「专业」选择器弹层（细颗粒：搜索 + 热门 + 门类浏览 + 快捷方向） ---- */
.ap-maj-pop { flex-direction: column; flex-wrap: nowrap; width: 624px; max-width: min(624px, calc(100vw - 40px)); max-height: 80vh; overflow-y: auto; gap: 0; align-items: stretch; }
.ap-maj-pop .amp-search { display: flex; gap: 6px; margin-bottom: 6px; }
.ap-maj-pop .amp-search input { flex: 1; min-width: 0; border: 1px solid var(--line-2, #e2e5e3); border-radius: 9px; padding: 8px 12px; font-size: 14px; font-family: inherit; outline: none; }
.ap-maj-pop .amp-search input:focus { border-color: var(--brand, #0B5C3B); }
.ap-maj-pop .amp-go { flex: 0 0 auto; border: 0; background: var(--brand, #0B5C3B); color: #fff; border-radius: 9px; padding: 0 16px; font-weight: 700; font-size: 13.5px; cursor: pointer; }
.ap-maj-pop .amp-sec { font-size: 12px; color: var(--ink-4, #9aa0a6); font-weight: 700; margin: 7px 2px 5px; }
.ap-maj-pop .amp-sec-row { display: flex; align-items: center; justify-content: space-between; }
.ap-maj-pop .amp-collapse { border: 0; background: none; color: var(--brand, #0B5C3B); font-size: 12px; font-weight: 700; cursor: pointer; padding: 2px 4px; }
.ap-maj-pop .amp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ap-maj-pop .amp-load { padding: 14px 4px; color: var(--ink-4, #9aa0a6); font-size: 13px; }
.ap-maj-pop .mt-cats { padding-bottom: 8px; }
.ap-maj-pop .mt-subs { flex-direction: row; flex-wrap: wrap; max-height: none; border-right: 0; padding-right: 0; margin: 8px 0; gap: 4px; }
.ap-maj-pop .mt-sub { padding: 5px 11px; border-radius: 999px; border: 1px solid var(--line, #e6e8ea); font-size: 12.5px; }
.ap-maj-pop .mt-majors { grid-template-columns: 1fr 1fr; max-height: 240px; gap: 2px 14px; }
.ap-maj-pop .amp-foot { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--line, #eef0f1); }
.ap-maj-pop .amp-foot .facet-clear { width: auto; height: auto; border-radius: 8px; padding: 6px 12px; gap: 6px; font-size: 13px; }
.maj-hit { color: var(--brand, #0B5C3B); font-weight: 700; }
/* 极简三级下钻 */
/* ★文/理两块：高考文理分野当骨架；每个大类=一个方格卡片（名+数量装格内），3 列网格 */
.ap-maj-pop .amp-stream { font-family: var(--mono); font-size: 10px; letter-spacing: .1em; font-weight: 800; padding: 7px 2px 5px; border-bottom: 1px solid var(--line-2, #DAD6C9); margin-bottom: 6px; }
.ap-maj-pop .amp-stream.sci { color: var(--brand-deep, #094A30); }
.ap-maj-pop .amp-stream.art { color: var(--match, #C2861B); }
.ap-maj-pop .amp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin-bottom: 6px; }
.ap-maj-pop .amp-cat { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 9px 10px; border: 1px solid var(--line, #e6e8ea); border-radius: 11px; background: #fff; cursor: pointer; transition: all .13s; text-align: left; min-width: 0; }
.ap-maj-pop .amp-cat:hover { border-color: var(--brand, #0B5C3B); background: #f4fbf7; }
.ap-maj-pop .amp-cat .ac-nm { font-size: 13px; font-weight: 700; color: var(--ink, #1a1a1a); letter-spacing: -.03em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ap-maj-pop .amp-cat .ac-meta { display: flex; align-items: center; gap: 5px; }
.ap-maj-pop .amp-cat .ac-both { font-size: 9px; font-style: normal; font-weight: 700; color: var(--match, #C2861B); background: var(--match-soft, #FAF0DA); padding: 1px 5px; border-radius: 4px; }
.ap-maj-pop .amp-n { font-size: 11.5px; color: var(--ink-4, #9aa0a6); font-weight: 600; }
.ap-maj-pop .amp-n2 { font-size: 11px; color: var(--ink-4, #9aa0a6); margin-left: 5px; }
.ap-maj-pop .amp-crumb { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 13.5px; }
.ap-maj-pop .amp-crumb b { font-weight: 800; color: var(--ink, #1a1a1a); }
.ap-maj-pop .amp-back { border: 0; background: none; color: var(--brand, #0B5C3B); font-size: 13.5px; font-weight: 700; cursor: pointer; padding: 4px 8px; border-radius: 8px; }
.ap-maj-pop .amp-back:hover { background: #f4fbf7; }
.ap-maj-pop .amp-all { display: block; width: 100%; text-align: left; padding: 11px 14px; margin-bottom: 10px; border: 1px dashed var(--brand, #0B5C3B); border-radius: 11px; background: #f4fbf7; color: var(--brand-deep, #094A30); font-size: 13.5px; font-weight: 700; cursor: pointer; }
.ap-maj-pop .amp-all:hover { background: #e9f7ef; }
.ap-maj-pop .amp-all.on { background: var(--safe-soft, #e7f6ee); border-style: solid; color: var(--safe-deep, #094A30); }
.ap-maj-pop .mt-major.on .mm-name { color: var(--brand, #0B5C3B); font-weight: 700; }
/* 置顶常驻区：搜索 + 已选篮子 sticky，跨层级始终可见 */
.ap-maj-pop .amp-head { position: sticky; top: 0; z-index: 3; background: var(--bg); padding-bottom: 8px; margin-bottom: 2px; }
.ap-maj-pop .amp-picked { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 6px 0 0; padding: 7px 10px; border-radius: 11px; background: var(--safe-soft, #e7f6ee); border: 1px solid var(--safe-line, #cdead9); transition: background .15s; }
.ap-maj-pop .amp-picked.empty { padding: 4px 10px; }
.ap-maj-pop .amp-picked.empty { background: #F4F2EC; border: 1px dashed var(--line-2, #e2e5e3); }
.ap-maj-pop .amp-pickn { font-size: 12px; font-weight: 800; color: var(--brand-deep, #094A30); flex: 0 0 auto; }
.ap-maj-pop .amp-picked.empty .amp-pickn { color: var(--ink-4, #9aa0a6); }
.ap-maj-pop .amp-empty-hint { font-size: 12px; color: var(--ink-4, #9aa0a6); }
.ap-maj-pop .amp-tag { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 700; color: var(--brand-deep, #094A30); background: #fff; border: 1px solid var(--safe-line, #cdead9); border-radius: 999px; padding: 3px 6px 3px 11px; }
.ap-maj-pop .amp-tag.pop { animation: tagpop .34s cubic-bezier(.22,1.4,.4,1); }
@keyframes tagpop { 0% { transform: scale(.4); opacity: 0; } 60% { transform: scale(1.12); } 100% { transform: scale(1); opacity: 1; } }
.ap-maj-pop .amp-tag button { border: 0; background: none; color: var(--brand-deep, #094A30); font-size: 15px; line-height: 1; cursor: pointer; padding: 0 2px; }
.ap-maj-pop .amp-foot { display: flex; gap: 8px; align-items: center; }
.ap-maj-pop .amp-done { flex: 1; border: 0; background: var(--brand, #0B5C3B); color: #fff; border-radius: 9px; padding: 9px 0; font-size: 13.5px; font-weight: 800; cursor: pointer; }
/* 已选专业 chips 行（主视图，逐个删） */
.ap-maj-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 10px 2px 0; }
.ap-maj-chips .amc-lb { font-size: 12px; color: var(--ink-4, #9aa0a6); font-weight: 700; }
.ap-maj-chips .amc-tag { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 700; color: var(--brand-deep, #094A30); background: var(--safe-soft, #e7f6ee); border: 1px solid var(--safe-line, #cdead9); border-radius: 999px; padding: 4px 7px 4px 12px; }
.ap-maj-chips .amc-tag button { border: 0; background: none; color: var(--brand-deep, #094A30); font-size: 16px; line-height: 1; cursor: pointer; padding: 0 2px; }
.ap-maj-chips .amc-clr { border: 0; background: none; color: var(--ink-4, #9aa0a6); font-size: 12.5px; cursor: pointer; }

/* ---- 组内逐专业明细（桌面详情，对标夸克 IMG_9613） ---- */
.why-majors { grid-column: 1 / -1; margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--line, #e6e8ea); }
.why-majors .microlbl { display: block; margin-bottom: 6px; }
.wm-row { display: grid; grid-template-columns: 1fr auto 44px 30px; align-items: center; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line, #f0f1f2); }
.wm-row:first-of-type { border-top: 0; }
.wm-top { display: flex; align-items: baseline; gap: 7px; }
.wm-name { font-size: 14px; font-weight: 700; color: var(--ink, #1a1a1a); }
.wm-code { font-size: 11.5px; color: var(--ink-4, #999); }
.wm-meta { font-size: 12px; color: var(--ink-3, #666); margin-top: 2px; }
.wm-sc { text-align: right; white-space: nowrap; }
.wm-sc .sc { font-size: 14.5px; font-weight: 800; color: var(--ink, #1a1a1a); }
.wm-sc .rk { font-size: 11px; color: var(--ink-4, #999); }
.wm-pr { display: flex; justify-content: center; }
.mrow-code { font-size: 11.5px; color: var(--ink-4, #999); margin-left: 7px; font-weight: 600; }

/* ---- 专业就业前景卡（桌面，对标夸克职业库 IMG_9611） ---- */
.emp-card { background: var(--bg); border: 1px solid var(--line-2); border-radius: 14px; padding: 16px 18px; margin: 8px 0 14px; }
.emp-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.emp-t { font-size: 16px; font-weight: 900; color: var(--ink, #1a1a1a); }
.emp-rank { font-family: var(--mono); font-size: 12px; font-weight: 700; color: var(--green-deep); background: var(--green-soft); padding: 4px 11px; border-radius: 999px; }
.emp-sal { margin: 10px 0 6px; font-size: 13.5px; color: var(--ink-3, #555); }
.emp-sal .big { font-family: var(--mono); font-size: 26px; font-weight: 700; color: var(--green-deep); }
.emp-sal small { font-size: 12px; color: var(--ink-4, #999); margin-left: 4px; }
.emp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 28px; margin-top: 6px; }
.emp-col { display: flex; flex-direction: column; gap: 2px; }
.emp-sec { margin-top: 10px; }
.emp-lb { font-size: 11.5px; font-weight: 700; color: var(--ink-4, #999); margin-bottom: 5px; }
.cbar { display: grid; grid-template-columns: 96px 1fr 44px; align-items: center; gap: 9px; margin: 4px 0; }
.cbl { font-size: 12px; color: var(--ink-3, #555); }
.cbf { height: 9px; background: var(--fill-2); border-radius: 999px; overflow: hidden; }
.cbf i { display: block; height: 100%; background: var(--brand, #0B5C3B); border-radius: 999px; }
.cbp { font-size: 11.5px; color: var(--ink-4, #999); text-align: right; }
.cchips { display: flex; flex-wrap: wrap; gap: 6px; }
.cchip { font-size: 12px; background: var(--fill-2); color: var(--ink-2, #333); padding: 4px 11px; border-radius: 999px; }
.cchip b { color: var(--brand, #0B5C3B); }
.emp-foot { font-size: 11px; color: var(--ink-4, #aaa); margin-top: 11px; }

.msat{color:var(--match-deep);font-weight:700}

.uni-flag{font-size:12px;color:var(--match-deep);margin-top:3px}

/* ---- 首页优雅降级：空槽占位 / 精准提示 / 无分数入口 ---- */
.hslot-btn.ph { color: var(--ink-4, #9aa0a6); background: #f1f3f2; box-shadow: inset 0 -2px 0 #e2e5e3; }
.hslot-btn.ph:hover { background: #e9ecea; }
.hslot .hslot-btn.ph + .cv { color: var(--ink-4, #9aa0a6); }
.ml-score.ph { color: var(--ink-4, #9aa0a6); background: #f1f3f2; box-shadow: inset 0 -2px 0 #e2e5e3; }
.ml-score.ph::placeholder { color: #b6bbbd; font-weight: 700; }
.ml-score.ph:focus { background: #ddf2e7; box-shadow: inset 0 -2px 0 var(--green); }
.ml-rank .rl-sub { color: var(--ink-4, #9aa0a6); font-size: .92em; margin-left: 2px; }
@keyframes hshake { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-5px)} 40%,80%{transform:translateX(5px)} }
.hslot.shake { animation: hshake .4s; }
.home-noscore { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.ns-lab { font-size: 13.5px; color: var(--ink-4, #9aa0a6); }
.ns-chip { font-size: 13.5px; font-weight: 700; color: var(--brand, #0B5C3B); background: #eaf7f0; border: 1px solid #d2ecdf; padding: 6px 15px; border-radius: 999px; text-decoration: none; transition: background .15s; }
.ns-chip:hover { background: #ddf1e7; }

.noscore-row{text-align:center;margin-top:16px;font-size:13px;color:var(--ink-4,#9aa0a6)}
.noscore-row a{color:var(--brand,#0B5C3B);font-weight:700;cursor:pointer}

.tier-empty.maj-empty{background:var(--match-soft,#fdf3e6);border-color:var(--match-line,#f0d9b5);color:var(--match-deep,#9a6a1e);}
/* ===== 对话内"仪器卡片"（数据走卡片、气泡只点评，2026-06-19）===== */
/* 卡片消息：中和气泡外壳，由 .chatcard 自带样式 —— "小禾递来的读数单" */
.mlog .msg.card .bub, .msg.card .bub { background: none !important; border: none !important; padding: 0 !important; }
.chatcard { background: var(--bg); border: 1px solid var(--line-2); border-radius: 14px; overflow: hidden;
  box-shadow: 0 1px 0 var(--line), 0 14px 30px -26px rgba(20,24,28,.5); animation: cardin .4s var(--ease) both; }
.cc-head { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 13px; border-bottom: 1px solid var(--line); }
.cc-lbl { font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--green-deep); }
.cc-my { font-size: 11.5px; color: var(--ink-3); white-space: nowrap; }
.cc-my .num { color: var(--ink); font-weight: 700; }
/* 档位小节 */
.cc-tier { display: flex; align-items: center; gap: 7px; padding: 9px 13px 4px; }
.cc-tg { font-size: 11.5px; font-weight: 800; color: #fff; padding: 2px 9px; border-radius: 6px; letter-spacing: .04em; }
.cc-tier.reach .cc-tg { background: var(--reach); } .cc-tier.match .cc-tg { background: var(--match); }
.cc-tier.safe .cc-tg { background: var(--safe); }
.cc-tn { font-family: var(--mono); font-size: 12px; font-weight: 700; color: var(--ink-2); }
.cc-td { font-size: 11px; color: var(--ink-4); margin-left: -3px; }
/* 院校读数行（可点→详情） */
.cc-row { display: grid; grid-template-columns: 34px 1fr auto 32px; align-items: center; gap: 10px;
  padding: 9px 13px; border-top: 1px solid var(--line); cursor: pointer; transition: background .14s; }
.cc-tier + .cc-row { border-top: none; }
.cc-row:active { background: var(--green-soft); }
.cc-row .pring.sm { width: 34px; height: 34px; }
.cc-main { min-width: 0; }
.cc-nm { font-size: 14px; font-weight: 700; line-height: 1.25; letter-spacing: -.01em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-sub { font-size: 11px; color: var(--ink-3); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-line { text-align: right; line-height: 1.2; }
.cc-line .sc { font-size: 15px; font-weight: 700; color: var(--ink); }
.cc-line .sc::after { content: "分"; font-size: 10px; font-weight: 600; color: var(--ink-4); }
.cc-rk { display: block; font-size: 10.5px; color: var(--ink-3); }
.cc-rk::before { content: "位"; font-size: 9px; color: var(--ink-4); margin-right: 1px; }
.cc-add { width: 32px; height: 32px; border-radius: 9px; border: 1px solid var(--green-line);
  background: var(--green-soft); color: var(--green-deep); font-size: 16px; font-weight: 700; line-height: 1; }
.cc-add.in { background: var(--green); color: #fff; border-color: var(--green); }
.cc-foot { display: block; text-align: center; padding: 10px; font-size: 12px; font-weight: 600;
  color: var(--green-deep); background: var(--green-soft); text-decoration: none; }
/* 院校录取线卡 */
.sl-sch { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 11px 13px 4px; }
.sl-sch b { font-size: 15px; font-weight: 800; letter-spacing: -.01em; }
.sl-loc { font-size: 11px; color: var(--ink-3); }
.sl-grp { display: flex; align-items: center; gap: 8px; padding: 9px 13px 5px; border-top: 1px solid var(--line); margin-top: 6px; }
.sl-gno { font-family: var(--mono); font-size: 11px; font-weight: 700; color: var(--ink-2); background: var(--fill-2); padding: 1px 6px; border-radius: 4px; }
.sl-req { font-size: 11px; color: var(--reach-deep); font-weight: 600; flex: 1; min-width: 0; }
.sl-gl { font-size: 12px; color: var(--ink-2); white-space: nowrap; }
.sl-gl .num { font-weight: 700; color: var(--ink); }
.sl-grp .pring.sm { width: 30px; height: 30px; flex: 0 0 30px; }
.sl-majs { padding: 0 13px 4px; }
.sl-maj { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 4px 0 4px 10px;
  font-size: 12px; color: var(--ink-2); border-left: 2px solid var(--line-2); }
.sl-maj.big { padding: 9px 13px; border-left: none; border-top: 1px solid var(--line); align-items: center; }
.sl-mn { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sl-ms { white-space: nowrap; color: var(--ink-3); }
.sl-ms .num { color: var(--ink); font-weight: 700; }
.sl-maj.big .sl-mn { font-weight: 600; color: var(--ink); }

/* ===== 院校全景（桌面对齐手机端）+ 扩缩招/可报性标记（2026-06-20）===== */
.uni-name.click { cursor: pointer; }
.uni-name.click:hover { color: var(--brand); }
.mc-ng { margin-left: 8px; padding: 1px 8px; border-radius: 6px; font-size: 11px; font-weight: 700; color: var(--brand-deep, #0B5C3B); background: var(--green-soft); cursor: pointer; }
.gtag { display: inline-block; margin-left: 7px; padding: 1px 7px; border-radius: 6px; font-size: 10.5px; font-weight: 800; vertical-align: middle; font-family: var(--mono); }
.gtag.exp { color: var(--safe-deep); background: var(--green-soft); }
.gtag.shr { color: var(--match-deep); background: rgba(194,134,27,.1); }
.gtag.new { color: #2563a8; background: rgba(37,99,168,.1); }
.utag { display: inline-block; margin-left: 7px; padding: 1px 7px; border-radius: 6px; font-size: 10.5px; font-weight: 700; vertical-align: middle; }
.utag.noelig { color: var(--reach); background: rgba(216,71,42,.09); }
.utag.far { color: var(--ink-3); background: var(--fill); }
.dsch { grid-column: 1 / -1; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.dsch-load { color: var(--ink-3); font-size: 13px; padding: 8px; }
.dsch-head { font-size: 12.5px; color: var(--ink-2); margin-bottom: 8px; }
.dsch-head .num { font-family: var(--mono); }
.dsch-note { color: var(--ink-3); font-size: 11.5px; }
.dsch-note b { color: var(--ink-2); font-family: var(--mono); }
.dsch .ghead2 { margin-top: 8px; }
.urow.lgrid.noelig { opacity: .6; }
.sch-more { display: block; width: 100%; margin: 10px 0 4px; padding: 9px; border: 1px dashed var(--line-2); border-radius: 10px; background: var(--bg); color: var(--ink-2); font: 700 12.5px/1 inherit; text-align: center; cursor: pointer; }
.sch-other { margin-top: 6px; }

/* 行内年标（提前批双锚）：今年招生=绿 · 去年线=墨，小号 */
.yr-now { color: var(--green-deep, #0B5C3B); font-weight: 800; font-size: 10.5px; letter-spacing: .02em; margin-right: 3px; }
.yr-last { color: var(--ink-3, #6b7280); font-weight: 800; font-size: 10.5px; letter-spacing: .02em; margin-right: 3px; }

/* 志愿表三批次切换条（桌面） */
.facet-bar.wstab { margin: 0 0 12px; gap: 10px; }
.facet-bar.wstab .fchip b { color: var(--green-deep, #0B5C3B); margin-left: 3px; }
.facet-bar.wstab .fchip.on b { color: #fff; }
.icbtn.on { background: var(--green-deep, #0B5C3B); border-color: var(--green-deep, #0B5C3B); color: #fff; }
