:root{--canvas:#f4f7fa;--surface:#fff;--soft:#eef3f7;--line:#dce5ec;--ink:#102a43;--muted:#526779;--teal:#126b75;--teal-soft:#e4f3f1;--amber:#9c651d;--amber-soft:#fff3dc;--red:#9b4738;--red-soft:#faeae6;--shadow:0 10px 32px rgba(16,42,67,.07);font-family:"Avenir Next","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #78b5b4;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.025em}.skip-link{position:absolute;top:-60px;left:12px;z-index:100;background:var(--ink);color:#fff;padding:10px 14px;border-radius:7px}.skip-link:focus{top:12px}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar-inner{max-width:1560px;margin:auto;min-height:66px;padding:0 32px;display:flex;align-items:center;gap:42px}.brand{text-decoration:none;display:flex;align-items:center;gap:10px;white-space:nowrap}.brand-symbol{display:grid;place-items:center;width:32px;height:32px;background:var(--teal);color:#fff;border-radius:7px;font:800 18px/1 "Avenir Next",sans-serif;letter-spacing:-.08em}.brand-name{font-size:17px;font-weight:800;letter-spacing:-.035em}.brand-name span{font-size:15px;font-weight:650;letter-spacing:0}.main-nav{display:flex;align-items:center;gap:4px;height:66px}.main-nav a{display:flex;align-items:center;height:100%;padding:0 16px;border-bottom:3px solid transparent;font-size:15px;font-weight:650;text-decoration:none;color:var(--muted);white-space:nowrap}.main-nav a:hover{color:var(--ink)}.main-nav a[aria-current="page"]{color:var(--teal);border-color:var(--teal)}.topbar-year{margin-left:auto;background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:7px 10px;color:var(--muted);font-size:13px;white-space:nowrap}
.main-content{max-width:1560px;margin:auto;padding:26px 32px 42px;min-height:calc(100vh - 120px)}.view[hidden]{display:none!important}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:21px}.overline{font-size:12px;font-weight:800;letter-spacing:.11em;color:var(--teal);text-transform:uppercase;margin:0 0 5px}.page-heading h1{font-size:29px;line-height:1.22;margin:0 0 6px;font-weight:800}.page-subtitle{color:var(--muted);font-size:15px;margin:0;line-height:1.5}.heading-note{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);white-space:nowrap;padding-bottom:3px}.heading-dot{height:7px;width:7px;border-radius:50%;background:var(--teal)}.heading-divider{color:#a7b4c0;margin:0 2px}.quick-facts{display:flex;align-items:center;gap:0;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:18px;min-height:74px}.quick-facts>div{padding:12px 24px;border-right:1px solid var(--line);display:flex;align-items:baseline;gap:11px;white-space:nowrap}.quick-facts>div span{font-size:13px;color:var(--muted)}.quick-facts strong{font-size:22px;line-height:1.1;font-weight:800;font-variant-numeric:tabular-nums}.quick-facts strong small{font-size:13px;font-weight:600;color:var(--muted)}.quick-facts p{margin:0 20px 0 auto;max-width:390px;font-size:13px;color:var(--muted);line-height:1.5}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(325px,380px);gap:16px;align-items:start}.catalogue,.detail-panel,.timeline-list,.timeline-side,.material-block,.input-sheet,.sample-index,.sample-content{background:#fff;border:1px solid var(--line);border-radius:10px}.catalogue{min-width:0;overflow:hidden}.catalogue-controls{padding:18px 18px 0}.search-wrap{max-width:620px}.search-wrap label,.filter-grid label{display:block;color:var(--muted);font-size:13px;font-weight:700;margin-bottom:6px}.search-input-wrap{position:relative}.search-input-wrap svg{position:absolute;top:50%;left:13px;width:18px;height:18px;transform:translateY(-50%);fill:none;stroke:#7790a0;stroke-width:1.9}.search-input-wrap input{height:41px;border:1px solid #cbd9e3;border-radius:7px;width:100%;padding:0 12px 0 40px;background:#fff;font-size:14px;color:var(--ink)}.search-input-wrap input::placeholder{color:#8396a4}.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:13px;max-width:620px}.filter-grid select{height:36px;width:100%;border:1px solid #cbd9e3;border-radius:7px;padding:0 9px;background:#fff;color:var(--ink);font-size:13px}.region-filters{display:flex;gap:8px;overflow-x:auto;margin-top:17px;padding-bottom:12px;scrollbar-width:thin}.region-chip{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:6px;padding:7px 12px;white-space:nowrap;font-size:13px;font-weight:700}.region-chip span{font-size:12px;color:inherit;opacity:.75;margin-left:6px}.region-chip:hover{border-color:#9bb7bb;color:var(--teal)}.region-chip[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}.list-tools{min-height:40px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.list-tools>div{display:flex;gap:12px}.plain-button{border:0;background:none;color:var(--teal);padding:6px 0;font-size:13px;font-weight:700;white-space:nowrap}.plain-button[aria-pressed="true"]{color:#9c651d}.plain-button:hover{text-decoration:underline}.list-head{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(128px,.92fr) minmax(95px,.65fr) 64px;gap:8px;background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 18px;color:var(--muted);font-size:12px;font-weight:800}.list-head span:last-child{text-align:center}.program-list{min-height:360px}.program-row{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(128px,.92fr) minmax(95px,.65fr) 64px;gap:8px;align-items:stretch;border-bottom:1px solid var(--line);min-height:88px;position:relative}.program-row:last-child{border-bottom:0}.program-row.is-selected{background:#f4faf9}.program-row.is-selected:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--teal)}.program-row:hover{background:#f8fbfc}.program-select{display:contents;border:0;background:transparent;color:inherit;text-align:left}.program-cell{padding:13px 0;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px;text-align:left}.program-cell:first-child{padding-left:18px}.program-school{font-size:13px;font-weight:750;color:var(--ink)}.program-school span{font-weight:550;color:var(--muted);margin-left:6px}.program-name{font-size:14px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.program-sub{font-size:12px;color:var(--muted)}.date-cell{font-size:12px;line-height:1.35;color:var(--muted);padding-right:4px}.date-cell strong{font-size:13px;color:var(--ink);font-weight:750}.lang-cell{font-size:12px;color:var(--muted);line-height:1.35;padding-right:4px}.lang-cell strong{font-size:13px;color:var(--ink);font-weight:750}.row-action{display:flex;align-items:center;justify-content:center;padding-right:12px}.save-button{border:1px solid var(--line);border-radius:7px;width:34px;height:34px;background:#fff;color:#8499a7;font-size:22px;line-height:1}.save-button:hover,.save-button[aria-pressed="true"]{border-color:#dca860;color:var(--amber);background:#fffbf1}.empty-state{padding:42px 20px;text-align:center}.empty-state strong{font-size:17px}.empty-state p{color:var(--muted);font-size:14px;margin:7px 0 17px}.button-secondary{border:1px solid var(--teal);background:#fff;color:var(--teal);border-radius:7px;padding:8px 13px;font-weight:750;font-size:14px}
.detail-panel{position:sticky;top:82px;max-height:calc(100vh - 99px);overflow:auto;box-shadow:var(--shadow)}.detail-panel-top{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.06em;font-weight:800;color:var(--muted)}.icon-button{border:0;background:transparent;color:var(--muted);font-size:26px;line-height:1;width:29px;height:29px;border-radius:5px}.icon-button:hover{background:var(--soft);color:var(--ink)}.detail-content{padding:20px}.detail-title h2{font-size:20px;line-height:1.3;margin:0 0 5px}.detail-en{font-size:15px;line-height:1.35;font-weight:650;color:var(--ink);margin:0 0 14px;overflow-wrap:anywhere}.detail-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.badge{font-size:12px;font-weight:700;border-radius:4px;padding:4px 7px;background:var(--soft);color:var(--muted)}.badge.priority-冲刺{color:var(--red);background:var(--red-soft)}.badge.priority-重点核对,.badge.priority-优先准备{color:var(--teal);background:var(--teal-soft)}.badge.priority-加申,.badge.priority-方向备选,.badge.priority-作品集路线{color:var(--amber);background:var(--amber-soft)}.detail-deadline{border:1px solid #cfe4e1;background:#f4faf9;border-radius:8px;padding:13px;margin-bottom:18px}.detail-deadline span{display:block;color:var(--teal);font-size:12px;font-weight:800;margin-bottom:5px}.detail-deadline strong{font-size:15px;line-height:1.5;font-weight:700}.detail-section{padding:14px 0;border-top:1px solid var(--line)}.detail-section h3{font-size:13px;margin:0 0 7px;color:var(--muted);font-weight:800}.detail-section p{font-size:14px;line-height:1.65;margin:0}.detail-section dl{margin:0}.detail-section dl div+div{margin-top:12px}.detail-section dt{font-size:12px;color:var(--muted);font-weight:750;margin-bottom:3px}.detail-section dd{font-size:14px;line-height:1.6;margin:0}.detail-warning{border-left:3px solid #d29d54;background:#fff8eb;padding:10px 12px;font-size:13px;line-height:1.55;margin:8px 0 16px}.source-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.source-links a,.inline-link{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--teal);color:var(--teal);text-decoration:none;border-radius:6px;padding:8px 10px;font-size:13px;font-weight:750}.source-links a:first-child{background:var(--teal);color:#fff}.source-links a:hover,.inline-link:hover{box-shadow:0 0 0 2px #a8d1d0}.detail-empty{text-align:center;color:var(--muted);padding:36px 8px;font-size:14px}.detail-backdrop{display:none}.section-note{font-size:12px;color:var(--muted);margin:13px 0 0;line-height:1.6}
.notice-inline{background:#eaf4f4;border:1px solid #c9e1df;color:#29545a;padding:12px 16px;border-radius:8px;font-size:14px;line-height:1.6;margin-bottom:18px}.notice-inline strong{color:#16484e}.timeline-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}.timeline-list{overflow:hidden}.timeline-month{display:flex;align-items:center;gap:10px;padding:11px 18px;background:var(--soft);border-bottom:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:800}.timeline-entry{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:16px;align-items:center;padding:17px 18px;border-bottom:1px solid var(--line)}.timeline-entry:last-child{border-bottom:0}.timeline-date{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}.timeline-entry h3{font-size:15px;line-height:1.4;margin:0 0 3px}.timeline-entry p{color:var(--muted);font-size:13px;line-height:1.5;margin:0}.timeline-entry button{border:1px solid var(--line);background:#fff;color:var(--teal);border-radius:6px;padding:7px 9px;font-size:12px;font-weight:750;white-space:nowrap}.timeline-entry button:hover{border-color:var(--teal)}.timeline-side{padding:22px;position:sticky;top:82px}.timeline-side h2{font-size:17px;margin-bottom:15px}.timeline-side ol{padding-left:20px;margin:0 0 20px;color:var(--muted);font-size:14px;line-height:1.75}.timeline-side li+li{margin-top:10px}
.progress-box{width:180px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:11px 13px}.progress-box>span{display:block;color:var(--muted);font-size:12px}.progress-box strong{display:block;font-size:17px;margin:2px 0 8px}.progress-track{height:6px;background:#e6ecee;border-radius:4px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--teal);width:0;transition:width .2s}.materials-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:16px;align-items:start}.materials-list{display:grid;gap:14px}.material-block{overflow:hidden}.block-heading{display:flex;gap:14px;align-items:start;padding:18px 20px;border-bottom:1px solid var(--line)}.block-heading>span{background:var(--teal-soft);color:var(--teal);border-radius:5px;padding:4px 6px;font-size:12px;font-weight:800}.block-heading h2{font-size:17px;margin:0 0 4px}.block-heading p{font-size:13px;color:var(--muted);margin:0;line-height:1.4}.check-list label{display:flex;gap:13px;align-items:start;padding:14px 20px;border-bottom:1px solid var(--line);cursor:pointer}.check-list label:last-child{border:0}.check-list label:hover{background:#f9fbfc}.check-list input{accent-color:var(--teal);height:18px;width:18px;margin:2px 0 0;flex:none}.check-list strong{display:block;font-size:14px;margin-bottom:3px}.check-list small{display:block;font-size:13px;color:var(--muted);line-height:1.45}.input-sheet{padding:21px;position:sticky;top:82px}.small-label{font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--teal)}.input-sheet h2{font-size:19px;margin:6px 0 7px}.input-sheet-head p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}.input-sheet ol{padding-left:20px;margin:18px 0;color:var(--muted);font-size:13px;line-height:1.6}.input-sheet li+li{margin-top:10px}.input-sheet li strong{color:var(--ink)}.button-primary{background:var(--teal);border:1px solid var(--teal);color:#fff;border-radius:7px;padding:10px 14px;font-weight:750;font-size:14px}.button-primary:hover{background:#0d5961}.copy-feedback{min-height:18px;font-size:12px;color:var(--teal);margin:8px 0 0}.privacy-note{border-top:1px solid var(--line);padding-top:15px;margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
.sample-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}.sample-index{padding:7px;position:sticky;top:82px}.sample-index button{display:grid;grid-template-columns:27px minmax(0,1fr);column-gap:8px;width:100%;text-align:left;border:0;border-left:3px solid transparent;border-radius:5px;background:#fff;padding:13px 10px;color:var(--ink)}.sample-index button+button{margin-top:2px}.sample-index button:hover{background:#f7fafb}.sample-index button[aria-current="true"]{background:#eaf4f4;border-left-color:var(--teal)}.sample-index button span{grid-row:1/3;color:var(--teal);font-size:12px;font-weight:800;padding-top:2px}.sample-index button strong{font-size:14px}.sample-index button small{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.35}.sample-content{min-height:520px}.sample-article{padding:25px 30px}.sample-article[hidden]{display:none}.sample-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:15px}.sample-meta span{font-size:12px;font-weight:700;color:var(--muted);background:var(--soft);padding:5px 8px;border-radius:4px}.sample-article h2{font-size:22px;margin:0 0 8px}.sample-context{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:17px}.sample-paper{background:#fbfcfd;border:1px solid var(--line);border-radius:7px;padding:22px 25px;max-width:760px;color:#243e54}.sample-paper h3{font-size:15px;margin:0 0 4px}.paper-sub{font-size:12px;color:var(--muted);margin:0 0 10px}.sample-paper ul{padding-left:20px;margin:0;font-size:14px;line-height:1.65}.sample-paper li+li{margin-top:6px}.sample-paper.prose p{font:15px/1.78 Georgia,"Times New Roman",serif;margin:0}.sample-paper.prose p+p{margin-top:17px}.reference-paper dl,.portfolio-paper dl{margin:0}.reference-paper dl div,.portfolio-paper dl div{display:grid;grid-template-columns:84px 1fr;gap:14px;padding:10px 0;border-top:1px solid var(--line)}.reference-paper dt,.portfolio-paper dt{font-size:13px;font-weight:800;color:var(--muted)}.reference-paper dd,.portfolio-paper dd{font-size:14px;line-height:1.65;margin:0}.paper-kicker{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--teal);margin:0 0 7px}.portfolio-paper h3{font-size:17px;margin-bottom:16px}.sample-inputs{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.sample-inputs h3{font-size:15px;margin-bottom:8px}.sample-inputs ul{font-size:14px;color:var(--muted);line-height:1.7;padding-left:20px;margin:0}
.footer{max-width:1560px;margin:auto;padding:0 32px 26px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:12px}.noscript{max-width:900px;margin:20px auto;padding:15px;background:#fff5e6;border:1px solid #e1b568;border-radius:7px}
@media(max-width:1200px){.topbar-inner{gap:24px}.main-nav a{padding:0 11px}.workspace-grid{grid-template-columns:minmax(0,1fr) 330px}.quick-facts>div{padding:12px 16px}.quick-facts p{max-width:280px}}
@media(max-width:900px){.topbar-inner{padding:0 18px;gap:18px}.topbar-year{display:none}.main-content{padding:20px 18px 34px}.workspace-grid{display:block}.detail-panel{position:fixed;z-index:51;top:0;right:0;bottom:0;max-height:none;width:min(440px,100vw);border-radius:0;transform:translateX(101%);transition:transform .2s ease;box-shadow:-10px 0 40px rgba(16,42,67,.18)}.detail-panel.is-open{transform:translateX(0)}.detail-panel-top{position:sticky;top:0;background:#fff;z-index:1}.detail-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:50;background:rgba(16,42,67,.46)}.quick-facts p{display:none}.timeline-layout{grid-template-columns:1fr 230px}.materials-layout{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:650px){.topbar-inner{display:block;min-height:0;padding:8px 15px 0}.brand{height:36px}.brand-symbol{width:28px;height:28px;font-size:16px}.brand-name{font-size:16px}.brand-name span{font-size:14px}.main-nav{height:47px;gap:0;justify-content:space-between;overflow-x:auto}.main-nav a{padding:0 8px;font-size:13px}.main-content{padding:17px 12px 28px}.page-heading{display:block;margin-bottom:15px}.page-heading h1{font-size:24px}.page-subtitle{font-size:14px}.heading-note{font-size:11px;margin-top:12px;white-space:normal}.quick-facts{margin-bottom:12px;min-height:62px}.quick-facts>div{flex:1;display:block;padding:9px 10px;text-align:center}.quick-facts>div:last-of-type{border:0}.quick-facts>div span{display:block;font-size:11px}.quick-facts strong{font-size:17px}.quick-facts strong small{font-size:11px}.catalogue-controls{padding:13px 12px 0}.search-wrap{max-width:none}.filter-grid{max-width:none}.region-filters{margin-top:14px}.list-tools{align-items:start;padding:8px 0;flex-wrap:wrap}.list-tools>div{width:100%;justify-content:space-between}.list-head{display:none}.program-row{grid-template-columns:minmax(0,1fr) 45px;gap:0;min-height:0;padding:0 0 0 12px}.program-cell:first-child{padding:12px 0}.program-cell.date-cell,.program-cell.lang-cell{display:none}.program-school{font-size:12px}.program-name{font-size:14px}.row-action{padding:0 9px 0 0}.save-button{width:32px;height:32px}.program-sub{font-size:12px}.timeline-layout,.materials-layout,.sample-layout{display:block}.timeline-side,.input-sheet{position:static;margin-top:14px}.timeline-entry{grid-template-columns:70px minmax(0,1fr);gap:8px;padding:14px 12px}.timeline-date{font-size:15px}.timeline-entry button{grid-column:2;justify-self:start;margin-top:5px}.progress-box{width:100%;margin-top:13px}.material-block{margin-bottom:12px}.sample-index{position:static;display:flex;overflow-x:auto;margin-bottom:12px;gap:6px;padding:7px}.sample-index button{min-width:155px;max-width:180px;display:block;padding:10px}.sample-index button+button{margin:0}.sample-index button span{display:block}.sample-index button small{display:block}.sample-article{padding:18px 14px}.sample-article h2{font-size:19px}.sample-paper{padding:16px 14px}.reference-paper dl div,.portfolio-paper dl div{grid-template-columns:1fr;gap:3px}.footer{display:block;padding:0 14px 22px;line-height:1.7}.footer span{display:block}}
@media(max-width:380px){.main-nav a{font-size:12px;padding:0 5px}.brand-name span{font-size:13px}.filter-grid{gap:7px}.quick-facts>div{padding:8px 4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
.program-row{grid-template-columns:minmax(0,1fr) 64px;gap:0}
.program-select{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(128px,.92fr) minmax(95px,.65fr);gap:8px;width:100%;padding:0;cursor:pointer}
.detail-panel-top .icon-button{display:none}
@media(max-width:900px){.detail-panel-top .icon-button{display:block}}
@media(max-width:650px){.program-row{grid-template-columns:minmax(0,1fr) 45px}.program-select{grid-template-columns:1fr;gap:0}}
.advanced-toggle{display:none;border:0;background:transparent;color:var(--teal);font-size:13px;font-weight:750;padding:11px 0 0}
.advanced-toggle span{margin-left:3px}
@media(max-width:650px){.advanced-toggle{display:block}.filter-grid{display:none;margin-top:8px}.filter-grid.is-open{display:grid}}
.sample-official{color:var(--teal);font-weight:750;text-decoration:underline;text-underline-offset:2px}
.program-name{font-size:15px}
.detail-section p,.detail-section dd{font-size:16px;line-height:1.6}
.notice-inline,.sample-context,.sample-inputs ul,.input-sheet ol,.timeline-side ol{font-size:15px}
.sample-paper ul,.reference-paper dd,.portfolio-paper dd{font-size:15px}
@media(max-width:650px){.program-name{font-size:15px}.sample-context,.sample-inputs ul{font-size:15px}}
[hidden]{display:none!important}
.install-shortcut,.mobile-nav{display:none}
.install-reminder{display:grid;grid-template-columns:34px minmax(0,1fr) auto 30px;gap:10px;align-items:center;background:#eaf4f4;border:1px solid #c9e1df;border-radius:10px;padding:10px 12px;margin-bottom:14px}
.install-reminder-icon,.install-guide-icon{display:grid;place-items:center;background:var(--teal);color:#fff;border-radius:8px;font-family:"Avenir Next",sans-serif;font-weight:800;letter-spacing:-.08em}
.install-reminder-icon{width:34px;height:34px;font-size:20px}
.install-reminder-copy{display:grid;gap:2px;min-width:0}.install-reminder-copy strong{font-size:14px}.install-reminder-copy span{font-size:12px;line-height:1.35;color:var(--muted)}
.install-action{border:0;background:var(--teal);color:#fff;border-radius:7px;min-height:40px;padding:0 12px;font-size:13px;font-weight:800;white-space:nowrap}
.install-dismiss{border:0;background:transparent;color:var(--muted);border-radius:6px;width:30px;height:40px;font-size:22px;line-height:1}
.install-guide{border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;box-shadow:0 24px 70px rgba(16,42,67,.25)}
.install-guide::backdrop{background:rgba(16,42,67,.55)}.install-guide-head{display:flex;align-items:center;gap:12px}.install-guide-icon{width:44px;height:44px;font-size:26px}.install-guide-head p{color:var(--muted);font-size:12px;font-weight:700;margin:0 0 2px}.install-guide h2{font-size:21px;margin:0}.install-guide-lead{font-size:14px;line-height:1.55;color:var(--muted);margin:17px 0}.install-guide ol{counter-reset:steps;list-style:none;padding:0;margin:0 0 16px}.install-guide li{position:relative;padding:10px 0 10px 38px;font-size:14px;line-height:1.5;border-top:1px solid var(--line)}.install-guide li::before{counter-increment:steps;content:counter(steps);position:absolute;left:0;top:9px;display:grid;place-items:center;background:var(--teal-soft);color:var(--teal);width:25px;height:25px;border-radius:50%;font-size:12px;font-weight:800}.install-guide-note{font-size:12px;line-height:1.5;color:var(--muted);margin:0 0 18px}.install-guide .button-primary{width:100%;min-height:44px}
@media(max-width:650px){
  .topbar{padding-top:env(safe-area-inset-top)}
  .topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:55px;padding:6px 12px}
  .brand{min-width:0;gap:8px}.brand-name{font-size:16px}.brand-name span{font-size:13px}
  .main-nav{display:none}
  .install-shortcut:not([hidden]){display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 9px;border:1px solid #a4c8ca;border-radius:7px;background:#fff;color:var(--teal);font-size:12px;font-weight:750;white-space:nowrap}
  .mobile-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-height:calc(62px + env(safe-area-inset-bottom));padding:4px 5px env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 22px rgba(16,42,67,.07)}
  .mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;text-decoration:none;color:var(--muted);border-radius:7px;font-size:11px;font-weight:750}
  .mobile-nav a[aria-current="page"]{background:var(--teal-soft);color:var(--teal)}
  .mobile-nav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .main-content{padding:15px 12px calc(92px + env(safe-area-inset-bottom))}
  .page-heading{margin-bottom:12px}.page-heading h1{font-size:23px;margin-bottom:4px}.page-subtitle{font-size:13px;line-height:1.4}.overline{font-size:11px;margin-bottom:3px}.heading-note{margin-top:9px}
  .quick-facts{margin-bottom:11px}
  .search-input-wrap input{height:46px;font-size:16px}
  .filter-grid select{height:44px;font-size:16px}
  .advanced-toggle{min-height:44px;padding:10px 0}
  .region-filters{gap:7px;margin-top:7px;padding-bottom:10px;scroll-snap-type:x proximity}
  .region-chip{min-height:44px;padding:8px 12px;scroll-snap-align:start}
  .list-tools{padding:3px 0 5px}.plain-button{min-height:42px;padding:8px 0}
  .program-row{grid-template-columns:minmax(0,1fr) 54px}.program-cell:first-child{padding:13px 0}.program-select{min-height:74px}.row-action{padding-right:5px}.save-button{width:44px;height:44px;font-size:24px}
  .detail-panel-top{padding-top:calc(10px + env(safe-area-inset-top))}.detail-panel-top .icon-button{width:44px;height:44px}.detail-content{padding-bottom:calc(26px + env(safe-area-inset-bottom))}
  .source-links a,.inline-link,.timeline-entry button{min-height:44px}
  .check-list label{padding:16px 15px}.check-list input{width:22px;height:22px}
  .sample-index{scroll-snap-type:x proximity}.sample-index button{scroll-snap-align:start;min-height:72px}
  .footer{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
}
@media(max-width:380px){.install-reminder{grid-template-columns:30px minmax(0,1fr) 43px 24px;gap:6px;padding:9px}.install-reminder-icon{width:30px;height:30px;font-size:18px}.install-reminder-copy span{font-size:11px}.install-action{padding:0 8px}.install-dismiss{width:24px}.install-shortcut:not([hidden]){font-size:11px;padding:0 7px}}
