:root{--portal-primary: #3048b8;--portal-bg: #f4f6fb;--portal-surface: #ffffff;--portal-border: #e6ebf5;--portal-text: #1f2733;--portal-text-soft: #5b6678;--portal-radius: 8px}.portal-root{min-height:100vh;background:var(--portal-bg);color:var(--portal-text)}.portal-header{position:sticky;top:0;z-index:10;height:56px;display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--portal-surface);border-bottom:1px solid var(--portal-border)}.portal-header__brand{font-weight:700;color:var(--portal-primary);font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-header__spacer{flex:1}.portal-main{max-width:760px;margin:0 auto;padding:20px 16px calc(20px + env(safe-area-inset-bottom))}.portal-main--wide{max-width:920px}@media (max-width: 768px){.portal-main{padding-bottom:calc(72px + env(safe-area-inset-bottom))}}.portal-card{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:16px;margin-bottom:12px}.portal-card--tap{cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease}.portal-card--tap:hover{border-color:var(--portal-primary);box-shadow:0 4px 16px #3048b814}.portal-jobcard__top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.portal-jobcode{display:inline-flex;align-items:center;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--portal-primary);background:#3048b814;font-variant-numeric:tabular-nums}.portal-jobcard__titles{display:grid;gap:2px;margin-bottom:10px}.portal-jobcard__title-zh,.portal-jobcard__title-vi{font-size:17px;font-weight:700;line-height:1.45;color:var(--portal-text);word-break:break-word}.portal-jobcard__meta{font-size:13px;color:var(--portal-text-soft);display:grid;gap:4px}.portal-jobcard__footer{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}.portal-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.6;color:var(--portal-text-soft);background:#f0f2f7}.portal-pill--active{color:var(--portal-primary);background:#3048b81a}.portal-card--stopped{background:#e7eaf0;border-color:#ccd3df}.portal-card--stopped .portal-jobcard__title-zh,.portal-card--stopped .portal-jobcard__title-vi{color:var(--portal-text-soft)}.portal-stopped-tag{margin-inline-end:0;color:#5b6678;background:#d6dbe5;border-color:#c3cad7;font-weight:600}.portal-domain-banner__body{font-size:13px;line-height:1.6}.portal-domain-banner__line{margin:0}.portal-domain-banner__line--vi{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(0,0,0,.12)}.portal-moved-root{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#f7f9fc,#eaf0fb)}.portal-moved-wrap{flex:1;display:grid;place-items:center;padding:24px}.portal-moved-card{width:min(100%,460px);background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:14px;box-shadow:0 18px 40px #1f273314;padding:32px 28px;text-align:center}.portal-moved-title{font-size:22px;font-weight:700;margin:0 0 12px;line-height:1.4}.portal-moved-title__vi{display:block;font-size:15px;font-weight:600;color:var(--portal-text-soft);margin-top:2px}.portal-moved-text{color:var(--portal-text-soft);font-size:14px;line-height:1.7;margin:0 0 18px}.portal-moved-text__vi{display:block;margin-top:6px}.portal-moved-host{font-size:20px;font-weight:700;color:var(--portal-primary);background:#3048b814;border-radius:8px;padding:12px 16px;margin-bottom:20px;word-break:break-all;font-variant-numeric:tabular-nums}.portal-moved-btn{height:48px;font-weight:600}.portal-moved-hint{margin:16px 0 0;font-size:13px;color:var(--portal-text-soft);line-height:1.6}.portal-moved-hint__vi{display:block;margin-top:2px}.portal-jd-updated-banner{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:10px 14px;border-radius:var(--portal-radius);background:#fff1f0;border:1px solid #ffccc7;color:#a8071a;font-size:14px;font-weight:500}.portal-jd-updated-banner .anticon{font-size:16px}.portal-candrow{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.portal-candrow__name{font-size:16px;font-weight:600;color:var(--portal-text);word-break:break-word}.portal-candcode{font-size:12px;color:var(--portal-text-soft);white-space:nowrap;font-variant-numeric:tabular-nums}.portal-bi{display:grid;gap:4px}@media (min-width: 769px){.portal-bi--row{grid-template-columns:1fr 1fr;gap:16px}}.portal-bi__eyebrow{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--portal-primary);text-transform:uppercase}.portal-bi__text{font-size:15px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.portal-field{margin-bottom:12px}.portal-field__label{font-size:12px;color:var(--portal-text-soft);margin-bottom:2px}.portal-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.7;border:1px solid transparent;white-space:normal}.portal-jd-frame{width:100%;border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:#fff;min-height:420px}.portal-cta{position:sticky;bottom:0;display:flex;gap:12px;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(244,246,251,0) 0%,var(--portal-bg) 32%)}.portal-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:var(--portal-surface);border-top:1px solid var(--portal-border);padding-bottom:env(safe-area-inset-bottom)}.portal-tabbar__item{flex:1;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;color:var(--portal-text-soft);background:none;border:0;cursor:pointer}.portal-tabbar__item--active{color:var(--portal-primary);font-weight:600}.portal-auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#f7f9fc,#eaf0fb)}.portal-auth-card{width:min(100%,400px);background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:14px;box-shadow:0 18px 40px #1f273314;padding:28px 24px}.portal-auth-card__title{font-size:22px;font-weight:700;margin:0 0 6px}.portal-auth-card__sub{color:var(--portal-text-soft);font-size:13px;margin:0 0 20px;line-height:1.6}
