@charset "UTF-8";
:root{--bg:#f7f8fa;--paper:#fff;--ink:#202c38;--dim:#64717e;--faint:#74808c;--forest:#294a65;--line:#e0e5ea;--soft:#f0f3f6;--peach:#9a6950;--peach-bg:#f7f1eb;--blue:#3f6b91;--blue-bg:#edf3f8;--green:#50786c;--green-bg:#edf4f0;--purple:#76698c;--purple-bg:#f3f0f7;--ease:cubic-bezier(.2,.8,.2,1);--t-fast:.16s;--t:.22s;--t-slow:.32s;--song:"Songti SC","STSong","SimSun","NSimSun","Noto Serif SC","Source Han Serif SC","Source Han Serif CN",serif;--sans:var(--song)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 var(--sans);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{border:0;background:none;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit;text-decoration:none}button,input,select{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #517da4}h1,h2,h3,h4,p{margin:0}h1,h2,h3{line-height:1.4}svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button svg{pointer-events:none}[hidden]{display:none!important}::selection{background:#dce9f3}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{appearance:none}input[type=search]::-webkit-search-cancel-button{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:20px;z-index:2000;background:var(--forest);color:white;padding:12px 20px}.skip:focus{top:10px}.container{max-width:1580px;margin:auto;padding:0 44px}.topbar{height:76px;padding:0 max(44px,calc((100vw - 1492px)/2));display:flex;align-items:center;gap:40px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;background:#fffffff5;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;font-size:23px;font-weight:600;letter-spacing:2px;white-space:nowrap}.brand img{width:32px;height:32px}.brand-description{font-size:12px;letter-spacing:.5px;color:var(--dim);font-weight:400;border-left:1px solid #d8dfe6;padding-left:15px;margin-left:10px}.topbar nav{display:flex;align-self:stretch;align-items:center;gap:28px;margin-left:auto;margin-right:auto}.nav-item{height:100%;font-size:13px;position:relative;color:var(--dim);padding:0 3px;white-space:nowrap}.nav-item.active{color:var(--ink);font-weight:550}.nav-item.active::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--forest)}.nav-item span{display:inline-block;font-size:12px;border:1px solid #dce2e7;border-radius:4px;min-width:18px;text-align:center;line-height:17px;margin-left:7px;color:var(--dim)}.header-actions{display:flex;align-items:center;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 15px;border-radius:6px;border:1px solid #d6dee6;background:var(--paper);font-size:12px;line-height:1.5;white-space:nowrap;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.button:hover{background:#f0f4f8;border-color:#aebdcc}.button:active{background:#e7edf3}.button.primary{background:var(--forest);border-color:var(--forest);color:#fff}.button.primary:hover{background:#355e80}.button.lime{background:white;border-color:white;color:var(--forest)}.button.light{background:transparent;border-color:#ffffff55;color:white}.button svg{width:16px;height:16px}.icon-button{width:38px;height:38px;display:inline-grid;place-items:center;font-size:25px;border-radius:6px;line-height:1}.icon-button:hover{background:var(--soft)}.text-button{padding:4px 0;font-size:12px;min-height:30px;color:var(--dim);text-align:left}.text-button:hover{color:var(--forest)}.stage-button{font-size:14px}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#65837b;flex-shrink:0}.hero{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:38px 0 31px}.eyebrow{font-size:12px;font-weight:550;letter-spacing:2px;color:#778591;margin-bottom:13px}.hero h1{font-size:34px;font-weight:550;letter-spacing:.2px;line-height:1.5}.hero h1 span{color:#4c6881}.hero-copy>p{font-size:13px;color:var(--dim);margin-top:10px;letter-spacing:.1px}.hero-facts{padding-left:25px;border-left:1px solid var(--line);flex-shrink:0}.facts-label{display:block;font-size:12px;color:var(--dim);margin-bottom:7px}.hero-facts>div{display:flex;align-items:baseline;gap:7px}.hero-facts strong{font-size:23px;font-weight:450;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.hero-facts>div span{font-size:12px;color:var(--dim)}.hero-facts i{width:1px;height:13px;background:var(--line);margin:0 8px}.hero-facts .text-button{margin-top:4px;font-size:12px}.section-kicker{font-size:12px;letter-spacing:.5px;color:var(--dim);font-weight:500}
/* The positioning instrument: inputs, a true histogram, and consistent rank bands. */
.position-panel{display:grid;grid-template-columns:350px minmax(0,1fr) 205px;background:white;border:1px solid #dce3e9;border-radius:9px;box-shadow:0 3px 8px #22394c03;min-height:257px}.position-inputs{padding:23px 25px 17px;min-width:0}.position-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}.position-label h2{font-size:13px;font-weight:550}.demo-label{font-size:12px;color:var(--faint)}.position-top{display:flex;justify-content:space-between;align-items:center;gap:7px}.segmented{display:flex;border:1px solid #dce3e9;border-radius:5px;overflow:hidden;background:#f8fafb}.segmented button{font-size:12px;min-height:31px;padding:4px 12px;color:var(--dim)}.segmented button+button{border-left:1px solid #dce3e9}.segmented button[aria-pressed=true]{background:#e9eff5;color:var(--forest)}.subject-open{font-size:12px;color:var(--dim);min-height:32px;padding:0;display:flex;gap:9px;align-items:center}.score-line{display:flex;align-items:center;gap:7px;margin-top:16px}.score-field label{display:block;font-size:12px;color:var(--dim);margin-bottom:3px}.number-wrap{display:flex;align-items:baseline;gap:4px}.number-wrap input{font-size:44px;width:98px;min-height:53px;padding:0;background:none;border:0;letter-spacing:-2px;line-height:1.2;font-weight:430;font-variant-numeric:tabular-nums}.number-wrap span{font-size:12px;color:var(--dim)}.score-controls{display:flex;flex-direction:column;gap:3px;margin-top:14px}.circle-button{width:21px;height:21px;border:1px solid #dce3e9;border-radius:3px;display:grid;place-items:center;padding:0;font-size:13px;line-height:1}.circle-button:hover{background:var(--soft)}.rank-summary{margin-left:auto;padding-left:16px;border-left:1px solid var(--line);min-width:116px}.rank-summary>span{display:block;font-size:12px;color:var(--dim)}.rank-summary strong{display:block;font-size:24px;font-weight:450;letter-spacing:-.6px;font-variant-numeric:tabular-nums;line-height:1.6}.rank-summary .text-button{font-size:12px;min-height:23px;padding:0}.rank-mode .number-wrap input{width:120px;font-size:33px;letter-spacing:-1px}.rank-mode .score-controls{display:none}.position-inputs input[type=range]{appearance:none;width:100%;height:23px;margin:12px 0 0;background:transparent;cursor:ew-resize;touch-action:pan-y}.position-inputs input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:#d9e2e9}.position-inputs input[type=range]::-webkit-slider-thumb{appearance:none;width:13px;height:13px;background:var(--forest);border:2px solid white;box-shadow:0 0 0 1px var(--forest);border-radius:50%;margin-top:-5px}.position-inputs input[type=range]::-moz-range-track{height:3px;background:#d9e2e9}.position-inputs input[type=range]::-moz-range-thumb{width:11px;height:11px;background:var(--forest);border:2px solid white;border-radius:50%}.range-ends{display:flex;justify-content:space-between;gap:5px;font-size:12px;color:var(--faint)}.range-ends span:nth-child(2){font-size:12px}.position-note{font-size:12px;line-height:1.65;margin-top:9px;color:var(--dim);min-height:27px}.position-note.error{color:#a45245}.position-chart{padding:23px 28px 15px;border-left:1px solid var(--line);border-right:1px solid var(--line);min-width:0}.chart-heading{display:flex;justify-content:space-between;gap:10px;align-items:center}.chart-heading h3{font-size:13px;font-weight:550}.chart-heading>span{font-size:12px;color:var(--dim)}.position-chart>p:first-of-type{font-size:12px;color:var(--dim);margin-top:6px}.distribution-chart{min-height:133px}.chart-plot{position:relative;height:92px;margin-top:30px;border-bottom:1px solid #dfe6ec;background:repeating-linear-gradient(to top,transparent 0,transparent calc(33.33% - 1px),#eef1f4 calc(33.33% - 1px),#eef1f4 33.33%)}.chart-max{position:absolute;left:0;top:-19px;font-size:12px;color:var(--faint)}.hist-bars{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--bins),minmax(0,1fr));gap:3px;align-items:stretch}.hist-bar{padding:0;display:flex;align-items:flex-end;justify-content:stretch;position:relative;z-index:1;opacity:1!important;min-width:0}.hist-bar>span{width:100%;height:var(--height);min-height:0;background:#c7d3df;transition:height var(--t-slow) var(--ease),background var(--t-fast) var(--ease);border-radius:1px 1px 0 0}.hist-bar:hover>span,.hist-bar:focus-visible>span{background:#7694ae}.hist-bar.selected>span{background:var(--forest)}.hist-bar[disabled]{cursor:default}.chart-marker{position:absolute;top:-7px;bottom:-4px;width:1px;background:var(--forest);z-index:2;pointer-events:none;transition:left var(--t) var(--ease)}.chart-marker::after{content:"";position:absolute;bottom:-3px;left:-3px;width:7px;height:7px;border:1px solid white;background:var(--forest);border-radius:50%}.chart-marker>span{position:absolute;left:0;bottom:100%;transform:translateX(-50%);background:#fff;padding:0 4px 3px;white-space:nowrap;font-size:13px;font-weight:550;color:var(--forest);line-height:1.3;font-variant-numeric:tabular-nums}.chart-marker small{font-size:12px;font-weight:400;margin-left:3px}.chart-axis{display:flex;justify-content:space-between;font-size:12px;color:var(--faint);padding-top:7px;font-variant-numeric:tabular-nums}.chart-legend{display:flex;gap:15px;align-items:center;font-size:12px;color:var(--dim);margin-top:7px}.chart-legend>span{display:flex;align-items:center;gap:5px}.chart-legend i{width:7px;height:7px;background:#c7d3df}.chart-legend i.marker{height:9px;width:1px;background:var(--forest)}.chart-legend .text-button{font-size:12px;min-height:20px;margin-left:auto}.chart-readout{font-size:12px;color:var(--faint);line-height:1.5;margin-top:5px;min-height:27px}.chart-loading{font-size:12px;color:var(--dim);min-height:130px;display:flex;align-items:center;justify-content:center}.position-outlook{padding:23px 21px 17px}.position-outlook .section-kicker{font-size:12px}.outlook-numbers{display:flex;flex-direction:column;margin-top:12px;gap:0}.outlook-numbers button{display:flex;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid #edf0f3;font-size:12px;padding:2px 0;transition:background var(--t-fast) var(--ease)}.outlook-numbers button:hover{background:#f7f9fb}.outlook-numbers button strong{margin-left:auto;font-size:23px;font-weight:430;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.position-outlook>p{font-size:12px;line-height:1.8;color:var(--dim);margin-top:13px}.tier-dot{width:5px;height:5px;display:inline-block;border-radius:50%;background:var(--faint);flex-shrink:0}.tier-dot.peach{background:var(--peach)}.tier-dot.blue{background:var(--blue)}.tier-dot.green{background:var(--green)}
/* Query workspace: persistent filters and aligned, comparable results. */
.explorer{padding-top:35px}.workspace-layout{display:grid;grid-template-columns:202px minmax(0,1fr);gap:32px;align-items:start}.filter-sidebar{padding-right:25px;border-right:1px solid var(--line);position:sticky;top:100px;max-height:calc(100dvh - 120px);overflow:auto;scrollbar-width:thin;scrollbar-color:#ccd4dc transparent}.sidebar-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.sidebar-heading h2{font-size:13px;font-weight:550}.sidebar-heading .text-button{font-size:12px}.quick-filters{display:flex;flex-direction:column;gap:17px}.select-wrap label{display:block;font-size:12px;color:var(--dim);margin-bottom:7px}.select-wrap select{display:block;width:100%;border:1px solid #dce3e9;border-radius:5px;background:#fff;min-height:37px;padding:7px 8px;font-size:12px;cursor:pointer}.filter-open{margin-top:19px;width:100%;background:transparent;font-size:12px;min-height:37px;justify-content:flex-start}.filter-open svg{width:15px;height:15px}.count-badge{margin-left:auto;font-size:12px;background:#e7edf3;color:var(--forest);padding:0 5px;line-height:17px;border-radius:3px}.discovery{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);margin-top:23px;padding-top:18px}.discovery>span{font-size:12px;color:var(--faint);margin-bottom:9px}.discovery button{display:flex;align-items:center;justify-content:space-between;min-height:33px;font-size:12px;padding:4px 0;color:var(--dim);text-align:left}.discovery button span{color:#98a5b0}.discovery button:hover{color:var(--forest)}.sidebar-note{border-top:1px solid var(--line);margin-top:18px;padding-top:19px;font-size:12px;color:var(--dim)}.sidebar-note .live-dot{margin-bottom:7px}.sidebar-note p{font-size:12px;line-height:1.9}.sidebar-note .text-button{font-size:12px;margin-top:5px}.results-workspace{min-width:0}.search-box{height:48px;display:flex;align-items:center;gap:11px;padding:0 16px;background:white;border:1px solid #d9e1e8;border-radius:6px;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.search-box:focus-within{border-color:#7093b0;box-shadow:0 0 0 3px #4f779310}.search-box>svg{width:17px;height:17px;color:#7e8f9e}.search-box input{width:100%;height:100%;border:0;outline:none;background:none;font-size:12px;min-width:0}.search-box input::placeholder{color:#87949f}.search-box kbd{font:12px var(--sans);padding:0 5px;border:1px solid var(--line);border-radius:3px;color:#87949f}.search-box .icon-button{width:30px;height:30px;font-size:21px}.browse-bar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin-top:15px;gap:15px}.browse-tabs{display:flex;gap:29px}.browse-tabs button{padding:14px 0 13px;position:relative;color:#75828e;font-size:14px;white-space:nowrap}.browse-tabs button>span{font-size:12px;margin-left:9px;color:var(--faint)}.browse-tabs button[aria-selected=true]{color:var(--forest);font-weight:550}.browse-tabs button[aria-selected=true]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--forest)}.layout-toggle{display:flex;gap:0;border:1px solid #dbe2e9;border-radius:4px;overflow:hidden}.layout-toggle button{width:31px;height:28px;display:grid;place-items:center;color:#7b8b99}.layout-toggle button svg{width:14px;height:14px}.layout-toggle button[aria-pressed=true]{background:#e8eef4;color:var(--forest)}.tier-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 7px}.tier-tabs{display:flex;gap:4px;align-items:center}.tier-tabs button{display:flex;gap:6px;align-items:center;min-height:30px;border:1px solid transparent;border-radius:4px;font-size:12px;padding:4px 10px;color:var(--dim);white-space:nowrap;transition:background var(--t-fast) var(--ease)}.tier-tabs button[aria-pressed=true]{background:#e6edf4;color:var(--forest);border-color:#d3dee8}.tier-tabs button:hover{background:#edf2f6}.data-note{font-size:12px;white-space:nowrap;min-height:25px}.mobile-filter{display:none}.active-filters{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.active-filters:empty{display:none}.active-filters button{display:flex;align-items:center;gap:8px;font-size:12px;padding:3px 8px;border:1px solid #dce4eb;border-radius:4px;background:#f1f5f8;color:#597286;min-height:26px}.active-filters button.clear{border:0;background:transparent}.results-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:14px 0 10px;color:var(--dim);font-size:12px;min-height:30px}.results-heading strong{font-size:15px;color:var(--ink);font-weight:550;margin-right:3px;font-variant-numeric:tabular-nums}.results-heading p>span{font-size:12px;color:var(--faint)}.sort-wrap{display:flex;gap:7px;align-items:center;font-size:12px;white-space:nowrap}.sort-wrap label{color:var(--faint)}.sort-wrap select{background:transparent;border:0;font-size:12px;max-width:166px;min-height:30px;cursor:pointer}.results-table{border:1px solid #dfe5eb;border-radius:7px;overflow:hidden;background:#fff}.group-table{border-collapse:collapse;width:100%;table-layout:fixed;text-align:left}.group-table thead{background:#f2f5f8}.group-table th{padding:11px 14px;font-size:12px;font-weight:450;color:#687b8b;border-bottom:1px solid #dce4eb;white-space:nowrap}.group-table th:nth-child(1){width:27%}.group-table th:nth-child(2){width:24%}.group-table th:nth-child(3){width:13%}.group-table th:nth-child(4){width:11%}.group-table th:nth-child(5){width:14%}.group-table th:nth-child(6){width:11%}.group-row{transition:background var(--t-fast) var(--ease);animation:row-in .28s var(--ease) backwards;animation-delay:calc(var(--i,0)*18ms)}.group-row:hover,.group-row:focus-within{background:#f6f9fc}.group-row td{padding:18px 14px;vertical-align:middle;border-bottom:1px solid #e9edf1;overflow-wrap:anywhere}.group-row:last-child td{border-bottom:0}.row-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.school-name{font-size:15px;font-weight:550;text-align:left;padding:0;color:var(--ink);line-height:1.6}.school-name:hover{color:#3d6a8d}.row-meta{font-size:12px;color:#7d8994;margin-top:4px;line-height:1.65}.row-group-link{font-size:12px;margin-top:7px;min-height:23px;padding:0;color:#446b8a;text-align:left;line-height:1.6}.row-group-link span{color:var(--dim)}.col-major>p{font-size:12px;line-height:1.9;color:#475b6b;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.col-major>span{display:block;font-size:12px;color:#85919c;margin-top:7px;line-height:1.7}.col-score>strong{display:block;font-size:25px;font-weight:450;letter-spacing:-.7px;line-height:1.4;font-variant-numeric:tabular-nums}.score-gap{display:block;font-size:12px;color:#527a6c;margin-top:3px;line-height:1.6}.score-gap.negative{color:#8c715b}.col-rank{font-size:13px;font-variant-numeric:tabular-nums;color:#495f72;letter-spacing:-.2px}.col-fee>span{font-size:12px;display:block;line-height:1.6;font-variant-numeric:tabular-nums}.col-fee>small{display:block;font-size:12px;color:var(--faint);margin-top:5px}.col-actions{padding-left:5px!important;padding-right:10px!important;text-align:right}.mini-actions{display:inline-flex;gap:1px;vertical-align:middle}.mini-action{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:30px;height:32px;border-radius:4px;color:#8c9aa7;font-size:12px}.mini-action svg{width:15px;height:15px}.mini-action:hover{background:#e8eff5;color:var(--forest)}.mini-action[aria-pressed=true]{background:#e7eef4;color:var(--forest)}.mini-action[aria-pressed=true] .heart{fill:#c7d8e6;stroke:#355d7d}.row-open{width:26px;height:32px;font-size:16px;color:#5d7b93;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}.row-open:hover{background:#e6eef5}.tier-badge{display:inline-flex;align-items:center;font-size:12px;line-height:1.6;padding:2px 5px;border-radius:3px;background:#f1f3f5;color:#76818c;white-space:nowrap;font-weight:400}.tier-badge.peach{color:var(--peach);background:var(--peach-bg)}.tier-badge.blue{color:var(--blue);background:var(--blue-bg)}.tier-badge.green{color:var(--green);background:var(--green-bg)}.tier-badge.purple{color:var(--purple);background:var(--purple-bg)}
/* Optional cards use the same type, alignment and information hierarchy. */
.results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.result-card{background:white;border:1px solid #dce3ea;border-radius:7px;padding:23px 23px 0;display:flex;flex-direction:column;min-width:0;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);animation:row-in var(--t-slow) var(--ease) backwards;animation-delay:calc(var(--i,0)*20ms)}.result-card:hover{border-color:#9fb5c8}.card-top{display:flex;align-items:flex-start;gap:12px}.card-title{flex:1;min-width:0}.card-title .school-name{font-size:18px}.card-location{font-size:12px;color:var(--dim);margin-top:7px}.card-top>.tier-badge{margin-top:4px}.card-group{display:flex;align-items:center;gap:6px;margin-top:19px;font-size:12px;color:var(--dim);flex-wrap:wrap}.card-group strong{font-weight:500;color:#48677e}.card-majors{font-size:12px;line-height:1.9;color:#667789;margin:10px 0 19px;min-height:46px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-metrics{display:grid;grid-template-columns:1fr 1.2fr .8fr;gap:9px;padding:15px 0;border-top:1px solid #e9eef2;margin-top:auto}.card-metrics span{display:block;font-size:12px;color:var(--dim);margin-bottom:5px}.card-metrics strong{font-size:26px;font-weight:430;line-height:1.4;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.card-metrics strong small{font-size:12px;font-weight:400;color:var(--dim);margin-left:3px;letter-spacing:0}.card-metrics .rank-num{font-size:23px;line-height:1.6}.card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--dim);padding-bottom:16px}.match-ok{color:#50786c}.match-warn{color:#966c4e}.card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e9eef2;min-height:51px}.detail-link{font-size:12px;text-align:left;display:flex;align-items:center;gap:15px;padding:12px 0;flex:1;color:#4a6d87}.card-actions .mini-action{width:33px;height:34px}.tag-row{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 0}.tag{display:inline-block;font-size:12px;background:#f2f5f7;color:#687d8d;padding:2px 6px;border-radius:2px}.card-school-summary{font-size:12px;color:var(--dim);line-height:1.9;margin:19px 0}.school-card .card-metrics{grid-template-columns:1.5fr 1fr}.school-card .card-metrics strong{font-size:23px}.major-card .card-metrics{grid-template-columns:1fr 1fr}.more-area{display:flex;flex-direction:column;align-items:center;gap:11px;margin:25px 0 10px}.more-button{min-width:215px;background:transparent;gap:30px;font-size:12px}.more-area>span{font-size:12px;color:var(--faint)}.empty-state{grid-column:1/-1;text-align:center;padding:70px 24px;background:white;border:1px solid var(--line);border-radius:7px}.empty-state h3{font-size:20px;font-weight:500}.empty-state p{max-width:440px;font-size:12px;color:var(--dim);margin:14px auto 23px;line-height:1.9}.empty-mark{display:none}.skeleton{height:200px;border-radius:6px;background:linear-gradient(100deg,#edf1f5 20%,#fafbfd 45%,#edf1f5 70%);background-size:220% 100%;animation:shimmer 2s infinite}footer{border-top:1px solid var(--line);padding:27px 0 24px;margin-top:43px;display:flex;align-items:center;gap:20px;color:var(--dim);flex-wrap:wrap}.footer-brand{font-size:18px;letter-spacing:1px;gap:7px}.footer-brand img{width:24px;height:24px}footer p{font-size:12px;color:#7a8996}footer>div{display:flex;gap:18px;font-size:12px;align-items:center;margin-left:auto}footer>div .text-button{font-size:12px}footer>span{width:100%;font-size:12px;color:var(--faint);letter-spacing:1px;margin-top:-6px}
/* Drawers reveal detail without losing the comparison context. */
body:has(dialog[open]){overflow:hidden}dialog{border:1px solid #d7e0e8;border-radius:10px;background:#fff;color:var(--ink);padding:30px;max-height:90dvh;max-width:calc(100vw - 28px);box-shadow:0 24px 100px #1d344f26;overscroll-behavior:contain}dialog::backdrop{background:#17283840;backdrop-filter:blur(2px)}dialog[open]{animation:dialog-in var(--t-fast) var(--ease)}dialog h2{font-size:26px;line-height:1.5;font-weight:500;letter-spacing:0}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.dialog-top h2{margin-top:6px}.close-button{background:#f1f4f7;flex-shrink:0;font-size:26px}.dialog-description{font-size:12px;line-height:1.9;color:var(--dim);margin:13px 0 21px}.dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:22px;margin-top:23px}.filter-dialog{width:680px}.filter-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field label{font-size:12px;color:var(--dim);margin-bottom:7px;display:block}.field select{width:100%;background:#fff;border:1px solid #d6e0e8;border-radius:5px;padding:10px 11px;min-height:43px;font-size:12px}.check-row{display:flex;align-items:center;gap:9px;font-size:12px;min-height:39px}.check-row input{accent-color:var(--forest);width:16px;height:16px}.filter-fields .check-row{grid-column:1/-1}.small-dialog{width:480px}.subject-options{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:20px 0}.subject-options button{min-height:51px;border:1px solid #d9e2ea;border-radius:5px;font-size:13px;background:#fff}.subject-options button[aria-pressed=true]{background:var(--forest);border-color:var(--forest);color:#fff}.fine-print{font-size:12px;color:var(--dim);line-height:1.85;margin-top:12px}.help-dialog{width:790px}.help-dialog>h2{font-size:30px;line-height:1.55}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin:25px 0}.help-grid article{border-top:1px solid var(--line);padding:19px 0}.help-grid article>span{font-size:12px;color:#8093a3}.help-grid h3{font-size:15px;font-weight:500;margin:9px 0 12px}.help-grid p,details p{font-size:12px;line-height:1.9;color:var(--dim)}details{border-top:1px solid var(--line);padding:13px 0}summary{cursor:pointer;min-height:31px;line-height:31px;font-size:12px}details p{margin:12px 0}.detail-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:740px;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding:25px 34px 35px;border:0;border-left:1px solid #dce3e9;animation:drawer-in var(--t) var(--ease)!important}.detail-dialog>.dialog-top{position:sticky;top:-25px;background:#fffffffa;z-index:10;padding:8px 0 16px;border-bottom:1px solid var(--line);margin-bottom:22px}.detail-head{padding:0 0 24px}.detail-head h2{font-size:31px;line-height:1.4;font-weight:500;margin:14px 0 10px}.detail-head .tag-row{margin-top:0}.detail-sub{font-size:12px;color:var(--dim);margin-top:8px;display:flex;gap:10px;flex-wrap:wrap}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.detail-actions .button{font-size:12px;min-height:40px}.detail-section{padding:25px 0;border-top:1px solid var(--line)}.detail-section h3{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:550;margin-bottom:17px}.detail-section h3>span{font-size:12px;font-weight:400;color:var(--dim)}.detail-section p{font-size:12px;line-height:1.9;color:var(--dim)}.position-compare{padding:21px;background:#f1f5f8;border:1px solid #e1e8ee;border-radius:6px}.comparison-numbers{display:flex;align-items:center;justify-content:space-between;gap:15px}.comparison-numbers>div{flex:1;min-width:0}.comparison-numbers small{display:block;font-size:12px;color:var(--dim)}.comparison-numbers strong{display:block;font-size:34px;font-weight:430;margin:6px 0;font-variant-numeric:tabular-nums;letter-spacing:-.7px}.comparison-numbers .gap{text-align:center}.comparison-numbers .gap strong{font-size:27px;color:#50768e}.comparison-numbers>div:last-child{text-align:right}.comparison-scale{position:relative;height:28px;margin:22px 0 16px}.comparison-scale::before{content:"";height:2px;background:#c6d4df;position:absolute;left:0;right:0;top:13px}.comparison-pin{position:absolute;top:6px;width:16px;height:16px;transform:translateX(-50%);background:var(--forest);border:3px solid white;border-radius:50%;box-shadow:0 0 0 1px #adbdcb}.comparison-pin.theirs{background:#a3927b}.comparison-scale>span{position:absolute;top:29px;font-size:12px;color:var(--dim)}.comparison-scale>span:last-child{right:0}.position-compare>p{font-size:12px;line-height:1.85;color:var(--dim);margin-top:27px}.detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.detail-stat{border:1px solid #e0e6ec;border-radius:5px;padding:14px}.detail-stat span{display:block;font-size:12px;color:var(--dim)}.detail-stat strong{display:block;font-size:25px;font-weight:430;margin:8px 0;line-height:1.5}.detail-stat small{display:block;font-size:12px;color:var(--faint);line-height:1.7}.note-box{padding:13px 15px;border-left:2px solid #bdcdda;background:#f4f7f9;font-size:12px;line-height:1.9;color:var(--dim)}.note-box.warn{background:#faf7f2;border-left-color:#c4ad89;color:#897052}.history-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.history-table th{font-weight:400;color:var(--dim);padding:10px;border-bottom:1px solid var(--line);background:#f6f8fa}.history-table td{padding:13px 10px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.history-table tr.old{color:#7e8b96}.major-detail{border:1px solid var(--line);border-radius:5px;margin-top:10px;padding:0 16px;background:#fff}.major-detail summary{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none;padding:13px 0;font-size:12px}.major-detail summary::-webkit-details-marker{display:none}.major-detail summary::after{content:'＋';font-size:17px;color:var(--faint)}.major-detail[open] summary::after{content:'−'}.major-detail summary strong{font-size:13px;font-weight:500;flex:1}.major-detail summary .tag{margin-left:7px;font-size:12px;font-weight:400}.major-detail summary small{font-size:12px;color:var(--dim);line-height:1.9;text-align:right}.major-data{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:15px}.major-data>div{padding:11px;background:#f4f7f9;border-radius:3px;font-size:12px}.major-data span{display:block;color:var(--dim);font-size:12px;margin-bottom:4px}.major-data strong{font-weight:400;word-break:break-word}.major-detail p{font-size:12px;margin:12px 0}.source-link{font-size:12px;color:#416f91;text-decoration:underline;text-underline-offset:3px;word-break:break-word}.detail-groups{display:flex;flex-direction:column;gap:9px}.detail-group-row{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;text-align:left;padding:14px;border:1px solid var(--line);border-radius:5px;font-size:12px;background:#fff}.detail-group-row small{display:block;color:var(--dim);font-size:12px;margin-top:5px}.detail-group-row>span:last-child{text-align:right;flex-shrink:0}.detail-group-row:hover{background:#f4f7fa}.loading-inline{font-size:12px;color:var(--dim);padding:21px;background:#f2f5f8;border-radius:5px}.loading-inline::before{content:"";display:inline-block;width:11px;height:11px;border:1px solid #c9d4de;border-top-color:var(--forest);border-radius:50%;animation:spin 1s linear infinite;margin-right:10px}.compare-dialog{width:1140px}.compare-table-wrap{overflow:auto}.compare-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px}.compare-table th,.compare-table td{padding:17px;border:1px solid var(--line);text-align:left;vertical-align:top;word-break:break-word}.compare-table tr th:first-child{width:122px;font-size:12px;font-weight:400;color:var(--dim);background:#f8fafb}.compare-table th:not(:first-child){font-size:17px;font-weight:500;background:#edf3f7}.compare-table small{display:block;font-size:12px;color:var(--dim);margin-top:7px;font-weight:400}.compare-table td strong{font-size:26px;font-weight:430}.compare-table td .button{font-size:12px}.compare-tray{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:65;display:flex;align-items:center;gap:13px;width:610px;max-width:calc(100vw - 24px);padding:13px 17px 13px 23px;background:#253f54;color:white;border:1px solid #364e62;border-radius:8px;box-shadow:0 12px 35px #233e5a29;animation:tray-in var(--t-fast) var(--ease)}.compare-tray>div{flex:1}.compare-tray strong{display:block;font-size:12px;font-weight:500}.compare-tray>div span{display:block;font-size:12px;color:#bccbd7;margin-top:3px}.compare-tray .button{min-height:36px;font-size:12px;padding:8px 13px}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%,7px);background:#263f54f5;color:white;padding:11px 20px;border-radius:6px;z-index:1200;opacity:0;pointer-events:none;font-size:12px;transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease);max-width:calc(100vw - 28px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.saved-hero{padding:46px 0 35px}.saved-hero h1{font-size:34px;font-weight:500;margin:13px 0}.saved-hero p{font-size:13px;color:var(--dim)}.saved-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.saved-toolbar h2{font-size:19px;font-weight:500}.saved-toolbar h2 span{font-size:15px;color:var(--dim);margin-left:10px}.saved-toolbar p{font-size:12px;color:var(--dim);margin-top:7px}.saved-note{font-size:12px;color:var(--dim);padding:15px 0;border-bottom:1px solid var(--line);margin:0 0 18px}.saved-row{display:flex;align-items:center;gap:20px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:6px;margin-bottom:10px}.saved-number{width:28px;flex-shrink:0;font-size:23px;font-weight:350;color:#92a3b1}.saved-info{flex:1;min-width:0}.saved-info h3{font-size:16px;font-weight:500}.saved-info p{font-size:12px;color:var(--dim);margin-top:8px}.saved-info .text-button{font-size:12px;min-height:26px}.saved-actions{display:flex;gap:7px}.saved-actions button{display:grid;place-items:center;min-width:35px;height:35px;border:1px solid #dae3eb;border-radius:4px;font-size:15px}.saved-actions button:hover{background:var(--soft)}.stage-dock{position:fixed;bottom:16px;right:22px;z-index:60;display:flex;align-items:center;gap:12px;background:#fffffff5;border:1px solid #d5dfe8;box-shadow:0 8px 30px #2a435a15;padding:9px 13px;border-radius:8px}.stage-dock>b{font-size:14px;font-weight:500}.stage-dock .button{min-height:44px;font-size:14px}.noscript{position:fixed;bottom:0;left:0;right:0;background:#fff5dd;padding:20px;z-index:100}
/* Classroom mode enlarges the actual data and hit targets, not decorative effects. */
.stage .container{max-width:1800px;padding:0 38px}.stage .topbar{height:85px;padding:0 38px}.stage .hero{padding:26px 0}.stage .hero h1{font-size:38px}.stage .hero p{font-size:15px}.stage .position-panel{grid-template-columns:390px minmax(0,1fr) 250px;min-height:315px}.stage .position-inputs{padding:25px 28px}.stage .position-label h2{font-size:17px}.stage .demo-label{font-size:14px}.stage .segmented button{min-height:44px;font-size:14px;padding:7px 16px}.stage .subject-open{font-size:14px}.stage .number-wrap input{font-size:52px;width:117px}.stage .score-field label{font-size:14px}.stage .rank-summary{min-width:140px;padding-left:19px}.stage .rank-summary>span{font-size:14px}.stage .rank-summary strong{font-size:30px}.stage .rank-summary .text-button{font-size:14px;min-height:44px}.stage .score-controls{gap:4px}.stage .circle-button{width:30px;height:44px;font-size:17px}.stage .rank-mode .number-wrap input{font-size:40px;width:150px}.stage .position-inputs input[type=range]{height:44px;margin-top:13px}.stage .position-inputs input[type=range]::-webkit-slider-thumb{width:44px;height:44px;margin-top:-8px}.stage .range-ends,.stage .range-ends span:nth-child(2){font-size:14px}.stage .position-note{font-size:14px;line-height:1.8}.stage .position-chart{padding:25px 28px 17px}.stage .chart-heading h3{font-size:17px}.stage .chart-heading>span,.stage .position-chart>p:first-of-type{font-size:14px}.stage .chart-plot{height:126px;margin-top:34px}.stage .chart-axis,.stage .chart-max{font-size:14px}.stage .chart-marker>span{font-size:17px}.stage .chart-marker small{font-size:14px}.stage .chart-legend,.stage .chart-legend .text-button,.stage .chart-readout{font-size:14px}.stage .chart-readout{margin-top:10px}.stage .position-outlook{padding:25px}.stage .position-outlook .section-kicker{font-size:15px}.stage .outlook-numbers button{min-height:56px;font-size:14px}.stage .outlook-numbers button strong{font-size:29px}.stage .position-outlook>p{font-size:14px}.stage .workspace-layout{grid-template-columns:226px minmax(0,1fr);gap:32px}.stage .sidebar-heading h2{font-size:17px}.stage .select-wrap label,.stage .select-wrap select{font-size:14px}.stage .select-wrap select{min-height:47px}.stage .filter-open{min-height:46px;font-size:14px}.stage .discovery button{min-height:44px;font-size:14px}.stage .sidebar-note p{font-size:14px}.stage .search-box{height:57px}.stage .search-box input{font-size:15px}.stage .browse-tabs button{font-size:18px;padding:17px 0}.stage .browse-tabs button>span{font-size:14px}.stage .layout-toggle button{width:43px;height:44px}.stage .layout-toggle svg{width:19px;height:19px}.stage .tier-tabs button{font-size:14px;min-height:44px;padding:7px 15px}.stage .data-note{font-size:14px}.stage .results-heading{font-size:14px;margin-top:18px}.stage .results-heading strong{font-size:19px}.stage .results-heading p>span{font-size:14px}.stage .sort-wrap,.stage .sort-wrap select{font-size:14px}.stage .sort-wrap select{min-height:44px}.stage .group-table th{font-size:14px;padding:13px 17px}.stage .group-row td{padding:22px 17px}.stage .school-name{font-size:20px}.stage .row-meta{font-size:14px}.stage .row-group-link{font-size:14px;min-height:44px}.stage .col-major>p{font-size:14px}.stage .col-major>span{font-size:14px}.stage .col-score>strong{font-size:32px}.stage .score-gap{font-size:14px}.stage .col-rank{font-size:16px}.stage .col-fee>span{font-size:14px}.stage .col-fee>small{font-size:14px}.stage .mini-action{width:40px;height:44px}.stage .mini-action svg{width:19px;height:44px}.stage .row-open{width:33px;height:44px;font-size:21px}.stage .tier-badge{font-size:14px;padding:3px 7px}.stage .result-card{padding:27px 27px 0}.stage .card-title .school-name{font-size:23px}.stage .card-location,.stage .card-group,.stage .card-meta{font-size:14px}.stage .card-majors{font-size:14px;min-height:53px}.stage .card-metrics span{font-size:14px}.stage .card-metrics strong{font-size:32px}.stage .card-metrics .rank-num{font-size:28px}.stage .card-actions{min-height:62px}.stage .detail-link{font-size:14px}.stage .detail-dialog{width:890px;padding-left:38px;padding-right:38px}.stage .detail-head h2{font-size:37px}.stage .detail-sub{font-size:15px}.stage .detail-actions .button{min-height:48px;font-size:14px}.stage .detail-section h3{font-size:20px}.stage .detail-section p{font-size:14px}.stage .history-table{font-size:15px}.stage .major-detail summary{min-height:66px}.stage .major-detail summary strong{font-size:17px}.stage .major-detail summary small{font-size:14px}.stage .major-data>div{font-size:14px}.stage .major-data span{font-size:14px}.stage .detail-group-row{min-height:67px;font-size:15px}.stage .detail-group-row small{font-size:14px}.stage .close-button{width:49px;height:49px}.stage .compare-tray{left:25px;transform:none;bottom:83px;width:520px}.stage footer{padding-bottom:100px}
@keyframes row-in{from{opacity:.3}to{opacity:1}}@keyframes dialog-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes drawer-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}@keyframes tray-in{from{opacity:0}to{opacity:1}}@keyframes shimmer{to{background-position:-120% 0}}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){.hero h1{font-size:38px}.position-panel{grid-template-columns:370px minmax(0,1fr) 230px}.position-inputs{padding-left:28px;padding-right:28px}.position-chart{padding-left:34px;padding-right:34px}.position-note{font-size:12px}.subject-open{font-size:12px}.rank-summary>span{font-size:12px}.chart-legend,.chart-readout{font-size:12px}.group-table th{font-size:12px}.school-name{font-size:16px}.col-major>p{font-size:12px}.row-meta,.row-group-link{font-size:12px}.col-major>span{font-size:12px}.score-gap{font-size:12px}.col-fee>span{font-size:12px}}
@media(max-width:1200px){.container{padding:0 30px}.topbar{padding:0 30px;gap:20px}.brand-description{display:none}.hero{gap:24px;padding:32px 0 27px}.hero h1{font-size:30px}.hero-facts strong{font-size:21px}.hero-facts>div span{font-size:12px}.hero-facts{padding-left:20px}.position-panel{grid-template-columns:330px minmax(0,1fr) 170px}.position-inputs{padding-left:21px;padding-right:21px}.position-chart{padding-left:21px;padding-right:21px}.position-outlook{padding-left:17px;padding-right:17px}.chart-legend{gap:9px;font-size:12px}.chart-legend .text-button{font-size:12px}.workspace-layout{grid-template-columns:182px minmax(0,1fr);gap:25px}.filter-sidebar{padding-right:20px}.browse-tabs{gap:24px}.browse-tabs button>span{display:none}.group-table th,.group-row td{padding-left:11px;padding-right:11px}.group-table th:nth-child(1){width:27%}.group-table th:nth-child(2){width:22%}.group-table th:nth-child(3){width:14%}.group-table th:nth-child(4){width:12%}.group-table th:nth-child(5){width:14%}.group-table th:nth-child(6){width:11%}.row-title{gap:5px}.school-name{font-size:14px}.col-major>p{font-size:12px}.col-major>span{font-size:12px}.col-fee>span{font-size:12px}.mini-action{width:25px}.row-open{width:24px}.data-note{font-size:12px}.result-card{padding:20px 18px 0}.card-title .school-name{font-size:17px}.card-metrics strong{font-size:23px}.card-metrics .rank-num{font-size:21px}.stage .position-panel{grid-template-columns:350px minmax(0,1fr)}.stage .position-outlook{display:none}.stage .workspace-layout{grid-template-columns:190px minmax(0,1fr)}.stage .group-table th:nth-child(2),.stage .group-table .col-major{display:none}.stage .group-table th:nth-child(1){width:35%}.stage .group-table th:nth-child(3){width:18%}.stage .group-table th:nth-child(4){width:17%}.stage .group-table th:nth-child(5){width:18%}.stage .group-table th:nth-child(6){width:12%}.stage .group-row td{padding:20px 12px}.stage .school-name{font-size:18px}.stage .mini-action{width:30px}.stage .row-open{width:25px}.stage .hero-facts{display:none}.stage .container{padding:0 28px}}
@media(max-width:1000px){.hero-facts{display:none}.hero{padding:31px 0 27px}.position-panel{grid-template-columns:330px minmax(0,1fr)}.position-chart{border-right:0}.position-outlook{display:none}.workspace-layout{grid-template-columns:165px minmax(0,1fr);gap:21px}.filter-sidebar{padding-right:18px}.tier-tabs{gap:1px}.tier-tabs button{font-size:12px;padding:4px 8px}.data-note{display:none}.group-table th:nth-child(2),.group-table .col-major{display:none}.group-table th:nth-child(1){width:33%}.group-table th:nth-child(3){width:18%}.group-table th:nth-child(4){width:15%}.group-table th:nth-child(5){width:20%}.group-table th:nth-child(6){width:14%}.col-fee>span{font-size:12px}.school-name{font-size:15px}.row-meta{font-size:12px}.row-group-link{font-size:12px}.row-title{gap:4px}.tier-badge{font-size:12px}.results-heading p>span{display:none}.results-grid{grid-template-columns:1fr}.card-title .school-name{font-size:18px}.card-metrics strong{font-size:26px}.card-metrics .rank-num{font-size:24px}.filter-open{font-size:12px}.select-wrap select{font-size:12px}.stage .position-panel{grid-template-columns:330px minmax(0,1fr)}.stage .position-inputs{padding:23px 21px}.stage .rank-summary{min-width:124px;padding-left:13px}.stage .number-wrap input{width:105px;font-size:48px}.stage .score-controls{display:none}.stage .position-chart{padding:23px 21px}.stage .chart-heading h3{font-size:15px}.stage .chart-heading>span{font-size:14px}.stage .chart-legend{font-size:14px}.stage .chart-legend .text-button{display:none}.stage .workspace-layout{grid-template-columns:170px minmax(0,1fr);gap:22px}.stage .select-wrap label,.stage .select-wrap select{font-size:14px}.stage .select-wrap select{min-height:44px}.stage .tier-tabs button{font-size:14px;padding:5px 9px}.stage .group-table th{font-size:14px}.stage .school-name{font-size:17px}.stage .col-fee>span{font-size:14px}.stage .col-rank{font-size:14px}.stage .col-score>strong{font-size:28px}.stage .score-gap{font-size:14px}.stage .row-meta{font-size:14px}.stage .row-group-link{font-size:14px}.stage .results-heading p>span{display:none}}
@media(max-width:760px){.container{padding:0 22px}.topbar{height:68px;padding:0 22px;gap:18px}.brand{font-size:21px;gap:8px}.brand img{width:28px;height:28px}.topbar nav{gap:22px;margin-left:auto;margin-right:0}.nav-item{font-size:12px}.header-actions{gap:5px}.header-actions>.icon-button{display:none}.stage-button{font-size:14px;min-height:44px;padding:7px 10px}.hero h1{font-size:28px}.hero-copy>p{font-size:12px}.hero{padding:29px 0 23px}.eyebrow{font-size:12px;margin-bottom:10px}.position-panel{grid-template-columns:1fr 1fr}.position-inputs{padding:19px 18px 15px}.position-chart{padding:19px 18px 15px}.position-label{margin-bottom:14px}.position-label h2{font-size:12px}.demo-label{font-size:12px}.subject-open{font-size:12px;gap:4px}.segmented button{font-size:12px;padding:4px 10px;min-height:29px}.number-wrap input{font-size:38px;width:88px}.score-controls{display:none}.score-field label{font-size:12px}.rank-summary{min-width:107px;padding-left:13px}.rank-summary strong{font-size:21px}.rank-summary>span{font-size:12px}.rank-summary .text-button{font-size:12px}.position-note{font-size:12px}.range-ends{font-size:12px}.range-ends span:nth-child(2){font-size:12px}.chart-heading h3{font-size:12px}.chart-heading>span{font-size:12px}.position-chart>p:first-of-type{font-size:12px}.chart-plot{height:90px}.chart-legend{font-size:12px;gap:8px}.chart-legend .text-button{display:none}.chart-readout{font-size:12px}.filter-sidebar{display:none}.workspace-layout{display:block}.explorer{padding-top:25px}.mobile-filter{display:inline-flex;min-height:32px;padding:5px 10px;font-size:12px;background:white}.browse-tabs button>span{display:inline;font-size:12px}.browse-tabs{gap:25px}.tier-toolbar{margin-top:15px}.tier-tabs button{font-size:12px;min-height:33px;padding:5px 10px}.results-heading{font-size:12px}.results-heading p>span{display:inline;font-size:12px}.group-table th:nth-child(1){width:33%}.group-table th:nth-child(3){width:18%}.group-table th:nth-child(4){width:16%}.group-table th:nth-child(5){width:19%}.group-table th:nth-child(6){width:14%}.school-name{font-size:15px}.tier-badge{font-size:12px}.group-row td{padding-top:17px;padding-bottom:17px}.col-score>strong{font-size:25px}.results-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-title .school-name{font-size:16px}.card-metrics span{font-size:12px}.card-metrics strong{font-size:23px}.card-metrics .rank-num{font-size:20px}.card-location{font-size:12px}.card-majors{font-size:12px;min-height:42px}.card-meta{font-size:12px}.card-group{font-size:12px}.result-card{padding:19px 17px 0}.detail-link{font-size:12px}.card-actions .mini-action{width:28px}.stage .container{padding:0 22px}.stage .topbar{padding:0 22px;height:73px}.stage .hero h1{font-size:30px}.stage .hero p{font-size:14px}.stage .position-panel{grid-template-columns:1fr 1fr}.stage .position-inputs,.stage .position-chart{padding:19px 18px}.stage .position-label h2{font-size:14px}.stage .demo-label{font-size:14px}.stage .segmented button{font-size:14px;min-height:44px;padding:5px 11px}.stage .subject-open{font-size:14px}.stage .number-wrap input{font-size:40px;width:90px}.stage .rank-summary{min-width:114px;padding-left:13px}.stage .rank-summary strong{font-size:23px}.stage .rank-summary>span{font-size:14px}.stage .rank-summary .text-button{font-size:14px}.stage .range-ends,.stage .range-ends span:nth-child(2){font-size:14px}.stage .position-note{font-size:14px}.stage .chart-heading h3{font-size:14px}.stage .chart-heading>span{font-size:14px}.stage .position-chart>p:first-of-type{font-size:14px}.stage .chart-plot{height:111px}.stage .chart-axis{font-size:14px}.stage .chart-readout{font-size:14px}.stage .chart-marker>span{font-size:15px}.stage .workspace-layout{display:block}.stage .browse-tabs button{font-size:16px}.stage .browse-tabs button>span{font-size:14px}.stage .group-row td{padding:18px 12px}.stage .col-major{display:none}.stage .group-table th:nth-child(1){width:32%}.stage .group-table th:nth-child(3){width:19%}.stage .group-table th:nth-child(4){width:17%}.stage .group-table th:nth-child(5){width:18%}.stage .group-table th:nth-child(6){width:14%}.stage .result-card{padding:23px 20px 0}.stage .card-title .school-name{font-size:19px}.stage .card-metrics .rank-num{font-size:23px}.stage .card-metrics strong{font-size:26px}.stage .card-meta{font-size:14px}.stage .mini-action{width:31px}.stage .card-actions .detail-link{font-size:14px}.stage .stage-dock{right:12px;bottom:12px;gap:8px}.stage .stage-dock .button{font-size:14px}.stage .compare-tray{left:12px;bottom:80px;width:calc(100% - 24px)}footer{gap:12px 18px}footer>div{width:100%;margin-left:0}.saved-row{gap:14px;padding:18px}.saved-actions{gap:5px}.saved-actions button{min-width:32px}.saved-info h3 .school-name{font-size:15px}}
@media(max-width:520px){html{scroll-padding-top:82px}.container{padding:0 17px}.topbar{height:64px;padding:0 17px;gap:12px}.brand{font-size:20px;gap:7px;letter-spacing:1px}.brand img{width:26px;height:26px}.topbar nav{gap:20px}.nav-item{font-size:12px}.nav-item span{font-size:12px;min-width:15px;line-height:15px;margin-left:4px}.header-actions{margin-left:0}.stage-button{width:32px;height:44px;padding:0;min-height:44px}.stage-button>span{display:none}.stage-button svg{width:17px;height:44px}.hero{padding:27px 0 23px}.eyebrow{font-size:12px;letter-spacing:1.6px;margin-bottom:12px}.hero h1{font-size:27px;letter-spacing:-.5px;line-height:1.55}.hero-copy>p{font-size:12px;line-height:1.9;max-width:330px;margin-top:11px}.position-panel{display:block;border-radius:7px}.position-inputs{padding:18px 20px 15px}.position-label{margin-bottom:13px}.position-label h2{font-size:13px}.demo-label{font-size:12px}.segmented button{font-size:12px;min-height:32px;padding:5px 13px}.subject-open{font-size:12px}.score-line{margin-top:15px;gap:10px}.score-field label{font-size:12px}.number-wrap input{font-size:46px;width:108px;min-height:58px}.number-wrap>span{font-size:12px}.score-controls{display:flex;flex-direction:row;gap:5px;margin-top:21px}.circle-button{width:27px;height:27px;font-size:14px}.rank-summary{min-width:113px;padding-left:16px}.rank-summary>span{font-size:12px}.rank-summary strong{font-size:23px}.rank-summary .text-button{font-size:12px;min-height:28px}.rank-mode .number-wrap input{font-size:35px;width:140px}.range-ends,.range-ends span:nth-child(2){font-size:12px}.position-note{font-size:12px;line-height:1.8;margin-top:7px;min-height:16px}.position-inputs input[type=range]{height:27px;margin-top:8px}.position-chart{border-left:0;border-top:1px solid #e5ebf0;padding:17px 20px 14px;background:#fcfdfe}.chart-heading h3{font-size:12px}.chart-heading>span{font-size:12px}.position-chart>p:first-of-type{font-size:12px;margin-top:4px}.distribution-chart{min-height:110px}.chart-plot{height:72px;margin-top:27px}.chart-axis{font-size:12px}.chart-max{font-size:12px}.hist-bars{gap:3px}.chart-marker>span{font-size:13px}.chart-legend{font-size:12px;margin-top:5px;gap:16px}.chart-legend .text-button{display:block;font-size:12px}.chart-readout{font-size:12px;min-height:0;margin-top:7px;line-height:1.7}.explorer{padding-top:23px}.search-box{height:45px;padding:0 13px;gap:9px}.search-box input{font-size:12px}.search-box kbd{display:none}.browse-bar{margin-top:10px}.browse-tabs{gap:26px}.browse-tabs button{font-size:14px;padding:13px 0}.browse-tabs button>span{display:none}.layout-toggle button{width:28px;height:27px}.layout-toggle button svg{width:13px;height:13px}.tier-toolbar{gap:8px;margin-top:13px}.tier-tabs{gap:1px}.tier-tabs button{font-size:12px;padding:4px 8px;min-height:30px}.tier-tabs button:first-child{padding-left:7px;padding-right:7px}.tier-tabs button:last-child{font-size:12px}.tier-dot{width:4px;height:4px}.mobile-filter{font-size:12px;padding:4px 8px;min-height:30px;gap:4px}.active-filters{gap:5px}.active-filters button{font-size:12px;min-height:27px}.results-heading{margin:13px 0 10px;font-size:12px;gap:8px}.results-heading strong{font-size:14px}.results-heading p>span{display:none}.sort-wrap{font-size:12px;gap:3px}.sort-wrap label{display:none}.sort-wrap select{font-size:12px;max-width:141px}.results-table{border:0;background:none;border-radius:0;overflow:visible}.table-scroll{overflow:visible}.group-table,.group-table tbody{display:block}.group-table thead{display:none}.group-table .group-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:12px;row-gap:0;background:white;border:1px solid #dce4ec;border-radius:6px;margin-bottom:12px;padding:18px 18px 9px}.group-row td{display:block;padding:0;border:0!important;overflow-wrap:normal}.group-table .col-school{grid-column:1/-1;padding-bottom:12px}.row-title{gap:10px;justify-content:space-between;flex-wrap:nowrap}.school-name{font-size:17px;line-height:1.55}.row-meta{font-size:12px;margin-top:5px}.row-group-link{font-size:12px;min-height:28px;margin-top:6px}.tier-badge{font-size:12px;flex-shrink:0}.group-table .col-major{display:block;grid-column:1/-1;border-top:1px solid #eef1f4!important;padding:11px 0 13px}.col-major>p{font-size:12px;line-height:1.8}.col-major>span{font-size:12px;margin-top:5px}.col-score::before,.col-rank::before,.col-fee::before{content:attr(data-label);display:block;font-size:12px;color:var(--dim);margin-bottom:5px;font-weight:400;letter-spacing:0}.col-score>strong{font-size:26px}.score-gap{font-size:12px;line-height:1.6;min-height:26px;margin-top:4px}.col-rank{font-size:19px;font-variant-numeric:tabular-nums;letter-spacing:-.3px;line-height:1.9}.col-rank::before{line-height:1.6;margin-bottom:4px}.col-fee>span{font-size:14px;line-height:1.8}.col-fee>small{font-size:12px;margin-top:3px}.group-table .col-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:5px;border-top:1px solid #edf1f4!important;margin-top:10px;padding:6px 0 0!important}.col-actions::before{content:'收藏 / 对比 / 详情';font-size:12px;color:#8a97a1;margin-right:auto}.mini-action{width:35px;height:36px}.mini-action svg{width:17px;height:17px}.row-open{width:35px;height:36px;font-size:20px}.results-grid{grid-template-columns:1fr;gap:12px}.result-card{padding:22px 21px 0}.card-title .school-name{font-size:18px}.card-group{font-size:12px;margin-top:17px}.card-location{font-size:12px}.card-majors{font-size:12px;min-height:0;margin-bottom:17px}.card-metrics span{font-size:12px}.card-metrics strong{font-size:26px}.card-metrics .rank-num{font-size:23px}.card-meta{font-size:12px}.card-actions{min-height:53px}.detail-link{font-size:12px}.card-actions .mini-action{width:34px;height:38px}.card-actions .mini-action svg{width:17px;height:17px}.more-area{margin-top:21px}.more-button{min-height:42px}.more-area>span{font-size:12px}footer{padding-top:22px;margin-top:30px;gap:14px}.footer-brand{font-size:17px}.footer-brand img{width:23px;height:23px}footer p{font-size:12px;max-width:220px}footer>div{font-size:12px;gap:17px;flex-wrap:wrap}footer>div .text-button{font-size:12px}footer>span{font-size:12px}.filter-dialog,.small-dialog,.help-dialog,.compare-dialog{padding:22px;max-height:91dvh;border-radius:8px}.dialog-top{margin-bottom:19px}dialog h2{font-size:23px}.filter-fields{gap:16px 12px}.field label{font-size:12px}.field select{font-size:12px;min-height:43px;padding:10px}.check-row{font-size:12px;min-height:42px}.subject-options button{min-height:51px}.dialog-description{font-size:12px}.help-dialog>h2{font-size:25px}.help-grid{grid-template-columns:1fr;gap:0}.help-grid h3{font-size:14px}.help-grid article{padding:16px 0}.help-grid p{font-size:12px}.detail-dialog{width:100%;inset:0;margin:0;height:100dvh;max-height:100dvh;border-radius:0;padding:18px 22px 28px}.detail-dialog>.dialog-top{top:-18px;padding-top:7px}.detail-head h2{font-size:27px}.detail-head{padding-bottom:20px}.detail-sub{font-size:12px}.detail-actions{gap:8px;margin-top:18px}.detail-actions .button{font-size:12px;padding:8px 12px;min-height:39px}.detail-section{padding:22px 0}.detail-section h3{font-size:15px;gap:8px;flex-wrap:wrap}.position-compare{padding:17px 15px}.comparison-numbers{gap:8px}.comparison-numbers small{font-size:12px}.comparison-numbers strong{font-size:29px}.comparison-numbers .gap strong{font-size:24px}.position-compare>p{font-size:12px}.detail-stats{gap:7px}.detail-stat{padding:11px 10px}.detail-stat span{font-size:12px}.detail-stat strong{font-size:22px!important;overflow-wrap:anywhere}.detail-stat small{font-size:12px}.history-table{font-size:12px}.history-table th,.history-table td{padding:11px 7px}.detail-section p{font-size:12px}.major-detail{padding:0 12px}.major-detail summary{gap:9px}.major-detail summary strong{font-size:12px}.major-detail summary small{font-size:12px}.major-data{gap:7px}.major-data>div{font-size:12px;padding:10px}.major-data span{font-size:12px}.fine-print{font-size:12px}.compare-dialog{padding:22px 16px}.compare-dialog h2{font-size:23px}.compare-table{min-width:650px}.compare-table th,.compare-table td{padding:13px 11px}.compare-table tr th:first-child{width:100px}.compare-table th:not(:first-child){font-size:15px}.compare-tray{bottom:12px;border-radius:7px;gap:8px;padding:12px 13px}.compare-tray strong{font-size:12px}.compare-tray>div span{font-size:12px}.compare-tray .button{font-size:12px;padding:7px 10px;min-height:37px}.toast{font-size:12px;bottom:87px;width:max-content;max-width:calc(100vw - 30px);padding:10px 15px}.saved-hero{padding:32px 0 27px}.saved-hero h1{font-size:28px;margin:12px 0}.saved-hero p{font-size:12px;line-height:1.9}.saved-toolbar h2{font-size:18px}.saved-toolbar p{font-size:12px}.saved-toolbar .button{font-size:12px;padding:8px 11px}.saved-note{font-size:12px;line-height:1.8}.saved-row{flex-wrap:wrap;gap:11px;padding:17px}.saved-info{width:calc(100% - 40px)}.saved-info h3 .school-name{font-size:15px}.saved-info p{font-size:12px}.saved-number{width:23px;font-size:22px}.saved-actions{margin-left:34px;gap:8px}.saved-actions button{width:38px;height:38px}.stage .container{padding:0 17px}.stage .topbar{height:67px;padding:0 17px}.stage .hero{padding:26px 0 22px}.stage .hero h1{font-size:28px}.stage .hero p{font-size:14px}.stage .position-panel{display:block}.stage .position-inputs{padding:18px 20px 16px}.stage .position-label h2{font-size:14px}.stage .segmented button{font-size:14px;min-height:44px;padding:6px 14px}.stage .subject-open{font-size:14px}.stage .number-wrap input{font-size:48px;width:115px}.stage .rank-summary{min-width:124px;padding-left:16px}.stage .rank-summary>span{font-size:14px}.stage .rank-summary strong{font-size:25px}.stage .rank-summary .text-button{font-size:14px;min-height:44px}.stage .rank-mode .number-wrap input{width:139px;font-size:37px}.stage .range-ends,.stage .range-ends span:nth-child(2){font-size:14px}.stage .position-note{font-size:14px}.stage .position-chart{padding:18px 20px 15px}.stage .chart-plot{height:91px}.stage .chart-legend,.stage .chart-readout{font-size:14px}.stage .chart-heading h3{font-size:14px}.stage .chart-heading>span{font-size:14px}.stage .chart-axis{font-size:14px}.stage .search-box{height:51px}.stage .search-box input{font-size:14px}.stage .browse-tabs{gap:26px}.stage .browse-tabs button{font-size:15px;padding:15px 0}.stage .layout-toggle button{width:32px;height:44px}.stage .layout-toggle svg{width:15px;height:15px}.stage .tier-tabs button{font-size:14px;padding:5px 9px;min-height:44px}.stage .mobile-filter{min-height:38px;font-size:14px}.stage .results-heading{font-size:14px}.stage .sort-wrap select{font-size:14px;min-height:44px}.stage .results-heading strong{font-size:16px}.stage .group-table .group-row{padding:20px 19px 9px}.stage .group-row td{padding:0}.stage .group-table .col-school{padding-bottom:13px}.stage .group-table .col-major{display:block;padding:12px 0 15px}.stage .school-name{font-size:19px}.stage .row-meta{font-size:14px}.stage .row-group-link{font-size:14px;min-height:44px}.stage .col-major>p{font-size:14px}.stage .col-major>span{font-size:14px}.stage .col-score>strong{font-size:29px}.stage .score-gap{font-size:14px}.stage .col-rank{font-size:22px}.stage .col-fee>span{font-size:16px}.stage .col-fee>small{font-size:14px}.stage .mini-action,.stage .row-open{width:42px;height:44px}.stage .result-card{padding:24px 23px 0}.stage .card-title .school-name{font-size:20px}.stage .card-majors{font-size:14px;min-height:0}.stage .card-meta{font-size:14px}.stage .card-actions .mini-action{width:40px;height:44px}.stage .stage-dock{left:8px;right:8px;bottom:8px;padding:8px;justify-content:center;gap:7px}.stage .stage-dock>b{font-size:14px}.stage .stage-dock .button{font-size:14px;padding:7px 9px;min-height:44px}.stage .compare-tray{bottom:78px;left:12px;width:calc(100% - 24px)}.stage .detail-dialog{width:100%;padding:18px 22px 28px}.stage .detail-head h2{font-size:30px}.stage .detail-sub{font-size:14px}.stage .detail-section h3{font-size:17px}.stage .detail-section p{font-size:14px}.stage .detail-actions .button{font-size:14px;padding:9px 12px;min-height:44px}.stage .history-table{font-size:14px}.stage .major-detail summary strong{font-size:14px}.stage .major-detail summary small{font-size:14px}.stage .major-data>div{font-size:14px}.stage .major-data span{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}body.noanim *,body.noanim *::before,body.noanim *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media print{.topbar,.hero,.position-panel,.explorer,footer,.compare-tray,.stage-dock,.toast,.saved-toolbar button,.saved-actions,dialog{display:none!important}#saved-page{display:block!important}body{background:white}.container{padding:0}.saved-hero{padding:10px 0}.saved-row{break-inside:avoid;border-color:#ccc}.saved-info .text-button{display:none}}


/* ==========================================================================
   触摸与白板：最小点击区
   --------------------------------------------------------------------------
   上面的压缩块里，很多交互元素只有 21–33px 高（表格里的院校名 24px、
   行尾的 ↗ 32×26、加减号的 − 只有 21×21）。鼠标能点，手指点不准。
   这里只在两种情况下兜底，不动桌面端：
     · .stage           —— 白板演示模式，本来就是给触摸大屏用的
     · pointer:coarse   —— 任何触摸设备（含触摸笔记本、平板）
   用 min-height/min-width 而不是改 padding，避免影响已有排版。
   ========================================================================== */
.stage .text-button,.stage .row-group-link,.stage .row-open,.stage .mini-action,
.stage .circle-button,.stage .school-name,.stage .data-note,.stage .subject-open,
.stage .button,.stage .segmented button,.stage .select,.stage .chip,.stage .icon-button,
body.stage a,body.stage summary{min-height:44px}
.stage .row-open,.stage .mini-action,.stage .circle-button,.stage .icon-button{min-width:44px}
.stage .text-button,.stage .row-group-link,.stage .school-name,.stage .data-note,
.stage .subject-open{display:inline-flex;align-items:center}

@media (pointer:coarse){
  .text-button,.row-group-link,.row-open,.mini-action,.circle-button,.school-name,
  .data-note,.subject-open,.button,.segmented button,.select,.chip,.icon-button,a,summary{min-height:44px}
  .row-open,.mini-action,.circle-button,.icon-button{min-width:44px}
  .text-button,.row-group-link,.school-name,.data-note,.subject-open{
    display:inline-flex;align-items:center}
}

/* ==========================================================================
   手机端（≤760px）—— 目标：手机上的体验不弱于白板
   --------------------------------------------------------------------------
   用 iframe 拿到真实手机视口（headless 浏览器窗口最小约 518px，
   直接 --window-size=375 会被钳住，量到的不是手机版式）。
   实测 375px：无横向溢出、无小字号，但 17 处点击区 < 44px。
   点击区兜底原来只挂在 @media(pointer:coarse) 上，依赖浏览器上报指针类型；
   这里补一层按宽度的兜底 —— 窄屏就是手机，判据更可靠，也不会因探测失败而失效。
   ========================================================================== */
@media(max-width:760px){
  /* 分档条 5 个按钮 + 筛选按钮在 375px 下超出 8px，允许换行 */
  .tier-toolbar{flex-wrap:wrap}
  .tier-tabs{min-width:0;flex-wrap:wrap}
  /* 点击区一律 ≥44px */
  .text-button,.row-group-link,.row-open,.mini-action,.circle-button,.school-name,
  .data-note,.subject-open,.mobile-filter,.nav-item,summary,a{min-height:44px}
  .row-open,.mini-action,.circle-button,.icon-button{min-width:44px}
  .text-button,.row-group-link,.school-name,.data-note,.subject-open,.mobile-filter{
    display:inline-flex;align-items:center}
  input,.input,.select,input[type=search]{min-height:44px}
  .button,.segmented button,.tier-tabs button,.chip{min-height:44px}
  .brand{min-height:44px}
  /* 表格在手机上：院校名与行尾操作要给足高度，否则手指点不准 */
  .group-table th,.group-table td{padding-top:10px;padding-bottom:10px}
}
</style>@media(max-width:520px){
  /* 「我的定位」里 分数 与 对应位次 并排，在 360px 下挤出 28px 横向滚动。
     窄屏改为上下两段：位次段落整行，分隔线从左改成上。 */
  .score-line{flex-wrap:wrap}
  .rank-summary{margin-left:0;width:100%;min-width:0;padding-left:0;
    border-left:0;border-top:1px solid var(--line);padding-top:11px;margin-top:11px}
  .stage .rank-summary{min-width:0;padding-left:0}
}@media(max-width:520px){
  /* 「我的定位」右侧的「2026 年对应位次」块写死了 min-width:113px，
     在 360px 屏上挤出 28px 横向滚动。去掉硬下限让它能收缩，
     父容器是不是 flex 都不影响这条生效。 */
  .rank-summary{min-width:0;padding-left:10px}
  .stage .rank-summary{min-width:0;padding-left:10px}
  .rank-summary strong{font-size:21px}
  .stage .rank-summary strong{font-size:23px}
  .score-line{gap:8px;min-width:0}
  .score-field{min-width:0}
}@media(max-width:760px){
  /* 同上：用 body 前缀提升权重，避免被 .rank-summary .text-button 这类规则顶掉 */
  body .text-button,body .rank-summary .text-button,body .chart-legend .text-button,
  body .chart-readout,body .position-note{min-height:44px}
  body .button,body .icon-button,body .mini-action{min-height:44px;min-width:44px}
  body select,body .select,body .select-wrap select{min-height:44px}
}
/* ==========================================================================
   关于落点 · 彩蛋
   这个站点是为荣县一中高三四班的同学做的。
   入口：页脚「关于这个站点」按钮；另外点页脚的版本号也能打开（彩蛋本身）。
   ========================================================================== */
#about-dialog{max-width:640px}
#about-dialog .dialog-description{margin-bottom:22px}
.about-secs{display:flex;flex-direction:column;gap:18px}
.about-secs article h3{font-size:14px;font-weight:600;margin-bottom:6px;color:var(--ink)}
.about-secs article p{font-size:13px;line-height:1.95;color:var(--dim)}
.about-secs article b{color:var(--ink);font-weight:600}
.about-card{border:1px solid var(--line);border-radius:8px;padding:2px 16px;margin-top:22px;
  background:var(--paper)}
.about-row{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:13px 0;border-bottom:1px solid var(--line)}
.about-row:last-child{border-bottom:0}
.about-row .k{font-size:13px;color:var(--dim)}
.about-row b{font-size:17px;font-weight:600;letter-spacing:.02em}
.about-qq{display:inline-flex;align-items:center;gap:9px;font-size:17px;font-weight:600;
  font-variant-numeric:tabular-nums;color:var(--forest);padding:7px 14px;border-radius:8px;
  border:1px dashed #c3cbd8;background:none;cursor:pointer;
  transition:border-color var(--t) var(--ease),background var(--t) var(--ease)}
.about-qq:hover{border-style:solid;border-color:var(--forest);background:var(--soft)}
.about-qq:active{transform:scale(.97)}
.about-qq i{font-style:normal;font-size:12px;font-weight:400;color:var(--faint)}
.about-links{display:flex;gap:20px;flex-wrap:wrap;margin-top:16px}
.about-links a{font-size:13px;color:var(--forest);border-bottom:1px solid #c9d6de;
  transition:border-color var(--t) var(--ease)}
.about-links a:hover{border-color:var(--forest)}
.about-fin{margin-top:26px;padding-top:18px;border-top:1px dashed var(--line);
  font-size:12px;color:var(--faint);line-height:1.9;text-align:center;letter-spacing:.04em}
/* 页脚版本号是彩蛋触发器。必须是 <button> —— 委托处理器只认 closest('button,a')，
   挂在 <span> 上点了没反应。样式对齐原来的 footer>span。 */
.footer-version{width:100%;background:none;border:0;cursor:pointer;text-align:center;
  font-size:12px;color:var(--faint);letter-spacing:1px;
  transition:color var(--t) var(--ease)}
.footer-version:hover{color:var(--forest)}
@media(max-width:520px){
  .about-qq{min-height:44px;padding:0 14px}
  .about-row b{font-size:16px}
}

/* ==========================================================================
   打开 / 退出 的动效
   --------------------------------------------------------------------------
   关闭原来是一瞬间消失 —— 弹窗「啪」地不见了，没有退场过程。
   这里补一段短促的淡出（比入场更快，符合「退出要干脆」的直觉）。
   注意用 forwards 是必要的：动画结束后元素要保持透明，
   等 animationend 之后再真正 close()，否则会看到一帧闪烁。
   ========================================================================== */
@keyframes dialog-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(6px) scale(.985)}}
dialog.closing{animation:dialog-out .17s var(--ease) forwards;pointer-events:none}

/* 详情弹窗是从右侧滑入的，退场也往右走，方向一致 */
@keyframes detail-out{from{opacity:1;transform:none}to{opacity:0;transform:translateX(28px)}}
.detail-dialog.closing{animation:detail-out .2s var(--ease) forwards}

/* 遮罩跟着一起淡 */
dialog.closing::backdrop{animation:dialog-out .17s var(--ease) forwards}

@media(prefers-reduced-motion:reduce){
  dialog.closing,.detail-dialog.closing{animation:none!important;opacity:0}
}

/* 手机端：侧滑关闭时给一点跟手感 —— 手指右移时弹窗跟着走 */
@media(pointer:coarse){
  .detail-dialog{overscroll-behavior:contain}
}

/* 详情弹窗里的「返回上一级」：院校详情 → 专业组详情 需要明确的回退入口 */
.back-button{font-size:24px;line-height:1;margin-right:2px}
.back-button[hidden]{display:none}
@media(max-width:520px){.back-button{min-width:44px;min-height:44px}}
/* iOS Safari 聚焦 <16px 的输入框会自动放大页面。手机上搜索框给到 16px。 */
@media(max-width:760px){
  .search-box input{font-size:16px}
}
/* 帮助面板底部的「关于落点」入口。
   彩蛋原来只在页脚 —— 那在长页面最底部，手机上几乎翻不到。
   「?」是用户找「关于」时最自然的落点，把入口放这儿。 */
.help-about{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.help-about .button{width:100%;justify-content:center}
@media(max-width:520px){.help-about .button{min-height:44px}}
/* ==========================================================================
   版式细节修正（用几何测量定位，不是目测）
   ========================================================================== */

/* 1) 页脚四个链接
   原来 footer>div 是 flex-wrap，四项宽度和超出容器 —— 前三项占满第一行，
   「项目记录」被挤到第二行单独左对齐，看起来就是「没对齐」。
   窄屏改成 2×2 网格：说明类两项一行、外链类两项一行，左边缘齐平。 */
@media(max-width:760px){
  footer>div{width:100%;margin-left:0;display:grid;grid-template-columns:1fr 1fr;
    gap:8px 14px;align-items:center}
  footer>div>*{justify-content:flex-start;text-align:left}
  footer{align-items:flex-start}
  footer p{max-width:none}
}

/* 2) 「我的分数」那一行的 − / + 按钮
   窄屏规则写的 margin-top:21px 是为了在旧版式里对齐大数字，
   但父级是 align-items:center —— margin 会把它们整体压低约 10px，
   同一行里按钮明显低于左右两栏。改为不加外边距、由父级居中。 */
@media(max-width:520px){
  .score-controls{display:flex;flex-direction:row;gap:5px;margin-top:0;align-self:center}
}

/* 3) 数字 + 「分」溢出
   .number-wrap input 宽 108px，加 gap 4 加「分」12px = 124px，
   而容器只有 105px。flex 子项默认 min-width:auto，不肯收缩到内容宽度以下，
   所以「分」被顶出容器 19px。
   给 input 和 wrap 都开 min-width:0，让它按剩余空间收缩；「分」不参与收缩。 */
.number-wrap{min-width:0}
.number-wrap input{min-width:0}
.number-wrap>span{flex-shrink:0}

/* 4) 兜底：窄屏下任何输入框都不许撑破父容器 */
@media(max-width:760px){
  input,select,textarea{min-width:0;max-width:100%}
}

/* ==========================================================================
   院校详细档案（按【章节】折叠）
   数据侧每校一份 900+ 字的档案，分 8 个固定章节。
   ========================================================================== */
.ax-meta{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 13px}
.ax-pill{font-size:12px;padding:3px 9px;border-radius:5px;background:var(--soft);
  color:var(--dim);border:1px solid var(--line)}
.ax-list{display:flex;flex-direction:column;gap:1px;border:1px solid var(--line);
  border-radius:7px;overflow:hidden;background:var(--line)}
.ax{background:var(--paper)}
.ax>summary{cursor:pointer;padding:12px 16px;font-size:13px;font-weight:500;
  display:flex;align-items:center;gap:9px;list-style:none;
  transition:background var(--t) var(--ease)}
.ax>summary::-webkit-details-marker{display:none}
.ax>summary::before{content:"";width:5px;height:5px;border-right:1.6px solid var(--dim);
  border-bottom:1.6px solid var(--dim);transform:rotate(-45deg);flex-shrink:0;
  margin-left:2px;transition:transform var(--t) var(--ease)}
.ax[open]>summary::before{transform:rotate(45deg)}
.ax>summary:hover{background:var(--soft)}
.ax-b{padding:0 16px 16px 29px;font-size:13px;line-height:1.95;color:var(--dim);
  white-space:pre-wrap;word-break:break-word}
.stage .ax>summary{font-size:15px;padding:14px 18px}
.stage .ax-b{font-size:14px;line-height:2}
@media(max-width:760px){
  .ax>summary{padding:14px 14px;min-height:44px}
  .ax-b{padding:0 14px 14px 27px}
}
/* 院校档案加载中的骨架 */
.ax-loading{padding:16px;font-size:13px;color:var(--faint);
  background:var(--soft);border:1px solid var(--line);border-radius:7px}
.ax-loading::after{content:"";display:inline-block;width:1em;text-align:left;
  animation:axdots 1.4s steps(4,end) infinite}
@keyframes axdots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
/* ==========================================================================
   手机端命中区补完（用几何审计量出来的，不是目测）
   --------------------------------------------------------------------------
   审计按「高 × 宽」报出这些小于 44px 的点击目标：
     .browse-tabs button   48 × 28~42   文字标签页太窄
     .hist-bar             71 × 7       直方图柱（另加坐标代理，见 app.js）
     select（排序）         30 × 116     太矮
     .footer-version       21 × 341     太矮
   ========================================================================== */
@media(max-width:760px){
  body .browse-tabs{gap:12px}
  body .browse-tabs button{min-width:44px;min-height:44px;padding:14px 6px}
  body .tier-tabs button{min-height:44px;padding:0 12px}
  body .tier-toolbar select,body select.sortsel,body .tier-toolbar .select,body .sort-wrap select{min-height:44px}
  body .footer-version{min-height:44px;display:flex;align-items:center;justify-content:center}
  body .layout-toggle button{min-width:44px;min-height:44px}
}
