/* ===== 小禾高考志愿 · 设计系统 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{
  --bg:#ffffff;
  --backdrop:#f6f7f5;

  --ink:#16201b;
  --ink-2:#5c665f;
  --ink-3:#8a938d;
  --ink-4:#aab2ac;

  --line:#eef1ee;
  --line-2:#e3e7e3;
  --fill:#f4f6f3;
  --fill-2:#eef1ed;

  --green:#23b074;
  --green-deep:#178a56;
  --green-soft:#e7f6ee;
  --green-line:#cdeadb;

  --reach:#e2594c; --reach-deep:#c8412f; --reach-soft:#fdeae6; --reach-line:#f6cdc5;
  --match:#d68a23; --match-deep:#b06d0c; --match-soft:#fbf0db; --match-line:#f1ddb4;
  --safe:#1ba36a;  --safe-deep:#127d4f;  --safe-soft:#e4f5ec;  --safe-line:#bfe6d0;
  --risk:#94a3b8;  --risk-deep:#64748b;  --risk-soft:#eef1f4;

  --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 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;}
.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);}

/* ---- 结果头：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(246,247,245,.85);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);}
.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:16px;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:#fafbfa;}
.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:#fafbfa;}

.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:16px;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:16px;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:#fafbfa;}
.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);}
.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-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:16px;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:16px;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;}
}

/* ================= 移动端（≤ 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:22px;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;}}
