/* ============================================================
   平行板电容器数字孪生平台 — 样式
   ============================================================ */
:root{
  --bg:#0b1020;
  --bg-2:#121a30;
  --panel:#161f38;
  --panel-2:#1c2745;
  --line:rgba(120,160,255,.16);
  --line-2:rgba(120,160,255,.28);
  --txt:#e8eefc;
  --txt-2:#9fb2d6;
  --txt-3:#6f81a6;
  --blue:#4da3ff;
  --blue-d:#2f7fe0;
  --cyan:#38e1d6;
  --green:#7ee0a8;
  --amber:#ffcc66;
  --red:#ff6b81;
  --purple:#b78cff;
  --shadow:0 10px 34px rgba(0,0,0,.42);
  --r:14px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:"Microsoft YaHei UI","Microsoft YaHei","Segoe UI",-apple-system,sans-serif;
  background:
    radial-gradient(1200px 620px at 12% -10%, rgba(77,163,255,.16), transparent 62%),
    radial-gradient(1000px 560px at 92% 4%, rgba(183,140,255,.12), transparent 60%),
    linear-gradient(180deg,#0a0f1e 0%, #0b1020 42%, #080c18 100%);
  color:var(--txt);
  min-height:100vh;
  display:flex;flex-direction:column;
  overflow-x:hidden;
}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:rgba(120,160,255,.26);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:rgba(120,160,255,.42)}
::-webkit-scrollbar-track{background:transparent}

