 :root{color-scheme:light;font:16px/1.75 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:#242424;background:#f7f7f5}*{box-sizing:border-box}body{margin:0}a{color:#24574c;text-decoration:none}a:hover{text-decoration:underline}header{background:#fff;border-bottom:1px solid #deded8}header div,main,footer{max-width:1050px;margin:auto;padding:20px 26px}header div{display:flex;justify-content:space-between;gap:15px}header strong{font-size:17px}h1{font-size:32px;margin:24px 0 12px;line-height:1.4}h2{font-size:21px;line-height:1.5;margin:10px 0}p{margin:9px 0}.intro{max-width:750px;color:#5b5e59}.notice{margin:22px 0;padding:15px 18px;background:#eef2ed;border-left:3px solid #476354;font-size:14px}.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin:27px 0 14px}label{font-size:13px;color:#545951}input,select,textarea{display:block;width:100%;font:inherit;padding:10px;background:white;border:1px solid #bfc4ba;border-radius:4px;margin-top:5px;color:#202622}textarea{resize:vertical}button{font:inherit;padding:9px 15px;border:1px solid #456451;background:#315b47;color:white;cursor:pointer;border-radius:4px}button:disabled{opacity:.5}#status,.meta{font-size:13px;color:#6a6e66}.listing{padding:25px;background:white;border:1px solid #d9ddd5;border-radius:5px;margin:18px 0}.topline{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:12px;color:#656b61}.badge{border:1px solid #d9d3bb;background:#faf7ec;padding:2px 9px;border-radius:3px}.price{color:#325a43;font-size:17px;font-weight:600;margin:12px 0}.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;margin:18px 0;font-size:14px}.facts p{margin:0}.facts b{color:#64695f;font-weight:500}.summary{white-space:pre-wrap}.requirements{font-size:14px;color:#585d54}.source{display:inline-block;margin:15px 0 6px;padding:8px 14px;border:1px solid #7f9988;border-radius:4px}.footnote{font-size:12px;color:#72776d;border-top:1px solid #e7e9e3;margin-top:18px;padding-top:12px}footer{margin-top:25px;border-top:1px solid #dadfd5;font-size:13px;color:#74796f}.adminform{max-width:800px;background:white;padding:24px;border:1px solid #d9ddd5}.adminform label{display:block;margin-bottom:12px}.adminform .row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.edit{font-size:13px;padding:5px 10px;margin-top:8px}#feedback{color:#285442;white-space:pre-wrap}.error{color:#a12b2b}@media(max-width:650px){h1{font-size:26px}header div,main,footer{padding:17px}.filters,.facts,.adminform .row{grid-template-columns:1fr}.listing{padding:19px}.adminform{padding:17px}}
/* Public square follows the live website palette and rounded recruitment cards.
   Scoped so the private BD publication editor keeps its existing layout. */
.square-page{background:#f5f3ec;color:#242822;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
.square-page header{background:rgba(255,254,250,.96);border-bottom:1px solid #d8d9ce}
.square-page header>div,.square-page main,.square-page footer{max-width:1240px;padding-left:32px;padding-right:32px}
.square-page header>div{align-items:center;min-height:88px;padding-top:16px;padding-bottom:16px}
.square-brand{display:flex;gap:12px;align-items:center;color:#242822;font-size:20px;font-weight:750;line-height:1.2}
.square-brand img{display:block}.square-brand small{display:block;font-size:11px;color:#686b61;letter-spacing:.04em;font-weight:450;margin-top:5px}
.square-page header nav{display:flex;align-items:center;gap:26px;font-size:13px}.square-page header strong{font-size:13px;color:#c7482b}
.square-page a{color:inherit}.square-page a:hover{text-decoration:none;color:#c7482b}
.square-page main{padding-top:40px;padding-bottom:42px}.square-page h1{font-size:38px;letter-spacing:-.035em;line-height:1.25;margin:12px 0 18px}
.square-page .intro{font-size:15px;line-height:1.8;color:#686b61;max-width:780px}
.square-page .notice{font-size:12px;color:#777167;background:transparent;border:0;padding:0;margin:17px 0 26px;max-width:980px;line-height:1.8}
.square-page .filters{grid-template-columns:1.8fr 1fr 1fr;background:#fffefa;border:1px solid #e3dbd0;border-radius:15px;padding:18px 20px;gap:16px;margin:0 0 20px}
.square-page label{color:#686b61;font-size:12px}.square-page input,.square-page select{border:1px solid #e1dbd2;background:#faf8f3;border-radius:8px;padding:10px 12px;font-size:13px;min-height:43px;color:#242822}
.square-page input:focus-visible,.square-page select:focus-visible{outline:2px solid #ff5d39;outline-offset:2px}
.square-page #status{font-size:12px;color:#80786c;margin:20px 0 15px}
.square-page #list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.square-page .opportunity-card{padding:23px 22px 16px;margin:0;border:1px solid #e3dbd0;border-radius:22px;background:#fffefa;box-shadow:0 12px 30px rgba(55,35,19,.035);min-width:0;transition:box-shadow .18s,border-color .18s}
.square-page .opportunity-card:hover{border-color:#cdbfac;box-shadow:0 15px 35px rgba(55,35,19,.065)}
.square-page .topline{font-size:10px;align-items:center;gap:8px;line-height:1.5;color:#80766a}
.square-page .badge{border:0;background:#f3eee4;border-radius:20px;padding:4px 8px;color:#8b7655;white-space:nowrap}
.square-page .source-label{font-weight:600}.square-page .opportunity-card h2{font-size:20px;line-height:1.5;letter-spacing:-.015em;margin:16px 0;font-weight:750}
.square-page .budget-box{background:#fff0e8;border-radius:12px;padding:13px 14px;margin-bottom:16px}.square-page .budget-box>span{color:#a86c50;font-size:10px;font-weight:600}
.square-page .price{font-size:15px;font-weight:750;color:#c7482b;line-height:1.75;margin:4px 0 0;white-space:pre-line}
.square-page .summary{font-size:13px;color:#70695e;line-height:1.75;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 15px}
.square-page .card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:15px}.square-page .card-tags>span{font-size:10px;color:#70685b;padding:4px 8px;border:1px solid #e9e1d6;border-radius:6px;line-height:1.5}
.square-page .card-facts{padding:13px 0;border-top:1px solid #eee8e0}.square-page .card-facts p{font-size:12px;line-height:1.7;display:grid;grid-template-columns:66px 1fr;margin:5px 0}.square-page .card-facts span{color:#8a8074}
.square-page .card-details{border-top:1px solid #eee8e0;border-bottom:1px solid #eee8e0;font-size:12px;color:#746b60}.square-page .card-details>summary{display:flex;justify-content:space-between;cursor:pointer;list-style:none;padding:12px 0}.square-page .card-details>summary::-webkit-details-marker{display:none}.square-page .card-details[open]>summary span{transform:rotate(45deg)}.square-page .card-details>div{padding:0 0 12px;overflow-wrap:anywhere}
.square-page .card-bottom{padding-top:15px}.square-page .meta{font-size:10px;color:#928678;margin:0 0 12px}
.square-page .source{display:flex;align-items:center;justify-content:center;border:0;background:#ff5d39;color:#fff;border-radius:9px;padding:11px 14px;font-size:13px;font-weight:700;margin:0;min-height:44px}.square-page .source:hover{background:#e84d2d;color:#fff}
.square-page .footnote{font-size:9px;color:#9a8e80;line-height:1.6;margin-top:13px;padding-top:0;border:0;text-align:center}
.square-page footer{font-size:12px;color:#84796b;border-top:1px solid #ded8cc;margin-top:0;padding-top:23px;padding-bottom:30px}
@media(max-width:1100px){.square-page #list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.square-page header>div,.square-page main,.square-page footer{padding-left:20px;padding-right:20px}.square-page header>div{min-height:76px}.square-brand{font-size:17px;gap:8px}.square-page header nav{gap:12px}.square-page header nav>a{display:none}.square-page main{padding-top:26px}.square-page h1{font-size:28px}.square-page .filters{grid-template-columns:1fr 1fr;padding:15px;gap:12px;border-radius:14px}.square-page .filters>label:first-child{grid-column:1/-1}.square-page #list{grid-template-columns:1fr}.square-page .opportunity-card{padding:22px;border-radius:20px}.square-page .notice{font-size:11px}.square-page .intro{font-size:14px}}

.square-page .filters{grid-template-columns:2fr repeat(4,minmax(0,1fr))}.square-page .card-facts p{grid-template-columns:66px minmax(0,1fr);overflow-wrap:anywhere}@media(max-width:1100px){.square-page .filters{grid-template-columns:repeat(2,minmax(0,1fr))}.square-page .filters>label:first-child{grid-column:1/-1}}

/* Keep the directory heading compact; longer guidance is opt-in. */
.square-page header>div,.square-page main,.square-page footer{width:min(1240px,calc(100% - 96px));max-width:none;padding-left:0;padding-right:0}
.square-page main{padding-top:32px}.square-page h1{margin:0 0 12px}.square-page .intro{max-width:none;margin:0 0 20px;line-height:1.7}
.square-page .square-guide{margin:0 0 24px;border-top:1px solid #e0dacf;border-bottom:1px solid #e0dacf;color:#756b5e;font-size:13px}
.square-page .square-guide>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;cursor:pointer;list-style:none;font-weight:500}
.square-page .square-guide>summary::-webkit-details-marker{display:none}.square-page .guide-toggle:after{content:'＋';font-size:17px;color:#a56c53}.square-page .square-guide[open] .guide-toggle:after{content:'−'}
.square-page .guide-body{padding:0 0 8px}.square-page .guide-body section{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid #eae4da;margin:0}
.square-page .guide-body h2{font-size:13px;line-height:1.8;margin:0;color:#48483e;font-weight:600}.square-page .guide-body p{max-width:74ch;margin:0;font-size:13px;line-height:1.8;text-align:left;overflow-wrap:anywhere}.square-page .guide-body a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){.square-page header>div,.square-page main,.square-page footer{width:calc(100% - 64px)}}
@media(max-width:650px){.square-page header>div,.square-page main,.square-page footer{width:calc(100% - 40px);padding-left:0;padding-right:0}.square-page main{padding-top:24px}.square-page .intro{font-size:13px;line-height:1.8}.square-page .guide-body section{grid-template-columns:1fr;gap:5px}.square-page .square-guide{margin-bottom:20px}}

/* Shared across every generated language. New filters are intentionally
   compact on desktop and stack naturally on narrow phones. */
.square-page .square-header-row{display:flex;align-items:center;justify-content:space-between;gap:18px}
.square-page .square-brand{min-width:0;flex:1 1 300px;font-size:clamp(15px,1.65vw,20px)}
.square-page .square-brand>span{min-width:0}
.square-page .square-header-nav{flex:0 1 auto;white-space:normal;justify-content:center}
.square-page .square-header-nav>a{white-space:nowrap}
.square-page .filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end}
.square-page .filters>label{min-width:0;margin:0}
.square-page .filters .search-control{grid-column:span 2}
.square-page .filters label>span{display:block;min-height:20px;font-size:12px;line-height:1.5}
.square-page .filters input,.square-page .filters select{width:100%;max-width:100%;margin-top:5px;min-width:0;font:inherit;font-size:13px}
.square-page .filters input[type=search]{font-size:14px}
.square-page .filter-actions{align-self:end;grid-column:span 1}
.square-page #clear-filters{display:block;width:100%;min-height:43px;margin:0;border:1px solid #d7ccc0;background:transparent;color:#6d594c;border-radius:9px;font-size:13px;font-weight:600}
.square-page #clear-filters:hover,.square-page #clear-filters:focus-visible{background:#f6efe7;border-color:#c7482b}
.square-page .source-language-note{font-size:12px;color:#7c746a;margin:15px 0 0;line-height:1.7}
.square-page .loading-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:26px 0}
.square-page .loading-actions button{background:#2b3830;border-color:#2b3830;border-radius:10px;min-height:42px;font-size:13px;padding:10px 22px}
.square-page .loading-actions [hidden]{display:none}
.square-page .square-empty{grid-column:1/-1;margin:0;padding:38px 25px;border:1px dashed #ded5c8;border-radius:16px;background:#fffefa;color:#7b7369;text-align:center;font-size:14px;line-height:1.85}
.square-page .opportunity-card h2{overflow-wrap:anywhere}
.square-page .opportunity-card .source-label{overflow-wrap:anywhere}
.square-page .opportunity-card .card-facts p{grid-template-columns:88px minmax(0,1fr);gap:10px;overflow-wrap:anywhere}
.square-page .opportunity-card .card-facts span{white-space:normal}
.square-page .card-details>div p{white-space:pre-line;overflow-wrap:anywhere;line-height:1.75}
.square-page .budget-box .price{overflow-wrap:anywhere}
.square-page .opportunity-card .source{overflow-wrap:anywhere;text-align:center}
.square-page .card-tags>span{background:#fbf5ef}
.square-page .square-guide p{overflow-wrap:anywhere}
.square-page #list{margin-top:13px}
.square-page button:focus-visible,.square-page a:focus-visible,.square-page summary:focus-visible{outline:2px solid #c7482b;outline-offset:3px}
@media(max-width:1150px){
 .square-page .square-header-row{flex-wrap:wrap}
 .square-page .square-header-nav{flex:0 1 auto}
 .square-page .filters{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
 .square-page header .square-header-row{gap:10px}
 .square-page .square-brand{flex:1 1 60%;font-size:16px}
 .square-page .square-brand img{width:34px;height:34px}
 .square-page .square-header-nav{display:none}
 .square-page .filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px}
 .square-page .filters .search-control{grid-column:1/-1}
 .square-page #list{grid-template-columns:1fr}
 .square-page .opportunity-card .card-facts p{grid-template-columns:88px minmax(0,1fr)}
}
@media(max-width:400px){
 .square-page header .square-header-row{flex-wrap:wrap;align-items:center}
 .square-page .square-brand{flex:1 1 180px}
 .square-page .filters{grid-template-columns:1fr 1fr;gap:10px;padding:12px}
 .square-page .filters label>span{font-size:11px}
 .square-page .filter-actions{grid-column:1/-1}
 .square-page .opportunity-card{padding:18px}
}
@media(prefers-reduced-motion:reduce){.square-page *{scroll-behavior:auto!important;transition:none!important}}

/* The homepage is the sole display-language selector. */
.square-page .square-header-row{justify-content:space-between}
.square-page .square-brand{flex:0 1 auto}
.square-page .square-header-nav{flex:0 1 auto;margin-left:auto}
@media(max-width:760px){.square-page .square-brand{flex:1 1 auto}}
