:root{color:#1d2520;font-synthesis:none;text-rendering:optimizelegibility;background:#eef1ed;font-family:Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:28px}.topbar{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;display:flex}.eyebrow{color:#68736b;margin:0 0 4px;font-size:12px}h1,h2,h3{letter-spacing:0;margin:0}h1{font-size:30px;font-weight:700}h2{font-size:22px}h3{margin-top:5px;font-size:17px}.source-pill{color:#435047;background:#f8faf7;border:1px solid #cbd3ca;border-radius:8px;align-items:center;gap:8px;padding:9px 12px;font-size:13px;display:flex}.workspace{grid-template-columns:310px minmax(0,1fr);align-items:start;gap:18px;display:grid}.query-panel,.results-panel,.detail-panel{background:#fbfcfa;border:1px solid #d5dbd2;border-radius:8px;box-shadow:0 12px 30px #2b39300f}.query-panel{gap:14px;padding:18px;display:grid;position:sticky;top:20px}.panel-title,.school-link,.primary-button{align-items:center;gap:8px;display:flex}.panel-title{font-weight:700}label{color:#4f5b53;gap:6px;font-size:13px;display:grid}input,select{color:#1e2721;background:#fff;border:1px solid #c9d1c8;border-radius:6px;width:100%;height:40px;padding:0 10px}input:focus,select:focus{outline-offset:1px;outline:2px solid #7ca08d}.segmented{border:1px solid #cbd3ca;border-radius:7px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.segmented button{color:#48544c;background:#f2f5f1;border:0;border-right:1px solid #cbd3ca;min-height:36px;font-size:12px}.segmented button:last-child{border-right:0}.segmented .active{color:#fff;background:#224c3a}.primary-button{color:#fff;background:#224c3a;border:0;border-radius:7px;justify-content:center;height:42px;font-weight:700}.primary-button:disabled{opacity:.7}.data-range{color:#718077;gap:4px;font-size:12px;display:grid}.results-panel{min-height:520px;padding:18px}.result-header,.detail-title{justify-content:space-between;gap:18px;margin-bottom:16px;display:flex}.note{color:#69756e;text-align:right;max-width:320px;margin:0;font-size:13px}.error-box,.empty-state{color:#8d3525;background:#fff6f2;border:1px solid #e3c8c2;border-radius:7px;padding:12px}.empty-state{color:#68736b;background:#f5f7f4;border-color:#d6ddd4}.result-list{gap:10px;display:grid}.result-row{background:#fff;border:1px solid #d9dfd7;border-radius:8px;grid-template-columns:minmax(280px,1.2fr) minmax(420px,1fr);gap:14px;padding:14px;display:grid}.row-main{gap:12px;display:flex}.row-main p{color:#69756e;margin:6px 0 0;font-size:13px}.band{color:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:42px;height:28px;font-size:13px;font-weight:700;display:inline-flex}.band-safe{background:#1f6f4a}.band-steady{background:#4e7d2f}.band-reach{background:#b15d21}.band-miss{background:#8d3a32}.school-link{color:#24523e;background:0 0;border:0;padding:0;font-weight:700}.metrics{grid-template-columns:repeat(3,minmax(95px,1fr));gap:8px;margin:0;display:grid}.metrics div{background:#f3f6f2;border-radius:6px;min-height:56px;padding:8px}dt{color:#728078;font-size:12px}dd{margin:4px 0 0;font-weight:700}.detail-panel{margin-top:18px;padding:18px}.detail-title button{background:#fff;border:1px solid #cbd3ca;border-radius:6px;height:34px}.group-grid{gap:14px;display:grid}.group-block{border:1px solid #d9dfd7;border-radius:8px;overflow:hidden}.group-head{background:#f3f6f2;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.group-head span{color:#647268;font-size:13px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-top:1px solid #e0e5df;padding:9px 12px}th{color:#647268;font-size:12px;font-weight:600}@media (width<=980px){.app-shell{padding:18px}.topbar,.workspace,.result-row,.result-header,.detail-title{grid-template-columns:1fr;display:grid}.query-panel{position:static}.note{text-align:left}.metrics{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media (width<=560px){.metrics,.segmented{grid-template-columns:1fr}.segmented button{border-bottom:1px solid #cbd3ca;border-right:0}}
