.campus-layout{width:min(1420px,calc(100% - 48px));margin:0 auto;padding:42px 0 120px;display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:24px}.campus-intro{grid-column:1/-1;display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:48px;padding:40px 0 18px;border-bottom:1px solid var(--line)}.campus-intro h1{font-size:clamp(2.5rem,5.8vw,5.9rem);line-height:.94;letter-spacing:-.065em;max-width:900px}.campus-intro h1 span{color:var(--teal)}.campus-intro>p{max-width:560px;color:var(--muted);font-size:1.02rem;line-height:1.85}.connection-panel,.data-workspace{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.connection-panel{grid-column:2;padding:28px;align-self:start;position:sticky;top:100px}.panel-heading,.workspace-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.panel-heading h2,.workspace-toolbar h2{font-size:1.35rem}.signal-dot{width:10px;height:10px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 5px color-mix(in srgb,var(--amber) 14%,transparent);margin-top:7px}.connection-panel form{display:grid;gap:16px;margin-top:26px}.connection-panel label{display:grid;gap:8px;font-size:.78rem;font-weight:700;color:var(--muted);letter-spacing:.04em}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.form-message{min-height:48px;margin:20px 0 0;padding:13px 15px;background:var(--surface-2);border-left:3px solid var(--teal);color:var(--muted);font-size:.86rem;line-height:1.6}.form-message.error{border-color:var(--danger);color:var(--danger)}.privacy-note{display:flex;align-items:center;gap:9px;margin-top:18px;color:var(--muted);font-size:.76rem}.privacy-note svg{width:17px;fill:none;stroke:currentColor;stroke-width:1.7}.data-workspace{grid-column:1;grid-row:2/span 2;min-height:680px;padding:30px}.data-tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--line);margin:-8px 0 30px}.data-tabs button{flex:0 0 auto;border:0;background:transparent;color:var(--muted);padding:14px 15px;border-bottom:2px solid transparent}.data-tabs button.active{color:var(--ink);border-color:var(--teal)}.metric-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:24px 0}.metric-strip div{background:var(--surface-2);padding:18px}.metric-strip b{display:block;font:700 1.5rem var(--font-data);color:var(--ink)}.metric-strip span{font-size:.75rem;color:var(--muted)}.results-empty{min-height:400px;display:grid;place-content:center;text-align:center;color:var(--muted)}.results-empty h3{color:var(--ink);margin:8px 0}.empty-mark{font:300 5rem var(--font-data);color:var(--teal)}.grade-group{margin-top:28px}.grade-group header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px}.record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.record-card{padding:16px;border:1px solid var(--line);background:var(--surface-2)}.record-card h3{font-size:.96rem;margin-bottom:10px}.record-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.record-card dt{font-size:.68rem;color:var(--muted)}.record-card dd{font:600 .86rem var(--font-data);overflow-wrap:anywhere}.grade-score{font:700 1.8rem var(--font-data);color:var(--teal);float:right}.original-button{margin-top:12px;font-size:.76rem}.loading{opacity:.62;pointer-events:none}@media(max-width:980px){.campus-layout{width:min(100% - 28px,760px);grid-template-columns:1fr}.campus-intro{grid-template-columns:1fr}.connection-panel,.data-workspace{grid-column:1;grid-row:auto;position:static}.data-workspace{min-height:560px}.record-grid{grid-template-columns:1fr}}@media(max-width:560px){.campus-layout{width:calc(100% - 20px);padding-top:20px}.campus-intro{padding-top:20px}.connection-panel,.data-workspace{padding:20px}.metric-strip{grid-template-columns:1fr}.app-header{padding-inline:12px}.header-actions .status-pill{display:none}}
/* 方案 B：可见的长任务进度 */
.operation-progress{margin:16px 0 4px;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.operation-progress[hidden]{display:none}.progress-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.progress-heading b{font-size:.78rem}.progress-heading span{font:700 .65rem var(--font-data);color:var(--medical)}.operation-progress progress{display:block;width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:var(--mist-strong)}.operation-progress progress::-webkit-progress-bar{background:var(--mist-strong)}.operation-progress progress::-webkit-progress-value{background:linear-gradient(90deg,var(--medical),var(--teal));border-radius:999px}.operation-progress progress::-moz-progress-bar{background:var(--medical)}.progress-log{max-height:128px;overflow:auto;list-style:none;padding:0;margin:12px 0 0}.progress-log li{display:grid;grid-template-columns:62px 1fr;gap:9px;padding:6px 0;border-top:1px solid var(--line);color:var(--muted);font-size:.68rem}.progress-log time{font:600 .61rem var(--font-data);color:var(--medical)}.original-progress{margin:0 0 18px;background:#fffaf2;border-color:#ead9b8}.loading{cursor:progress}.loading button:disabled{cursor:wait;opacity:.62}
