:root{--bg:#fbf9f4;--bg-soft:#f4f0e7;--card:#fff;--ink:#3c3a33;--ink-soft:#78766c;--ink-faint:#a5a296;--accent:#5f9e7e;--accent-deep:#4a8567;--accent-soft:#e6f1e9;--peach:#eda583;--peach-soft:#fbeadf;--gold:#e9b45f;--border:#e9e4d6;--border-soft:#f1ede3;--radius-lg:18px;--radius-md:14px;--radius-sm:10px;--radius-pill:999px;--shadow-sm:0 2px 8px rgba(96,88,60,.06);--shadow-md:0 6px 18px rgba(96,88,60,.09);--shadow-lift:0 10px 24px rgba(96,88,60,.12);--font-head:"Noto Serif SC","Source Han Serif SC","Songti SC",Georgia,"STSong",serif;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;--maxw:1120px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent-deep);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--accent-soft);color:var(--accent-deep)}.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:hsla(43,47%,97%,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft)}.site-header-inner{justify-content:space-between;height:62px}.brand,.site-header-inner{display:flex;align-items:center}.brand{gap:10px;font-family:var(--font-head);font-weight:700;font-size:19px;color:var(--ink)}.brand:hover{text-decoration:none}.brand .brand-mark{width:34px;height:34px;border-radius:11px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:18px;box-shadow:var(--shadow-sm)}.brand .brand-tag{font-size:12px;color:var(--accent-deep);font-weight:600;margin-left:2px}.nav{display:flex;gap:4px}.nav a{padding:7px 14px;border-radius:var(--radius-pill);color:var(--ink-soft);font-size:14.5px;font-weight:500}.nav a:hover{text-decoration:none}.nav a.active,.nav a:hover{background:var(--accent-soft);color:var(--accent-deep)}.nav a.active{font-weight:600}.site-footer{margin-top:72px;border-top:1px solid var(--border-soft);background:var(--bg-soft)}.site-footer-inner{padding:36px 24px 40px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}.site-footer p{font-size:13.5px;color:var(--ink-faint);max-width:640px}.hero{padding:64px 0 56px;text-align:center;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:-40% -10% auto;height:130%;background:radial-gradient(420px 300px at 22% 18%,rgba(95,158,126,.1),transparent 70%),radial-gradient(380px 280px at 78% 26%,hsla(19,75%,72%,.1),transparent 70%);pointer-events:none}.hero-inner{position:relative;max-width:760px;margin:0 auto}.hero .eyebrow{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-deep);font-size:13px;font-weight:600;margin-bottom:20px}.hero h1{font-family:var(--font-head);font-size:clamp(30px,5vw,44px);line-height:1.35;font-weight:700;letter-spacing:.01em}.hero h1 .hl{color:var(--accent-deep)}.hero .sub{margin-top:16px;color:var(--ink-soft);font-size:16.5px}.search-box{margin:30px auto 0;max-width:560px;display:flex;align-items:center;background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius-pill);padding:6px 8px 6px 20px;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,border-color .15s ease}.search-box:focus-within{border-color:var(--accent);box-shadow:var(--shadow-md)}.search-box input{flex:1 1;border:none;outline:none;background:transparent;font-size:15.5px;color:var(--ink);padding:10px 0;font-family:var(--font-body)}.search-box input::placeholder{color:var(--ink-faint)}.search-box button{border:none;background:var(--accent);color:#fff;font-size:14.5px;font-weight:600;padding:9px 22px;border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font-body);transition:background .15s ease}.search-box button:hover{background:var(--accent-deep)}.stats-row{display:flex;justify-content:center;gap:44px;margin-top:28px;flex-wrap:wrap}.stat{text-align:center}.stat .num{font-family:var(--font-head);font-size:26px;font-weight:700;color:var(--accent-deep)}.stat .label{font-size:13px;color:var(--ink-faint);margin-top:2px}.section{margin-top:60px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px}.section-head h2{font-family:var(--font-head);font-size:23px;font-weight:700;display:flex;align-items:center;gap:9px}.section-head h2 .emoji{font-size:21px}.section-head .more{font-size:14px;color:var(--accent-deep);font-weight:500}.chip-wrap{display:flex;flex-wrap:wrap;gap:9px}.chip{display:inline-flex;align-items:center;padding:7px 16px;border-radius:var(--radius-pill);background:var(--card);border:1px solid var(--border);color:var(--ink-soft);font-size:14px;transition:all .15s ease}.chip:hover{border-color:var(--accent);color:var(--accent-deep);background:var(--accent-soft);text-decoration:none;transform:translateY(-1px)}.chip.selected{background:var(--accent);border-color:var(--accent);color:#fff}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:18px;gap:18px}.p-card{display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:20px 22px;box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease}.p-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);text-decoration:none}.p-card-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.p-card h3{font-size:16.5px;font-weight:600;line-height:1.55;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.p-card .orig{font-size:12.5px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-card .meta{font-size:13.5px;color:var(--ink-soft);gap:6px;flex-wrap:wrap}.p-card .meta,.p-card-bottom{display:flex;align-items:center}.p-card-bottom{margin-top:auto;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px dashed var(--border-soft)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:var(--radius-pill);white-space:nowrap}.badge-country{background:var(--bg-soft);color:var(--ink-soft)}.badge-funding{background:var(--accent-soft);color:var(--accent-deep)}.badge-deadline{background:var(--peach-soft);color:#b96a45}.badge-fresh{background:#fbe9e4;color:#c05a50}.badge-open{background:var(--bg-soft);color:var(--ink-soft)}.badge-expired{background:#ecebe6;color:var(--ink-faint)}.badge-competition-low{background:#e8f2ea;color:#4c8a63}.badge-competition-mid{background:#f7efd8;color:#9a7b2e}.badge-competition-high{background:var(--peach-soft);color:#c0633d}.badge-competition-extreme{background:#f7dfd6;color:#b0482e}.badge-discipline{background:transparent;color:var(--ink-faint);font-weight:500;border:1px solid var(--border);padding:2px 9px}.stars{color:var(--gold);font-size:14px;letter-spacing:1px}.stars .off{color:#ddd5c4}.diff-label{font-size:12.5px;color:var(--ink-soft);margin-left:4px}.page-title{padding:40px 0 8px}.page-title h1{font-family:var(--font-head);font-size:30px;font-weight:700}.page-title .desc{color:var(--ink-soft);margin-top:6px;font-size:15px}.filter-panel{margin:20px 0 26px;background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:16px 20px;box-shadow:var(--shadow-sm)}.filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-row+.filter-row{margin-top:12px}.filter-row input[type=text],.filter-row select{font-family:var(--font-body);font-size:13.5px;color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 12px;outline:none;transition:border-color .15s ease;max-width:180px}.filter-row input[type=text]:focus,.filter-row select:focus{border-color:var(--accent)}.filter-row button{border:none;background:var(--accent);color:#fff;font-size:13.5px;font-weight:600;padding:8px 20px;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body)}.filter-row button:hover{background:var(--accent-deep)}.filter-row .btn-ghost{background:var(--bg-soft);color:var(--ink-soft)}.filter-row .btn-ghost:hover{background:var(--peach-soft);color:#b96a45}.result-count{font-size:14px;color:var(--ink-soft);margin-bottom:14px}.result-count strong{color:var(--accent-deep);font-family:var(--font-head);font-size:16px}.detail-head{padding:36px 0 20px}.detail-head .back{font-size:14px;color:var(--ink-soft)}.detail-head h1{font-family:var(--font-head);font-size:29px;font-weight:700;line-height:1.45;margin-top:10px}.detail-head .orig-title{color:var(--ink-soft);font-size:15px;margin-top:6px;font-style:italic}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;grid-gap:22px;gap:22px;align-items:start}.panel{background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:24px 26px;box-shadow:var(--shadow-sm)}.panel+.panel{margin-top:18px}.panel h2{font-family:var(--font-head);font-size:17px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px}.kv{display:grid;grid-template-columns:96px 1fr;grid-row-gap:10px;row-gap:10px;font-size:14.5px}.kv dt{color:var(--ink-faint)}.kv dd{color:var(--ink)}.bi-block{display:grid;grid-gap:12px;gap:12px}.bi-block .zh{font-size:15px;line-height:1.85}.bi-block .en{line-height:1.8;border-left:3px solid var(--accent-soft);padding-left:14px}.bi-block .en,.diff-card{font-size:13.5px;color:var(--ink-soft)}.diff-card{display:flex;flex-direction:column;gap:6px;background:var(--bg);border-radius:var(--radius-md);padding:14px 16px}.diff-card .row{display:flex;align-items:center;gap:8px}.source-link{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:#fff;padding:9px 20px;border-radius:var(--radius-pill);font-size:14px;font-weight:600;transition:background .15s ease}.source-link:hover{background:var(--accent-deep);text-decoration:none}.notice{background:var(--peach-soft);border:1px solid #f3d8c6;color:#9a5b3c;font-size:13px;border-radius:var(--radius-md);padding:12px 16px;margin-top:16px}.wizard{max-width:880px;margin:0 auto}.wizard .step-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.wizard .step-num{width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex-shrink:0}.wizard h2{font-family:var(--font-head);font-size:20px;font-weight:700}.wizard .hint{color:var(--ink-soft);font-size:14px;margin:-6px 0 16px 46px}.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));grid-gap:8px;gap:8px;margin-bottom:10px}.pick{display:flex;align-items:center;gap:8px;padding:9px 13px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--card);cursor:pointer;font-size:14px;color:var(--ink-soft);transition:all .12s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-family:var(--font-body)}.pick.on,.pick:hover{border-color:var(--accent)}.pick.on{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}.pick .check{font-size:13px}.wizard-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:26px}.btn{border:none;cursor:pointer;font-family:var(--font-body);font-size:15px;font-weight:600;padding:11px 26px;border-radius:var(--radius-pill);transition:all .15s ease}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-deep)}.btn-primary:disabled{background:#c6d6ca;cursor:not-allowed}.btn-ghost{background:var(--bg-soft);color:var(--ink-soft)}.btn-ghost:hover{background:var(--peach-soft);color:#b96a45}.result-summary{text-align:center;padding:30px 20px;margin-bottom:20px}.result-summary .count{font-family:var(--font-head);font-size:20px;color:var(--ink-soft)}.result-summary .count strong{color:var(--accent-deep);font-size:30px}.match-card{margin-bottom:16px}.match-card .score{font-family:var(--font-head);font-size:30px;font-weight:700;color:var(--accent-deep);text-align:center;min-width:62px}.match-card .score small{display:block;font-family:var(--font-body);font-size:12px;color:var(--ink-faint);font-weight:400}.dim-list{display:grid;grid-gap:7px;gap:7px;margin:12px 0}.dim{display:grid;grid-template-columns:78px 1fr;align-items:center;grid-gap:12px;gap:12px;font-size:13px}.dim .dlabel{color:var(--ink-soft);text-align:right}.dim .bar{height:8px;border-radius:4px;background:var(--bg-soft);overflow:hidden}.dim .bar i{display:block;height:100%;border-radius:4px;background:var(--accent)}.dim .bar i.warn{background:var(--peach)}.dim .ddetail{grid-column:2;font-size:12px;color:var(--ink-faint);margin-top:-4px}.barrier-list,.reason-list{list-style:none;display:grid;grid-gap:6px;gap:6px}.barrier-list li,.reason-list li{font-size:13.5px;color:var(--ink-soft);padding-left:20px;position:relative}.reason-list li:before{content:"✦";position:absolute;left:2px;color:var(--accent);font-size:12px;top:2px}.barrier-list li:before{content:"⚠";position:absolute;left:1px;color:var(--peach);font-size:12px;top:1px}.prose{max-width:760px}.prose h2{font-family:var(--font-head);font-size:22px;font-weight:700;margin:40px 0 14px}.prose h3{font-size:17px;font-weight:600;margin:26px 0 10px;color:var(--accent-deep)}.prose p{margin:10px 0;color:var(--ink)}.prose ol,.prose ul{margin:10px 0 10px 22px;display:grid;grid-gap:6px;gap:6px}.prose li{color:var(--ink-soft)}.prose .callout{background:var(--accent-soft);border-radius:var(--radius-md);padding:14px 18px;font-size:14px;color:var(--accent-deep);margin:16px 0}.prose .callout.peach{background:var(--peach-soft);color:#9a5b3c}.prose table{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0}.prose td,.prose th{border:1px solid var(--border-soft);padding:9px 12px;text-align:left}.prose th{background:var(--bg-soft);font-weight:600}.prose td{color:var(--ink-soft)}@media (max-width:860px){.detail-grid{grid-template-columns:1fr}.hero{padding:48px 0 40px}.stats-row{gap:26px}.site-header-inner{height:auto;flex-direction:column;gap:6px;padding:10px 0}.nav{flex-wrap:wrap;justify-content:center}.nav a{padding:5px 10px;font-size:14px}}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}