/* Approved HKTV.MY VIS template. All styles scoped to the jobs module. */
.gov-job-card,.job-detail-content,.job-detail-drawer,.job-page-actions{--ink:#22252a;--muted:#747982;--brand:#a6192e;--brand-soft:#fbf0f2;--salary-ink:#333039;--salary-soft:#faf7f1;--line:#e9e9e9;--canvas:#f7f7f8;--white:#fff;color:var(--ink);box-sizing:border-box}
.job-drawer-layer *,.job-detail-content *,.gov-job-card *,.job-page-actions *{box-sizing:border-box}
.job-drawer-layer[hidden],.job-share [hidden]{display:none!important}
.gov-job-card p,.gov-job-card h3,.job-detail-content p,.job-detail-content h1,.job-detail-content h2,.job-detail-content h3{margin:0}
.job-icon{display:block;width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.gov-job-card a,.job-detail-content a,.job-drawer-footer a,.job-page-actions a{text-decoration:none}
.job-detail-drawer button,.job-detail-content button,.job-share button{font:inherit;cursor:pointer;border:0}
.job-detail-drawer :focus-visible,.gov-job-card:focus-visible,.job-page-actions :focus-visible{outline:2px solid #bd9a58;outline-offset:3px}
.gov-job-card.vacancy-card{gap:0;color:#22252a}
.gov-job-card span{margin-top:0}
.job-detail-content{font-family:inherit}
.job-primary-button{display:inline-flex;justify-content:center;align-items:center;gap:9px;background:var(--brand);color:#fff;border-radius:9px;font-size:calc(13px * var(--site-font-scale,1));font-weight:600;min-height:46px;padding:10px 18px;transition:background .15s}
.job-primary-button:hover{background:#8c1527}
.job-primary-button svg{width:17px;height:17px}
.gov-job-card{display:flex;flex-direction:column;position:relative;min-width:0;border:1px solid var(--line);border-radius:1px;padding:20px 19px 0;transition:border-color .15s,box-shadow .15s;background:#fff;overflow:hidden}
.gov-job-card:hover,.gov-job-card.is-active{border-color:#d1b88a;box-shadow:0 5px 18px #4c454610}
.gov-job-card .gov-card-top{display:flex;align-items:center;gap:8px;min-width:0}
.gov-job-card .gov-department-icon{background:#f5f3f4;color:#a8874a;border-radius:0px;padding:5px;flex:none}
.gov-job-card .gov-department-icon svg{width:15px;height:15px}
.gov-job-card .gov-card-department{font-size:calc(11px * var(--site-font-scale,1));color:#8f8284;flex:1;min-width:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.gov-job-card .gov-card-type{font-size:calc(10px * var(--site-font-scale,1));border:1px solid #ebe8e9;border-radius:0px;padding:2px 6px;color:#8e8083;white-space:nowrap;line-height:1.5}
.gov-job-card h3{font-size:calc(18px * var(--site-font-scale,1));line-height:1.5;margin:16px 0 14px;letter-spacing:-.35px;font-weight:650;min-height:27px}
.gov-job-card .gov-salary-line{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;line-height:1.5;margin-bottom:15px;color:var(--salary-ink)}
.gov-job-card .gov-salary-line strong{font-size:calc(21px * var(--site-font-scale,1));font-weight:650;letter-spacing:-.5px}
.gov-job-card .gov-salary-line span{font-size:calc(10px * var(--site-font-scale,1));color:#9d9294}
.gov-job-card .gov-card-meta{font-size:calc(11px * var(--site-font-scale,1));color:#95888b;margin-bottom:17px;display:grid;gap:5px}
.gov-job-card .gov-card-meta>div{display:flex;align-items:flex-start;gap:6px}
.gov-job-card .gov-card-meta svg{width:13px;height:13px;margin-top:2px}
.gov-job-card .gov-card-meta p{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.gov-job-card .gov-card-footer{border-top:1px solid #f1efef;display:flex;justify-content:space-between;align-items:center;gap:6px;padding:13px 0;margin-top:auto}
.gov-job-card .gov-card-footer>span:first-child{font-size:calc(10px * var(--site-font-scale,1));color:#a4999b}
.gov-job-card .gov-card-action{display:inline-flex;align-items:center;gap:6px;font-size:calc(11px * var(--site-font-scale,1));font-weight:600;color:var(--brand);white-space:nowrap}
.gov-job-card .gov-card-action svg{width:14px;height:14px}
.job-drawer-layer{position:fixed;inset:0;z-index:100;display:flex;justify-content:flex-end}
.job-drawer-backdrop{position:absolute;inset:0;width:100%;height:100%;background:#36313242;padding:0;cursor:default;backdrop-filter:blur(1.5px)}
.job-detail-drawer{position:relative;height:100vh;height:100dvh;width:min(690px,100%);background:white;display:flex;flex-direction:column;box-shadow:-12px 0 60px #28242521;animation:job-drawer-enter .22s ease-out}
.job-drawer-header{padding:16px 26px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none;min-height:67px}
.job-drawer-header-title{display:flex;align-items:center;gap:9px;color:#655b5d;font-size:calc(12px * var(--site-font-scale,1));font-weight:600}
.job-drawer-header-title svg{width:17px;height:17px}
.job-drawer-header-title span{border-left:1px solid #e5e1e2;padding-left:10px;color:#aaa1a2;font-size:calc(10px * var(--site-font-scale,1));font-weight:400}
.job-drawer-close{display:flex;align-items:center;gap:6px;border-radius:7px;background:#f6f6f6;color:#877a7c;padding:8px 10px;font-size:calc(11px * var(--site-font-scale,1))}
.job-drawer-close:hover{background:#efeeee}
.job-drawer-close svg{width:15px;height:15px}
.job-drawer-body{position:relative;overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#dcd7d8 transparent;scrollbar-gutter:stable}
.job-detail-hero{padding:27px 30px 0}
.job-detail-department{font-size:calc(11px * var(--site-font-scale,1));letter-spacing:.025em;color:#94878a;display:flex;align-items:flex-start;gap:8px}
.job-detail-department .job-detail-logo{width:40px;height:40px;flex:0 0 40px;border-radius:50%;object-fit:cover;background:#fff;border:1px solid rgba(22,22,22,.12);padding:2px;margin-top:-6px}
.job-detail-department svg{width:14px;height:14px;margin-top:2px}
.job-detail-hero h1{font-size:calc(27px * var(--site-font-scale,1));font-weight:700;letter-spacing:-.5px;line-height:1.45;margin:11px 0 8px;overflow-wrap:anywhere}
.job-detail-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:calc(10px * var(--site-font-scale,1));color:#a9a0a1}
.job-detail-meta i{width:3px;height:3px;background:#d4cfd0;border-radius:50%}
.job-detail-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}
.job-detail-badges span{font-size:calc(10px * var(--site-font-scale,1));border-radius:5px;padding:3px 8px;background:#f4f2f3;color:#897c7e}
.job-detail-badges .neutral{background:#f6f6f6;color:#9a8e90}
.job-salary-panel{background:var(--salary-soft);border:1px solid #eee5d6;border-radius:1px;display:grid;grid-template-columns:1.1fr 1fr;margin:22px 0 18px;padding:18px 20px;gap:18px;align-items:start}
.job-summary-label{display:flex;align-items:center;gap:6px;color:#9b9092;font-size:calc(10px * var(--site-font-scale,1));letter-spacing:.025em}
.job-summary-label svg{width:13px;height:13px}
.job-detail-salary{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin-top:5px;line-height:1.5;color:var(--salary-ink)}
.job-detail-salary strong{font-size:calc(29px * var(--site-font-scale,1));font-weight:650;letter-spacing:-1px}
.job-detail-salary span{font-size:calc(11px * var(--site-font-scale,1));color:#988d8f}
.job-deadline-box{border-left:1px solid #e7dcc9;padding-left:20px;height:100%}
.job-deadline-box .job-summary-label{color:#998e90}
.job-deadline-value{font-size:calc(19px * var(--site-font-scale,1));font-weight:600;letter-spacing:-.3px;color:#6e5a37;margin-top:7px;line-height:1.6}
.job-deadline-time{font-size:calc(10px * var(--site-font-scale,1));color:#988d8f;margin-top:2px}
.job-detail-salary.long-salary strong{font-size:calc(19px * var(--site-font-scale,1));letter-spacing:0}
.job-quick-facts{display:grid;grid-template-columns:1fr 1fr;column-gap:22px;row-gap:13px;padding:2px 0 17px}
.job-fact-label{font-size:calc(10px * var(--site-font-scale,1));color:#a9a0a1;margin-bottom:3px;display:block}
.job-fact-value{font-size:calc(12px * var(--site-font-scale,1));line-height:1.65;color:#786c6e}
.job-application-highlight{border-radius:8px;background:#f6f4f5;color:#877a7c;padding:11px 12px;display:flex;align-items:flex-start;gap:8px;font-size:calc(11px * var(--site-font-scale,1));line-height:1.75;margin-bottom:23px}
.job-application-highlight svg{width:15px;height:15px;margin-top:2px;color:#a8874a}
.job-application-highlight strong{font-weight:600;color:#685d5f}
.job-detail-tabs{position:sticky;top:0;z-index:2;display:flex;gap:22px;background:#fff;border-bottom:1px solid var(--line);padding:0 30px;box-shadow:0 2px 4px #fff9}
.job-detail-tabs button{color:#a49a9c;background:none;font-size:calc(11px * var(--site-font-scale,1));white-space:nowrap;border-bottom:2px solid transparent;padding:14px 0 12px}
.job-detail-tabs button[aria-current="true"]{border-color:#a6192e;color:#a6192e;font-weight:600}
.job-detail-sections{padding:2px 30px 25px}
.job-detail-section{padding:25px 0;border-bottom:1px solid var(--line);scroll-margin-top:65px}
.job-detail-section:last-child{border-bottom:0}
.job-section-title{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.job-section-title svg{width:16px;height:16px;color:#bd9a58}
.job-section-title h2{font-size:calc(16px * var(--site-font-scale,1));font-weight:600;letter-spacing:-.2px}
.job-requirements{list-style:none;padding:0;margin:0;display:grid;gap:13px}
.job-requirements li{display:grid;grid-template-columns:65px minmax(0,1fr);gap:12px;align-items:start}
.job-requirement-key{font-size:calc(10px * var(--site-font-scale,1));color:#887b7d;background:#f6f4f5;border-radius:5px;padding:3px 0;text-align:center;line-height:1.7}
.job-requirement-text{font-size:calc(12px * var(--site-font-scale,1));color:#7d7072;line-height:1.9;padding-top:1px}
.job-detail-list{padding:0;list-style:none;margin:0;display:grid;gap:8px}
.job-detail-list li{display:flex;gap:10px;font-size:calc(12px * var(--site-font-scale,1));color:#7c6f71;line-height:1.9}
.job-detail-list li:before{content:"";width:4px;height:4px;flex:none;border-radius:50%;background:#bd9a58;margin-top:10px}
.job-full-text{font-size:calc(12px * var(--site-font-scale,1));color:#807375;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere}
.job-full-text+.job-full-text{margin-top:14px}
.job-source-details{border:1px solid #edeaeb;border-radius:8px;margin-top:16px;color:#938789;background:#fdfdfd}
.job-source-details summary{cursor:pointer;font-size:calc(10px * var(--site-font-scale,1));padding:10px 12px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;line-height:1.8}
.job-source-details summary::-webkit-details-marker{display:none}
.job-source-details summary svg{width:12px;height:12px;transition:transform .15s}
.job-source-details[open] summary svg{transform:rotate(180deg)}
.job-source-details[open] summary{border-bottom:1px solid #edeaeb}
.job-source-details .job-source-copy{padding:12px 14px}
.job-source-copy .job-copy-heading{font-size:calc(11px * var(--site-font-scale,1));color:#6e6365;font-weight:600;margin:14px 0 6px}
.job-source-copy .job-copy-heading:first-child{margin-top:0}
.job-source-copy .job-full-text{font-size:calc(11px * var(--site-font-scale,1))}
.job-application-steps{margin:0;padding:0;list-style:none;display:grid;gap:19px}
.job-application-steps li{position:relative;display:grid;grid-template-columns:25px minmax(0,1fr);gap:12px}
.job-step-number{display:grid;place-items:center;width:24px;height:24px;border:1px solid #e6e3e4;color:#8f8385;background:#f8f7f7;border-radius:50%;font-size:calc(10px * var(--site-font-scale,1));font-weight:600;margin-top:1px}
.job-step-title{font-size:calc(12px * var(--site-font-scale,1));font-weight:600;color:#6e6365;margin-bottom:4px}
.job-step-copy{font-size:calc(12px * var(--site-font-scale,1));line-height:1.95;color:#8b7e80}
.job-step-link{display:inline-flex;gap:5px;align-items:center;color:#a6192e;font-size:calc(11px * var(--site-font-scale,1));margin-top:6px}
.job-step-link svg{width:13px;height:13px}
.job-documents-note{margin-top:12px;padding:10px 12px;border-left:2px solid #d9c39d;background:#f9f9f9;color:#94888a;font-size:calc(11px * var(--site-font-scale,1));line-height:1.95}
.job-contact-card{border:1px solid #eae7e8;border-radius:0px;padding:14px 16px;display:grid;gap:13px;background:#fcfcfc}
.job-contact-row{display:grid;grid-template-columns:55px minmax(0,1fr);gap:12px;font-size:calc(11px * var(--site-font-scale,1));line-height:1.85}
.job-contact-row>span{color:#aba1a3}
.job-contact-row>div,.job-contact-row>a{color:#86787b;overflow-wrap:anywhere}
.job-contact-row a{color:#a6192e;display:inline-flex;align-items:center;gap:5px}
.job-contact-row svg{width:12px;height:12px}
.job-detail-source{font-size:calc(10px * var(--site-font-scale,1));line-height:1.9;color:#aea4a6;margin-top:18px}
.job-detail-source a{color:#a6192e}
.job-detail-source .job-source-title{color:#938789;margin-bottom:4px}
.job-drawer-footer{border-top:1px solid var(--line);padding:16px 26px max(16px,env(safe-area-inset-bottom));background:#fff;flex:none;box-shadow:0 -3px 15px #40393a06;display:flex;gap:14px;align-items:center}
.job-footer-caption{flex:1;min-width:0;font-size:calc(10px * var(--site-font-scale,1));color:#a99fa1;line-height:1.8}
.job-footer-caption strong{display:block;font-size:calc(11px * var(--site-font-scale,1));color:#887a7d;font-weight:500}
.job-drawer-footer .job-primary-button{white-space:nowrap;min-height:43px;font-size:calc(12px * var(--site-font-scale,1));padding:10px 17px}
.job-official-link{color:#938688;font-size:calc(10px * var(--site-font-scale,1));display:inline-flex;gap:4px;align-items:center;white-space:nowrap}
.job-official-link svg{width:12px;height:12px}
.job-official-link:hover{color:#8c1527}
@keyframes job-drawer-enter{from{transform:translateX(28px);opacity:.4}to{transform:translateX(0);opacity:1}}
@media(min-width:1600px){.job-detail-drawer{width:730px}
.job-detail-hero{padding-top:32px}
.job-detail-hero h1{font-size:calc(29px * var(--site-font-scale,1))}}
@media(max-width:1100px){.job-detail-drawer{width:min(660px,100%)}}
@media(max-width:760px){.gov-job-card{padding:18px 18px 0}
.gov-job-card h3{margin:13px 0 10px;font-size:calc(18px * var(--site-font-scale,1));min-height:0}
.gov-job-card .gov-salary-line{margin-bottom:12px}
.gov-job-card .gov-salary-line strong{font-size:calc(22px * var(--site-font-scale,1))}
.gov-job-card .gov-card-meta{margin-bottom:14px;font-size:calc(11px * var(--site-font-scale,1))}
.job-detail-drawer{width:100%;box-shadow:none}
.job-drawer-header{padding:14px 20px;min-height:62px}
.job-drawer-header-title{font-size:calc(11px * var(--site-font-scale,1))}
.job-drawer-header-title span{font-size:calc(9px * var(--site-font-scale,1))}
.job-drawer-close{font-size:calc(10px * var(--site-font-scale,1));padding:7px 9px}
.job-detail-hero{padding:23px 21px 0}
.job-detail-hero h1{font-size:calc(25px * var(--site-font-scale,1));margin-top:11px}
.job-detail-department{font-size:calc(10px * var(--site-font-scale,1));line-height:1.9}
.job-detail-meta{font-size:calc(9px * var(--site-font-scale,1))}
.job-detail-badges{margin-top:12px}
.job-salary-panel{margin:19px 0 16px;padding:15px 16px;gap:13px;grid-template-columns:1.1fr 1fr}
.job-detail-salary strong{font-size:calc(25px * var(--site-font-scale,1));letter-spacing:-.8px}
.job-detail-salary span{font-size:calc(10px * var(--site-font-scale,1))}
.job-deadline-box{padding-left:14px}
.job-deadline-value{font-size:calc(17px * var(--site-font-scale,1));margin-top:8px}
.job-deadline-time{font-size:calc(9px * var(--site-font-scale,1));margin-top:1px}
.job-summary-label{font-size:calc(9px * var(--site-font-scale,1))}
.job-quick-facts{column-gap:18px;row-gap:12px;padding-bottom:15px}
.job-fact-label{font-size:calc(9px * var(--site-font-scale,1))}
.job-fact-value{font-size:calc(11px * var(--site-font-scale,1));line-height:1.8}
.job-application-highlight{font-size:calc(10px * var(--site-font-scale,1));margin-bottom:20px;padding:10px 11px}
.job-detail-tabs{padding:0 21px;gap:24px}
.job-detail-tabs button{font-size:calc(10px * var(--site-font-scale,1));padding:13px 0 11px}
.job-detail-sections{padding:0 21px 19px}
.job-detail-section{padding:22px 0}
.job-section-title{margin-bottom:14px}
.job-section-title h2{font-size:calc(15px * var(--site-font-scale,1))}
.job-requirements{gap:12px}
.job-requirements li{grid-template-columns:56px minmax(0,1fr);gap:10px}
.job-requirement-key{font-size:calc(9px * var(--site-font-scale,1))}
.job-requirement-text{font-size:calc(11px * var(--site-font-scale,1));line-height:1.95}
.job-detail-list li,.job-full-text,.job-step-copy{font-size:calc(11px * var(--site-font-scale,1));line-height:1.95}
.job-source-copy .job-full-text{font-size:calc(10px * var(--site-font-scale,1))}
.job-application-steps{gap:18px}
.job-step-title{font-size:calc(11px * var(--site-font-scale,1))}
.job-contact-card{padding:13px 14px}
.job-contact-row{grid-template-columns:46px minmax(0,1fr);gap:9px;font-size:calc(10px * var(--site-font-scale,1))}
.job-detail-source{font-size:calc(9px * var(--site-font-scale,1))}
.job-drawer-footer{padding:12px 20px max(12px,env(safe-area-inset-bottom));gap:12px;flex-wrap:wrap}
.job-footer-caption{flex:0 0 100%;font-size:calc(9px * var(--site-font-scale,1));display:flex;gap:6px;align-items:center;line-height:1.4}
.job-footer-caption strong{font-size:calc(10px * var(--site-font-scale,1))}
.job-footer-caption span:before{content:"· ";color:#c0b8ba}
.job-drawer-footer .job-primary-button{flex:1;min-height:43px;font-size:calc(12px * var(--site-font-scale,1))}
.job-drawer-footer .job-official-link{font-size:calc(10px * var(--site-font-scale,1));padding:9px 4px}}
@media(max-width:360px){.job-detail-hero,.job-detail-sections{padding-left:17px;padding-right:17px}
.job-detail-tabs{padding-left:17px;padding-right:17px;gap:20px}
.job-detail-hero h1{font-size:calc(23px * var(--site-font-scale,1))}
.job-salary-panel{padding:14px 12px;gap:10px}
.job-detail-salary strong{font-size:calc(22px * var(--site-font-scale,1))}
.job-deadline-box{padding-left:11px}
.job-deadline-value{font-size:calc(15px * var(--site-font-scale,1))}
.job-detail-salary.long-salary strong{font-size:calc(16px * var(--site-font-scale,1))}
.job-quick-facts{column-gap:12px}
.job-footer-caption{font-size:calc(8px * var(--site-font-scale,1))}
.job-drawer-footer{padding-left:17px;padding-right:17px}}
.job-requirement-text,.job-detail-list li,.job-full-text,.job-step-copy{font-size:calc(13px * var(--site-font-scale,1));color:#6e6264}
.job-source-details summary{font-size:calc(11px * var(--site-font-scale,1));color:#837578}
.job-source-copy .job-full-text{font-size:calc(12px * var(--site-font-scale,1));color:#7b6e70}
.job-contact-row{font-size:calc(12px * var(--site-font-scale,1))}
.job-detail-department,.job-detail-meta,.job-detail-source,.job-fact-label{color:#8e8183}
.gov-job-card .gov-card-department,.gov-job-card .gov-card-meta{color:#87787b}
.gov-job-card .gov-card-footer>span:first-child{color:#928688}
.job-detail-tabs button{color:#928688}
.job-summary-label,.job-deadline-box .job-summary-label{color:#817376}
.job-deadline-time,.job-detail-salary span{color:#85777a}
@media(max-width:760px){.job-requirement-text,.job-detail-list li,.job-full-text,.job-step-copy{font-size:calc(13px * var(--site-font-scale,1));line-height:1.9}
.job-requirement-key{font-size:calc(10px * var(--site-font-scale,1))}
.job-requirements li{grid-template-columns:58px minmax(0,1fr)}
.job-source-details summary{font-size:calc(11px * var(--site-font-scale,1))}
.job-source-copy .job-full-text{font-size:calc(12px * var(--site-font-scale,1))}
.job-fact-label{font-size:calc(10px * var(--site-font-scale,1))}
.job-fact-value{font-size:calc(12px * var(--site-font-scale,1))}
.job-application-highlight{font-size:calc(11px * var(--site-font-scale,1))}
.job-step-title{font-size:calc(13px * var(--site-font-scale,1))}
.job-step-link{font-size:calc(12px * var(--site-font-scale,1))}
.job-documents-note{font-size:calc(12px * var(--site-font-scale,1))}
.job-contact-row{font-size:calc(12px * var(--site-font-scale,1))}
.job-detail-tabs button{font-size:calc(11px * var(--site-font-scale,1))}
.job-detail-source{font-size:calc(10px * var(--site-font-scale,1))}}
.gov-job-card .gov-card-action{color:#a6192e}
.gov-job-card .gov-card-type{background:#f8f7f7;color:#817880;border-color:#ece8eb}
.gov-job-card .gov-salary-line strong{color:#333039}
.gov-job-card .gov-salary-line span{color:#9c875f}
.gov-job-card .gov-department-icon{background:#f8f3e9;color:#a8874a}
.gov-job-card:hover,.gov-job-card.is-active{border-color:#d1b88a;box-shadow:0 5px 18px #38242c0a}
.job-detail-badges span{background:#f7f3ec;color:#95805b}
.job-detail-badges .neutral{background:#f5f3f4;color:#82777e}
.job-detail-salary strong{color:#333039}
.job-salary-panel{background:#faf7f1;border-color:#eee5d6}
.job-application-highlight{background:#f8f5f6;color:#81737b}
.job-application-highlight strong{color:#79505b}
.job-detail-tabs button[aria-current="true"]{border-color:#a6192e;color:#a6192e}
.job-step-number{color:#a6192e;border-color:#ead3d9;background:#fcf5f7}
.job-documents-note{background:#faf8f3;border-color:#d9c39d}
.job-primary-button:hover{background:#8c1527}
.government-vacancy-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}
.gov-job-card .gov-salary-line.is-complex{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gov-job-card .gov-salary-line.is-complex strong{font-size:calc(14px * var(--site-font-scale,1));line-height:1.75;letter-spacing:0}
.gov-job-card h3{overflow-wrap:anywhere}.gov-job-card .gov-card-department{margin:0}.gov-job-card .gov-salary-line span{font-size:calc(10px * var(--site-font-scale,1));color:#9c875f}
.gov-job-card .gov-card-type{font-size:calc(10px * var(--site-font-scale,1));color:#817880}.gov-job-card .gov-card-action{color:#a6192e;font-size:calc(11px * var(--site-font-scale,1))}
.job-drawer-layer{z-index:1000}.job-detail-drawer{margin:0;max-height:100dvh;overflow:hidden;border:0;border-radius:0}
.job-drawer-backdrop{border:0}.job-drawer-header-title strong{font-size:calc(12px * var(--site-font-scale,1));font-weight:600;white-space:nowrap}
.job-drawer-close{white-space:nowrap;border:0;font-family:inherit}.job-drawer-body{padding:0;scrollbar-gutter:stable}
.job-drawer-footer{display:block;max-height:44vh;overflow-y:auto;padding:12px 26px max(14px,env(safe-area-inset-bottom))}
.job-quick-facts{margin:0}.job-quick-facts dd{margin:0}.job-detail-text{overflow-wrap:anywhere}
.job-requirement-text{white-space:normal}.job-detail-section{scroll-margin-top:140px}.job-detail-salary strong{overflow-wrap:anywhere}
.job-detail-salary.long-salary strong{font-size:calc(16px * var(--site-font-scale,1));line-height:1.85;white-space:pre-line}
.job-detail-tabs button{font-family:inherit}.job-full-text{display:block}
.job-detail-content .job-source-copy{padding:12px 14px}.job-detail-content .job-source-copy.job-full-text{font-size:calc(12px * var(--site-font-scale,1))}
.job-primary-button{box-sizing:border-box;text-align:center;font-family:inherit;cursor:pointer;text-decoration:none}
.job-apply-row{display:flex;align-items:center;gap:14px}.job-apply-row .job-primary-button{min-height:43px;white-space:nowrap;font-size:calc(12px * var(--site-font-scale,1))}
.job-apply-row .job-footer-caption{min-width:0}.job-official-link{color:#847982}
.job-share{margin-bottom:11px;padding-bottom:11px;border-bottom:1px solid #eee8eb}
.job-share-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.job-share-row>span:first-child{font-size:calc(10px * var(--site-font-scale,1));color:#8e838a;margin-right:auto}
.job-share-button{display:inline-flex;justify-content:center;align-items:center;gap:6px;min-height:34px;border:1px solid #e8dfe3!important;background:#fff;border-radius:7px;padding:6px 10px;font-size:calc(11px * var(--site-font-scale,1))!important;color:#77515e;cursor:pointer;font-family:inherit}
.job-share-button:hover{background:#fcf6f8}.job-share-button:disabled,.job-share-button[aria-disabled=true]{opacity:.5;pointer-events:none}
.job-share-button .job-icon{width:14px;height:14px}.job-share-button .fa-whatsapp{font-size:calc(15px * var(--site-font-scale,1))}
.job-share-status{font-size:calc(10px * var(--site-font-scale,1));color:#7c715d;flex:0 0 100%;text-align:right}.job-share-status:empty{display:none}
.job-share-fallback{display:block;font-size:calc(10px * var(--site-font-scale,1));color:#82787f;margin-top:8px}
.job-share-fallback input{display:block;width:100%;min-width:0;padding:8px;border:1px solid #e3d9df;background:#faf8f9;border-radius:6px;font-size:calc(12px * var(--site-font-scale,1));color:#5a4c54}
.job-drawer-loading,.job-drawer-error{padding:30px;font-size:calc(13px * var(--site-font-scale,1));color:#81717c;line-height:1.8}
.job-drawer-loading i{display:block;height:82px;margin-top:18px;border-radius:9px;background:#f7f4f5}
.job-drawer-error h3{font-size:calc(17px * var(--site-font-scale,1));color:#473640}.job-drawer-error button{margin-top:12px;background:#a6192e;color:#fff;padding:8px 15px;border-radius:8px}
.gov-jobs-hero{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:28px 0 33px}
.gov-jobs-hero .eyebrow{color:#a8874a;font-size:calc(10px * var(--site-font-scale,1));letter-spacing:.17em}.gov-jobs-hero h1{font-size:calc(32px * var(--site-font-scale,1));line-height:1.5;margin:8px 0 10px;letter-spacing:-.7px}
.gov-jobs-hero p{font-size:calc(13px * var(--site-font-scale,1));color:#7e7580;margin:0;line-height:1.9}.gov-jobs-hero aside{display:flex;align-items:center;gap:13px;font-size:calc(11px * var(--site-font-scale,1));color:#8c8189}
.gov-jobs-hero aside>.job-icon{width:28px;height:28px;color:#bd9a58}.gov-jobs-hero aside strong{display:block;color:#71646c;font-size:calc(13px * var(--site-font-scale,1))}
.gov-jobs-panel{padding:25px;background:#fff;border:1px solid #e9e9e9;border-radius:14px}
.gov-jobs-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.gov-jobs-heading h2{font-size:calc(20px * var(--site-font-scale,1));margin:0}.gov-jobs-heading span{font-size:calc(11px * var(--site-font-scale,1));color:#93868e}
.gov-jobs-filter{display:grid;grid-template-columns:minmax(0,1fr) 220px 120px;gap:10px}.gov-jobs-filter input,.gov-jobs-filter select{min-width:0;width:100%;height:44px;padding:0 12px;border:1px solid #e5dfe3;border-radius:8px;background:#fdfcfd;font:inherit;font-size:calc(13px * var(--site-font-scale,1));color:#6e5d68}
.gov-jobs-filter input[type=hidden]{display:none}.gov-jobs-filter button{border:0;background:#a6192e;color:#fff;border-radius:8px;font:inherit;font-size:calc(13px * var(--site-font-scale,1));cursor:pointer}
.gov-jobs-types{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px}.gov-jobs-types a{font-size:calc(12px * var(--site-font-scale,1));color:#80727c;padding:6px 11px;border-radius:7px;text-decoration:none}.gov-jobs-types a[aria-current=true]{background:#fbf0f2;color:#a6192e;font-weight:600}
.gov-jobs-panel .job-sync-note{font-size:calc(10px * var(--site-font-scale,1));color:#958791}.gov-jobs-panel .jb-source-note{margin-top:16px}
.job-page-wrap{max-width:820px;padding-bottom:var(--job-actions-space,190px)}.job-page-card{background:#fff;border:1px solid #e9e9e9;border-radius:4px;overflow:clip}
.job-page-card .job-detail-tabs{top:var(--hktv-header-height,81px);z-index:2}
.job-page-actions{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(820px,calc(100% - 48px));z-index:124;background:#fff;border:1px solid #e9e9e9;border-radius:12px 12px 0 0;padding:13px 26px max(14px,env(safe-area-inset-bottom));box-shadow:0 -4px 20px #24162008;max-height:44vh;overflow:auto}
.job-page-message{padding:30px}.job-page-message h1{font-size:calc(24px * var(--site-font-scale,1))}.job-page-message p{font-size:calc(14px * var(--site-font-scale,1));margin-bottom:20px}
@media(max-width:1100px){.government-vacancy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .government-vacancy-grid,[data-home-jobs].vacancy-grid{grid-template-columns:minmax(0,1fr)}
 .job-drawer-footer{padding:10px 18px max(12px,env(safe-area-inset-bottom))}.job-apply-row{flex-wrap:wrap;gap:10px}.job-apply-row .job-footer-caption{flex:0 0 100%}.job-apply-row .job-primary-button{flex:1;white-space:normal;padding:9px 12px}.job-share{margin-bottom:9px;padding-bottom:9px}
 .job-share-row{gap:7px}.job-share-button{font-size:calc(11px * var(--site-font-scale,1))!important;padding:6px 9px}.job-share-row>span:first-child{font-size:calc(10px * var(--site-font-scale,1))}
 .gov-jobs-hero{padding:22px 0 27px}.gov-jobs-hero h1{font-size:calc(25px * var(--site-font-scale,1))}.gov-jobs-hero p{font-size:calc(12px * var(--site-font-scale,1))}.gov-jobs-hero aside{display:none}.gov-jobs-panel{padding:18px 16px}.gov-jobs-heading h2{font-size:calc(18px * var(--site-font-scale,1))}.gov-jobs-heading span{font-size:calc(10px * var(--site-font-scale,1))}.gov-jobs-filter{grid-template-columns:minmax(0,1fr) 96px}.gov-jobs-filter input[name=q]{grid-column:1/-1}.gov-jobs-filter input,.gov-jobs-filter select,.gov-jobs-filter button{font-size:calc(12px * var(--site-font-scale,1))}.gov-jobs-types a{padding:6px 9px;font-size:calc(11px * var(--site-font-scale,1))}
 .job-page-wrap{padding-left:0;padding-right:0}.job-page-card{border-radius:0}.job-page-actions{width:100%;padding:10px 18px max(12px,env(safe-area-inset-bottom));border-radius:0}.job-page-wrap>.crumb{padding:0 16px}
}

/* Compact actions: copy stays directly beside the official apply button. */
.job-actions-compact{margin:0;padding:0;border:0}
.job-actions-compact .job-share-row{margin-bottom:9px;gap:10px}
.job-actions-compact .job-official-link{display:inline-flex;align-items:center;gap:3px;white-space:nowrap;font-size:calc(10px * var(--site-font-scale,1))}
.job-actions-compact .job-official-link .job-icon{width:13px;height:13px}
.job-actions-compact .job-apply-row{justify-content:flex-end;flex-wrap:nowrap;gap:8px}
.job-actions-compact .job-apply-row .job-primary-button{flex:0 1 auto;min-height:40px;padding:8px 13px;font-size:calc(12px * var(--site-font-scale,1));gap:6px;white-space:nowrap}
.job-actions-compact .job-copy-button{flex:0 0 auto;min-height:40px;padding:8px 12px}
.job-actions-compact>.job-share-status:not(:empty){display:block;margin-top:6px}
@media(max-width:760px){
 .job-actions-compact .job-share-row{gap:8px}
 .job-actions-compact .job-share-row>span:first-child{flex:0 0 100%}
 .job-actions-compact .job-share-row .job-official-link{margin-left:auto}
 .job-actions-compact .job-apply-row .job-primary-button,.job-actions-compact .job-copy-button{min-height:44px}
}
/* 私人企業公開職位摘要使用同一 VIS 卡片與抽屜。 */
.moovup-jobs-panel{margin:20px 0 30px}.moovup-eyebrow{display:block;font-size:11px;color:#9b845c;margin-bottom:5px}.moovup-more,.moovup-source-link{display:inline-flex;align-items:center;gap:5px;color:#8a744c;font-size:12px;text-decoration:none;white-space:nowrap}.moovup-source-link{margin-top:18px}.moovup-more svg,.moovup-source-link svg{width:16px;height:16px}.moovup-vacancy h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:54px}.moovup-vacancy .gov-salary-line strong{overflow-wrap:anywhere}.moovup-location{font-size:calc(17px * var(--site-font-scale,1));margin-top:9px;line-height:1.6;overflow-wrap:anywhere;color:#48434a}.moovup-detail .job-detail-sections{padding-bottom:26px}.moovup-detail .job-fact-value{overflow-wrap:anywhere}.moovup-filter{grid-template-columns:minmax(100px,1fr) minmax(110px,.4fr) 110px}.moovup-filter button{min-height:44px}
@media(max-width:600px){.moovup-jobs-panel .gov-jobs-heading{align-items:center}.moovup-more{font-size:11px}.moovup-filter{grid-template-columns:1fr}.moovup-location{font-size:14px}}

/* Full-width horizontal drawer motion, including finger-following dismissal. */
.job-detail-drawer{animation:none;transform:translate3d(100%,0,0);transition:transform .34s cubic-bezier(.22,.72,.22,1);will-change:transform}
.job-drawer-layer.is-open .job-detail-drawer{transform:translate3d(0,0,0)}
.job-drawer-backdrop{opacity:0;transition:opacity .34s ease}
.job-drawer-layer.is-open .job-drawer-backdrop{opacity:1}
.job-detail-drawer.is-dragging{transition:none;user-select:none}
.job-drawer-layer:has(.is-dragging) .job-drawer-backdrop{transition:none}
@media(prefers-reduced-motion:reduce){.job-detail-drawer,.job-drawer-backdrop{transition:none}}

/* Share sheet expands in place so it works in both the drawer and standalone job page. */
.job-actions-compact .job-primary-button{background:#fff!important;color:var(--brand)!important;border:1px solid var(--brand)!important;border-radius:8px}
.job-actions-compact .job-primary-button:hover{background:var(--brand-soft)!important;color:var(--brand)!important}
.job-actions-compact .job-copy-button{color:#77515e}
.job-share-sheet{margin-top:12px;border:1px solid #eee5e8;border-radius:8px;background:#fff;padding:16px}
.job-share-sheet-card{position:relative}
.job-share-sheet-close{position:absolute;right:0;top:-5px;width:30px;height:30px;border:1px solid #eee5e8!important;border-radius:8px;background:#fff;color:#74666c;font-size:20px;line-height:1}
.job-share-sheet-card h3{margin:0 38px 4px 0!important;font-size:calc(15px * var(--site-font-scale,1));color:#342d31}
.job-share-sheet-card>p{margin:0 0 12px!important;font-size:calc(11px * var(--site-font-scale,1));color:#82767c}
.job-share-link-label{display:block;margin-bottom:12px;font-size:calc(10px * var(--site-font-scale,1));color:#82767c}
.job-share-link-label input{display:block;width:100%;height:39px;margin-top:5px;padding:0 10px;border:1px solid #e4dce0;border-radius:8px;background:#faf9fa;color:#50474c;font:inherit;font-size:calc(11px * var(--site-font-scale,1));}
.job-share-sheet-actions{display:flex;flex-wrap:wrap;gap:8px}
.job-share-sheet-actions .job-share-button{min-height:38px;border-radius:8px;text-decoration:none}
.job-share-sheet-actions .job-share-whatsapp{color:#18774a}
.job-share-sheet .job-share-status{display:block;margin-top:8px;text-align:left}
