body{font-size:15px}.mast{display:flex;align-items:center;justify-content:space-between;padding:22px 0;border-bottom:.5px solid var(--cq-hair)}.mast small{display:block;font-size:11px;letter-spacing:.1em;color:var(--cq-mist)}.mast img{width:54px;height:54px}.intro{padding:42px 0 20px}.intro h1{font-size:clamp(27px,5vw,46px);line-height:1.4;margin:6px 0 16px}.intro p{max-width:760px}.notice{padding:12px;border-left:2px solid var(--cq-cinnabar);background:var(--cq-paper-warm);font-family:var(--cq-sans);font-size:13px}.panel{margin:22px 0 32px;padding:25px;border:.5px solid var(--cq-hair);border-radius:8px;background:var(--cq-paper)}.panel h2{margin:0 0 10px;font-size:24px}.helper{font-family:var(--cq-sans);color:var(--cq-mist);font-size:13px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}label{display:flex;flex-direction:column;gap:6px;font-family:var(--cq-sans);font-size:13px}input,select,textarea{width:100%;min-height:44px;border:.5px solid var(--cq-hair);border-radius:4px;background:#fff;color:var(--cq-ink);padding:0 10px}textarea{padding:10px;min-height:150px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--cq-celadon)}.extra,.excluded{border-top:.5px solid var(--cq-hair);padding:14px 0;margin-top:14px}.extra summary,.excluded summary{cursor:pointer;font-family:var(--cq-sans);font-weight:700}.region-picks{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 22px}.region-picks button,.suggestions button{border:.5px solid var(--cq-hair);border-radius:4px;padding:8px 12px;background:var(--cq-paper-warm);color:var(--cq-ink);font-family:var(--cq-sans);cursor:pointer}.region-picks button[aria-pressed="true"]{border-color:var(--cq-cinnabar);background:var(--cq-cinnabar);color:#fff}.suggestions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.suggestions button{color:var(--cq-cinnabar)}.primary{margin:8px 0}.cq-button:disabled{opacity:.5;cursor:not-allowed}.results{border-top:3px solid var(--cq-cinnabar)}.receipt{background:var(--cq-paper-warm);padding:12px;border-radius:4px;font-size:13px;font-family:var(--cq-sans)}.refine{border:.5px solid var(--cq-hair);border-radius:8px;background:var(--cq-paper-warm);padding:16px;margin:20px 0}.refine h3,.bucket h3,.shortlist h3{font-size:20px;margin:3px 0 8px}.bucket{border-top:.5px solid var(--cq-hair);padding-top:22px;margin-top:24px}.bucket>p{font-size:13px;color:var(--cq-mist)}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.job{border:.5px solid var(--cq-hair);border-radius:8px;padding:16px;background:var(--cq-paper-warm)}.job h4{font-size:17px;margin:3px 0}.job p{margin:8px 0;font-family:var(--cq-sans);font-size:13px}.job .badge{display:inline-block;color:var(--cq-cinnabar);font-family:var(--cq-sans);font-size:12px;font-weight:700}.job details{border-top:.5px solid var(--cq-hair);padding-top:10px}.job summary{cursor:pointer;font-family:var(--cq-sans)}.job button{min-height:38px}.unknown{border-left:2px solid var(--cq-ochre);padding-left:9px}.shortlist{margin-top:24px;padding:18px;border:.5px solid var(--cq-hair);border-radius:8px;background:var(--cq-paper-warm)}footer{border-top:.5px solid var(--cq-hair);padding:20px 0 40px;display:flex;justify-content:space-between;gap:14px;color:var(--cq-mist);font-size:12px}@media(max-width:700px){.intro{padding-top:25px}.panel{padding:16px}.fields,.cards{grid-template-columns:1fr}.region-picks button{min-width:65px}.job button,.primary{width:100%}footer{display:block}}
.region-add{max-width:380px;margin-top:16px}.region-picks{margin:12px 0 18px}.region-picks button{border-color:var(--cq-cinnabar);color:var(--cq-cinnabar)}
[hidden]{display:none!important}

/* Narrow phone screens: readable controls, no side scroll, clear next action. */
.next-actions{margin-top:22px;padding-top:15px;border-top:.5px solid var(--cq-hair)}
.next-actions h4{margin:0 0 8px;font-size:18px}
.next-actions ol{padding-left:21px;margin:8px 0}
.next-actions li{margin:0 0 10px;font-family:var(--cq-sans);font-size:14px}
.receipt,.job,.next-actions,#receipt-full,#brief-fallback{overflow-wrap:anywhere}
@media(max-width:700px){
  .cq-wrap{width:calc(100% - 28px)}
  .mast{padding:14px 0;gap:10px}.mast img{width:42px;height:42px;flex:none}
  .mast small{font-size:9px;letter-spacing:.03em}
  .intro{padding:24px 0 8px}.intro h1{font-size:clamp(26px,8vw,34px);line-height:1.35}
  .panel{margin:16px 0 22px;padding:16px 14px}
  .panel h2{font-size:21px;line-height:1.4}.fields{gap:14px;margin:15px 0}
  label{font-size:14px}input,select,textarea{font-size:16px;min-height:48px}
  .region-add{max-width:none}.region-picks button,.suggestions button{min-height:44px}
  .job{padding:14px}.job button,.cq-button,.shortlist button{min-height:48px;width:100%}
  .shortlist{padding:14px}.shortlist button+button{margin-top:10px}
  #brief-fallback{height:240px;line-height:1.5}
  .receipt{line-height:1.6}summary{min-height:44px;display:flex;align-items:center}
  footer{padding-bottom:max(36px,env(safe-area-inset-bottom))}
}
@media(max-width:350px){.cq-wrap{width:calc(100% - 20px)}.panel{padding:14px 10px}.mast small{font-size:8px}}

/* 往年进面分与口径卡片 */
.score-line{margin:6px 0 0;font-size:13px;line-height:1.5;color:#0f5c3f;background:#eef7f2;border-left:3px solid #1f8a5f;padding:6px 10px;border-radius:0 4px 4px 0}
.score-line--none{color:#6b6b6b;background:#f4f4f4;border-left-color:#c9c9c9}
.caliber{margin:6px 0 0;font-size:12px;line-height:1.6;color:#7a5210;background:#fdf6e8;border:1px dashed #d8b263;padding:8px 10px;border-radius:4px}

/* B 端工作台 */
textarea{width:100%;font-family:Consolas,Menlo,monospace;font-size:12px;line-height:1.5;padding:10px;border:1px solid #cfcfcf;border-radius:6px;box-sizing:border-box}
.btab{width:100%;border-collapse:collapse;font-size:12.5px;margin:8px 0;display:block;overflow-x:auto}
.btab th,.btab td{border:1px solid #dcdcdc;padding:5px 7px;text-align:left;vertical-align:top}
.btab th{background:#eef3f8;white-space:nowrap}
.errlist,.warnlist{margin:6px 0;padding-left:20px;font-size:13px;line-height:1.7}
.errlist li{color:#a12626}.warnlist li{color:#8a5a10}
details{margin:10px 0}details summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font-size:14px}
#dashboard h3{margin:16px 0 6px}#dashboard h4{margin:12px 0 4px;font-size:14px}

/* 竞争与容错：筛完之后做决策要用的三个数（招录同比 / 实际进面比 / 推算目标名次） */
.comp-line{margin:6px 0 0;font-size:13px;line-height:1.6;color:#12466e;background:#eef4fa;border-left:3px solid #2f6fa8;padding:6px 10px;border-radius:0 4px 4px 0}
.comp-warn{margin:6px 0 0;font-size:13px;line-height:1.6;color:#8a5a10;background:#fdf6e8;border:1px dashed #d8b263;padding:6px 10px;border-radius:4px;font-weight:600}

/* 报名人数与竞争比：官方按日公布，按热度分档着色。没有数据时不渲染这一行。 */
.signup-line{margin:6px 0 0;font-size:13px;line-height:1.6;padding:6px 10px;border-radius:0 4px 4px 0;border-left:3px solid}
.signup-low{background:#eaf3de;border-left-color:#639922;color:#173404}
.signup-medium{background:#fdf6e8;border-left-color:#ba7517;color:#412402}
.signup-high{background:#fcebeb;border-left-color:#e24b4a;color:#501313}
/* 限制强度：门槛越多，符合条件的人越少 —— 竞争基数的决定因素 */
.restriction-line{margin:6px 0 0;font-size:13px;line-height:1.6;color:#3c3489;background:#eeedfe;border-left:3px solid #7f77dd;padding:6px 10px;border-radius:0 4px 4px 0}

/* 大专结果解释：0 结果必须有说明，否则会被当成系统坏了（用中性色区别于红色的备注告警） */
.degree-note{background:#eef4fa;border:1px solid #b5d4f4;border-left:4px solid #2f6fa8;color:#12466e;font-weight:400;line-height:1.7}

/* 岗位对比表：筛选之后横向比较，指标做成行、岗位做成列，手机上横向滚动 */
.compare-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:12px;border-radius:6px}
.compare-table{border-collapse:collapse;font-family:var(--cq-sans);font-size:13px;width:100%;min-width:560px;background:#fff}
.compare-table th,.compare-table td{border:.5px solid var(--cq-hair);padding:8px 10px;text-align:left;vertical-align:top;line-height:1.5}
.compare-table thead th{background:var(--cq-paper-warm);font-weight:700;min-width:140px}
.compare-table tbody th{background:#fafafa;font-weight:400;color:var(--cq-mist);white-space:nowrap}

/* 备注风险提示：87.5% 的岗位备注含「限／仅／须」，必须做成显性元素，不能藏在折叠里 */
.remark-alert{margin:6px 0 0;font-size:13px;line-height:1.6;color:#8a1f1f;background:#fdf0f0;border:1px solid #e2a0a0;border-left:4px solid #c0392b;padding:8px 10px;border-radius:0 4px 4px 0;font-weight:600}
.remark-banner{background:#fdf0f0;border:1px solid #e2a0a0;border-left:4px solid #c0392b;color:#8a1f1f;font-weight:600;line-height:1.7}

/* 演示模式：直播间点开预置画像即出结果。横幅必须显眼 —— 观众很容易把示例
   结果当成系统给自己算的，这条横幅是防误导，不是装饰。 */
.demo-banner{margin:0 0 16px;padding:10px 14px;border-radius:0 4px 4px 0;
  border:1px solid #e2b95c;border-left:4px solid #a9781f;background:#fdf6e3;
  color:#5a3d05;font-size:13px;line-height:1.7}
.demo-banner strong{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:3px;
  background:#a9781f;color:#fff;font-size:12px;letter-spacing:.05em}
.demo-banner a{color:#5a3d05;text-decoration:underline;font-weight:600;white-space:nowrap}

/* 演示画像列表 */
.demo-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-top:12px}
.demo-card{display:flex;flex-direction:column;gap:5px;padding:14px 16px;border-radius:6px;
  border:1px solid var(--cq-hair);background:#fff;text-decoration:none;color:inherit;
  border-left:4px solid var(--cq-seal,#8a1f1f)}
.demo-card:hover,.demo-card:focus{background:var(--cq-paper-warm,#faf7f2);border-color:#c9bfae}
.demo-card strong{font-size:15px;line-height:1.4}
.demo-card span{font-size:13px;line-height:1.6;color:var(--cq-mist,#6b6b6b)}
.demo-card em{font-size:12px;font-style:normal;color:#8a1f1f;font-weight:600;margin-top:2px}
.demo-rules{margin:10px 0 0;padding-left:20px;font-size:14px;line-height:1.9}
.demo-rules li{margin-bottom:6px}

/* ===== 收藏数量卡 + 「下一步」引导位（P1，2026-10-14）===== */
.pick-counter-slot{margin:10px 0}
#pick-counter{position:sticky;top:8px;z-index:6}
.pick-counter{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:.5px solid var(--cq-hair);background:#fff;font-family:var(--cq-sans);font-size:13px;color:var(--cq-mist);max-width:100%;flex-wrap:wrap}
.pick-counter .pick-dots{display:inline-flex;gap:3px}
.pick-counter .pick-dots i{width:7px;height:7px;border-radius:50%;background:#e4ded4;display:inline-block}
.pick-counter.active{border-color:var(--cq-cinnabar);color:var(--cq-ink)}
.pick-counter.active .pick-dots i.on{background:var(--cq-cinnabar)}
.pick-counter.full{border-color:#c0392b;background:#fdf0f0;color:#8a1f1f}
.pick-counter.full .pick-dots i.on{background:#c0392b}
.pick-full-note,.pick-empty-note{font-size:12px}
.pick-counter.stale{opacity:.75}
.pick-counter.shake{animation:pick-shake .35s ease-in-out}
@keyframes pick-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
.next-step-text{font-family:var(--cq-sans);font-size:14px;margin:0 0 10px}
.next-step-aside{margin:10px 0 0}
.next-actions a:not(.cq-button){color:var(--cq-cinnabar)} /* 引导位里的普通文字链保持红字；按钮类 a 不能覆盖，否则红底红字=文字隐形 */

/* 兑换码门禁：卡片模糊钩子 + 页内解锁面板 */
.locked-blur{filter:blur(5px);user-select:none;cursor:pointer}
.locked-blur:hover{filter:blur(3px)}
/* 模糊区上方的标注行：大字「支付解锁」让人一眼看懂这是付费内容，点它直接展开解锁面板 */
.locked-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:2px 0 4px;padding:8px 11px;border:1px dashed var(--cq-cinnabar);border-radius:4px;background:var(--cq-paper-warm);cursor:pointer}
.locked-label strong{color:var(--cq-cinnabar);font-size:16px;font-weight:700;letter-spacing:.5px}
.locked-label span{font-family:var(--cq-sans);font-size:12px;color:var(--cq-ink);opacity:.85}
.gate-panel{margin-top:14px;padding:14px;border:1px solid var(--cq-cinnabar);border-radius:8px;background:var(--cq-paper-warm)}
.gate-panel .gate-title{margin:0 0 6px;font-weight:700}
.gate-row{display:flex;gap:8px;margin:8px 0;max-width:520px}
.gate-row input{flex:1;min-height:44px;border:.5px solid var(--cq-hair);border-radius:4px;background:#fff;color:var(--cq-ink);padding:0 10px}
.gate-row button{flex:none}
.gate-pay{display:block;margin-top:8px;font-family:var(--cq-sans);font-size:13px;color:var(--cq-cinnabar)}
@media(max-width:700px){.gate-row{flex-direction:column}.gate-row button{width:100%;min-height:48px}}
@media(max-width:700px){
  .pick-counter{font-size:12px;padding:5px 10px}
  #pick-counter{top:4px}
}

/* Static HTML style declarations compiled for strict CSP. */
.cq-inline-0e001e227c{margin:12px 0}
.cq-inline-2e909fc97b{padding:12px;margin:0 0 14px}
.cq-inline-40ddb46006{max-width:280px;width:100%;border:.5px solid var(--cq-hair);border-radius:8px}
.cq-inline-532b080da9{grid-template-columns:1fr}
.cq-inline-6f6d719d67{border-left-color:#c0392b;background:#fdf0f0;color:#8a1f1f}
.cq-inline-76b14685f3{margin:14px 0 0}
.cq-inline-8161523abb{color:#8a1f1f}
.cq-inline-8bde36d0d6{font-weight:400}
.cq-inline-a9f4778252{text-align:center;margin:16px 0}
.cq-inline-c1c7deaa38{text-align:center;margin:10px 0}
.cq-inline-f074cb02d8{display:inline-block;text-decoration:none}

/* Payment consent and success state; scoped so profile inputs keep their sizing. */
.pay-consent{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border:1px solid var(--cq-hair);border-radius:6px;background:var(--cq-paper-warm);font-family:var(--cq-sans)}
.pay-consent input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;flex:0 0 20px;width:20px;height:20px;min-height:20px;margin:3px 0 0;padding:0;accent-color:var(--cq-cinnabar);cursor:pointer}
.pay-consent label{display:block;flex:1;font-size:14px;line-height:1.65;cursor:pointer;color:var(--cq-ink)}
.pay-consent a{text-decoration:underline;text-underline-offset:3px}.pay-consent.needs-confirmation{border-color:var(--cq-celadon)}
#pay-terms-hint{color:var(--cq-celadon);margin:7px 0 10px}
.pay-success{max-width:760px;margin:16px auto 26px;border:1px solid var(--cq-celadon);scroll-margin-top:14px}
.pay-success[hidden],.pay-success [hidden]{display:none}
.pay-success h2{font-size:clamp(21px,4.8vw,28px);line-height:1.35;outline:none}
.pay-success .cq-kicker{margin:0 0 8px;color:var(--cq-celadon)}
#pay-success-summary{font-family:var(--cq-sans);font-size:14px;margin:8px 0 14px}
.pay-code-block{padding:14px;border-radius:6px;background:var(--cq-paper-warm)}
.pay-code-block>label{font-size:13px;color:var(--cq-ink);margin-bottom:8px}
.pay-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}
#pay-success-code{min-width:0;min-height:50px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(19px,5vw,26px);font-weight:700;letter-spacing:.03em;color:var(--cq-cinnabar);background:var(--cq-paper);user-select:text;-webkit-user-select:text}
.pay-save-note{font-family:var(--cq-sans);font-size:12px;line-height:1.6;margin:7px 0 0;color:var(--cq-ink)}
#pay-code-feedback:empty,#pay-bind-msg:empty{display:none}
.pay-recovery{margin-top:14px}.pay-recovery label{color:var(--cq-ink);font-size:14px}.pay-recovery label .helper{font-size:12px;color:var(--cq-ink)}
.pay-bind-row{display:flex;gap:10px;margin-top:8px;align-items:center}#pay-bind-last4{min-width:0;flex:1;max-width:190px;font-size:18px;letter-spacing:.18em}
.pay-success-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.pay-success-actions .primary{flex:1;margin:0}#pay-return-note{color:var(--cq-ink);margin:8px 0 0;font-size:12px}
@media(max-width:520px){.pay-success{padding:16px}.pay-code-row{grid-template-columns:1fr}.pay-code-row .cq-button{width:100%;min-height:42px}.pay-bind-row{align-items:stretch}.pay-bind-row .cq-button{padding:7px 10px;font-size:12px;max-width:160px}.pay-success-actions .cq-button{padding:8px 14px;min-height:44px}.pay-success-actions .primary{width:auto;min-width:175px}}
/* Success positioning must be immediate; global smooth scrolling can leave the
   return action visible while the code/title are still outside the viewport. */
html.cq-payment-success{scroll-behavior:auto}
.pay-success-actions #pay-stay{width:auto;flex:0 0 auto}
@media(max-width:520px) and (max-height:700px){
 .pay-success{padding:12px}.pay-success h2{font-size:21px}
 #pay-success-summary{margin:6px 0 10px}.pay-code-block{padding:10px}
 .pay-code-row{grid-template-columns:1fr;gap:8px}
 #pay-success-code{font-size:20px;letter-spacing:0;min-height:46px;padding:0 7px}
 .pay-code-row .cq-button{font-size:12px;padding:6px;min-height:40px}
 .pay-save-note{line-height:1.45}.pay-recovery{margin-top:10px}
 .pay-success-actions{margin-top:12px}.pay-success-actions .primary{font-size:14px;min-width:170px}
}
