:root{color-scheme:light;--bg:#f3f7fb;--surface:#fff;--surface-2:#edf4f9;--ink:#0b1b33;--muted:#54677d;--line:#dbe5ef;--brand:#155ed3;--brand-hover:#0c479f;--accent:#079c9e;--soft:#e8f3ff;--danger:#9e352b;--shadow:0 10px 40px rgba(19,55,99,.07);--radius:18px;--wrap:1180px}
:root[data-theme='dark']{color-scheme:dark;--bg:#081522;--surface:#112237;--surface-2:#162b43;--ink:#eff7ff;--muted:#b5c8d9;--line:#304359;--brand:#79abff;--brand-hover:#b1cbff;--accent:#54d5c9;--soft:#1b3652;--danger:#ffb2aa;--shadow:0 10px 40px rgba(0,0,0,.2)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.58 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:var(--brand);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}img,svg{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:absolute;left:-999px;top:0;z-index:99;background:var(--surface);padding:10px}.skip:focus{left:12px;top:12px}
.wrap{width:min(calc(100% - 36px),var(--wrap));margin:auto}.site-header{position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 4px 20px rgba(14,35,68,.03)}.header-main{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:900;letter-spacing:-.7px;font-size:1.25rem;line-height:1.1}.brand img{width:42px;height:42px}.brand small{display:block;font-size:.67rem;color:var(--muted);font-weight:600;letter-spacing:.08em;margin-top:5px}.header-actions{display:flex;align-items:center;gap:9px}.btn,.icon-btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border-radius:10px;border:1px solid transparent;text-decoration:none;font-weight:700;min-height:43px;padding:10px 16px;transition:background .15s,color .15s,transform .15s}.btn:hover,.icon-btn:hover{transform:translateY(-1px)}.btn-primary{background:#135bd1;color:#fff}.btn-primary:hover{background:#0e459c;color:#fff}.btn-secondary{background:var(--surface-2);border-color:var(--line);color:var(--ink)}.btn-ghost,.icon-btn{background:transparent;color:var(--ink);border-color:var(--line)}.btn-sm{font-size:.88rem;min-height:35px;padding:6px 11px}.icon-btn{width:43px;padding:0;font-size:1.05rem}.menu-button{display:none}.nav-rail{border-top:1px solid var(--line)}.nav-wrap{display:flex;align-items:center;gap:21px;overflow-x:auto;scrollbar-width:thin}.nav-wrap a{flex:0 0 auto;text-decoration:none;color:var(--muted);font-weight:700;font-size:.88rem;padding:12px 0;border-bottom:3px solid transparent;white-space:nowrap}.nav-wrap a:hover,.nav-wrap a[aria-current='page']{color:var(--brand);border-color:var(--brand)}.info-banner{background:#e7f4ff;color:#19476c;border-bottom:1px solid #c5e1f3;font-size:.87rem}.info-banner .wrap{padding:9px 0}.info-banner strong{font-weight:800}:root[data-theme='dark'] .info-banner{background:#153350;color:#dcf1ff;border-color:#294d68}
main{min-height:55vh;padding:35px 0 65px}.breadcrumbs{font-size:.83rem;color:var(--muted);margin-bottom:18px}.breadcrumbs a{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.74rem;font-weight:900;color:var(--accent)}h1,h2,h3{line-height:1.22;letter-spacing:-.035em;margin:0 0 15px}h1{font-size:clamp(2rem,4.6vw,3.55rem)}h2{font-size:clamp(1.45rem,3vw,2rem)}h3{font-size:1.13rem}p{margin:0 0 16px}.lead{font-size:1.1rem;color:var(--muted);max-width:740px}.hero{background:linear-gradient(118deg,#0d2750,#124c85 55%,#087b89);color:#fff;border-radius:26px;padding:clamp(26px,5vw,58px);display:grid;grid-template-columns:1.55fr .85fr;gap:32px;overflow:hidden;position:relative}.hero .lead{color:#d8e9ff}.hero .eyebrow{color:#7cf0db}.hero h1{max-width:720px}.hero-art{border:1px solid #ffffff35;border-radius:23px;background:linear-gradient(142deg,#ffffff21,#ffffff08);padding:24px;display:flex;flex-direction:column;justify-content:center;gap:15px;transform:rotate(2deg)}.art-row{border-radius:13px;padding:13px;background:#ffffffed;color:#183451;display:flex;gap:12px;align-items:center;box-shadow:0 7px 24px #081b3a27}.art-icon{background:#e1f4f5;border-radius:10px;padding:10px;color:#077f90}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:21px}.hero .btn-secondary{background:#ffffff;color:#183553;border-color:#fff}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}.stat{background:var(--surface);border:1px solid var(--line);padding:19px 22px;border-radius:16px}.stat strong{font-size:1.6rem;display:block}.stat span{color:var(--muted);font-size:.87rem}.section{margin-top:50px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:20px}.section-head h2{margin:0}.section-head p{margin:6px 0 0;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.tile,.panel,.job-card,.source-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.tile{padding:24px;text-decoration:none;color:var(--ink);display:block;min-height:185px}.tile:hover,.job-card:hover{border-color:var(--accent)}.tile-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:var(--soft);font-size:1.45rem;margin-bottom:16px}.tile p{color:var(--muted);font-size:.9rem;margin:0}.tile h3{margin-bottom:8px}.page-intro{background:var(--surface);border:1px solid var(--line);padding:clamp(23px,4vw,38px);border-radius:22px;margin-bottom:26px}.page-intro h1{font-size:clamp(2rem,4vw,2.75rem)}.page-intro .lead{margin-bottom:0}.notice{background:var(--soft);border:1px solid var(--line);padding:15px 18px;border-radius:12px;color:var(--ink);margin:19px 0}.notice.warn{border-left:5px solid #d9982a}.muted{color:var(--muted)}.tiny{font-size:.82rem}.tag{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:var(--soft);color:var(--brand);font-size:.76rem;font-weight:800;letter-spacing:.01em}.tag.demo{color:#995911;background:#fff1d4}.tag.closed{color:var(--danger);background:var(--surface-2)}.tags{display:flex;gap:6px;flex-wrap:wrap}.job-card{padding:20px;display:flex;flex-direction:column;gap:13px}.job-card h3{margin:0}.job-card h3 a{color:var(--ink);text-decoration:none}.job-card h3 a:hover{color:var(--brand)}.job-card .org{font-size:.88rem;color:var(--muted);font-weight:700}.job-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;color:var(--muted);font-size:.84rem}.job-actions{display:flex;gap:8px;align-items:center;margin-top:auto;flex-wrap:wrap}.two-column{display:grid;grid-template-columns:270px 1fr;gap:22px;align-items:start}.filter-panel{background:var(--surface);border-radius:18px;border:1px solid var(--line);padding:19px;position:sticky;top:140px}.field{display:flex;flex-direction:column;gap:5px;margin:0 0 13px}.field label{font-size:.81rem;font-weight:800}.field input,.field select,.field textarea{min-height:42px;width:100%;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 11px}.filter-panel .btn{width:100%}.results-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.results-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.empty{border:1px dashed var(--line);border-radius:17px;padding:35px;text-align:center;background:var(--surface);color:var(--muted)}.chips{display:flex;gap:9px;flex-wrap:wrap}.chip{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);text-decoration:none;color:var(--ink);font-weight:700;font-size:.88rem}.chip:hover{background:var(--soft)}.source-card{padding:20px}.source-card h3{margin-bottom:5px}.source-card p{font-size:.9rem;color:var(--muted)}.source-card a{font-size:.9rem;font-weight:700;word-break:break-all}.split{display:grid;grid-template-columns:2fr 1fr;gap:20px}.panel{padding:25px}.detail-table{width:100%;border-collapse:collapse}.detail-table th,.detail-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top;word-break:break-word}.detail-table th{width:39%;font-size:.88rem;color:var(--muted)}.checklist{padding-left:22px}.checklist li{padding:6px 0}.footer{background:#0a1b32;color:#c6d5e7;padding:45px 0 25px}.footer h3{color:#fff}.footer-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px}.footer a{color:#c6d5e7;text-decoration:none;display:block;margin:8px 0}.footer a:hover{text-decoration:underline}.footer-bottom{margin-top:25px;padding-top:18px;border-top:1px solid #374860;font-size:.85rem;color:#aac0d4}.footer .brand{color:#fff}.content-block{max-width:850px}.content-block h2{margin-top:28px;font-size:1.45rem}.content-block ul{padding-left:20px}.content-block li{margin:9px 0}.action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.suggestions{list-style:none;margin:4px 0 0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;max-height:200px;overflow-y:auto}.suggestions:empty{display:none}.suggestions a{display:block;padding:8px 10px;text-decoration:none;color:var(--ink)}.suggestions a:hover{background:var(--soft)}.ad-placeholder{border:1px dashed var(--line);background:var(--surface);color:var(--muted);padding:20px;text-align:center;border-radius:12px;font-size:.8rem}.label-scope{font-weight:900;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}
@media (max-width:950px){.hero{grid-template-columns:1fr}.hero-art{display:none}.grid{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:1fr}.filter-panel{position:static}.filter-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:0 12px}.split{grid-template-columns:1fr}}@media (max-width:690px){.wrap{width:min(calc(100% - 28px),var(--wrap))}.header-main{min-height:66px}.header-actions .header-desktop{display:none}.menu-button{display:inline-flex}.nav-rail{display:none}.nav-rail.open{display:block}.nav-wrap{flex-direction:column;align-items:stretch;gap:0;max-height:65vh;overflow:auto;padding:8px 0}.nav-wrap a{padding:10px 0}.hero{border-radius:18px;padding:27px 22px}.stats,.grid,.results-list,.footer-cols{grid-template-columns:1fr}.filter-fields{grid-template-columns:1fr}.page-intro{padding:23px 20px}.site-header{position:relative}.job-meta{grid-template-columns:1fr 1fr}.section{margin-top:34px}.footer{padding-top:35px}}@media print{.site-header,.info-banner,.footer,.filter-panel,.ad-placeholder,.action-row,.job-actions,.hero-actions{display:none!important}body{background:white;color:black}.panel,.page-intro{box-shadow:none;border:0;padding:0}main{padding:0}}

/* V1.2 sourced-exam update page */
.notice-data{display:grid;gap:9px;margin:17px 0 25px}.notice-data div{border-bottom:1px solid var(--line);padding:10px 0}.notice-data dt{font-weight:750;color:var(--muted);font-size:.88rem}.notice-data dd{margin:4px 0 0}.notice-images{display:grid;grid-template-columns:1fr 1fr;gap:16px}.notice-images figure{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface-2)}.notice-images img{display:block;width:100%;height:auto}.notice-images figcaption{padding:9px 12px;color:var(--muted);font-size:.82rem}@media(max-width:690px){.notice-images{grid-template-columns:1fr}.detail-table{min-width:0}}

/* Final-release directory and research pages */
.source-tools{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin:16px 0 24px;padding:18px}
.source-tools label{font-weight:700;font-size:.86rem}
.source-tools input,.source-tools select{max-width:310px;min-width:170px;min-height:43px;background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:9px 11px;border-radius:10px}
.source-tools p{margin:0 0 8px}.source-card[hidden]{display:none!important}
.region-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.region{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:13px;background:var(--surface);padding:17px;text-decoration:none;color:var(--ink);font-weight:750}.region:hover{border-color:var(--accent);background:var(--soft)}.region small{color:var(--muted);font-weight:500}.guide-stack{display:grid;gap:15px}.guide-step{display:flex;gap:18px;max-width:950px}.guide-step h2{font-size:1.3rem}.guide-step p{color:var(--muted)}.step-count{font-size:1.7rem;color:var(--accent);font-weight:900;flex:none}.guide-step a{font-size:.92rem;font-weight:700}.source-card a{overflow-wrap:anywhere}
@media(max-width:880px){.region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.region-grid{grid-template-columns:1fr}.source-tools{align-items:stretch;flex-direction:column}.source-tools input,.source-tools select{max-width:100%;width:100%}.guide-step{padding:18px}.step-count{font-size:1.25rem}}

/* V2.1: readable, responsive exam update cards; no horizontal-scroll table on phones. */
.exam-schedule{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:19px 0}
.exam-schedule-card{border:1px solid var(--line);border-radius:15px;background:var(--surface-2);padding:20px;min-width:0}
.exam-schedule-card h3{font-size:1.13rem;line-height:1.4;margin:13px 0 9px;overflow-wrap:anywhere}
.exam-mode{font-size:.88rem;color:var(--muted);margin-bottom:12px}
.exam-windows{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.exam-windows li{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 13px}
.exam-window-number{display:block;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.03em}
.exam-window-dates{font-size:.96rem;font-weight:800;line-height:1.6;display:block;overflow-wrap:anywhere}
.exam-caption{margin:5px 0 22px}
.app-toast{position:fixed;z-index:45;bottom:22px;left:50%;transform:translateX(-50%);background:#122943;color:white;border-radius:11px;padding:12px 18px;box-shadow:0 10px 30px #0004;max-width:min(90vw,480px);text-align:center}
/* Avoid competing with hosting-provider corner badges or native browser overlays. */
@media(max-width:740px){
 .exam-schedule{grid-template-columns:minmax(0,1fr)}
 .panel{padding:18px}
 .exam-schedule-card{padding:16px}
 .page-intro h1{overflow-wrap:break-word}
 .action-row .btn{max-width:100%}
 .app-toast{bottom:74px;font-size:.9rem}
 .footer{padding-bottom:105px}
 .job-meta{grid-template-columns:1fr}
 .empty{padding:24px 15px}
 .detail-table th,.detail-table td{padding:10px 7px;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.icon-btn{transition:none;transform:none!important}}
@media print{.app-toast{display:none!important}.exam-schedule{display:block}.exam-schedule-card{break-inside:avoid;margin-bottom:12px}}

/* Final source-checked release: long organization names and notices remain readable on phones. */
.source-card,.job-card{overflow-wrap:anywhere;min-width:0}
.exam-schedule-card{min-width:0}
@media(max-width:740px){.source-card{padding:18px}.btn{white-space:normal;text-align:center}.notice-data{overflow-wrap:anywhere}.footer{padding-bottom:115px}}