/* ---------------- 顶栏 ---------------- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:14px 22px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(22,31,56,.92), rgba(13,19,36,.72));
  backdrop-filter:blur(10px);
  position:sticky;top:0;z-index:30;
}
.brand{display:flex;align-items:center;gap:13px;min-width:0}
.brand-mark{
  width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;
  border-radius:12px;
  background:linear-gradient(145deg, rgba(77,163,255,.22), rgba(183,140,255,.16));
  border:1px solid var(--line-2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.brand-text h1{font-size:17px;font-weight:700;letter-spacing:.4px;line-height:1.25}
.brand-text h1 span{color:var(--blue)}
.brand-text p{font-size:11px;color:var(--txt-3);letter-spacing:.6px;margin-top:2px}
.topbar-right{display:flex;align-items:center;gap:10px}
.clock-box{
  display:flex;flex-direction:column;align-items:flex-end;gap:1px;
  padding:5px 12px;border-radius:10px;border:1px solid var(--line);
  background:rgba(10,16,32,.55);
}
.clock-label{font-size:9.5px;color:var(--txt-3);letter-spacing:1.1px}
.clock-val{font-family:"Consolas","Cascadia Mono",monospace;font-size:14px;color:var(--cyan);font-weight:600}

/* ---------------- 按钮 ---------------- */
.btn{
  font-family:inherit;font-size:12.5px;font-weight:600;color:var(--txt);
  padding:8px 15px;border-radius:10px;cursor:pointer;
  border:1px solid var(--line-2);
  background:linear-gradient(180deg, rgba(52,74,124,.55), rgba(30,44,78,.55));
  transition:.16s ease;
  white-space:nowrap;
}
.btn:hover{border-color:rgba(120,170,255,.55);background:linear-gradient(180deg, rgba(70,100,164,.70), rgba(38,56,98,.70));transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{
  color:#04121f;
  border-color:transparent;
  background:linear-gradient(180deg,#6bbcff,#3d92eb);
  box-shadow:0 6px 18px rgba(61,146,235,.34);
}
.btn-primary:hover{background:linear-gradient(180deg,#8cccff,#4d9ff2)}
.btn-ghost{background:rgba(20,30,56,.55)}
.btn-sm{padding:6px 11px;font-size:11.5px;border-radius:8px}

/* ---------------- 页签 ---------------- */
.tabs{
  display:flex;gap:6px;padding:9px 22px 0;flex-wrap:wrap;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(16,23,42,.86), rgba(12,18,34,.60));
  position:sticky;top:73px;z-index:29;backdrop-filter:blur(8px);
}
.tab{
  font-family:inherit;font-size:13px;font-weight:600;color:var(--txt-2);
  background:transparent;border:none;cursor:pointer;
  padding:10px 17px;border-radius:10px 10px 0 0;
  border-bottom:2px solid transparent;
  transition:.15s;
}
.tab:hover{color:var(--txt);background:rgba(60,90,150,.16)}
.tab.active{
  color:#fff;
  border-bottom-color:var(--blue);
  background:linear-gradient(180deg, rgba(77,163,255,.20), rgba(77,163,255,.03));
}

/* ---------------- 主体 ---------------- */
/* 底部预留字幕条空间：字幕出现时不会遮挡内容，也不会触发布局跳动 */
.main{padding:16px 22px 78px;max-width:1720px;margin:0 auto;width:100%;flex:1 1 auto;display:flex;flex-direction:column;min-height:0}
.page{display:none;animation:fade .26s ease}
.page.active{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.panel{
  background:linear-gradient(180deg, rgba(24,34,60,.92), rgba(16,24,44,.92));
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  padding:15px 16px;
  min-width:0;
  min-height:0;
}
.panel-ctrl,.panel-readout{overflow-y:auto;overscroll-behavior:contain}
.panel-ctrl::-webkit-scrollbar,.panel-readout::-webkit-scrollbar{width:6px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.panel-head h2{font-size:13.5px;font-weight:700;letter-spacing:.5px;color:#dbe7ff}
.panel-head h2::before{
  content:"";display:inline-block;width:3px;height:13px;border-radius:2px;
  background:linear-gradient(180deg,var(--blue),var(--cyan));
  margin-right:8px;vertical-align:-2px;
}
.hint{font-size:11px;color:var(--txt-3)}
.live-dot{color:var(--green);font-weight:700;letter-spacing:1.4px;font-size:10px}
.live-dot::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--green);margin-right:6px;vertical-align:1px;
  animation:pulse 1.5s infinite;
}
@keyframes pulse{0%,100%{opacity:.4;box-shadow:0 0 0 0 rgba(126,224,168,.5)}50%{opacity:1;box-shadow:0 0 0 5px rgba(126,224,168,0)}}

/* ---------------- 布局 ---------------- */
.layout-sim{
  display:grid;
  grid-template-columns:288px minmax(0,1fr) 322px;
  grid-template-rows:minmax(0,1fr);
  gap:14px;align-items:stretch;flex:1 1 auto;min-height:0;
}
.layout-curve{display:grid;grid-template-columns:minmax(0,1fr) 396px;gap:14px;align-items:start}
.layout-sensor{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:14px;align-items:start}
.layout-doc{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}

/* ---------------- 控制台 ---------------- */
.ctrl-group{margin-bottom:15px}
.ctrl-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.ctrl-head label{font-size:12.5px;color:var(--txt-2);font-weight:600;white-space:nowrap}
.ctrl-head label i{color:var(--blue);font-style:italic;font-family:Georgia,serif}
.ctrl-head label sub{font-size:9px}
.ctrl-val{
  font-family:"Consolas","Cascadia Mono",monospace;
  font-size:13px;font-weight:700;color:var(--cyan);
  background:rgba(56,225,214,.09);
  border:1px solid rgba(56,225,214,.22);
  padding:2px 9px;border-radius:7px;
  white-space:nowrap;flex:0 0 auto;
}

input[type=range]{
  -webkit-appearance:none;appearance:none;
  width:100%;height:5px;border-radius:4px;outline:none;
  background:linear-gradient(90deg, rgba(77,163,255,.85), rgba(56,225,214,.55)) no-repeat,
             rgba(255,255,255,.09);
  background-size:var(--fill,50%) 100%, 100% 100%;
  cursor:pointer;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:16px;height:16px;border-radius:50%;
  background:radial-gradient(circle at 34% 32%, #eaf6ff, #4da3ff 62%, #2b6fbe);
  border:2px solid #dff0ff;
  box-shadow:0 0 0 3px rgba(77,163,255,.20), 0 3px 10px rgba(0,0,0,.45);
  transition:transform .12s;
}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.14)}
input[type=range]::-moz-range-thumb{
  width:14px;height:14px;border-radius:50%;border:2px solid #dff0ff;
  background:#4da3ff;cursor:pointer;
}
.ctrl-scale{display:flex;justify-content:space-between;font-size:10px;color:var(--txt-3);margin-top:5px}

.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.chip{
  font-family:inherit;font-size:10.5px;color:var(--txt-2);
  padding:4px 9px;border-radius:20px;cursor:pointer;
  border:1px solid var(--line);background:rgba(255,255,255,.035);
  transition:.14s;white-space:nowrap;
}
.chip:hover{color:#fff;border-color:rgba(77,163,255,.55);background:rgba(77,163,255,.14)}
.chip.active{color:#04121f;background:linear-gradient(180deg,#7ee0ff,#38c7ee);border-color:transparent;font-weight:700}

.seg{display:flex;gap:5px;padding:4px;border-radius:11px;background:rgba(8,13,26,.62);border:1px solid var(--line)}
.seg-btn{
  flex:1;font-family:inherit;font-size:11.5px;font-weight:600;color:var(--txt-2);
  padding:7px 6px;border:none;border-radius:8px;background:transparent;cursor:pointer;transition:.15s;
  white-space:nowrap;
}
.seg-btn:hover{color:#fff;background:rgba(77,163,255,.12)}
.seg-btn.active{
  color:#04121f;background:linear-gradient(180deg,#6bbcff,#3d92eb);
  box-shadow:0 3px 10px rgba(61,146,235,.34);
}
.seg-sm .seg-btn{font-size:11px;padding:6px 5px}
.seg-toggle{flex:0 0 auto;font-family:"Consolas",monospace;font-weight:700;letter-spacing:.3px;color:var(--amber)}
.seg-toggle.on{color:#04121f;background:linear-gradient(180deg,#ffd98a,#f0b64d);box-shadow:0 3px 10px rgba(240,182,77,.32)}

.ctrl-inline{display:flex;flex-direction:column;gap:9px}
.switch{display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none}
/* 视觉上隐藏但保持可聚焦/可点击（键盘可 Tab 到，自动化可 click） */
.switch input{
  position:absolute;opacity:0;width:36px;height:20px;margin:0;
  cursor:pointer;z-index:2;
}
.switch{position:relative}
.switch input:focus-visible + .switch-track{outline:2px solid var(--blue);outline-offset:3px}
.switch-track{
  width:36px;height:20px;border-radius:20px;position:relative;flex:0 0 36px;
  background:rgba(255,255,255,.12);border:1px solid var(--line);transition:.2s;
}
.switch-track::after{
  content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;
  background:#93a7c9;transition:.2s;
}
.switch input:checked + .switch-track{background:rgba(77,163,255,.72);border-color:rgba(77,163,255,.85)}
.switch input:checked + .switch-track::after{left:18px;background:#fff}
.switch-label{font-size:12px;color:var(--txt-2)}

.panel-foot{display:flex;flex-wrap:wrap;gap:6px;padding-top:12px;border-top:1px solid var(--line);margin-top:4px}

/* ---------------- 舞台 ---------------- */
.panel-stage{display:flex;flex-direction:column;min-height:0}
.stage-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px;flex-wrap:wrap;flex:0 0 auto}
.legend{display:flex;gap:13px;flex-wrap:wrap}
.lg{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--txt-3)}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.dot-pos{background:var(--red)}
.dot-neg{background:var(--blue)}
.dot-field{background:var(--green)}
.dot-eq{background:rgba(160,200,255,.55)}
.dot-die{background:var(--purple)}

.canvas-wrap{
  position:relative;flex:1 1 auto;min-height:330px;
  border-radius:12px;overflow:hidden;
  border:1px solid rgba(120,160,255,.14);
  background:
    radial-gradient(700px 340px at 50% 46%, rgba(25,40,74,.86), rgba(8,12,24,.94)),
    repeating-linear-gradient(0deg, rgba(120,160,255,.045) 0 1px, transparent 1px 34px),
    repeating-linear-gradient(90deg, rgba(120,160,255,.045) 0 1px, transparent 1px 34px);
}
#stage{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:grab}
#stage.dragging{cursor:grabbing}
.drag-tip{
  position:absolute;left:50%;bottom:9px;transform:translateX(-50%);
  font-size:11px;color:var(--txt-3);background:rgba(8,13,26,.72);
  padding:4px 12px;border-radius:20px;border:1px solid var(--line);
  pointer-events:none;transition:opacity .4s;
}
.stage-badge{
  position:absolute;top:10px;left:11px;
  font-size:10.5px;font-weight:700;letter-spacing:.6px;
  padding:4px 11px;border-radius:20px;
  background:rgba(77,163,255,.16);border:1px solid rgba(77,163,255,.42);color:#9ed0ff;
}
.stage-badge.charge{background:rgba(255,204,102,.14);border-color:rgba(255,204,102,.42);color:#ffd98a}

.stage-foot{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:11px;flex:0 0 auto}
.mini-card{
  display:flex;flex-direction:column;gap:2px;
  padding:8px 11px;border-radius:10px;
  background:rgba(10,16,32,.60);border:1px solid var(--line);
}
.mc-k{font-size:10px;color:var(--txt-3)}
.mc-v{font-family:"Consolas",monospace;font-size:13.5px;font-weight:700;color:#bfe0ff}

/* ---------------- 读数 ---------------- */
.reading{
  display:flex;flex-direction:column;gap:2px;
  padding:9px 11px;border-radius:10px;
  background:rgba(10,16,32,.52);border:1px solid var(--line);
  min-width:0;
}
.reading.hero{
  background:linear-gradient(150deg, rgba(77,163,255,.20), rgba(56,225,214,.07));
  border-color:rgba(77,163,255,.34);
  padding:12px 14px;margin-bottom:11px;
}
.r-label{font-size:10.5px;color:var(--txt-3);letter-spacing:.3px}
.r-value{
  font-family:"Consolas","Cascadia Mono",monospace;
  font-size:17px;font-weight:700;color:#eaf4ff;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.reading.hero .r-value{font-size:27px;color:#9fdcff;text-shadow:0 0 18px rgba(77,163,255,.42)}
.r-value small{font-size:10.5px;color:var(--txt-2);font-weight:600;margin-left:2px}
.reading.hero .r-value small{font-size:12px}
.r-sub{font-size:10.5px;color:var(--txt-3);font-family:"Consolas",monospace;margin-top:2px}

.read-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}

.formula-live{
  padding:10px 12px;border-radius:10px;margin-bottom:12px;
  background:rgba(10,16,32,.50);border:1px solid var(--line);
}
.fl-title{font-size:10.5px;color:var(--txt-3);letter-spacing:.6px;margin-bottom:7px}
.fl-row{display:flex;justify-content:space-between;gap:10px;font-size:10.5px;padding:3px 0;border-bottom:1px dashed rgba(120,160,255,.10)}
.fl-row:last-child{border-bottom:none}
.fl-row span{color:var(--txt-2);font-family:"Consolas",monospace;flex:0 0 auto}
.fl-row b{color:var(--cyan);font-family:"Consolas",monospace;font-weight:600;text-align:right;font-size:10px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.scale-bar{padding:10px 12px;border-radius:10px;background:rgba(10,16,32,.50);border:1px solid var(--line)}
.sb-title{font-size:10.5px;color:var(--txt-3);margin-bottom:8px}
.sb-track{position:relative;height:7px;border-radius:6px;background:linear-gradient(90deg,rgba(56,225,214,.30),rgba(183,140,255,.30),rgba(255,107,129,.30))}
.sb-fill{position:absolute;left:0;top:0;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--cyan),var(--blue));box-shadow:0 0 12px rgba(77,163,255,.5);transition:width .18s}
.sb-mark{position:absolute;top:-3px;width:3px;height:13px;border-radius:2px;background:#fff;box-shadow:0 0 8px #fff;transition:left .18s}
.sb-lbl{display:flex;justify-content:space-between;font-size:9.5px;color:var(--txt-3);margin-top:5px}

/* ---------------- 曲线页 ---------------- */
.chart-wrap{position:relative;height:492px;border-radius:12px;overflow:hidden;
  border:1px solid rgba(120,160,255,.14);background:rgba(8,12,24,.68)}
#chart{position:absolute;inset:0;display:block;width:100%;height:100%}
.chart-note{margin-top:11px;font-size:11.5px;color:var(--txt-2);padding:9px 13px;border-radius:9px;
  background:rgba(77,163,255,.08);border-left:3px solid var(--blue)}

.tbl-wrap{border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.data-table,.doc-table{width:100%;border-collapse:collapse;font-size:11.5px}
.data-table th,.doc-table th{
  background:rgba(77,163,255,.14);color:#cfe4ff;font-weight:700;
  padding:8px 9px;text-align:center;font-size:11px;
  border-bottom:1px solid rgba(120,160,255,.24);white-space:nowrap;
}
.data-table td,.doc-table td{
  padding:7px 9px;text-align:center;color:#d3e1f7;
  border-bottom:1px solid rgba(120,160,255,.08);
  font-family:"Consolas",monospace;
}
.data-table tbody tr:hover td{background:rgba(77,163,255,.09)}
.data-table tbody tr.current td{background:rgba(56,225,214,.16);color:#adfff6;font-weight:700}

.note-box{
  margin-top:12px;padding:11px 13px;border-radius:10px;font-size:11.5px;line-height:1.72;color:var(--txt-2);
  background:rgba(19,28,50,.72);border:1px solid var(--line);border-left:3px solid var(--cyan);
}
.note-box b{color:#cfe4ff}
.note-box.warn{border-left-color:var(--amber)}

/* ---------------- 传感页 ---------------- */
.sensor-canvas-wrap{position:relative;height:430px;border-radius:12px;overflow:hidden;
  border:1px solid rgba(120,160,255,.14);background:rgba(8,12,24,.72);margin-bottom:13px}
#sensorCanvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.sensor-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}
.btn-row{display:flex;gap:8px;grid-column:1/-1;margin-top:2px}

/* ---------------- 文档页 ---------------- */
.doc-body{font-size:12.6px;line-height:1.92;color:#c9d8ef;max-width:1080px}
.doc-body h3{
  font-size:14px;color:#9fd0ff;margin:20px 0 9px;padding-bottom:6px;
  border-bottom:1px solid rgba(120,160,255,.16);
}
.doc-body h3:first-child{margin-top:0}
.doc-body p{margin:7px 0}
.doc-body b,.doc-body strong{color:#eaf4ff}
.doc-body code{
  font-family:"Consolas",monospace;font-size:12px;color:#7ee7ff;
  background:rgba(56,225,214,.10);padding:1px 6px;border-radius:5px;border:1px solid rgba(56,225,214,.16);
}
.doc-body p.eq{
  font-family:"Cambria","Times New Roman",Georgia,serif;
  font-size:14.5px;color:#ffd98a;text-align:center;
  padding:9px;margin:11px 0;border-radius:10px;
  background:rgba(255,204,102,.07);border:1px solid rgba(255,204,102,.18);
  font-style:italic;letter-spacing:.3px;
}
.doc-table{margin:11px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.doc-table td{text-align:left;font-family:inherit;font-size:12px;line-height:1.7}

.formula-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:11px}
.fcard{
  padding:14px 15px;border-radius:12px;
  background:linear-gradient(155deg, rgba(77,163,255,.10), rgba(183,140,255,.055));
  border:1px solid var(--line);
}
.fc-name{font-size:11.5px;color:var(--txt-2);font-weight:600;margin-bottom:7px}
.fc-eq{
  font-family:"Cambria","Times New Roman",Georgia,serif;
  font-size:16.5px;color:#ffd98a;font-style:italic;line-height:1.5;margin-bottom:8px;
  word-break:break-word;
}
.fc-desc{font-size:11.5px;color:var(--txt-3);line-height:1.7}

/* ---------------- 字幕 ---------------- */
.caption-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  height:0;padding:0 22px;overflow:hidden;
  background:linear-gradient(180deg, rgba(6,10,20,.0), rgba(6,10,20,.94) 34%);
  transition:height .28s ease, padding .28s ease;
  pointer-events:none;
  display:flex;align-items:flex-end;justify-content:center;
}
.caption-bar.show{height:70px;padding:0 22px 10px}
.caption-bar span{
  display:block;text-align:center;font-size:19px;font-weight:600;line-height:1.5;
  color:#eaf4ff;letter-spacing:.4px;
  text-shadow:0 2px 18px rgba(0,0,0,.9), 0 0 26px rgba(77,163,255,.34);
}

/* ---------------- Toast ---------------- */
.toast{
  position:fixed;left:50%;bottom:30px;transform:translate(-50%, 14px);z-index:80;
  padding:11px 20px;border-radius:11px;
  background:linear-gradient(180deg, rgba(37,54,92,.98), rgba(24,36,64,.98));
  border:1px solid rgba(120,170,255,.42);
  color:#dceaff;font-size:12.5px;font-weight:600;
  box-shadow:0 12px 34px rgba(0,0,0,.52);
  opacity:0;transition:.24s;pointer-events:none;
  max-width:min(760px, calc(100vw - 48px));text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.toast.show{opacity:1;transform:translate(-50%, 0)}

/* ---------------- 响应式 ---------------- */
/* 矮屏（笔记本 1366×768 / 1600×900 等）：压缩控制台间距，保证一屏放得下 */
@media (max-height: 960px) and (min-width: 1321px){
  .ctrl-group{margin-bottom:10px}
  .ctrl-head{margin-bottom:5px}
  .panel-foot{padding-top:8px;margin-top:2px}
  .chips{gap:4px;margin-top:6px}
  .chip{padding:3px 8px;font-size:10px}
  .panel{padding:12px 14px}
  .panel-head{margin-bottom:10px}
  .read-grid{gap:6px;margin-bottom:9px}
  .reading{padding:7px 10px}
  .reading.hero{padding:10px 13px;margin-bottom:9px}
  .formula-live{padding:8px 11px;margin-bottom:9px}
  .scale-bar{padding:8px 11px}
  .canvas-wrap{min-height:270px}
}
/* 更矮的屏（1366×768）：再压一档，避免控制台内部滚动 */
@media (max-height: 820px) and (min-width: 1321px){
  .main{padding:12px 18px 72px}
  .topbar{padding:9px 20px}
  .brand-mark{width:38px;height:38px;flex:0 0 38px}
  .brand-text h1{font-size:15.5px}
  .brand-text p{display:none}
  .tab{padding:8px 14px;font-size:12.5px}
  .ctrl-group{margin-bottom:8px}
  .ctrl-head{margin-bottom:4px}
  .ctrl-scale{margin-top:3px}
  .chips{margin-top:5px}
  .chip{padding:2px 7px;font-size:9.5px}
  .panel-ctrl .panel-foot{gap:5px;padding-top:7px}
  .btn-sm{padding:5px 9px;font-size:11px}
  .canvas-wrap{min-height:240px}
  .stage-foot{gap:7px;margin-top:8px}
  .mini-card{padding:6px 9px}
  .mc-v{font-size:12.5px}
}
@media (max-width:1500px){
  .layout-sim{grid-template-columns:268px minmax(0,1fr) 300px}
}
@media (max-width:1320px){
  .layout-sim{grid-template-columns:264px minmax(0,1fr)}
  .panel-readout{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,1fr);gap:0 16px}
  .panel-readout > .panel-head{grid-column:1/-1}
  .panel-readout .reading.hero{grid-column:1/-1}
  .panel-readout .read-grid{grid-column:1/-1}
  .layout-curve,.layout-sensor{grid-template-columns:1fr}
}
@media (max-width:980px){
  .layout-sim{grid-template-columns:1fr}
  .stage-foot{grid-template-columns:1fr 1fr}
  .tabs{top:auto;position:relative}
  .topbar{flex-wrap:wrap}
}
