
html.legacy-dialogs dialog{
  position: absolute;
  left: 0; right: 0;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: -webkit-fit-content;
  height: fit-content;
  margin: auto;
  border: solid;
  padding: 1em;
  background: white;
  color: black;
  display: block;
}
html.legacy-dialogs dialog:not([open]){
  display: none;
}
html.legacy-dialogs dialog + .backdrop{
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(0,0,0,0.1);
}
html.legacy-dialogs ._dialog_overlay{
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
}
html.legacy-dialogs dialog.fixed{
  position: fixed;
  top: 50%;
  transform: translate(0, -50%);
}
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#253349;background:#f4f6fa;font-synthesis:none;--blue:#2563c7;--line:#e0e6ef;--muted:#7a8596}
*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}a{color:var(--blue);text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,.table-scroll:focus-visible{outline:2px solid #4389ec;outline-offset:2px}[hidden]{display:none!important}
.topbar{height:60px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:700;color:#203a63}.brand-icon{display:grid;place-items:center;width:32px;height:32px;background:var(--blue);color:white;border-radius:7px;font-size:20px}.brand-sub{margin-left:18px;padding-left:18px;border-left:1px solid var(--line);font-size:14px;font-weight:400;color:#718096}.preview-tag{font-size:12px;color:#78849a;background:#f2f5f9;padding:5px 10px;border-radius:4px}
main{max-width:none;margin:auto;padding:18px 24px 24px}
h1{margin:0;font-size:21px;font-weight:650}.source{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.source #sync-time{margin-left:9px}.live-dot{width:6px;height:6px;border-radius:50%;background:#36a57c}.stats{display:flex;align-items:center;gap:28px;margin-bottom:16px;font-size:12px;color:#6b778b}.stats>div{display:flex;align-items:baseline;gap:8px}.stats strong{font-size:17px;font-weight:650;font-variant-numeric:tabular-nums;color:#324e74}.stats>div:nth-child(3) strong{color:#d97622}
.workspace{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:start}.sidebar{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}.side-heading{font-size:13px;font-weight:650;padding:15px 14px;border-bottom:1px solid var(--line)}.side-current{display:flex;flex-direction:column;gap:5px;background:#eaf2ff;color:var(--blue);padding:13px 14px;border-left:3px solid var(--blue);font-weight:600}.side-current b{font-size:12px;font-weight:400;color:#6483b1}.side-note,.side-bottom p{color:#8993a3;font-size:12px;line-height:1.8;margin:12px 14px}.side-bottom{margin-top:30px;border-top:1px solid var(--line);padding-top:12px}.side-bottom>span,.side-bottom>strong{display:block;margin:0 14px 5px;font-size:12px}.side-bottom>span{color:#8993a3}.side-bottom>strong{font-weight:500;color:#637086}.content{min-width:0}
.filter-panel{background:#fff;border:1px solid var(--line);border-radius:6px;padding:14px 16px 10px}#search-form{max-width:660px;margin-bottom:12px}.search-wrap{display:flex;align-items:center;height:36px;border:1px solid #ccd7e7;border-radius:4px;overflow:hidden;background:#fff}.search-wrap>span{padding-left:11px;color:#8291a6;font-size:23px}.search-wrap input{flex:1;min-width:0;border:0;padding:7px 10px;outline:0;background:transparent}.search-wrap button{align-self:stretch;padding:0 23px;border:0;background:var(--blue);color:white}.search-wrap:focus-within{border-color:var(--blue)}.filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.filter-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#69788d}select{width:100%;min-width:0;height:32px;border:1px solid #dbe2ec;border-radius:4px;background:white;color:#384c66;padding:0 7px;font-size:12px;text-overflow:ellipsis}.quick-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px;font-size:12px}.quick-row>span{color:#8993a3;margin-right:2px}.quick-row button{border:1px solid transparent;background:#f3f6fa;padding:4px 10px;border-radius:3px;color:#687890;font-size:12px}.quick-row button.active{background:#edf4ff;border-color:#b6cdf2;color:var(--blue)}.quick-row .reset{margin-left:auto;color:var(--blue);background:transparent;padding-right:0}
.results-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;height:50px}.results-bar h2{font-size:15px;font-weight:650;margin:0}.results-bar h2 span{font-size:12px;font-weight:400;color:#78869a;margin-left:8px}.results-bar>label{display:flex;align-items:center;gap:8px;color:#7c889a;font-size:12px}.results-bar select{width:150px;height:29px}.resources{font-size:12px;padding:9px 12px;background:#f0f5fd;border:1px solid #dce7f6;border-bottom:0;color:#7a8ba3;line-height:1.6}.resources>span{font-weight:500;margin-right:10px;color:#657d9f}.resources a{color:#5878a8}.scroll-hint{display:none}.message{padding:36px 20px;text-align:center;background:white;border:1px solid var(--line);color:#7d8b9f;line-height:2}.loading{opacity:.5;pointer-events:none}
.table-scroll{overflow:auto;max-height:calc(100vh - 100px);border:1px solid #d8e1ed;background:#fff;scrollbar-width:thin;scrollbar-color:#c0ccdc #f4f7fb}.jobs-table{width:100%;min-width:1220px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12px}.col-province{width:76px}.col-title{width:auto}.col-date{width:94px}.col-category{width:128px}.col-city{width:106px}.col-count{width:60px}.col-deadline{width:148px}.col-education{width:82px}.col-actions{width:94px}.jobs-table th{position:sticky;top:0;z-index:2;background:#edf3fc;color:#476182;font-size:12px;font-weight:600;white-space:nowrap;height:40px;border-bottom:1px solid #d6e1f0}.jobs-table th,.jobs-table td{padding:9px 10px;text-align:center;border-right:1px solid #e7edf5}.jobs-table th:last-child,.jobs-table td:last-child{border-right:0}.jobs-table th:nth-child(2),.jobs-table .title-cell{text-align:left;padding-left:14px}.jobs-table td{height:65px;border-bottom:1px solid #e5eaf1;color:#596a81;line-height:1.6;vertical-align:middle}.jobs-table tbody tr:nth-child(even){background:#f9fbfe}.jobs-table tbody tr:hover{background:#edf5ff}.jobs-table tbody tr:last-child td{border-bottom:0}.job-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;width:100%;border:0;background:none;padding:0;font-size:14px;font-weight:500;color:#255da7;text-align:left;line-height:1.65;overflow-wrap:anywhere}.job-title:hover{text-decoration:underline;color:#154685}.cell-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.date-cell{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.deadline-cell>span{display:block;overflow:visible;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.status{display:block;color:#98a1ae;font-size:11px;font-weight:400}.status.soon{color:#d67723}.status.future{color:#26916f}.action-cell .original,.detail-button,.muted-link{display:block;line-height:1.8;font-size:12px;white-space:nowrap}.detail-button{border:0;background:none;color:var(--blue);padding:0;margin:auto}.detail-button:hover,.original:hover{text-decoration:underline}.muted-link{color:#a4adbb;font-size:11px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;color:#8692a3;font-size:12px}.pagination>div{display:flex;align-items:center;gap:14px}.pagination button,#retry{border:1px solid #d8e1ed;border-radius:4px;background:white;color:#586e8e;padding:6px 12px;font-size:12px}.pagination button:disabled{cursor:default;color:#b8c0cc;background:#f5f7fa}.footnote{font-size:11px;color:#939dab;line-height:1.8;margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
dialog{width:min(760px,calc(100vw - 32px));max-height:85vh;padding:0;border:0;border-radius:10px;box-shadow:0 20px 80px #152d5940;color:#293c56}dialog::backdrop{background:#142b4e66}.dialog-top{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;background:white;border-bottom:1px solid var(--line);padding:14px 22px;color:#78869a;font-size:13px}.dialog-top button{border:0;background:transparent;color:#748196;font-size:26px}#detail-body{padding:22px}#detail-body h2{font-size:21px;line-height:1.65;margin:0 0 20px;overflow-wrap:anywhere}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.detail-field{padding:12px 0;border-bottom:1px solid #edf0f5;min-width:0}.detail-field>span{font-size:12px;color:#8895a7}.detail-field p{margin:6px 0 0;font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.detail-wide{grid-column:1/-1}.detail-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:24px}.detail-footer>span:first-child{font-size:12px;color:#8b97a8}.detail-footer .original{flex-shrink:0;border-radius:4px;padding:9px 15px;background:var(--blue);color:white;font-size:13px}
@media(min-width:1600px){.jobs-table td{height:59px}.workspace{grid-template-columns:170px minmax(0,1fr)}}
@media(max-width:1100px){main{padding:16px}.workspace{grid-template-columns:130px minmax(0,1fr);gap:12px}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.source{flex-wrap:wrap;justify-content:flex-end}.source #sync-time{margin:0}.scroll-hint{display:block;margin:0 0 8px;font-size:11px;color:#8a98ac}}
@media(max-width:700px){.topbar{height:54px;padding:0 14px}.brand{font-size:18px}.brand-sub{font-size:12px;margin-left:10px;padding-left:10px}.preview-tag{font-size:10px;padding:4px 6px}main{padding:14px 12px}
h1{font-size:19px}.source{font-size:11px;gap:6px}.source #sync-time{margin-left:4px}.stats{gap:8px 18px;flex-wrap:wrap;margin-bottom:12px}.stats>div{gap:6px;font-size:11px}.stats strong{font-size:15px}.workspace{display:block}.sidebar{display:none}.filter-panel{padding:12px}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.filter-grid label{flex-direction:row;align-items:center;gap:6px;font-size:11px;white-space:nowrap}.filter-grid label select{flex:1;font-size:11px}.quick-row{gap:5px}.quick-row>span{display:none}.quick-row button{padding:5px 7px;font-size:11px}.search-wrap input{font-size:12px}.search-wrap button{padding:0 16px}.results-bar h2{font-size:14px}.results-bar h2 span{margin-left:4px;font-size:11px}.results-bar>label{font-size:0;gap:0}.results-bar select{width:120px;font-size:11px}.pagination{align-items:flex-start;flex-direction:column;gap:12px}.pagination>div{align-self:flex-end}.table-scroll{max-height:75vh}.detail-grid{gap:0 14px}.detail-footer{flex-direction:column;align-items:flex-start}#detail-body{padding:16px}#detail-body h2{font-size:18px}}

.col-source{width:124px}.source-cell .original{font-size:12px;white-space:nowrap}.source-cell small{display:block;font-size:10px;color:#8c98aa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}.detail-links{display:flex;align-items:center;gap:14px;flex-shrink:0}
/* Recruitment filters and comparison table. */
.workspace{display:block}.filter-panel{position:relative}.filter-grid .multi-field{min-width:0;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#69788d}.picker{position:relative}.picker summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #dbe2ec;border-radius:4px;background:#fff;height:32px;padding:0 9px;color:#384c66}.picker summary::-webkit-details-marker{display:none}.picker summary>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker[open] summary{border-color:var(--blue);box-shadow:0 0 0 2px #eaf2ff}.picker-menu{position:absolute;top:38px;left:0;z-index:10;width:280px;max-width:calc(100vw - 48px);background:#fff;border:1px solid #d7e2f1;border-radius:6px;padding:10px;box-shadow:0 8px 28px #23447722}.picker-menu input[type=search]{width:100%;border:1px solid #dbe2ec;border-radius:4px;height:34px;padding:0 9px;font-size:12px}.picker-options{max-height:235px;overflow:auto;margin-top:7px}.filter-grid .picker-option{display:flex;flex-direction:row;align-items:center;gap:8px;padding:7px 5px;font-size:13px;color:#42546c;cursor:pointer;border-radius:3px}.picker-option:hover{background:#edf4ff}.picker-option input{accent-color:var(--blue);width:15px;height:15px;margin:0;flex-shrink:0}.picker-note,.no-options{font-size:11px;color:#8491a3;line-height:1.7;margin:7px 0 0}.filter-help{font-size:11px;color:#7d8ba0;margin-top:9px}.filter-help summary{cursor:pointer;width:fit-content}.filter-help p{line-height:1.9;margin:7px 0;color:#657892;max-width:1000px}.quick-row .hide-expired{display:flex;align-items:center;gap:4px;color:#65768e;cursor:pointer;margin-left:5px;font-size:12px}.hide-expired input{accent-color:var(--blue)}.selected-filters{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px;font-size:11px;color:#7c8b9f}.filter-chip{border:1px solid #cfe0f8;background:#edf4ff;border-radius:4px;padding:4px 8px;color:#3567a8;font-size:11px}.filter-chip:hover{background:#dfeeff}.jobs-table{min-width:1220px}.col-province{width:70px}.col-date{width:92px}.col-staffing{width:86px}.col-major{width:145px}.col-source{width:108px}.job-category{display:block;font-size:11px;color:#96a0ae;margin-top:3px}.staff-badge{display:inline-block;font-size:11px;white-space:nowrap;color:#8c97a7;background:#f1f3f6;border-radius:3px;padding:2px 6px}.staff-badge.staffed{color:#1e7b5c;background:#e8f5ed}.staff-badge.nonstaffed{color:#697991;background:#eef1f6}.expired-row .job-title{color:#7f8da1}.expired-row .status{color:#a2aab6}.expired-row .staff-badge{opacity:.75}.jobs-table th:nth-child(1),.jobs-table td:nth-child(1){position:sticky;left:0;z-index:1;background:#fff}.jobs-table th:nth-child(2),.jobs-table td:nth-child(2){position:sticky;left:70px;z-index:1;background:#fff;box-shadow:2px 0 2px #243f5e08}.jobs-table tbody tr:nth-child(even) td:nth-child(-n+2){background:#f9fbfe}.jobs-table tbody tr:hover td:nth-child(-n+2){background:#edf5ff}.jobs-table thead th:nth-child(-n+2){z-index:3;background:#edf3fc}
@media(max-width:700px){.filter-grid .multi-field{gap:4px;font-size:11px}.filter-grid>label{flex-direction:column;align-items:stretch;gap:4px}.filter-grid label select{flex:auto}.picker-menu{width:250px}.multi-field:nth-child(even) .picker-menu{left:auto;right:0}.filter-help{line-height:1.6}.quick-row .hide-expired{font-size:11px}.jobs-table th:nth-child(1),.jobs-table td:nth-child(1){position:static}.jobs-table th:nth-child(2),.jobs-table td:nth-child(2){left:0;width:190px}.jobs-table .col-title{width:190px}.jobs-table{min-width:1100px}.selected-filters{gap:5px}}
/* Viewport-filling announcement workspace. */
html,body{height:100%;overflow:hidden}
body{height:100dvh;display:flex;flex-direction:column}
.topbar{height:52px;flex:0 0 52px;padding:0 24px}
.header-actions{display:flex;align-items:center;gap:18px}
.history-resources{position:relative;font-size:12px;color:#657d9f}
.history-resources summary{cursor:pointer;list-style:none}
.history-resources summary::-webkit-details-marker{display:none}
.history-resources .resources{position:absolute;right:0;top:27px;width:310px;max-width:calc(100vw - 32px);z-index:30;margin:0;border:1px solid #dae4f2;border-radius:5px;background:white;box-shadow:0 8px 28px #23447722;padding:14px}
main{width:100%;max-width:none;flex:1;min-height:0;display:flex;flex-direction:column;margin:0 auto;padding:10px 20px 12px}


h1{font-size:18px;white-space:nowrap}


.source{white-space:nowrap}.source #sync-time{margin:0}
.workspace,.content{flex:1;min-height:0;display:flex;flex-direction:column}
.compact-filters{display:flex;align-items:center;gap:10px;padding:10px 12px;flex-shrink:0;z-index:5}
.compact-filters #search-form{flex:1.2;min-width:160px;max-width:none;margin:0}
.search-wrap{height:34px}.search-wrap input{font-size:13px}.search-wrap button{padding:0 16px;font-size:12px}
.compact-filters .filter-grid{flex:1.4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0}
.filter-grid .multi-field{display:block;min-width:0}.multi-field>span{display:none}
.picker summary{height:34px}.picker-menu{top:39px}
.compact-filters .filter-help{position:relative;flex:0 0 22px;margin:0;align-self:center}
.filter-help>summary{list-style:none;display:grid;place-items:center;width:22px;height:22px;border:1px solid #d5deeb;border-radius:50%;font-size:12px;font-weight:600;color:#7890b2}
.filter-help>summary::-webkit-details-marker{display:none}
.help-popover{position:absolute;right:0;top:31px;z-index:12;width:430px;max-width:calc(100vw - 38px);padding:16px;background:white;border:1px solid #d8e2ef;border-radius:6px;box-shadow:0 8px 28px #23447722;font-size:12px;max-height:50vh;overflow:auto}
.help-popover strong{color:#4a6386}.filter-help .help-popover p{font-size:12px;line-height:1.8}
.more-filters{position:relative;flex:0 0 auto;font-size:12px;color:#546b8e}
.more-filters>summary{display:flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 10px;border:1px solid #dbe2ec;border-radius:4px;list-style:none;cursor:pointer;white-space:nowrap}
.more-filters>summary::-webkit-details-marker{display:none}
.more-filters[open]>summary{border-color:var(--blue);background:#f1f6ff;color:var(--blue)}
#more-count{min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--blue);color:white;text-align:center;font-size:10px;line-height:16px}
.more-panel{position:absolute;right:0;top:40px;width:420px;max-width:calc(100vw - 38px);padding:16px;z-index:12;background:white;border:1px solid #d8e2ef;border-radius:6px;box-shadow:0 8px 28px #23447722}
.advanced-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.advanced-grid label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#6f819b}.advanced-note{font-size:11px;line-height:1.8;color:#8a98aa;margin-top:13px}
.results-bar{flex:0 0 auto;min-height:44px;height:auto;margin:0;gap:12px;padding:6px 0}
.results-bar .quick-row{margin:0;gap:7px;flex-wrap:nowrap;min-width:0}
.quick-row button{white-space:nowrap}.quick-row .reset{margin-left:5px;padding-right:6px}.quick-row .hide-expired{white-space:nowrap}
#stat-upcoming{font-size:10px;color:#8b99ad;margin-left:3px}.active #stat-upcoming{color:var(--blue)}
.result-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}.result-controls h2{font-size:12px;font-weight:400}.result-controls #result-count{margin:0;color:#8390a3}.result-controls select{height:29px;width:148px}
.selected-filters{flex:0 0 auto;margin:0;padding:0 0 7px;flex-wrap:nowrap;overflow-x:auto;min-height:0;scrollbar-width:thin}.selected-filters>span,.filter-chip{flex-shrink:0}.filter-chip{white-space:nowrap;padding:3px 7px}
.table-frame{position:relative;flex:1;min-height:0;background:white;border:1px solid #dbe3ef;border-radius:5px 5px 0 0;overflow:hidden}
#results{height:100%;min-height:0}.table-scroll{height:100%;max-height:none!important;border:0;overscroll-behavior:contain;scrollbar-gutter:stable}
.message{position:absolute;inset:0;margin:0;padding:50px 20px;border:0;z-index:2;font-size:13px}
.jobs-table th{height:36px;background:#edf3fc;border-right-color:#e4ebf6}
.jobs-table th,.jobs-table td{padding:6px 8px}.jobs-table td{height:52px;border-right-color:#f0f3f8}
.jobs-table th:nth-child(2),.jobs-table .title-cell{padding-left:12px}.job-title{font-size:13px;line-height:1.5}.job-category{font-size:10px;line-height:1.3;margin-top:3px}.cell-text{line-height:1.5}
.col-province{width:64px}.col-date{width:86px}.col-staffing{width:80px}.col-city{width:105px}.col-count{width:50px}.col-deadline{width:148px}.col-education{width:80px}.col-major{width:155px}.col-source{width:104px}.jobs-table th:nth-child(2),.jobs-table td:nth-child(2){left:64px}
.pagination{flex:0 0 auto;min-height:48px;padding:7px 12px;flex-direction:row;align-items:center;gap:10px;background:white;border:1px solid #dbe3ef;border-top:0;border-radius:0 0 5px 5px;font-size:11px;white-space:nowrap}
.pagination .page-controls{display:flex;align-items:center;gap:10px}.pagination .page-size-label{display:flex;align-items:center;gap:6px}.pagination select{height:28px;width:73px;font-size:11px}.pagination button{padding:5px 9px;font-size:11px;height:28px}#page-index{font-variant-numeric:tabular-nums;color:#667d9f}
#page-form,#page-form label{display:flex;align-items:center;gap:5px;font-size:11px}#page-jump{width:49px;height:28px;padding:3px;border:1px solid #d8e1ed;border-radius:4px;font-size:11px;text-align:center;color:#526b8d}
@media(max-width:1100px){
.compact-filters{gap:7px}.compact-filters .filter-grid{gap:7px}.compact-filters #search-form{flex:1;min-width:140px}.compact-filters .filter-grid{flex:1.5}.result-controls{gap:8px}.quick-row .reset{margin-left:0}.pagination{padding:7px 9px}.pagination .page-controls{gap:7px}}
@media(max-width:700px){.topbar{height:46px;flex-basis:46px;padding:0 12px}.brand{font-size:16px}.brand-icon{width:27px;height:27px;font-size:17px}.brand-sub{display:none}.header-actions{gap:10px}.history-resources{font-size:11px}.preview-tag{font-size:10px}main{padding:5px 9px 8px}



.source{font-size:9px;gap:3px}.source #sync-time{margin:0}.live-dot{width:4px;height:4px}.compact-filters{padding:8px;gap:8px;display:grid;grid-template-columns:minmax(0,1fr) 26px 105px}.compact-filters #search-form{grid-column:1/3;grid-row:1;min-width:0}.compact-filters .filter-grid{grid-column:1/4;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding-right:30px}.compact-filters .filter-help{position:absolute;right:11px;bottom:14px}.compact-filters .more-filters{grid-column:3;grid-row:1}.more-filters>summary{font-size:11px;padding:0 5px}.more-panel{width:330px;padding:12px}.advanced-grid{gap:7px}.advanced-grid label{font-size:11px}.advanced-grid select{font-size:11px;padding:0 4px}.help-popover{right:-3px;width:330px}.search-wrap input{font-size:11px;padding:6px;min-width:0}.search-wrap>span{padding-left:7px}.search-wrap button{padding:0 9px;font-size:11px}.picker summary{font-size:11px;padding:0 7px}.picker-menu{width:240px}.multi-field:nth-child(2) .picker-menu{left:-80px;right:auto}.multi-field:nth-child(3) .picker-menu{left:auto;right:0}.results-bar{padding:5px 0;min-height:38px;gap:4px;flex-wrap:wrap}.results-bar .quick-row{gap:3px;width:100%;overflow-x:auto;padding-bottom:1px}.quick-row button{font-size:10px;padding:4px 5px}.quick-row .hide-expired{font-size:10px;gap:2px;margin-left:2px}.quick-row .hide-expired input{margin:0 2px;width:12px;height:12px}.result-controls{width:100%;justify-content:space-between;margin:2px 0}.result-controls select{height:25px;width:133px;font-size:10px}.result-controls #result-count{font-size:10px}.pagination{flex-wrap:wrap;white-space:normal;gap:5px;min-height:66px;padding:6px 8px}.pagination>span{font-size:10px}.pagination .page-controls{width:100%;justify-content:space-between;gap:5px;align-self:auto}.pagination .page-size-label{font-size:0;gap:0}.pagination select{width:64px;font-size:10px}.pagination button{padding:4px 6px;font-size:10px}.pagination #page-form{gap:3px}#page-form label{font-size:0;gap:0}#page-jump{width:37px}#page-form button{font-size:10px}.jobs-table th:nth-child(2),.jobs-table td:nth-child(2){left:0}.jobs-table td{height:52px}.job-title{font-size:12px}.jobs-table .col-title{width:190px}}
.workspace{align-items:stretch;gap:0;min-width:0}.content{width:100%;min-width:0}.table-frame{width:100%;min-width:0}

/* Compact source navigation keeps the remaining viewport available to the table. */
.source-tabs{display:flex;flex:0 0 auto;gap:5px;min-width:0;overflow-x:auto;scrollbar-width:thin;padding:0 0 7px;margin:0;white-space:nowrap}
.source-tabs button{display:flex;align-items:center;gap:7px;flex-shrink:0;border:1px solid transparent;background:transparent;padding:7px 12px;border-radius:5px;font-size:12px;font-weight:500;color:#637691;cursor:pointer}
.source-tabs button:hover{background:#edf3fc;color:#2662c7}.source-tabs button[aria-pressed="true"]{background:#eaf1ff;border-color:#cbdcff;color:#2463db}
.source-tabs button small{font-size:10px;font-weight:400;color:#94a2b6;font-variant-numeric:tabular-nums}.source-tabs button[aria-pressed="true"] small{color:#6486c0}
.source-tabs button:focus-visible{outline:2px solid #2f6de3;outline-offset:-2px}
.source-tag{color:#7592bd}.quick-row button:disabled{opacity:.4;cursor:default}
.resources a,.resources>span{display:block;padding:8px 0;border-bottom:1px solid #edf0f5;font-size:12px;line-height:1.6}.resources a:last-child,.resources>span:last-child{border:0}.resources small{display:block;color:#8b9cb2;font-size:10px}
@media(max-width:700px){.source-tabs{gap:3px;padding-bottom:6px}.source-tabs button{padding:6px 8px;font-size:11px;gap:5px}.source-tabs button small{font-size:9px}}
/* Everyday use: lightweight controls, personal progress and mobile reading. */
.header-actions>select{height:29px;width:100px;font-size:11px}.tool-menu{position:relative;font-size:11px;color:#617796}.tool-menu summary{cursor:pointer;list-style:none}.tool-menu summary::-webkit-details-marker{display:none}.tool-menu summary{padding:7px 4px;white-space:nowrap}.tool-popover{position:absolute;right:0;top:32px;width:330px;max-width:calc(100vw - 24px);padding:15px;background:#fff;border:1px solid #d8e2ef;border-radius:6px;box-shadow:0 8px 28px #23447722;z-index:40;white-space:normal;max-height:65vh;overflow:auto;color:#536b8c;font-size:12px;line-height:1.7}.tool-popover p{color:#7d8da4;font-size:11px;margin:8px 0}.tool-popover strong{display:block}.tool-popover input[type=text],#filter-name{width:100%;min-width:0;border:1px solid #ccd8e9;border-radius:4px;padding:7px;color:#365b8c;font-size:12px}.tool-popover button{border:1px solid #d7e1ed;border-radius:4px;background:#f6f9ff;color:#386db0;padding:5px 9px;cursor:pointer;white-space:nowrap}.tool-popover label>select{margin:5px 0 12px;width:100%}#save-filter-form{display:flex;gap:6px;margin:10px 0}.saved-entry{display:flex;gap:6px;margin-top:7px}.saved-entry>button:first-child{flex:1;text-align:left;white-space:normal;overflow-wrap:anywhere}#column-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}#column-options label{display:flex;gap:5px;align-items:center}.quick-row select{height:28px;width:112px;font-size:11px;padding:0 5px}.tracking{display:flex;justify-content:center;gap:4px;margin-top:5px}.tracking button{border:0;padding:2px 4px;border-radius:3px;background:#f0f4f9;color:#72839b;font-size:10px;white-space:nowrap;cursor:pointer}.tracking button[aria-pressed=true]{background:#e5efff;color:#2764c6}.source-cell{white-space:nowrap}.col-source{width:140px}.col-count{width:80px}.was-viewed{color:#7f8da4!important}.toast{position:fixed;bottom:72px;left:50%;transform:translateX(-50%);max-width:90vw;padding:10px 16px;background:#28466beF;color:white;border-radius:6px;font-size:12px;z-index:100;box-shadow:0 3px 20px #23447722}.compact-list{display:none;height:100%;overflow:auto;background:#fff}.compact-list article{padding:13px 16px;border-bottom:1px solid #e5ecf6}.compact-list article:nth-child(even){background:#fafcff}.card-meta{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#8a9aaf;margin-bottom:6px}.compact-list .job-title{display:block;width:100%;text-align:left;white-space:normal;font-size:14px}.card-facts{color:#667d9d;font-size:11px;margin:6px 0;line-height:1.7}.card-deadline{font-size:11px;margin:6px 0;color:#587296}.card-deadline span{color:#ae8237;margin-left:6px}.card-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}.card-actions .tracking{margin:0}.card-actions .original{font-size:11px}body[data-view=list] .table-scroll{display:none}body[data-view=list] .compact-list{display:block}.detail-links{flex-wrap:wrap;gap:8px}.detail-links .tracking{margin:0}.jobs-table th:not(.heading-province):not(.heading-title){position:sticky;left:auto}.jobs-table td:not(.title-cell){position:static;left:auto}.jobs-table .heading-title,.jobs-table .title-cell{position:sticky;left:64px;z-index:2;background:#fff}.jobs-table .heading-title{z-index:4;background:#edf3fc}.jobs-table .heading-province{left:0;z-index:4}.jobs-table tr:nth-child(even) .title-cell{background:#fafcff}.table-scroll.no-province .heading-title,.table-scroll.no-province .title-cell{left:0}.table-scroll:not(.no-province) td:first-child{position:sticky;left:0;z-index:2;background:#fff}
@media(max-width:1100px){.results-bar{flex-wrap:wrap;gap:3px}.results-bar .quick-row{flex:1}
.header-actions{gap:9px}}
@media(max-width:700px){.header-actions{gap:5px}.header-actions>select{width:78px;height:26px;font-size:10px}.header-actions .preview-tag,.header-actions #history-resources{display:none}.tool-menu summary{font-size:10px;padding:4px 2px}.brand{font-size:13px}.brand-icon{display:none}.tool-menu .tool-popover{position:fixed;right:10px;top:44px;width:330px}

.results-bar .quick-row{flex:none}.quick-row select{height:25px;width:94px;font-size:10px;flex-shrink:0}.compact-list article{padding:12px}.compact-list .job-title{font-size:13px}.jobs-table .heading-title,.jobs-table .title-cell{left:0}.table-scroll:not(.no-province) td:first-child:not(.title-cell){position:static}body[data-view=auto] .table-scroll{display:none}body[data-view=auto] .compact-list{display:block}.toast{bottom:80px}.tracking button{font-size:11px;padding:4px 6px}}

.date-cell{white-space:nowrap;font-size:11px}.tracking{margin-top:3px}.tracking button{line-height:12px}.source-cell .original{line-height:17px}.jobs-table .title-cell{min-width:190px}

#refresh-data{border:1px solid #b8cef0;border-radius:4px;color:#2765b7;background:#edf4ff;padding:4px 7px;font-size:10px;cursor:pointer;white-space:nowrap}

/* Reading palette: neutral surfaces, blue selections, semantic personal states.
   Keep these rules after layout rules so desktop and mobile use the same palette. */
:root{
  --blue:#245fc5;--line:#dfe3e8;--muted:#626b78;
  --ink:#202936;--text:#414b59;--surface:#fff;--canvas:#fff;
  --subtle:#f7f8fa;--stripe:#fafbfc;--hover:#eff5ff;
  --selected:#edf3ff;--selected-line:#b8cbef;
  --warning:#955400;--warning-bg:#fff4df;
  --success:#216b49;--success-bg:#eaf5ee;
  color:var(--ink);background:var(--canvas);
}
.brand,dialog,#detail-body h2{color:var(--ink)}
.brand-sub,.preview-tag,.source,.tool-menu,.history-resources,.result-controls #result-count,.pagination,.selected-filters,.filter-grid .multi-field,.advanced-grid label,.filter-help,.picker-note,.no-options,.picker-loading,.advanced-note,.tool-popover p,.detail-field>span,.detail-footer>span:first-child,.dialog-top,.job-category,.date-cell,.card-meta,.muted-link,.source-tabs button small,#stat-upcoming,.quick-row>span,.quick-row .hide-expired{color:var(--muted)}
.preview-tag{background:var(--subtle)}
.help-popover strong,.tool-popover,.filter-help .help-popover p,.picker-option,.card-facts,.card-deadline{color:var(--text)}
.filter-panel,.table-frame,.pagination,.picker-menu,.more-panel,.help-popover,.tool-popover,
.history-resources .resources{border-color:var(--line)}
.picker-menu,.more-panel,.help-popover,.tool-popover,.history-resources .resources{
  box-shadow:0 8px 24px #20293614;
}
select,.picker summary,.more-filters>summary,.search-wrap,.picker-menu input[type=search],
.tool-popover input[type=text],#filter-name,#page-jump{
  color:var(--text);border-color:#cdd3dc;background:var(--surface);
}
input::placeholder{color:var(--muted);opacity:1}
.search-wrap button{background:var(--blue)}
.quick-row button,.tool-popover button,.pagination button,#retry{
  color:var(--text);background:var(--surface);border-color:var(--line);
}
.quick-row button:hover,.tool-popover button:hover,.pagination button:not(:disabled):hover{
  background:var(--subtle);border-color:#b7c0cc;
}
.quick-row .reset{color:var(--blue);background:transparent;border-color:transparent}
.source-tabs button{color:var(--text)}
.source-tabs button:hover{background:var(--subtle);color:var(--ink)}
.source-tabs button[aria-pressed=true],.quick-row button.active,
select.has-selection,.picker.has-selection>summary,.more-filters.has-selection>summary,
.filter-chip{
  color:var(--blue);background:var(--selected);border-color:var(--selected-line);
}
.source-tabs button[aria-pressed=true] small{color:var(--blue)}
.picker[open]>summary,.more-filters[open]>summary{
  border-color:var(--blue);box-shadow:0 0 0 2px var(--selected);
}
.picker-option:hover{background:var(--subtle)}
.filter-grid .picker-option:has(input:checked){color:var(--blue);background:var(--selected)}
.hide-expired:has(input:checked){color:var(--blue);font-weight:600}
.filter-chip:hover{background:#e2ecff}
.jobs-table thead th,.jobs-table thead th:nth-child(-n+2),.jobs-table .heading-title{
  background:#f3f4f6;color:var(--text);border-bottom-color:#d9dee5;border-right-color:#e9ecf0;
}
.jobs-table td{color:var(--text);border-bottom-color:#e4e7ec;border-right-color:#f2f3f5}
.jobs-table tbody tr{--row-bg:var(--surface);background:var(--row-bg)}
.jobs-table tbody tr:nth-child(even){--row-bg:var(--stripe);background:var(--row-bg)}
.jobs-table tbody tr:hover,.jobs-table tbody tr:focus-within{--row-bg:var(--hover);background:var(--row-bg)}
/* Sticky cells must have an opaque background matching the entire row. */
.jobs-table tbody tr td,.jobs-table tbody tr:nth-child(even) td:nth-child(-n+2),
.jobs-table tbody tr:hover td:nth-child(-n+2),.table-scroll:not(.no-province) tbody tr td:first-child{
  background:var(--row-bg);
}
.job-title,.expired-row .job-title{color:var(--ink);font-weight:600}
.was-viewed{color:var(--text)!important}
.job-title:hover,.job-title:focus-visible{color:var(--blue)!important;text-decoration:underline}
.job-category{font-size:11px}
.staff-badge,.staff-badge.staffed,.staff-badge.nonstaffed,.expired-row .staff-badge{
  color:var(--text);background:#f0f2f5;opacity:1;
}
.staff-badge.staffed{font-weight:600}
.status,.status.future,.expired-row .status,.card-deadline span{color:var(--muted)}
.status.soon,.card-deadline.soon span{color:var(--warning);font-weight:600}
.deadline-cell:has(.status.soon)>span{color:var(--warning);font-weight:600}

.tracking button{color:var(--muted);background:#f1f3f5}
.tracking button:hover{background:#e7ebf0;color:var(--text)}
.tracking button[data-track=saved][aria-pressed=true]{color:var(--warning);background:var(--warning-bg)}
.tracking button[data-track=applied][aria-pressed=true]{color:var(--success);background:var(--success-bg)}
.compact-list article{background:var(--surface);border-color:#e4e7ec}
.compact-list article:nth-child(even){background:var(--stripe)}
.compact-list article:hover,.compact-list article:focus-within{background:var(--hover)}
.pagination button:disabled{color:#89919d;background:var(--subtle);border-color:var(--line)}
#page-index{color:var(--text)}
#refresh-data{color:var(--blue);background:var(--selected);border-color:var(--selected-line)}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,
summary:focus-visible,.table-scroll:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media(max-width:700px){.job-category{font-size:10px}}

#fullscreen-toggle{display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;height:29px;padding:0;border:1px solid #cdd3dc;border-radius:4px;background:var(--surface);color:var(--text);font-size:11px;white-space:nowrap}
#fullscreen-toggle:hover{background:var(--subtle);border-color:#b7c0cc}
#fullscreen-toggle[aria-pressed=true]{background:var(--selected);border-color:var(--selected-line);color:var(--blue)}
#fullscreen-toggle:disabled{cursor:wait;opacity:.65}
:fullscreen main{max-width:none}
:root:-webkit-full-screen main{max-width:none}
.page-fullscreen .topbar{justify-content:flex-end;height:40px;flex-basis:40px}
.page-fullscreen .topbar .brand,.page-fullscreen .header-actions>:not(#fullscreen-toggle){display:none}
.page-fullscreen main{max-width:none;padding-top:8px}
@media(max-width:700px){#fullscreen-toggle{width:30px;min-width:30px;height:28px;padding:0}}

/* Feishu field-option color IDs are preserved per source table and field.
   The palette is local: picker position is not the API color ID.
   Color 11 was calibrated to the user's 2026-10-11 screenshot (#fdc6c4).
   Color 22 was verified against the live public-table option and the user's
   2026-10-13 screenshot (#ff7570, white text). School-table screenshot and live
   options also verify IDs 2 (vocational), 3 (technician), 13 (school), 30 (kindergarten).
   IDs 23 (orange), 33 (red), 51 (blue) are calibrated to the enterprise
   table screenshot supplied on 2026-10-14. Color 14 (auxiliary police/fire/clerk)
   matches the user's 2026-10-15 screenshot (#c8dd5f, #1f2329 text).
   Other mappings remain uncalibrated. */
.option-tag{display:inline-block;max-width:100%;padding:1px 6px;border-radius:10px;background:var(--tag-bg,#eff0f1);color:var(--tag-fg,#30343b);font-size:11px;font-weight:500;line-height:18px;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.option-tags{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:3px;max-height:43px;overflow:hidden}
.option-empty{font-size:11px;color:var(--muted)}
.job-category .option-tag{font-size:10px;padding:0 5px;line-height:16px;max-width:180px}
.card-provinces{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}
.card-meta>span{flex-shrink:0}
.card-facts.option-tags{justify-content:flex-start;max-height:none;gap:5px}
.detail-field .option-tag{margin:2px 4px 2px 0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.col-province{width:84px}
.jobs-table th.heading-title,.jobs-table td.title-cell{left:84px}
.table-scroll.no-province .heading-title,.table-scroll.no-province .title-cell{left:0}
@media(max-width:700px){.jobs-table th.heading-title,.jobs-table td.title-cell{left:0}}
.feishu-color-0{--tag-bg:#dfe9ff;--tag-fg:#30343b}
.feishu-color-1{--tag-bg:#ffe6cc;--tag-fg:#30343b}
.feishu-color-2{--tag-bg:#caeffc;--tag-fg:#1f2329}
.feishu-color-3{--tag-bg:#faedc2;--tag-fg:#1f2329}
.feishu-color-4{--tag-bg:#bff0e8;--tag-fg:#30343b}
.feishu-color-5{--tag-bg:#ffe2e3;--tag-fg:#30343b}
.feishu-color-6{--tag-bg:#eee5ff;--tag-fg:#30343b}
.feishu-color-7{--tag-bg:#cff4ce;--tag-fg:#30343b}
.feishu-color-8{--tag-bg:#fddff1;--tag-fg:#30343b}
.feishu-color-9{--tag-bg:#e3f0a2;--tag-fg:#30343b}
.feishu-color-10{--tag-bg:#eff0f1;--tag-fg:#30343b}
.feishu-color-11{--tag-bg:#fdc6c4;--tag-fg:#30343b}
.feishu-color-12{--tag-bg:#fed4a4;--tag-fg:#30343b}
.feishu-color-13{--tag-bg:#fcdf7e;--tag-fg:#1f2329}
.feishu-color-14{--tag-bg:#c8dd5f;--tag-fg:#1f2329}
.feishu-color-15{--tag-bg:#8fe5d6;--tag-fg:#30343b}
.feishu-color-16{--tag-bg:#fbbfbc;--tag-fg:#30343b}
.feishu-color-17{--tag-bg:#dcc9ff;--tag-fg:#30343b}
.feishu-color-18{--tag-bg:#a8e7a6;--tag-fg:#30343b}
.feishu-color-19{--tag-bg:#f9c4e3;--tag-fg:#30343b}
.feishu-color-20{--tag-bg:#d5e77f;--tag-fg:#30343b}
.feishu-color-21{--tag-bg:#dee0e3;--tag-fg:#30343b}
.feishu-color-22{--tag-bg:#ff7570;--tag-fg:#ffffff}
.feishu-color-23{--tag-bg:#ff8800;--tag-fg:#ffffff}
.feishu-color-24{--tag-bg:#62d2f0;--tag-fg:#30343b}
.feishu-color-25{--tag-bg:#f8d34a;--tag-fg:#30343b}
.feishu-color-26{--tag-bg:#40c9af;--tag-fg:#30343b}
.feishu-color-27{--tag-bg:#f98e8b;--tag-fg:#30343b}
.feishu-color-28{--tag-bg:#bda4f6;--tag-fg:#30343b}
.feishu-color-29{--tag-bg:#74d370;--tag-fg:#30343b}
.feishu-color-30{--tag-bg:#eb78b9;--tag-fg:#ffffff}
.feishu-color-31{--tag-bg:#b8d63b;--tag-fg:#30343b}
.feishu-color-32{--tag-bg:#bbbfc4;--tag-fg:#30343b}
.feishu-color-33{--tag-bg:#f54a45;--tag-fg:#ffffff}
.feishu-color-34{--tag-bg:#f38f26;--tag-fg:#30343b}
.feishu-color-35{--tag-bg:#14a7d1;--tag-fg:#000000}
.feishu-color-36{--tag-bg:#dcad00;--tag-fg:#30343b}
.feishu-color-37{--tag-bg:#00a88a;--tag-fg:#000000}
.feishu-color-38{--tag-bg:#f54a45;--tag-fg:#000000}
.feishu-color-39{--tag-bg:#8d55ed;--tag-fg:#ffffff}
.feishu-color-40{--tag-bg:#34b12c;--tag-fg:#000000}
.feishu-color-41{--tag-bg:#e747a2;--tag-fg:#000000}
.feishu-color-42{--tag-bg:#8fac02;--tag-fg:#30343b}
.feishu-color-43{--tag-bg:#646a73;--tag-fg:#ffffff}
.feishu-color-44{--tag-bg:#245bdb;--tag-fg:#ffffff}
.feishu-color-45{--tag-bg:#c46514;--tag-fg:#000000}
.feishu-color-46{--tag-bg:#067a9e;--tag-fg:#ffffff}
.feishu-color-47{--tag-bg:#9c7900;--tag-fg:#000000}
.feishu-color-48{--tag-bg:#007f68;--tag-fg:#ffffff}
.feishu-color-49{--tag-bg:#c82a25;--tag-fg:#ffffff}
.feishu-color-50{--tag-bg:#6425d0;--tag-fg:#ffffff}
.feishu-color-51{--tag-bg:#1456f0;--tag-fg:#ffffff}
.feishu-color-52{--tag-bg:#b9237e;--tag-fg:#ffffff}
.feishu-color-53{--tag-bg:#667e00;--tag-fg:#ffffff}
.feishu-color-54{--tag-bg:#373c43;--tag-fg:#ffffff}

/* Column widths are assigned from the actual table viewport by resizeColumns.
   Remove legacy table/cell minimums so hidden columns and mobile remain usable. */
.jobs-table{min-width:0}
.jobs-table td.title-cell,.jobs-table th.heading-title{min-width:0;width:auto}
.jobs-table th.heading-major{text-align:left}
.jobs-table .job-title{-webkit-line-clamp:2}
.jobs-table td.major-cell{text-align:left}

.fullscreen-icon{display:block;flex-shrink:0}
#fullscreen-toggle .fullscreen-exit{display:none}
#fullscreen-toggle[aria-pressed=true] .fullscreen-enter{display:none}
#fullscreen-toggle[aria-pressed=true] .fullscreen-exit{display:block}

#portal-account,#account-gate,#portal-logout{border:1px solid var(--selected-line);border-radius:4px;color:var(--blue);background:var(--selected);padding:6px 10px;font-size:12px;white-space:nowrap}
#portal-auth{width:min(430px,calc(100vw - 24px))}
#portal-auth .dialog-content{padding:22px;position:relative}
#portal-auth .close-dialog{position:absolute;right:12px;top:8px;border:0;background:none;font-size:26px;color:var(--muted)}
#portal-auth .auth-dialog-header{display:flex;align-items:center;gap:10px;margin-bottom:18px}
#portal-auth .dialog-mark{display:none}
#portal-auth h2{font-size:20px;margin:0}
#portal-auth .auth-tabs{display:flex;gap:8px;margin-bottom:16px}
#portal-auth .auth-tabs button{flex:1;padding:8px;border:1px solid var(--line);border-radius:4px;background:white;color:var(--text)}
#portal-auth .auth-tabs button[aria-selected=true]{color:var(--blue);background:var(--selected);border-color:var(--selected-line)}
#portal-auth form>label,#portal-auth .email-code-group label{display:block;font-size:13px;line-height:1.8;margin-top:10px}
#portal-auth input:not([type=checkbox]){display:block;width:100%;height:38px;margin:5px 0 10px;border:1px solid #cdd3dc;border-radius:4px;padding:8px}
#portal-auth form button{border:1px solid var(--line);border-radius:4px;padding:8px 12px;color:var(--blue);background:var(--selected)}
#portal-auth form button[type=submit]{width:100%;margin-top:12px;background:var(--blue);color:white}
#portal-auth [data-password-fields]{position:relative;margin-bottom:10px}
#portal-auth [data-password-fields] input{padding-right:64px;margin-bottom:0}
#portal-auth form [data-password-toggle]{position:absolute;right:3px;bottom:3px;min-width:54px;min-height:32px;padding:4px 8px;border:0;background:transparent}
#portal-auth [data-password-toggle]:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
#portal-auth .form-message{font-size:12px;color:var(--warning);line-height:1.6}
#portal-auth .auth-footnote,#portal-auth [data-login-help],.portal-account-note{font-size:12px;line-height:1.7;color:var(--muted)}
.portal-account-body{padding:20px;overflow-wrap:anywhere}.portal-account-body h3{font-size:14px}
#portal-orders p{padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
#portal-account-dialog{width:min(550px,calc(100vw - 24px))}
@media(max-width:700px){#portal-account{font-size:10px;padding:5px}.header-actions{gap:4px}}

/* Give the account entry a clear surface and one primary action. */
.message.access-required{padding:28px 20px;background:#eaf0fa;overflow:auto;line-height:1.6}
.message.access-required:not([hidden]){display:flex;flex-direction:column}
.access-card{flex-shrink:0;width:100%;max-width:560px;margin:auto;padding:32px 36px 0;background:#fff;border:1px solid #c6d5eb;border-top:4px solid #245fca;border-radius:14px;box-shadow:0 12px 32px #19396314,0 2px 6px #19396308;text-align:center}
.access-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 16px;background:#e9f0ff;border:1px solid #d1dffc;border-radius:16px;color:#245fca}
.access-eyebrow{margin:0 0 7px;font-size:12px;font-weight:600;letter-spacing:1px;color:#526785}
.access-card h2{margin:0;color:#1c2d46;font-size:26px;font-weight:700;line-height:1.4;letter-spacing:0}
.access-description{margin:14px 0 24px;color:#52647c;font-size:15px;line-height:1.8;overflow-wrap:anywhere}
.access-actions{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px}
.access-card #account-gate{min-height:46px;min-width:240px;max-width:100%;padding:11px 24px;background:#245fca;border:1px solid #245fca;border-radius:8px;color:#fff;font-size:15px;font-weight:650;box-shadow:0 4px 10px #245fca26;white-space:normal}
.access-card #account-gate:hover{background:#1c4da8;border-color:#1c4da8}
.access-card #account-gate:active{box-shadow:none}
.access-card #retry{padding:5px 12px;min-height:34px;background:transparent;border:0;color:#52647c;font-size:13px}
.access-card #retry:hover{color:#245fca;text-decoration:underline}
.access-card button:focus-visible{outline:3px solid #245fca;outline-offset:4px}
.access-footnote{margin:0 -36px;padding:15px 20px;background:#f5f8fc;border-top:1px solid #e1e8f2;border-radius:0 0 13px 13px;color:#5b6b80;font-size:12px}
@media(max-width:700px){.message.access-required{padding:20px 14px}.access-card{padding:24px 20px 0;border-radius:12px}.access-card h2{font-size:22px}.access-description{font-size:14px}.access-card #account-gate{min-width:0;width:100%}.access-footnote{margin:0 -20px;padding:13px 16px}.access-icon{width:48px;height:48px;margin-bottom:12px}}


/* Common conditions stay visible; advanced taxonomy remains in More filters. */
.compact-filters #search-form{flex:1;min-width:180px}
.compact-filters .filter-grid{flex:2;grid-template-columns:repeat(4,minmax(0,1fr))}
.filter-grid .status-field{display:block;min-width:0}
.status-field select{height:34px;font-size:12px}
.advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.picker-actions{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line);margin-top:9px;padding-top:9px}
.picker-actions>span{margin-right:auto;font-size:11px;color:var(--muted)}
.picker-actions button{border:1px solid var(--line);background:#fff;border-radius:4px;padding:5px 8px;color:var(--text);font-size:12px;cursor:pointer}
.picker-actions button:hover{background:var(--subtle)}
.picker-actions .picker-confirm{background:var(--blue);border-color:var(--blue);color:#fff}
.picker-actions .picker-confirm:hover{background:#194eae}
.topic-tags{display:flex;align-items:center;gap:5px;flex-shrink:0}
.results-bar .quick-row{flex-wrap:wrap}
#filter-progress{font-size:11px;color:var(--blue);margin-left:8px}
#results.loading{opacity:.85;pointer-events:none}
@media(max-width:1100px) and (min-width:701px){
 .compact-filters{flex-wrap:wrap}
 .compact-filters #search-form{flex:1 1 100%}
 .compact-filters .filter-grid{flex:1}
}
@media(max-width:700px){
 .compact-filters #search-form{min-width:0}
 .compact-filters .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-right:0}
 .compact-filters .filter-help{right:119px;top:14px;bottom:auto}
 .compact-filters #search-form{grid-column:1;min-width:0}
 .status-field select{font-size:11px}
 .multi-field:nth-child(2) .picker-menu{left:auto;right:0}
 .multi-field:nth-child(3) .picker-menu{left:0;right:auto}
 .results-bar .quick-row{flex-wrap:nowrap}
 .picker-options{max-height:180px}
}

/* Category is a separate fact; deadline text retains the original Feishu wording. */
.category-cell .option-tags{max-height:none}
.category-cell .option-tag{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.card-category{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:6px 0;font-size:11px}
.card-category>span:first-child{color:var(--muted)}

/* Neutral surfaces and restrained business blue. Preserve Feishu field colors. */
:root{
  --blue:#315da8;--line:#e3e7ed;--muted:#737b87;
  --ink:#27313e;--text:#48505b;--surface:#fff;--canvas:#fff;
  --subtle:#f7f8fa;--stripe:#fafbfc;--hover:#f5f8fc;
  --selected:#edf2fa;--selected-line:#c2cfe4;
  --success:#315da8;--success-bg:#edf2fa;
  color:var(--ink);background:var(--canvas);
}
body{background:var(--canvas)}
.topbar{height:58px;flex-basis:58px;padding:0 28px;background:#fffffff2;border-bottom-color:var(--line)}
.brand{font-size:20px;letter-spacing:.2px}.brand-icon{width:32px;height:34px;border-radius:9px;background:var(--ink);font-family:"Songti SC","Noto Serif CJK SC",SimSun,serif;font-weight:600}
.brand-sub{font-size:12px;color:var(--muted)}
.header-actions{gap:18px}.header-actions>select,#fullscreen-toggle{border-color:var(--line);border-radius:6px}
#portal-account{border-radius:6px;padding:7px 12px}
main{padding:16px 24px 16px;gap:14px}










.workspace{border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 5px 24px #3e3e3e06}
.content{border-radius:inherit}
.source-tabs{gap:18px;padding:0 20px;background:transparent;border-bottom:1px solid var(--line);min-height:48px}
.source-tabs button{position:relative;padding:14px 4px 13px;border:0;border-radius:0;font-size:12px;font-weight:500;color:#767676;background:transparent}
.source-tabs button small{color:#909090;font-size:10px}
.source-tabs button:hover{color:var(--blue);background:transparent}
.source-tabs button[aria-pressed=true]{color:var(--ink);background:transparent;border-color:transparent;font-weight:650}
.source-tabs button[aria-pressed=true]::after{content:"";position:absolute;left:4px;right:4px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--blue)}
.source-tabs button[aria-pressed=true] small{color:var(--blue)}
.source-tabs button:focus-visible{outline-color:var(--blue);outline-offset:-3px}
.compact-filters{padding:14px 18px 7px;border:0;border-radius:0;background:transparent;gap:10px}
select,.picker summary,.more-filters>summary,.search-wrap,.picker-menu input[type=search],.tool-popover input[type=text],#filter-name,#page-jump{border-color:#d9dfe7;border-radius:6px}
.search-wrap{height:36px;background:#ffffff}.search-wrap>span{color:#8d8d8d}.search-wrap input{font-size:12px}.search-wrap button{padding:0 20px;background:var(--blue);font-weight:500}
.search-wrap button:hover,.picker-actions .picker-confirm:hover{background:#284e8d}
.search-wrap:focus-within{box-shadow:0 0 0 2px var(--selected)}
.picker summary,.status-field select,.more-filters>summary{height:36px}
.filter-help>summary{color:#8d8d8d;border-color:#d9dfe7}
.more-filters[open]>summary{background:var(--selected)}
.results-bar{padding:6px 18px 12px;min-height:46px}
.quick-row button{padding:5px 9px;border-radius:5px;background:#ffffff;border-color:#e3e7ed;font-size:11px;color:#6d6d6d}
.quick-row select{border-color:#e3e7ed;background:#ffffff;height:28px}
.quick-row button:hover,.tool-popover button:hover,.pagination button:not(:disabled):hover{border-color:#c6c6c6;background:var(--subtle)}
.quick-row button.active{background:var(--selected);border-color:var(--selected-line);color:var(--blue)}
.quick-row .reset{font-size:11px}.quick-row .hide-expired{font-size:11px}
.result-controls{gap:12px}.result-controls select{border-color:transparent;background:#ffffff}.result-controls #result-count{font-size:11px}
.selected-filters{padding:0 18px 10px}.filter-chip:hover{background:#e5edf8}
.table-frame{border:0;border-top:1px solid var(--line);border-radius:0}
.table-scroll{scrollbar-color:#d1d1d1 #f8f8f8}
.jobs-table thead th,.jobs-table thead th:nth-child(-n+2),.jobs-table .heading-title{height:38px;background:#f5f5f5;color:#6d6d6d;font-size:11px;font-weight:600;border-right-color:transparent;border-bottom-color:#e6e6e6}
.jobs-table td{height:54px;border-bottom-color:#efefef;border-right-color:#f5f5f5;color:var(--text)}
.jobs-table th:nth-child(2),.jobs-table td:nth-child(2){box-shadow:1px 0 0 #e3e7ed55}
.jobs-table .job-title{font-weight:500;font-size:13px;line-height:1.6;color:#27313e}
.jobs-table .major-cell{color:#6d6d6d;font-size:11px}
.jobs-table .date-cell{color:#808080;font-size:11px}
.tracking button{background:#f4f4f4;color:#8a8a8a}.tracking button:hover{background:#ececec;color:var(--ink)}
.pagination{border:0;border-top:1px solid var(--line);border-radius:0 0 14px 14px;padding:9px 18px;min-height:48px;background:#fff}
.pagination button{border-radius:5px}.pagination button:disabled{color:#a4a4a4}
.picker-menu,.more-panel,.help-popover,.tool-popover,.history-resources .resources{border-radius:10px;box-shadow:0 8px 28px #3a3a3a1a;border-color:var(--line)}
.picker-actions button{border-radius:5px}.picker-actions .picker-confirm{color:#fff;background:var(--blue)}
.tool-popover button{background:var(--subtle);color:var(--blue)}
.resources a{color:var(--blue)}.resources small{color:var(--muted)}
.toast{background:#3c3c3cf5;box-shadow:0 4px 18px #27313e20}
dialog{border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 80px #27313e2b}dialog::backdrop{background:#2b2b2b4d}
.detail-field{border-bottom-color:var(--line)}
.message{color:var(--muted)}.message.access-required{background:var(--subtle)}
.access-card{border-color:var(--selected-line);border-top-color:var(--blue);box-shadow:0 12px 32px #27313e0d}
.access-icon{color:var(--blue);background:var(--selected);border-color:var(--selected-line)}
.access-eyebrow,.access-description,.access-card #retry,.access-footnote{color:var(--muted)}.access-card h2{color:var(--ink)}
.access-card #account-gate{background:var(--blue);border-color:var(--blue);box-shadow:0 4px 10px #315da820}.access-card #account-gate:hover{background:#284e8d;border-color:#284e8d}
.access-card #retry:hover{color:var(--blue)}.access-card button:focus-visible{outline-color:var(--blue)}.access-footnote{background:var(--subtle);border-top-color:var(--line)}
#portal-auth input:not([type=checkbox]){border-color:#d9dfe7;border-radius:6px}
.compact-list article{border-color:var(--line)}
.page-fullscreen .topbar{height:40px;flex-basis:40px}.page-fullscreen main{gap:0}
@media(max-height:800px) and (min-width:701px){
 main{padding-top:10px;padding-bottom:10px;gap:10px}



.jobs-table td{height:50px}
}
@media(max-width:1100px){


.source-tabs{gap:14px}.header-actions{gap:10px}
}
@media(max-width:700px){
 .topbar{height:48px;flex-basis:48px;padding:0 12px}.brand{font-size:14px;letter-spacing:0}.header-actions{gap:6px}.header-actions>select{width:73px;font-size:10px}#portal-account{padding:5px 7px;font-size:10px}#fullscreen-toggle{width:27px;min-width:27px}
 main{padding:10px 10px 9px;gap:10px}









 .workspace{border-radius:12px}.source-tabs{min-height:43px;padding:0 12px;gap:17px}.source-tabs button{padding:12px 1px 11px;font-size:11px;gap:5px}.source-tabs button small{font-size:9px}.source-tabs button[aria-pressed=true]::after{left:1px;right:1px}
 .compact-filters{padding:10px 10px 5px;gap:8px;grid-template-columns:minmax(0,1fr) 24px 90px}.compact-filters .filter-help{right:109px;top:17px}.search-wrap input{font-size:11px}.search-wrap button{padding:0 10px;font-size:11px}.picker summary,.status-field select,.more-filters>summary,.search-wrap{height:34px}
 .results-bar{padding:5px 10px 9px;gap:5px}.results-bar .quick-row{gap:5px;padding-bottom:4px}.quick-row button{padding:5px 7px;font-size:10px}.quick-row .hide-expired,.quick-row .reset{font-size:10px}.result-controls{margin:0}.result-controls #result-count{font-size:10px}
 .selected-filters{padding:0 10px 8px}.pagination{padding:7px 10px;min-height:65px;border-radius:0 0 12px 12px}
 .compact-list article{padding:13px 12px}.compact-list .job-title{font-size:13px;font-weight:500;line-height:1.6}
 .picker-menu{top:39px}.help-popover{position:fixed;left:12px;right:12px;top:235px;width:auto;max-width:none;max-height:45vh}
 .page-fullscreen .topbar{height:36px;flex-basis:36px}
}


/* Refined reading theme: neutral, solid table surfaces. */
:root{--ink:#27313e;--text:#48505b;--muted:#737b87;--line:#e3e7ed;--stripe:#fafbfc;--hover:#f5f8fc;--subtle:#f7f8fa}
.brand{color:#27313e}







.source-tabs{gap:23px}.source-tabs button{font-size:12px;color:#696969}.source-tabs button small{color:#828282}
.search-wrap{background:#fff}.search-wrap input{font-size:13px}
.quick-row button,.quick-row select{background:#ffffff;color:#686868}
.quick-row button.active{color:var(--blue);background:var(--selected)}
.result-controls select{background:#ffffff;color:#656565}
/* The reading surface is solid, with quiet horizontal rules and no picture. */
.table-frame,.table-scroll,.compact-list{background:#fff}
.jobs-table tbody tr{--row-bg:#fff;background:var(--row-bg)}
.jobs-table tbody tr:nth-child(even){--row-bg:var(--stripe);background:var(--row-bg)}
.jobs-table tbody tr:hover,.jobs-table tbody tr:focus-within{--row-bg:var(--hover);background:var(--row-bg)}
.jobs-table th,.jobs-table td{border-right-color:transparent}
.jobs-table thead th,.jobs-table thead th:nth-child(-n+2),.jobs-table .heading-title{height:39px;background:#f5f6f8;color:#676767;font-size:12px;font-weight:500;border-right-color:transparent;border-bottom-color:#e5e5e5}
.jobs-table td{height:58px;padding-top:8px;padding-bottom:8px;color:var(--text);font-size:12px;border-bottom-color:#efefef;border-right-color:transparent}
.jobs-table th:nth-child(2),.jobs-table td:nth-child(2){box-shadow:1px 0 0 #e3e7ed50}
.jobs-table .job-title{font-size:14px;font-weight:550;line-height:1.55;color:#27313e}
.jobs-table .major-cell{font-size:12px;color:#6e6e6e;line-height:1.65}
.jobs-table .date-cell{font-size:11px;color:#818181}
.deadline-cell>span{font-size:12px;color:#4d4d4d}.status{font-size:11px;color:#7f7f7f}
.source-cell .original{font-size:12px;font-weight:500}
.tracking{margin-top:5px;gap:5px}.tracking button{background:#f6f6f6;color:#888888;font-size:10px;padding:2px 4px}
.pagination{color:#797979}.pagination button{color:#636363}
.compact-list .job-title{font-size:14px;font-weight:550;line-height:1.65}
.compact-list article{background:#fff;border-bottom-color:#ececec;padding:15px 14px}
.compact-list article:nth-child(even){background:var(--stripe)}
.compact-list article:hover,.compact-list article:focus-within{background:var(--hover)}
.card-meta{color:#818181}.card-deadline{color:#585858}.card-facts{color:#686868}
@media(max-height:800px) and (min-width:701px){



.jobs-table td{height:55px;padding-top:7px;padding-bottom:7px}
}
@media(max-width:1100px){
.source-tabs{gap:16px}
}
@media(max-width:700px){







 .source-tabs{gap:17px}.source-tabs button{font-size:11px}.search-wrap input{font-size:11px}
 .jobs-table .job-title{font-size:13px}.tracking button{font-size:11px;padding:4px 6px}
}





/* Mobile filter disclosure shares the category row; desktop stays expanded. */
.source-nav{display:flex;align-items:stretch;flex:0 0 auto;min-width:0;border-bottom:1px solid var(--line)}
.source-nav .source-tabs{flex:1 1 auto;border-bottom:0}
.mobile-filters-toggle{display:none}
@media(max-width:700px){
 .source-nav .source-tabs{min-height:46px;padding-right:9px}
 .mobile-filters-toggle{display:flex;align-items:center;justify-content:center;gap:4px;flex:0 0 auto;min-width:64px;min-height:40px;margin:3px 8px 3px 0;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#686868;font-size:11px;white-space:nowrap}
 .mobile-filters-toggle svg{flex-shrink:0}
 .mobile-filters-toggle[aria-expanded=true],.mobile-filters-toggle.has-selection{color:var(--blue);border-color:var(--selected-line);background:var(--selected)}
 #mobile-filters-count{min-width:15px;padding:0 4px;border-radius:8px;background:var(--blue);color:#fff;font-size:9px;line-height:15px;text-align:center}
 body[data-mobile-filters=collapsed] #recruitment-filters,
 body[data-mobile-filters=collapsed] #quick-filters,
 body[data-mobile-filters=collapsed] #selected-filters{display:none}
 body[data-mobile-filters=collapsed] .results-bar{padding:7px 10px;min-height:39px}
}

/* Keep data refresh available after removing the decorative masthead. */
.result-controls #refresh-data{flex-shrink:0;font-size:10px;padding:4px 7px}

/* Professional reading layout: responsive columns and a persistent action rail. */
.source-tabs button{font-size:13px;font-weight:500;color:#646464}
.source-tabs button small{font-size:10px;font-weight:400;color:#888888;font-variant-numeric:tabular-nums}
.source-tabs button[aria-pressed=true]{font-weight:600;color:#315da8}
.source-tabs button[aria-pressed=true] small{color:#7f7f7f}
.source-tabs button[aria-pressed=true]::after{height:2px}
.jobs-table{font-variant-numeric:tabular-nums}
.jobs-table .job-title{font-size:14px;font-weight:600;line-height:1.6}
.jobs-table .job-category{font-size:10px;font-weight:400;color:#828282;line-height:1.5;margin-top:3px}
.jobs-table .date-cell{font-size:11px;color:#7f7f7f}
.jobs-table .count-cell{font-size:13px;font-weight:500;color:#595959}
.jobs-table .major-cell{font-size:12px;color:#727272;line-height:1.6}
.jobs-table .status{font-size:10px;font-weight:400;line-height:1.6}
.jobs-table .status.soon{font-weight:500;color:var(--warning)}
.jobs-table .deadline-cell>span{font-size:12px}
.jobs-table .deadline-cell:has(.status.soon)>span{font-weight:600}
.table-scroll .jobs-table th.heading-title,.table-scroll .jobs-table td.title-cell{left:var(--province-width,72px)}
.table-scroll.no-province .jobs-table th.heading-title,.table-scroll.no-province .jobs-table td.title-cell{left:0}
.table-scroll .jobs-table td.source-cell{position:sticky;left:auto;right:0;z-index:3;background:var(--row-bg);box-shadow:-1px 0 0 #e5e5e5,-5px 0 10px #37373706}
.table-scroll .jobs-table th.heading-source{position:sticky;left:auto;right:0;z-index:6;background:#f5f6f8;box-shadow:-1px 0 0 #e5e5e5,-5px 0 10px #37373706}
.source-cell .original{display:flex;align-items:center;justify-content:center;min-height:22px;padding:1px 7px;border:1px solid #d9dfe7;border-radius:5px;background:#ffffff;color:#315da8;font-size:12px;font-weight:500;line-height:1.6}
.source-cell .original:hover{background:#f5f8fc;border-color:#c2cfe4;text-decoration:none}
.source-cell .tracking{display:flex;gap:5px;margin-top:4px}
.source-cell .tracking button{flex:1;min-width:0;min-height:20px;padding:2px 2px;border:1px solid #eaeaea;border-radius:4px;font-size:10px;line-height:1.3;background:var(--row-bg);color:#7c7c7c}
.source-cell .tracking button:hover{background:#f3f3f3;border-color:#cfcfcf;color:#535353}
.source-cell .tracking button[data-track=saved][aria-pressed=true]{background:var(--warning-bg);color:var(--warning);border-color:#eddbb6}
.source-cell .tracking button[data-track=applied][aria-pressed=true]{background:var(--success-bg);color:var(--success);border-color:var(--selected-line)}
@media(max-width:1100px){
 .table-scroll .jobs-table td.title-cell,.table-scroll:not(.no-province) .jobs-table tbody tr td:first-child:not(.source-cell){position:static}
 .table-scroll .jobs-table th.heading-title,.table-scroll .jobs-table th.heading-province{left:auto;box-shadow:none}
}
@media(max-width:700px){
 .source-tabs button{font-size:11px}.source-tabs button small{font-size:9px}
 .jobs-table .job-title{font-size:13px}
 /* The optional phone table scrolls as a whole; the default phone list is unchanged. */
 .table-scroll .jobs-table td.source-cell{position:static;box-shadow:none}
 .table-scroll .jobs-table th.heading-source{right:auto;box-shadow:none;z-index:2}
}

@media(max-width:1100px){.table-scroll.no-province .jobs-table th.heading-title{left:auto}}

/* Primary actions carry the theme; ordinary controls keep white surfaces. */
.brand{color:var(--blue)}.brand-icon{background:var(--blue)}
#portal-account,#portal-logout{background:#fff;border-color:var(--line)}
.tool-popover button{background:#fff}
.quick-row button,.quick-row select{background:#fff}
.quick-row button.active{background:var(--selected);border-color:var(--selected-line);color:var(--blue)}
.source-tabs button[aria-pressed=true]{color:var(--blue)}
.source-tabs button[aria-pressed=true] small{color:#77818e}
.source-cell .original{background:#fff;border-color:#d9dfe7;color:var(--blue)}
.source-cell .original:hover{background:var(--selected);border-color:var(--selected-line)}

/* Keep table sticky cells inside their own layer, below filter popovers. */
.table-frame{isolation:isolate}
.quick-scroll,.filter-utilities{display:flex;align-items:center;gap:7px;min-width:0}
.quick-scroll{flex-wrap:wrap}
.filter-utilities{flex-shrink:0}
.quick-row button,.quick-row select{min-height:30px;font-size:12px;border-radius:6px}
.quick-row .hide-expired,.quick-row .reset{font-size:12px}
.quick-row .hide-expired{min-height:30px;margin:0}
.quick-row .hide-expired input{width:14px;height:14px;margin:0 3px 0 0}
.compact-filters .filter-help{position:static;display:block;margin:10px 0 0;font-size:12px}
.more-panel{max-height:min(65vh,520px);overflow:auto}
.more-panel .filter-help>summary{display:flex;justify-content:space-between;width:100%;height:auto;min-height:32px;border:0;border-top:1px solid var(--line);border-radius:0;padding-top:8px;font-size:12px;font-weight:400;color:var(--blue)}
.more-panel .help-popover{position:static;width:auto;max-width:none;max-height:none;overflow:visible;padding:3px 0 0;border:0;box-shadow:none}
.more-panel .help-popover>strong{display:none}
.source-cell .tracking button{min-height:24px;font-size:11px}
.source-cell .original{min-height:26px}
.jobs-table td.source-cell{padding-top:4px;padding-bottom:4px}
.pagination{position:relative}
.pagination #page-jump-toggle{background:transparent;border-color:transparent;display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}
.pagination #page-jump-toggle:hover{background:var(--selected);border-color:var(--selected-line)}
.page-jump-arrow{font-size:11px;color:var(--muted)}
:is(button,summary,select,input):focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media(max-width:700px){
 .compact-filters{grid-template-columns:minmax(0,1fr) 90px}
 .compact-filters #search-form{grid-column:1}
 .compact-filters .more-filters{grid-column:2}
 .compact-filters .filter-grid{grid-column:1/-1}
 .search-wrap input,.search-wrap button,.picker summary,.status-field select,.more-filters>summary{font-size:12px}
 .results-bar .quick-row{display:flex;flex-direction:column;align-items:stretch;gap:4px;overflow:visible;padding-bottom:0}
 .quick-scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding:2px 0 4px;gap:6px}
 .quick-scroll>button,.quick-scroll>select{flex-shrink:0}
 .quick-row select{width:112px}
 .filter-utilities{justify-content:space-between;gap:8px}
 .quick-row button,.quick-row select{min-height:32px;font-size:12px}
 .quick-row .hide-expired,.quick-row .reset{min-height:34px;font-size:12px}
 .result-controls #result-count{font-size:11px}
 .card-actions .tracking button,.card-actions .original{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:5px 8px;font-size:12px;border-radius:6px}
 .card-actions .tracking{gap:6px}
 .card-actions .original{padding-left:0}
 .pagination{padding:8px 10px;gap:4px;min-height:76px}
 .pagination #page-summary{max-width:calc(100% - 80px);min-height:26px;display:flex;align-items:center;font-size:10px}
 .pagination .page-size-label{position:absolute;right:10px;top:8px}
 .pagination .page-controls{justify-content:center;gap:12px}
 .pagination button{height:34px;min-width:64px;font-size:12px;padding:5px 9px}
 .pagination select{font-size:11px;height:28px;width:72px}
 .pagination #page-jump-toggle{min-width:84px;border-color:var(--line)}
 .pagination #page-form{display:none;position:absolute;right:10px;bottom:calc(100% - 4px);padding:12px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 24px #172b4d1a;z-index:8;gap:8px}
 .pagination #page-form.jump-open{display:flex}
 .pagination #page-form label{font-size:12px;gap:6px}
 .pagination #page-jump{height:34px;width:64px;font-size:14px}
 .pagination #page-form button{font-size:12px;color:#fff;background:var(--blue);border-color:var(--blue)}
}

/* Keep the working area one viewport tall; filing links follow below the fold. */
body{display:block;overflow-x:hidden;overflow-y:auto}
.page-shell{height:100vh;height:100dvh;display:flex;flex-direction:column;min-width:0}
.table-scroll{overscroll-behavior-y:auto}
main{row-gap:8px;padding-bottom:8px}
.filing-footer{padding:4px 12px 8px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px;min-width:0;color:#737b87;font-size:12px;line-height:20px;text-align:center}
.filing-footer a{display:inline-flex;align-items:center;justify-content:center;gap:5px;max-width:100%;color:inherit;white-space:nowrap}
.filing-footer a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.filing-footer img{display:block;flex:0 0 16px;object-fit:contain}
.filing-divider{color:#b4bbc5}
@media(max-width:700px){
 main{row-gap:5px;padding-bottom:max(6px,env(safe-area-inset-bottom))}
 .filing-footer{flex-direction:column;gap:0;line-height:20px;padding-bottom:max(8px,env(safe-area-inset-bottom))}
 .filing-divider{display:none}
}

/* Desktop column filters use a viewport-level panel so sticky cells cannot clip it. */
.column-filter-button{display:none}
.column-filter-panel[hidden]{display:none}
.column-filter-panel{overflow-y:auto;overscroll-behavior:contain}
.column-filter-panel{position:fixed;z-index:100;width:300px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);display:flex;flex-direction:column;gap:10px;padding:14px;background:#fff;border:1px solid #d9dfe7;border-radius:10px;box-shadow:0 8px 32px #172b4d24;color:#394657;font-size:12px}
.column-filter-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.column-filter-top label{display:flex;align-items:center;gap:10px;flex:1;white-space:nowrap;color:#737d8b}
.column-filter-top select{flex:1;font-size:13px;color:#29384c;height:32px}
#column-filter-close{border:0;background:none;width:26px;height:30px;font-size:22px;color:#77818e}
#column-filter-search{flex-shrink:0;width:100%;height:34px;padding:0 9px;border:1px solid #d9dfe7;border-radius:5px;font-size:12px}
.column-filter-options{min-height:0;max-height:min(280px,40dvh);overflow-y:auto;overscroll-behavior:contain}
.location-option-kind{color:var(--muted);font-size:10px;white-space:nowrap}
.column-filter-option{display:flex;align-items:flex-start;gap:8px;padding:8px 7px;border-radius:5px;cursor:pointer;line-height:1.5;overflow-wrap:anywhere}
.column-filter-option:hover{background:#f3f6fa}
.column-filter-option input{flex-shrink:0;margin:2px 0 0;width:14px;height:14px;accent-color:var(--blue)}
.column-filter-option:has(input:checked){background:var(--selected);color:var(--blue)}
.column-filter-note,.column-filter-empty{margin:0;color:#788391;font-size:11px;line-height:1.65}
.column-filter-actions{display:flex;align-items:center;gap:6px;padding-top:10px;border-top:1px solid #edf0f4;flex-shrink:0}
.column-filter-actions>span{flex:1;color:#7d8793;font-size:11px}
.column-filter-actions button{height:30px;padding:0 10px;border:1px solid #d9dfe7;border-radius:5px;background:#fff;color:#586577;font-size:12px}
#column-filter-apply{background:var(--blue);border-color:var(--blue);color:#fff}
.column-filter-panel :focus-visible,.column-filter-button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.table-toolbar{display:contents}
@media(min-width:701px){
 body:not([data-view=list]) .compact-filters{display:flex;align-items:center;gap:16px;padding-bottom:7px}
 body:not([data-view=list]) .compact-filters #search-form{flex:1;max-width:600px;margin:0}
 body:not([data-view=list]) .compact-filters .filter-grid,
 body:not([data-view=list]) .compact-filters .more-filters,
 body:not([data-view=list]) #recent{display:none}
 .jobs-table th.has-column-filter{padding-left:4px;padding-right:4px}
 .column-heading{display:inline-flex;align-items:center;justify-content:center;gap:3px;max-width:100%}
 .has-column-filter .column-heading{font-size:11px}
 .column-filter-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:#8a94a3}
 .column-filter-button:hover,.column-filter-button[aria-expanded=true]{background:#e7edf6;color:var(--blue)}
 .column-filter-button.is-active{background:#e6edfa;color:var(--blue)}
 .column-filter-count{position:absolute;right:-4px;top:-3px;min-width:12px;padding:0 2px;line-height:12px;border-radius:6px;background:var(--blue);color:#fff;font-size:9px}
}

/* One desktop toolbar; narrow windows scroll shortcuts within the row. */
@media(min-width:701px){
 body:not([data-view=list]) .table-toolbar{display:flex;align-items:center;flex:0 0 auto;gap:12px;min-width:0;padding:12px 18px}
 body:not([data-view=list]) .table-toolbar .compact-filters{flex:0 1 320px;min-width:220px;padding:0;gap:0}
 body:not([data-view=list]) .table-toolbar #search-form{max-width:none;width:100%}
 body:not([data-view=list]) .table-toolbar .results-bar{flex:1;min-width:0;min-height:36px;padding:0;margin:0;gap:12px;flex-wrap:nowrap}
 body:not([data-view=list]) .table-toolbar .quick-row{flex:1;min-width:0;display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;gap:7px;margin:0;padding:2px 0}
 body:not([data-view=list]) .table-toolbar .quick-scroll{flex:0 0 auto;flex-wrap:nowrap}
 body:not([data-view=list]) .table-toolbar .filter-utilities{flex:0 0 auto}
 body:not([data-view=list]) .table-toolbar .result-controls{flex:0 0 auto;width:auto;margin:0;gap:10px;flex-wrap:nowrap}
}
@media(min-width:701px) and (max-width:1100px){
 body:not([data-view=list]) .table-toolbar .compact-filters{flex-basis:220px}
}

/* Ordered, staged sort rules share one compact toolbar entry. */
.sort-toggle{display:flex;align-items:center;gap:7px;max-width:240px;min-width:0;min-height:32px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);font-size:12px;white-space:nowrap}
.sort-toggle:hover,.sort-toggle[aria-expanded=true]{border-color:var(--blue);background:var(--selected)}
.sort-label{color:var(--muted)}
#sort-summary{min-width:0;overflow:hidden;text-overflow:ellipsis}
#sort-count{min-width:17px;line-height:17px;padding:0 4px;border-radius:4px;background:#e8eef8;color:var(--blue);font-size:11px}
#sort-count[hidden]{display:none}
.sort-panel{width:480px;overflow-y:auto;overscroll-behavior:contain;gap:12px}
.sort-panel-top{display:flex;align-items:center;justify-content:space-between}
.sort-panel-top h2{margin:0;font-size:14px;font-weight:600;color:var(--text)}
#sort-close{border:0;background:transparent;width:28px;height:28px;padding:0;font-size:22px;color:var(--muted)}
.sort-help{margin:0;line-height:1.65;color:var(--muted);font-size:12px}
#sort-rules{display:flex;flex-direction:column;gap:8px}
.sort-rule{display:grid;grid-template-columns:18px minmax(0,1fr) minmax(0,1.1fr) auto;align-items:center;gap:7px}
.sort-priority{color:#8a94a3;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}
.sort-rule select{width:100%;min-width:0;height:34px;font-size:12px;padding:0 5px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--text)}
.sort-rule-actions{display:flex;gap:2px}
.sort-rule-actions button{width:25px;height:32px;padding:0;border:0;border-radius:4px;background:transparent;color:#637085;font-size:16px}
.sort-rule-actions button:hover:not(:disabled){background:var(--selected);color:var(--blue)}
.sort-rule-actions button:disabled{opacity:.3;cursor:default}
#sort-add{align-self:flex-start;height:30px;padding:0 7px;border:0;background:transparent;color:var(--blue);font-size:12px}
#sort-add:disabled{color:var(--muted);opacity:.5;cursor:default}
.sort-actions #sort-default{margin-right:auto;border-color:transparent;padding-left:0;color:var(--muted)}
#sort-apply{background:var(--blue);border-color:var(--blue);color:#fff}
@media(max-width:700px){
 .sort-toggle{max-width:230px;min-height:34px}
 .sort-panel{padding:12px;gap:10px}
 .sort-rule{grid-template-columns:14px minmax(0,1fr) minmax(0,1.1fr) auto;gap:4px}
 .sort-rule-actions button{width:23px;min-height:34px}
}

.sort-scope{margin:0;padding:10px 0 0;border:0;border-top:1px solid #edf0f4;min-width:0}
.sort-scope legend{float:left;width:100%;margin:0 0 7px;font-size:12px;font-weight:500;color:var(--text)}
.sort-scope-options{display:flex;align-items:center;gap:20px;clear:both;margin-bottom:6px}
.sort-scope-options label{display:inline-flex;align-items:center;gap:6px;min-height:28px;color:var(--text);font-size:12px;cursor:pointer}
.sort-scope-options input{width:14px;height:14px;margin:0;accent-color:var(--blue)}

/* Table reading refinement: larger text, lighter titles, original Feishu palette. */
:root{--stripe:#fdfdfe;--hover:#f4f7fb}
.jobs-table{font-size:14px}
.jobs-table td{height:60px;padding-top:8px;padding-bottom:8px;font-size:14px;font-weight:400;line-height:1.5;color:#414751;border-bottom-color:#e9ecf0}
.jobs-table .job-title,.compact-list .job-title{font-size:14px;font-weight:500;line-height:1.55;color:#29313c}
.jobs-table .job-title:hover,.compact-list .job-title:hover{color:var(--blue)}
.jobs-table .date-cell,.jobs-table .count-cell,.jobs-table .major-cell{font-size:14px;font-weight:400;line-height:1.5;color:#414751}
.jobs-table .deadline-cell>span{font-size:14px;font-weight:400;line-height:1.5;color:#414751}
.jobs-table .job-category{font-size:11px;font-weight:400;color:#737b87;line-height:1.4;margin-top:4px}
.jobs-table thead th,.jobs-table thead th:nth-child(-n+2),.jobs-table .heading-title,.table-scroll .jobs-table th.heading-source{background:#f7f8fa;color:#58616d;font-size:12px;font-weight:500;border-bottom-color:#e0e5eb}
.jobs-table .has-column-filter .column-heading{font-size:12px}
.jobs-table .option-tag,.compact-list .option-tag{padding:2px 8px;border-radius:12px;font-size:13px;font-weight:400;line-height:20px;vertical-align:middle}
.jobs-table .option-tags{gap:4px;max-height:52px}
.jobs-table .category-cell .option-tags{max-height:none}
.jobs-table .option-empty{font-size:13px}
.table-scroll .jobs-table td.source-cell{box-shadow:-1px 0 0 #e9ecf0}
.table-scroll .jobs-table th.heading-source{box-shadow:-1px 0 0 #e0e5eb}
.source-cell .original{min-height:26px;padding:1px 4px;border-color:transparent;background:transparent;font-size:13px;font-weight:400;line-height:1.6}
.source-cell .original:hover{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:3px}
.source-cell .tracking{gap:4px;margin-top:3px}
.source-cell .tracking button{min-height:24px;padding:2px;border-color:transparent;background:transparent;font-size:11px;font-weight:400;color:#68717e}
.source-cell .tracking button:hover{background:#edf2f8;border-color:transparent;color:var(--blue)}
.compact-list .card-meta{font-size:12px;color:#737b87}
.compact-list .card-facts,.compact-list .card-deadline{font-size:14px;line-height:1.5;color:#414751}
@media(max-width:700px){
 .compact-list .job-title{font-size:15px;line-height:1.6}
 .compact-list .card-actions .tracking button{border-color:transparent;background:transparent;color:#68717e}
 .compact-list .card-actions .tracking button[aria-pressed=true]{color:var(--blue);background:var(--selected)}
 .table-scroll .jobs-table td.source-cell,.table-scroll .jobs-table th.heading-source{box-shadow:none}
}

/* Align every table column consistently, including nested flex controls. */
.table-scroll .jobs-table th,.table-scroll .jobs-table td{ text-align:left }
.jobs-table .column-heading{justify-content:flex-start}
.jobs-table .job-title,.jobs-table .job-category,.jobs-table .cell-text,.jobs-table .deadline-cell>span{ text-align:left }
.jobs-table .option-tags{justify-content:flex-start}
.jobs-table .source-cell .original{justify-content:flex-start;text-align:left;padding-left:0}
.jobs-table .source-cell .tracking{justify-content:flex-start}
.jobs-table .source-cell .tracking button{flex:0 0 auto;text-align:left}

/* Education entry guidance, separate from the existing filter control. */
.col-education{width:118px}
.column-help-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;width:18px;height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:#8a94a3;vertical-align:middle;cursor:help}
.column-help-button:hover,.column-help-button:focus-visible{background:#e7edf6;color:var(--blue)}
.column-help-button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* Position references retain their full source text while keeping rows compact. */
.col-position{width:160px}
.jobs-table .position-cell{font-size:14px;line-height:1.5;color:#414751;text-align:left}
.jobs-table .position-cell .cell-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-position{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.6;color:#414751;margin:8px 0;font-size:13px}
.card-position>span{color:#7c8592;margin-right:6px}
#position-field[hidden]{display:none}
#position-field input{width:100%;min-width:0;height:36px;padding:0 10px;border:1px solid #d9dfe7;border-radius:5px;background:#fff;color:#414751;font:inherit;box-sizing:border-box}

/* Table boundaries, 2026-10-12: retain the previous theme and column geometry. */
.table-scroll .jobs-table th:not(:last-child),
.table-scroll .jobs-table td:not(:last-child){border-right:1px solid #dde3eb}
.table-scroll .jobs-table td{border-bottom-color:#e1e6ed}
.table-scroll .jobs-table thead th,
.table-scroll .jobs-table th.heading-source{border-bottom-color:#c7d1df}
.table-scroll .jobs-table th.heading-title,
.table-scroll .jobs-table td.title-cell{border-right-color:#c7d1df;box-shadow:none}
.table-frame{border-top-color:#c7d1df}
@media(min-width:701px){
 .table-scroll .jobs-table th.heading-source,
 .table-scroll .jobs-table td.source-cell{box-shadow:-1px 0 0 #c7d1df}
}

/* Blue-gray table header; keep body colors, column widths and grid lines. */
.table-scroll .jobs-table thead th,
.table-scroll .jobs-table thead th:nth-child(-n+2),
.table-scroll .jobs-table th.heading-source{
 background:#eaf0f8;color:#27466f;font-size:13px;font-weight:600;height:44px;
 border-bottom-color:#b8c8dc;
}
.table-scroll .jobs-table .column-heading{font-size:inherit;font-weight:inherit}
/* Fit the four-character label and filter in the existing 76px staffing column. */
.table-scroll .jobs-table th.heading-staffing{padding-left:2px;padding-right:2px}
.table-scroll .jobs-table .heading-staffing .column-heading{gap:0}
.table-scroll .jobs-table .column-filter-button,
.table-scroll .jobs-table .column-help-button{color:#73859e}
.table-scroll .jobs-table .column-filter-button:hover,
.table-scroll .jobs-table .column-filter-button[aria-expanded=true],
.table-scroll .jobs-table .column-filter-button.is-active,
.table-scroll .jobs-table .column-help-button:hover,
.table-scroll .jobs-table .column-help-button:focus-visible{background:#dce7f6;color:var(--blue)}

/* OfferGoGo dog mark; image retains its transparent background. */
.brand .brand-icon{display:block;flex:0 0 38px;width:38px;height:36px;object-fit:contain;background:transparent;border-radius:0}
@media(max-width:700px){
 .brand{gap:6px;white-space:nowrap}
 .brand .brand-icon{flex-basis:26px;width:26px;height:28px}
}
@media(max-width:600px){
 .topbar{height:auto;flex-basis:auto;min-height:48px;flex-wrap:wrap;gap:4px;padding-top:6px;padding-bottom:6px}
 .header-actions{width:100%;justify-content:space-between;gap:3px}
 .header-actions>select{width:70px}
 #portal-account{padding-left:5px;padding-right:5px}
 .page-fullscreen .topbar{min-height:36px;padding-top:0;padding-bottom:0}
 .page-fullscreen .header-actions{justify-content:flex-end}
}

/* Discourage routine copying without interrupting forms or showing notices. */
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,select,[contenteditable="true"],[contenteditable=""],[contenteditable="plaintext-only"]{
 -webkit-user-select:text;user-select:text;-webkit-touch-callout:default;
}
img{-webkit-user-drag:none}

/* Expand the native detail button over card content; action controls stay above it. */
.compact-list article{position:relative;isolation:isolate}
.compact-list .card-detail-trigger::after{content:"";position:absolute;inset:0;z-index:0;cursor:pointer}
.compact-list .card-detail-trigger:focus-visible{outline:none}
.compact-list .card-detail-trigger:focus-visible::after{outline:2px solid var(--blue);outline-offset:-3px}
.card-detail-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-detail-summary .card-deadline{min-width:0;overflow-wrap:anywhere}
.card-detail-hint{flex-shrink:0;color:var(--blue);font-size:12px;white-space:nowrap}
.card-detail-hint>span{font-size:18px;vertical-align:-1px;margin-left:3px}
.compact-list .card-actions{position:relative;z-index:1;flex-wrap:wrap}
@media(max-width:700px){
 .compact-list .card-actions{margin-top:4px;gap:4px 8px}
 .compact-list .card-actions .original,.compact-list .card-actions .tracking button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px;font-size:12px}
 .compact-list .card-actions .tracking{gap:6px}
}

/* Separate phone announcements into distinct cards without changing the table view. */
@media(max-width:700px){
 .compact-list{padding:10px 8px;background:#f1f4f8}
 .compact-list article,.compact-list article:nth-child(even){margin:0 0 12px;border:1px solid #d3dce8;border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(30,50,80,.04)}
 .compact-list article:last-child{margin-bottom:0}
 .compact-list article:hover,.compact-list article:focus-within{background:#fff;border-color:#b6c7de}
 .compact-list .card-detail-trigger::after{border-radius:10px}
}

/* One deadline filter dialog shared by table headers and phone filters. */
.deadline-trigger{width:100%;min-height:34px;padding:5px 8px;border:1px solid #dbe2ec;border-radius:5px;background:#fff;color:var(--text);text-align:left;font-size:12px}
.deadline-trigger.has-selection{color:var(--blue);border-color:#b6c7de;background:#f3f6fc}
#deadline-dialog{width:min(530px,calc(100vw - 24px));max-height:90vh;max-height:90dvh;overflow:hidden}
#deadline-dialog[open]{display:flex;flex-direction:column}
#deadline-dialog .dialog-top{flex-shrink:0;padding:16px 20px}
#deadline-form{display:flex;flex-direction:column;min-height:0;margin:0}
.deadline-body{padding:20px;overflow-y:auto;min-height:0}
.deadline-body fieldset{padding:0;margin:0 0 22px;border:0;min-width:0}
.deadline-body legend{padding:0;margin-bottom:12px;font-size:14px;font-weight:600;color:var(--ink)}
.deadline-body legend small{margin-left:8px;color:var(--muted);font-size:12px;font-weight:400}
.deadline-statuses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.deadline-statuses label{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px;border:1px solid var(--line);border-radius:6px;font-size:13px;cursor:pointer}
.deadline-statuses label:has(input:checked){background:#f0f5fc;border-color:#b7c9e4;color:var(--blue)}
.deadline-statuses input,.deadline-ranges input{accent-color:var(--blue);flex-shrink:0}
.deadline-ranges{display:flex;flex-wrap:wrap;gap:8px}
.deadline-ranges label{display:flex;align-items:center;gap:5px;min-height:36px;padding:5px 8px;border-radius:5px;background:var(--subtle);font-size:12px;cursor:pointer}
.deadline-custom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.deadline-custom label{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--muted);font-size:12px}
.deadline-custom input{width:100%;min-width:0;max-width:100%;height:40px;border:1px solid #cbd5e3;border-radius:5px;padding:5px;background:#fff;color:var(--ink)}
.deadline-note{margin:0;color:var(--muted);font-size:12px;line-height:1.7}
.deadline-error{color:#b33b31;font-size:12px;margin:12px 0 0}
.deadline-actions{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--line);flex-shrink:0;background:#fff}
.deadline-actions>span{margin-right:auto;font-size:12px;color:var(--muted)}
.deadline-actions button{min-height:38px;border:1px solid #dbe2ec;border-radius:5px;background:#fff;color:var(--text);padding:7px 12px}
#deadline-apply{background:var(--blue);border-color:var(--blue);color:#fff}
@media(max-width:700px){.deadline-statuses label{min-height:44px}.deadline-actions{padding:12px;gap:6px}.deadline-actions button{min-height:44px;padding:8px 10px}.deadline-body{padding:16px}.deadline-body legend small{font-size:11px}}

/* Independent major keyword filter stays visible in the expanded phone filters. */
.major-field{order:1;grid-column:1/-1;min-width:0;margin:0}
#major-field{display:flex;flex-direction:column;align-items:stretch;white-space:normal;width:100%;min-width:0;gap:6px;font-size:12px;color:#69788d}
#major-field[hidden],.major-field:has(#major-field[hidden]){display:none}
.major-input-row{display:flex;min-width:0;gap:6px}
#major{flex:1;width:0;min-width:0;height:36px;padding:0 10px;border:1px solid #d9dfe7;border-radius:5px;background:#fff;color:#414751;font:inherit;box-sizing:border-box}
.major-input-row button{height:36px;padding:0 14px;border:1px solid var(--blue);border-radius:5px;background:var(--blue);color:#fff;font:inherit;cursor:pointer}
#major-help{font-size:11px;line-height:1.6;color:#788391}
#major.has-selection{border-color:var(--blue);background:var(--selected)}

/* Desktop column resizing; explicit table width prevents sibling redistribution. */
.table-scroll .jobs-table{min-width:0}
.column-resize-handle{display:none}
.column-width-controls{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
#reset-column-widths{padding:7px 10px;border:1px solid #ccd7e7;border-radius:5px;background:#fff;color:var(--blue);font:inherit;cursor:pointer}
#reset-column-widths:disabled{opacity:.45;cursor:default}
@media(min-width:701px){
 .column-resize-handle{display:block;position:absolute;top:0;bottom:0;right:0;width:8px;z-index:8;cursor:col-resize;touch-action:none}
 .column-resize-handle::after{content:"";position:absolute;top:0;bottom:0;right:0;width:2px;background:transparent}
 .column-resize-handle:hover::after,.column-resize-handle:focus-visible::after,.column-resize-handle.is-resizing::after{background:var(--blue)}
 .column-resize-handle:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
 .column-resizing,.column-resizing *{cursor:col-resize!important;user-select:none!important}
 .table-scroll.wide-frozen-columns .jobs-table th.heading-title,.table-scroll.wide-frozen-columns .jobs-table th.heading-province{left:auto;z-index:2}
 .table-scroll.wide-frozen-columns .jobs-table td.title-cell,.table-scroll.wide-frozen-columns .jobs-table tbody tr td:first-child:not(.source-cell){position:static}
}
@media(min-width:1101px){
 .heading-source .column-resize-handle{right:auto;left:0}
 .heading-source .column-resize-handle::after{right:auto;left:0}
}
@media(max-width:700px){.column-width-controls{display:none}}
body[data-view=list] .column-width-controls{display:none}

/* Source order may place title/province in the middle; never pin those over earlier columns. */
.table-scroll.free-scroll-columns .jobs-table th.heading-title,
.table-scroll.free-scroll-columns .jobs-table th.heading-province{left:auto;z-index:2;box-shadow:none}
.table-scroll.free-scroll-columns .jobs-table td.title-cell,
.table-scroll.free-scroll-columns:not(.no-province) .jobs-table tbody tr td:first-child:not(.source-cell){position:static;left:auto}

/* Compact table preview: a consistent single-line rhythm; phone cards retain their layout. */
body[data-density=compact] .jobs-table th,
body[data-density=compact] .jobs-table td{height:40px;padding:6px 10px;text-align:left;vertical-align:middle;border-right:1px solid #e5e7eb;border-bottom:1px solid #e1e4e9;font-size:14px;font-weight:400;line-height:22px}
body[data-density=compact] .jobs-table th{height:38px;font-size:13px;font-weight:500;color:#505762;background:#f7f8fa}
body[data-density=compact] .jobs-table .column-heading{justify-content:flex-start;font-size:13px}
body[data-density=compact] .jobs-table .job-title,
body[data-density=compact] .jobs-table .cell-text,
body[data-density=compact] .jobs-table .deadline-cell>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;-webkit-line-clamp:unset;font-size:14px;font-weight:400;line-height:22px;color:#303640}
body[data-density=compact] .jobs-table .job-title:hover{color:var(--blue)}
body[data-density=compact] .jobs-table .job-title.was-viewed{color:#77808d}
body[data-density=compact] .jobs-table .job-category{display:none}
body[data-density=compact] .jobs-table .date-cell,
body[data-density=compact] .jobs-table .count-cell{font-variant-numeric:tabular-nums}
body[data-density=compact] .jobs-table .option-tags{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:4px;max-height:22px;min-width:0;overflow:hidden}
body[data-density=compact] .jobs-table .option-tag{min-width:0;max-width:100%;padding:0 8px;border-radius:11px;font-size:13px;font-weight:400;line-height:22px;white-space:nowrap;text-overflow:ellipsis}
body[data-density=compact] .jobs-table .option-more{flex-shrink:0;border:0;border-radius:5px;padding:0 4px;background:#f0f2f5;color:#697180;font:inherit;font-size:11px;line-height:22px;cursor:pointer}
body[data-density=compact] .jobs-table td.source-cell{padding:6px 8px}
body[data-density=compact] .jobs-table .source-actions{display:flex;align-items:center;justify-content:flex-start;gap:6px;white-space:nowrap}
body[data-density=compact] .jobs-table .source-cell .original{display:inline-flex;align-items:center;min-height:26px;padding:0;font-size:13px;line-height:22px}
body[data-density=compact] .jobs-table .source-cell .tracking{display:flex;align-items:center;gap:3px;margin:0}
body[data-density=compact] .jobs-table .source-cell .tracking button{width:25px;min-height:26px;padding:0;border:0;border-radius:4px;font-size:17px;line-height:24px}
body[data-density=compact] .jobs-table .source-cell .tracking button[aria-pressed=true]{color:var(--blue);background:var(--selected)}
body[data-density=compact] .jobs-table .source-cell .muted-link{max-width:48px;overflow:hidden;text-overflow:ellipsis;font-size:11px}
body[data-density=compact] .jobs-table tbody tr{--row-bg:#fff;background:var(--row-bg)}
body[data-density=compact] .jobs-table tbody tr:hover,
body[data-density=compact] .jobs-table tbody tr:focus-within{--row-bg:#f4f6f9;background:var(--row-bg)}
body[data-density=compact] .table-scroll .jobs-table thead th{background:#fafbfc;color:#505762;border-bottom-color:#dce0e6}
body[data-density=compact] .table-scroll .jobs-table thead .column-heading{color:#505762}

/* A content-only bubble for clipped facts; no extra chrome or row expansion. */
.jobs-table td.cell-expandable{cursor:pointer}
.jobs-table td.cell-expandable:hover{background:#edf1f6}
.jobs-table td.cell-expandable:has([aria-expanded=true]){background:#eaf1fc;box-shadow:inset 0 0 0 1px #8ca8d0}
.jobs-table .cell-expandable [role=button]:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}
#cell-preview{position:fixed;inset:auto;margin:0;width:max-content;max-width:min(360px,calc(100vw - 24px));max-height:min(280px,calc(100dvh - 24px));overflow:auto;overscroll-behavior:contain;padding:11px 14px;border:1px solid #94a3b8;border-radius:7px;background:#fff;color:#303640;box-shadow:0 12px 32px #1e293b38,0 3px 8px #1e293b1f;color-scheme:light;scrollbar-color:#a5afbd #f4f6f8;font:400 14px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;z-index:1000;outline:none}
#cell-preview::backdrop{background:transparent;pointer-events:none}

/* Whole option labels take priority over fitting every selection in a cell. */
.jobs-table .option-tags,body[data-density=compact] .jobs-table .option-tags{display:flex;width:100%;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:4px;max-height:none;overflow:visible}
.jobs-table .option-tag,body[data-density=compact] .jobs-table .option-tag{flex:0 0 auto;max-width:none;font-weight:500;text-overflow:clip;white-space:nowrap}
.jobs-table .option-tag[hidden],.jobs-table .option-more[hidden]{display:none!important}
.jobs-table .option-tag.option-first-wrap,body[data-density=compact] .jobs-table .option-tag.option-first-wrap{flex:0 1 auto;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;overflow:visible}
.jobs-table .option-more,body[data-density=compact] .jobs-table .option-more{flex:0 0 auto;padding:0 6px;border-radius:11px;background:#eff0f1;color:#303640;font-size:13px;font-weight:500;line-height:22px}
.option-preview-tags{display:flex;flex-wrap:wrap;align-items:flex-start;gap:7px;white-space:normal}
#cell-preview .option-preview-tags .option-tag{max-width:100%;white-space:normal;overflow-wrap:anywhere;font-size:14px;font-weight:500;line-height:22px;padding:2px 8px}
.detail-field .option-tags{justify-content:flex-start;max-height:none;overflow:visible}

/* Native source data keeps its Feishu order; account actions stay on the right. */
.table-scroll .native-table th.heading-source,.table-scroll .native-table td.source-cell{position:sticky;right:0;left:auto;z-index:3;box-shadow:-1px 0 0 #c7d1df;background:var(--row-bg,#fff)}
.table-scroll .native-table th.heading-source{z-index:5;background:#fafbfc}
.native-table .source-actions{justify-content:center}
body[data-density=compact] .native-table td{height:40px;padding-top:6px;padding-bottom:6px}
body[data-density=compact] .native-table .native-title-cell .job-title{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset}
body[data-density=compact] .jobs-table .option-tags{max-height:22px;overflow:hidden}
body[data-density=compact] .jobs-table .option-tag.option-first-wrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
body[data-density=comfortable] .jobs-table .option-tags{flex-wrap:wrap;max-height:none;overflow:visible}
body[data-density=comfortable] .jobs-table .option-tag{max-width:100%;white-space:normal;overflow-wrap:anywhere}
body[data-density=comfortable] .native-table .native-options .cell-text{display:block;white-space:normal;overflow:visible;-webkit-line-clamp:unset}

/* Native Feishu column filters also work in the mobile table view. */
.native-table .column-filter-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:#8a94a3}
.native-table .column-filter-button.is-active{background:#e6edfa;color:var(--blue)}
#native-column-dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid #dce3ed;border-radius:12px;color:#303640;overflow:auto}
#native-column-dialog::backdrop{background:#17253c55}
.native-filter-body{padding:18px;display:grid;gap:14px}
.native-filter-body label{display:grid;gap:7px;font-size:14px}
.native-filter-body input:not([type=checkbox]),.native-filter-body select{width:100%;min-width:0;height:38px;padding:7px 10px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:inherit;font:inherit}
.native-filter-options{max-height:320px;overflow:auto;display:grid;gap:4px}
.native-filter-options label{display:flex;align-items:center;gap:9px;padding:7px 2px;overflow-wrap:anywhere}
.native-filter-options input{flex-shrink:0;width:16px;height:16px}
.native-filter-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.native-filter-note{margin:0;font-size:12px;line-height:1.6;color:#64748b}
.native-filter-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid #e2e8f0}
.native-filter-actions button{min-height:36px;padding:6px 12px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#334155}
.native-filter-actions button[type=submit]{background:#2563c7;color:#fff;border-color:#2563c7}
#native-column-dialog [data-filter-error]{color:#b42318;font-size:13px}

/* Self-service backup applications stay separate from granted access. */
#portal-auth [data-auth-panel][hidden],#portal-auth [data-backup-application][hidden],#portal-auth [data-backup-application-result][hidden]{display:none!important}
#portal-auth .backup-apply-link{display:block;margin:14px auto 0;padding:8px;border:0;background:transparent;color:var(--blue);font-size:12px;cursor:pointer}
#portal-auth .backup-application-note,#portal-auth .backup-application-result p,#portal-auth .backup-recovery{font-size:12px;line-height:1.75;color:var(--muted)}
#portal-auth .backup-application-result{padding:14px;background:var(--selected);border-radius:6px}
#portal-auth .backup-application-result button{margin:5px 5px 5px 0;padding:8px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--blue);cursor:pointer}
#portal-auth .backup-application-result input{font-family:monospace;font-weight:600}
#portal-auth .backup-recovery{margin-top:18px}#portal-auth .backup-recovery summary{cursor:pointer}

/* Bulk selection edits the current filter draft, including searched options. */
.filter-search-row{display:flex;align-items:stretch;gap:8px;min-width:0;flex-shrink:0}
.filter-search-row input[type=search]{flex:1 1 0;min-width:0;width:0;margin:0;height:38px}
#column-filter-search{flex-shrink:1;min-width:0;height:38px}
.filter-search-row>button{flex:0 0 78px;width:78px;min-height:38px;white-space:nowrap;padding:5px 10px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#2563c7;font:inherit;font-size:13px;cursor:pointer}
.filter-search-row>button:hover{background:#f0f5ff}
.filter-search-row>button:disabled{color:#94a3b8;cursor:default}

@media(max-width:700px){.filter-search-row input[type=search],#column-filter-search,.native-filter-body .filter-search-row input[type=search]{height:44px;font-size:16px}.filter-search-row>button{min-height:44px}}

/* Baselines for Safari 12, scoped where modern behavior should stay native. */
.message,.compact-list .card-detail-trigger::after{top:0;right:0;bottom:0;left:0}
#major-field[hidden]{display:none}
.jobs-table td.cell-preview-active{background:#eaf1fc;box-shadow:inset 0 0 0 1px #8ca8d0}
html.legacy-dialogs dialog:not([open]){display:none}
html.legacy-dialogs dialog[open]{position:fixed;top:50%;left:0;right:0;bottom:auto;transform:translateY(-50%);margin:0 auto;box-sizing:border-box;max-width:calc(100vw - 24px);max-height:85vh;overflow:auto;padding:0;border:1px solid #d9dfe7;background:#fff;color:#303640}
html.legacy-dialogs #detail{width:800px}
html.legacy-dialogs #portal-auth{width:430px}
html.legacy-dialogs #portal-account-dialog{width:550px}
html.legacy-dialogs #deadline-dialog{width:530px}
html.legacy-dialogs #feedback-dialog{width:500px;max-height:85vh}
html.legacy-dialogs #feedback-content{max-height:40vh}
html.legacy-dialogs dialog + .backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(25,35,50,.36)}
html.legacy-dialogs .column-filter-panel{max-height:calc(100vh - 16px)}
html.legacy-dialogs .column-filter-options{max-height:40vh}
html.legacy-dialogs .more-panel{max-height:65vh}
html.legacy-dialogs #cell-preview{max-width:calc(100vw - 24px);max-height:280px;word-wrap:break-word}
.no-flex-gap .auth-tabs > * + *, .no-flex-gap .header-actions > * + *,
.no-flex-gap .source-actions > * + *, .no-flex-gap .tracking > * + *{margin-left:6px}
.no-flex-gap .option-tag,.no-flex-gap .option-more{margin-right:4px}
.no-flex-gap .option-tags > :last-child{margin-right:0}
.no-flex-gap .card-meta > * + *, .no-flex-gap .card-actions > * + *{margin-left:8px}
.no-flex-gap .deadline-ranges > *{margin:0 8px 8px 0}
.no-flex-gap .access-actions > * + *{margin-top:10px}
.no-flex-gap .deadline-actions > * + *{margin-left:8px}
/* Retain the reference layout and reserve visible space for each site's filing. */
.page-shell{height:calc(100vh - 44px);height:calc(100dvh - 44px)}
.filing-footer{height:44px;padding:4px 16px;gap:4px 10px}
#about-open{white-space:nowrap;border:1px solid #e4e7ec;border-radius:5px;background:#fff;color:#596579;padding:7px 10px;font-size:12px}
#about-dialog{width:min(620px,calc(100vw - 28px));max-height:85dvh;overflow:auto}
@media(max-width:700px){.page-shell{height:calc(100dvh - 68px)}.filing-footer{height:68px;font-size:10px;padding:4px 10px}.filing-footer>span:first-child{max-width:100%}}
/* Domain-specific brand system, on the shared recruitment-list layout. */
:root[data-brand="pgy"]{--blue:#25664d;--brand-deep:#184c39;--ink:#273d32;--text:#405046;--muted:#778278;--canvas:#f6f7f1;--line:#dfe6db;--subtle:#f3f6ee;--stripe:#fafbf7;--hover:#f1f6eb;--selected:#eaf2e3;--selected-line:#bdd0b2;--success:#25664d;--success-bg:#eaf2e3;--accent:#ba8c31;--accent-soft:#f8eed4;--brand-shadow:#31552b0c;--header:#fcfdf9;--table-head:#f0f4ea}
:root[data-brand="xinzi"]{--blue:#57528d;--brand-deep:#3f3c71;--ink:#32334d;--text:#4f5066;--muted:#7e7f94;--canvas:#f5f4f9;--line:#e2e0ec;--subtle:#f4f2f9;--stripe:#fbfaff;--hover:#f3f0fa;--selected:#eee9f7;--selected-line:#ccc2e3;--success:#57528d;--success-bg:#eee9f7;--accent:#8472b0;--accent-soft:#eee7f7;--brand-shadow:#4f3f770c;--header:#fdfcfe;--table-head:#f0edf7}
body{color:var(--ink);background:var(--canvas)}
.topbar{height:76px;flex-basis:76px;padding:0 28px;background:var(--header);border-bottom:1px solid var(--line)}
.brand{gap:12px;min-width:0;color:var(--blue)}
.brand .brand-icon{width:44px;height:44px;flex:0 0 44px;border-radius:13px}
.brand-wordmark{display:flex;flex-direction:column;gap:4px;line-height:1.15}
.brand-name{font-size:23px;letter-spacing:2px;font-weight:700;color:var(--brand-deep)}
.brand-domain{font-size:10px;font-weight:600;letter-spacing:1.6px;color:var(--muted)}
.brand-descriptor{display:flex;flex-direction:column;gap:5px;border-left:1px solid var(--line);padding-left:16px;margin-left:6px;line-height:1.3}
.brand-descriptor strong{font-size:12px;font-weight:500;letter-spacing:1px;color:var(--text)}
.brand-descriptor small{font-size:11px;letter-spacing:.3px;color:var(--muted)}
.header-actions{gap:15px}.header-actions>select,#fullscreen-toggle,#about-open{border-color:var(--line);color:var(--text);background:var(--header);border-radius:7px}
.header-actions summary{color:var(--text)}
#about-open:hover,#fullscreen-toggle:hover{color:var(--blue);background:var(--selected)}
main{padding:18px 24px 8px}
.workspace{border-color:var(--line);border-radius:16px;box-shadow:0 5px 24px var(--brand-shadow)}
.source-nav{background:var(--header);border-radius:16px 16px 0 0}
.source-tabs button{color:var(--muted);font-size:12px}
.source-tabs button[aria-pressed=true]{color:var(--blue)}
.source-tabs button[aria-pressed=true]::after{height:3px;left:3px;right:3px;background:var(--blue)}
.source-tabs button small{display:inline-block;min-width:16px;margin-left:3px;padding:1px 3px;line-height:15px;border-radius:4px;color:var(--muted);background:var(--subtle)}
.source-tabs button[aria-pressed=true] small{background:var(--selected);color:var(--blue)}
.search-wrap,.picker summary,.more-filters>summary,select{border-color:var(--line)}
.search-wrap{border-radius:8px;overflow:hidden}
.search-wrap button,.picker-actions .picker-confirm,#sort-apply,#deadline-apply,.major-input-row button{background:var(--blue);border-color:var(--blue)}
.search-wrap button:hover,.picker-actions .picker-confirm:hover,#sort-apply:hover,#deadline-apply:hover,.major-input-row button:hover{background:var(--brand-deep)}
.quick-row button,.quick-row select{border-color:var(--line);color:var(--text);border-radius:6px}
.quick-row button:hover,.quick-row button[aria-pressed=true],.quick-row button.active{background:var(--selected);color:var(--blue);border-color:var(--selected-line)}
.quick-row [data-quick=upcoming]{background:var(--accent-soft);border-color:transparent;color:var(--brand-deep)}
.quick-row .reset{border:0;color:var(--blue);background:transparent}
.sort-toggle,.pagination button,.pagination select{border-color:var(--line);color:var(--text)}
.sort-toggle:hover,.sort-toggle[aria-expanded=true]{background:var(--selected);border-color:var(--selected-line)}
#sort-count{background:var(--selected);color:var(--blue)}
.jobs-table thead th,.jobs-table thead th:nth-child(-n+2),.jobs-table .heading-title{background:var(--table-head);color:var(--text);border-color:var(--line)}
.jobs-table td{border-bottom-color:var(--line);border-right-color:var(--line);color:var(--text)}
.jobs-table .job-title,.compact-list .job-title{color:var(--ink)}
.jobs-table tbody tr:hover td,.jobs-table tbody tr:hover .title-cell{background:var(--hover)}
.jobs-table .date-cell{font-variant-numeric:tabular-nums;color:var(--muted)}
.jobs-table .source-cell,.jobs-table .source-cell a{color:var(--blue)}
.tracking button:hover,.source-cell .tracking button:hover,.source-cell .tracking button[aria-pressed=true]{color:var(--blue);background:var(--selected)}
.option-tag{--tag-bg:var(--subtle);--tag-fg:var(--text)}
[data-brand=pgy] .feishu-color-0{--tag-bg:#e8eedc;--tag-fg:#47603a}[data-brand=pgy] .feishu-color-1{--tag-bg:#f5ecd5;--tag-fg:#80632c}[data-brand=pgy] .feishu-color-2{--tag-bg:#dceee5;--tag-fg:#396650}[data-brand=pgy] .feishu-color-4{--tag-bg:#edf0dc;--tag-fg:#66703b}[data-brand=pgy] .feishu-color-5{--tag-bg:#f3e5d7;--tag-fg:#896343}[data-brand=pgy] .feishu-color-7{--tag-bg:#e4ecdf;--tag-fg:#526a42}[data-brand=pgy] .feishu-color-8{--tag-bg:#f1f0e9;--tag-fg:#767360}
[data-brand=xinzi] .feishu-color-0{--tag-bg:#eae6f6;--tag-fg:#62517f}[data-brand=xinzi] .feishu-color-1{--tag-bg:#f2e8ed;--tag-fg:#8a6276}[data-brand=xinzi] .feishu-color-2{--tag-bg:#e3ebf5;--tag-fg:#4e6687}[data-brand=xinzi] .feishu-color-4{--tag-bg:#e6e4f2;--tag-fg:#62608b}[data-brand=xinzi] .feishu-color-5{--tag-bg:#eee3f4;--tag-fg:#7b578e}[data-brand=xinzi] .feishu-color-7{--tag-bg:#e4edef;--tag-fg:#526e78}[data-brand=xinzi] .feishu-color-8{--tag-bg:#efedf3;--tag-fg:#777185}
.pagination{background:var(--header);border-color:var(--line);border-radius:0 0 16px 16px}
.compact-list{background:var(--canvas)}.compact-list article{border-color:var(--line);box-shadow:0 2px 8px var(--brand-shadow)}
.filing-footer{color:var(--muted);font-size:11px}.filing-footer a:hover{color:var(--blue)}
.dialog-top{background:var(--header);color:var(--blue)}dialog{color:var(--ink)}dialog::backdrop{background:#26302f55}.detail-field>span{color:var(--muted)}
.column-filter-panel,.sort-panel,.tool-popover,.picker-menu{border-color:var(--line);box-shadow:0 12px 36px var(--brand-shadow)}
.column-filter-button.is-active,.column-filter-button:hover,.filter-chip,.deadline-trigger.has-selection,.deadline-statuses label:has(input:checked){background:var(--selected);border-color:var(--selected-line);color:var(--blue)}
input[type=checkbox],input[type=radio]{accent-color:var(--blue)}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline-color:var(--blue)}
.toast{background:var(--brand-deep)}
@media(max-width:1000px){.brand-descriptor small{display:none}.brand-descriptor{padding-left:12px;margin-left:0}.header-actions{gap:8px}}
@media(max-width:700px){
 .topbar{height:auto;flex-basis:auto;min-height:106px;padding:10px 12px 8px;gap:9px}
 .brand{gap:9px}.brand .brand-icon{width:36px;height:36px;flex-basis:36px;border-radius:10px}.brand-name{font-size:18px;letter-spacing:1.5px}.brand-domain{font-size:9px;letter-spacing:1px}.brand-wordmark{gap:3px}
 .brand-descriptor{margin-left:auto;border-left:0;padding-left:10px}.brand-descriptor strong{font-size:11px}.brand-descriptor small{display:block;font-size:9px}.brand{width:100%}
 .header-actions{width:100%;justify-content:space-between;gap:8px}#about-open{padding:6px 9px;font-size:11px}
 main{padding:10px 10px 6px}.workspace{border-radius:12px}.source-nav{border-radius:12px 12px 0 0}.source-tabs button{font-size:11px}.source-tabs{gap:10px}.source-tabs button small{min-width:12px;font-size:9px;padding:0 2px}
 .mobile-filters-toggle{background:var(--header);border-color:var(--line);color:var(--blue)}.pagination{border-radius:0 0 12px 12px}
 .filing-footer{font-size:10px}
}
body[data-density=compact] .table-scroll .jobs-table thead th,.table-scroll .jobs-table th.heading-source{background:var(--table-head);color:var(--text);border-bottom-color:var(--line)}
.jobs-table tbody tr:nth-child(even) td,.jobs-table tbody tr:nth-child(even) td:nth-child(-n+2),.jobs-table tbody tr:nth-child(even) .title-cell{background:var(--stripe)}
.jobs-table tbody tr:hover td,.jobs-table tbody tr:hover td:nth-child(-n+2){background:var(--hover)}
.compact-list article:nth-child(even){background:#fff}.card-deadline{color:var(--text)}

/* Keep the full registered service name visible on narrow screens. */
@media(max-width:420px){.brand-descriptor{display:none}.brand-name{white-space:nowrap}}
