/* Shared portfolio typography and controls; status colours remain meaningful. */
:root{--brand:#1d1d1f;--brand2:#424245;--soft:#f5f5f7;--bg:#fff;--card:#fff;--tx:#1d1d1f;--tx2:#424245;--tx3:#6e6e73;--line:#d2d2d7;--blue:#0066cc}
html,body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Helvetica Neue","Segoe UI","Microsoft YaHei",sans-serif;background:#fff;font-size:15px;line-height:1.6}
body{padding-bottom:24px}.wrap,.hero-in{max-width:940px;padding-left:24px;padding-right:24px}
.hero{background:#f5f5f7;color:#1d1d1f;box-shadow:none;border-radius:0;border-bottom:1px solid #d2d2d7;padding:28px 0 24px;margin-bottom:22px}
.hero-badge{display:none}.hero h1{font-size:27px;letter-spacing:-.025em;line-height:1.3;margin-bottom:8px}.hero p{font-size:14px;color:#424245;opacity:1}
.disclaimer{background:#f5f5f7;border:1px solid #d2d2d7;color:#424245;border-radius:14px;padding:14px 16px;font-size:12px;margin-bottom:22px}
.mode-grid{grid-template-columns:1fr 1fr;gap:14px}.mode-card,.cat-card{border:1px solid #d2d2d7;border-radius:20px;padding:20px;transition:border-color .18s,background .18s;min-height:88px}
.mode-card.primary{border-color:#86868b}.mode-card.primary .mode-title{color:#1d1d1f}.mode-card:hover,.cat-card:hover,.opt-btn:hover{background:#f5f5f7;border-color:#86868b}
.cat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cat-name,.mode-title{font-size:17px;font-weight:600}.mode-desc,.cat-desc{font-size:13px;color:#6e6e73}
.card,.step-card,.dept,.progress-card,.simi{box-shadow:none;border:1px solid #d2d2d7;border-radius:20px}.card,.step-card,.progress-card{padding:22px}.dept-head{padding:18px 20px}.dept-body-inner{padding:6px 12px 12px}
.back-btn,.qbtn{border:1px solid #d2d2d7;border-radius:999px;padding:9px 16px;color:#424245}.qbtn:hover,.back-btn:hover{border-color:#86868b;background:#f5f5f7}
.search-in{border:1px solid #d2d2d7;box-shadow:none;border-radius:14px;padding:16px 44px 16px 16px}.search-in:focus{border-color:#86868b;box-shadow:none;outline:2px solid #0066cc;outline-offset:2px}
.opt-btn{border:1px solid #d2d2d7;border-radius:14px;background:#fff}.opt-btn.on{background:#f5f5f7;border-color:#86868b}
.duty-btn{border:1px solid #d2d2d7;white-space:normal;min-height:44px}.duty-btn.on{background:#1d1d1f;border-color:#1d1d1f}
.prog-fill{background:#1d1d1f}.prog-num{color:#1d1d1f}.btn{border:1px solid #d2d2d7;box-shadow:none;border-radius:999px;min-height:44px}.btn:hover{background:#f5f5f7}.sec::before{background:#86868b}
.footer{border-top:1px solid #d2d2d7;margin-top:24px;padding:20px 4px 0;color:#6e6e73;font-size:11px}.legal{overflow-wrap:anywhere}.sub-tbl{table-layout:fixed}.sub-tbl th:first-child{width:29%}.sub-tbl td.cn{white-space:normal;overflow-wrap:anywhere}.sub-tbl td.st{white-space:normal}
button:focus-visible,summary:focus-visible,.dept-head:focus-visible,.ck:focus-visible{outline:2px solid #0066cc;outline-offset:3px}.ck,.dept-head{touch-action:manipulation}
@media(max-width:540px){.wrap,.hero-in{padding-left:16px;padding-right:16px}.hero{padding:22px 0 20px}.hero h1{font-size:23px}.mode-grid{grid-template-columns:1fr}.cat-grid{grid-template-columns:1fr 1fr;gap:10px}.mode-card,.cat-card{padding:16px}.cat-name,.mode-title{font-size:15px}.card,.step-card,.progress-card{padding:16px}.actions{flex-wrap:wrap}.actions .btn{flex:1 1 90px;font-size:12px}.role{grid-template-columns:1fr}.duty-btns{gap:5px}.duty-btn{font-size:11px}.sub-tbl{font-size:11px}.dept-head{padding:14px 16px}.dept-name{white-space:normal;font-size:14px}.dept-meta{white-space:normal}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
