.eb-lab{display:grid;grid-template-columns:268px minmax(0,1fr);gap:16px;flex:1;min-height:0;overflow:auto;padding:0 4px 20px 0;font-size:13px;color:#d8e3fb;align-items:start;scrollbar-color:#38547e #0b1224}.eb-lab button,.eb-lab select{border:1px solid #354d73;background:#14223d;color:#dce9fd;border-radius:7px;padding:8px 12px;font:inherit;cursor:pointer;transition:background .15s}.eb-lab button:hover{background:#26416c}.eb-lab button:focus-visible,.eb-lab input:focus-visible,.eb-lab select:focus-visible{outline:2px solid #82c9ff;outline-offset:2px}.eb-lab input{accent-color:#72b6eb}.eb-lab input[type=range]{cursor:pointer;min-width:0}.eb-card{background:linear-gradient(135deg,#111d34,#0c1528);border:1px solid #263c5e;border-radius:12px;overflow:hidden}.eb-controls{padding:20px 17px;position:sticky;top:0}.eb-eyebrow{font-size:9px;letter-spacing:2px;color:#72a7db;margin-bottom:9px}.eb-lab h3{font-size:15px;font-weight:650;letter-spacing:.4px}.eb-lab h3 small{font-weight:400;font-size:11px;color:#a0b5d0;margin-left:6px}.eb-muted{font-size:11px;color:#9baecc;line-height:1.6;margin:8px 0}.eb-segment{display:flex;margin-top:16px}.eb-segment button{flex:1;border-radius:0}.eb-segment button:first-child{border-radius:7px 0 0 7px}.eb-segment button:last-child{border-radius:0 7px 7px 0}.eb-segment .selected{background:#26558b;border-color:#72b6eb;color:#fff}.eb-param{margin-top:17px}.eb-param>div{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:8px}.eb-param small{font-size:10px;color:#91a8c9}.eb-param input[type=number]{width:75px;border:1px solid #334867;background:#081224;color:#ebf3ff;border-radius:5px;padding:5px;text-align:right;font:inherit}.eb-param input[type=range]{width:100%;height:5px;display:block}.eb-divider{border-top:1px solid #293c59;margin-top:23px;padding-top:17px}.eb-presets{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px}.eb-presets button{font-size:11px;padding:8px 4px}.eb-main{display:flex;flex-direction:column;gap:15px;min-width:0}.eb-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.eb-metrics .eb-card{padding:17px 18px;border-top:2px solid #5ba8e7}.eb-metrics span{display:block;font-size:12px;color:#aac0dc}.eb-metrics strong{display:block;font-size:26px;color:#ffc886;margin:9px 0;font-variant-numeric:tabular-nums;font-weight:650}.eb-metrics strong small{font-size:13px;font-weight:400}.eb-metrics em{display:block;font-size:10px;color:#8da7c9;font-style:normal}.eb-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;flex-wrap:wrap}.eb-toolbar p{margin-bottom:0}.eb-actions{display:flex;gap:6px}.eb-actions button{padding:6px 12px;font-size:12px}.eb-badge{color:#80e1bf;font-size:9px;padding:4px 6px;border-radius:4px;background:#16372f;margin-left:9px;vertical-align:middle;letter-spacing:1px}.eb-viewport{height:410px;position:relative;background:radial-gradient(ellipse at 50% 45%,#16294a,#060d1b);overflow:hidden;border-top:1px solid #263c5e;border-bottom:1px solid #263c5e}.eb-viewport canvas{display:block;width:100%;height:100%}.eb-scene-note{position:absolute;left:18px;top:15px;font-size:10px;line-height:1.8;color:#94aecb;pointer-events:none}.eb-legend{position:absolute;right:17px;bottom:18px;width:200px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:7px;font-size:10px;pointer-events:none}.eb-legend i{order:2;width:100%;height:7px;background:linear-gradient(90deg,#568aff,#dbe9f5,#ff755f);border-radius:8px}.eb-legend small{order:3;color:#a5b7cf;font-size:9px}.eb-hint{position:absolute;left:17px;bottom:18px;color:#92a9c7;font-size:10px;pointer-events:none}.eb-display{display:flex;align-items:center;gap:18px;padding:12px 18px;flex-wrap:wrap;font-size:11px}.eb-display label{display:flex;align-items:center;gap:6px}.eb-display small{color:#829bbe;font-size:10px}.eb-display select{padding:3px 6px}.eb-play{display:flex;align-items:center;gap:8px;padding:0 18px 15px;flex-wrap:wrap}.eb-play button{font-size:12px}.eb-play label{display:flex;align-items:center;gap:9px;flex:1;min-width:150px;font-size:11px}.eb-play label input{flex:1;width:60px}.eb-play label b{width:32px;font-variant-numeric:tabular-nums}.eb-play .eb-primary{background:#28598f;border-color:#4d8fcb}.eb-section .eb-toolbar{border-bottom:1px solid #263c5e}.eb-section .eb-toolbar label{display:flex;align-items:center;gap:12px;font-size:11px;color:#aec0da}.eb-section-body{display:flex;align-items:center;padding:9px 18px;gap:20px}.eb-section-graphic{width:250px;flex-shrink:0}.eb-section svg{width:100%;display:block}.eb-section text{fill:#a8c0e0;font-size:11px}.eb-local-readings{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 13px}.eb-local-readings span{display:block;color:#8fa9ca;font-size:11px;margin-bottom:7px}.eb-local-readings b{font-size:13px;font-weight:500;color:#dceaff;font-variant-numeric:tabular-nums}.eb-charts{display:grid;grid-template-columns:1fr 1fr;gap:14px}.eb-diagram h3{padding:15px 16px 0;font-size:13px}.eb-diagram h3 small{display:block;margin:5px 0 0;font-size:10px}.eb-diagram svg{width:100%;display:block;cursor:crosshair}.eb-diagram text{fill:#95abc9;font-size:10px}.eb-notes{padding:17px;font-size:11px;line-height:1.8;color:#a0b5d0}.eb-notes p{margin-top:8px}.eb-notes b{color:#cce1ff}.eb-notes a{color:#78b7f2;display:inline-block;margin-top:8px}.eb-warning{color:#ffd08c!important}.eb-error{position:absolute;top:35%;right:10%;bottom:35%;left:10%;color:#ffbe8f;z-index:2;line-height:1.8}.sidenav{overflow-y:auto;flex-shrink:0}@media (min-width:1700px){.eb-viewport{height:470px}.eb-lab{grid-template-columns:290px minmax(0,1fr)}}@media (max-width:1250px){.eb-lab{grid-template-columns:230px minmax(0,1fr);gap:12px}.eb-controls{padding:16px 12px}.eb-metrics .eb-card{padding:13px 10px}.eb-metrics strong{font-size:21px}.eb-section-graphic{width:175px}.eb-local-readings{grid-template-columns:1fr 1fr}.eb-viewport{height:365px}.eb-charts{grid-template-columns:1fr}}@media (max-width:950px){.eb-lab{grid-template-columns:1fr}.eb-controls{position:static;display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}.eb-controls>.eb-eyebrow,.eb-controls>h3,.eb-controls>.eb-presets{grid-column:1/-1}.eb-controls .eb-divider{margin-top:10px}.eb-controls .eb-muted{align-self:center}.eb-metrics{gap:7px}.eb-metrics strong{font-size:20px}.eb-viewport{height:380px}.eb-section-body{gap:10px}}@media (max-width:650px){.body:has(.eb-lab){flex-direction:column}.body:has(.eb-lab) .sidenav{width:100%;flex-direction:row;overflow-x:auto;padding:6px;gap:4px}.body:has(.eb-lab) .nav-item{white-space:nowrap;padding:8px;font-size:11px}.body:has(.eb-lab) .content{min-height:0;padding:10px}.app:has(.eb-lab) .topbar{padding:12px}.app:has(.eb-lab) .logo{font-size:16px;letter-spacing:1px}.app:has(.eb-lab) .subtitle{display:none}.eb-metrics span{font-size:10px}.eb-metrics strong{font-size:18px}.eb-metrics strong small{display:block;font-size:10px}.eb-metrics em{font-size:9px}.eb-section-body{flex-direction:column}.eb-local-readings{width:100%;padding-bottom:12px}.eb-legend{width:160px;bottom:40px}.eb-play{padding:0 12px 12px}.eb-viewport{height:330px}.eb-toolbar{padding:13px 12px}.eb-hint{bottom:12px}.eb-controls{gap:4px 12px}}.eb-controls{max-height:calc(100vh - 130px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#38547e #101b30}@media (max-width:950px){.eb-controls{max-height:none;overflow:visible}}.eb-segment button{padding:8px 5px;font-size:12px}.eb-probe-actions{display:flex;gap:6px;flex-wrap:wrap}.eb-probe-actions button,.eb-probe-actions select{font-size:11px;padding:6px 8px}.eb-actions{flex-wrap:wrap}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-0: #04060d;--bg-1: #080c1a;--panel: rgba(16, 23, 46, .55);--panel-border: rgba(120, 160, 255, .16);--panel-border-strong: rgba(135, 175, 255, .38);--text: #d8e3fb;--text-dim: rgba(165, 188, 238, .72);--accent: #5aa2ff;--accent-soft: rgba(90, 162, 255, .35);--cyan: #7ee0c2;--amber: #ffd28a}html,body,#root{height:100%}body{font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;background:radial-gradient(1100px 700px at 72% -12%,rgba(58,92,190,.28) 0%,transparent 60%),radial-gradient(900px 650px at -8% 108%,rgba(38,70,150,.2) 0%,transparent 55%),radial-gradient(700px 500px at 105% 85%,rgba(150,95,40,.08) 0%,transparent 60%),linear-gradient(180deg,var(--bg-1) 0%,var(--bg-0) 100%);color:var(--text);overflow:hidden}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:baseline;gap:18px;padding:15px 26px;background:#0a0f208c;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;border-image:linear-gradient(90deg,transparent,rgba(120,165,255,.45),transparent) 1;box-shadow:0 4px 24px #00000080}.logo{font-size:21px;font-weight:800;letter-spacing:2.5px;background:linear-gradient(92deg,#8fc0ff,#d6e6ff 55%,#8fd8ff);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 28px rgba(110,165,255,.35)}.subtitle{font-size:11px;color:#9bb6e88c;letter-spacing:3.5px;text-transform:uppercase}.body{display:flex;flex:1;min-height:0}.sidenav{width:214px;padding:18px 12px;display:flex;flex-direction:column;gap:7px;background:#080c1a8c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-right:1px solid rgba(110,150,255,.12)}.nav-item{position:relative;display:flex;align-items:center;gap:10px;padding:12px 14px 12px 18px;border:1px solid transparent;border-radius:10px;background:transparent;color:#aebde6;font-size:14px;letter-spacing:.5px;cursor:pointer;text-align:left;transition:all .2s ease}.nav-item:before{content:"";position:absolute;left:5px;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:60%;border-radius:2px;background:linear-gradient(180deg,#7db4ff,#4f8fff);box-shadow:0 0 10px #6ea5ffe6;transition:transform .22s ease}.nav-item:hover{background:#4669be29;color:#e8f0ff;transform:translate(2px)}.nav-item.active{background:linear-gradient(90deg,#4c78dc61,#4c78dc14);border-color:var(--panel-border-strong);color:#fff;box-shadow:0 0 18px #5082ff47,inset 0 1px #c8dcff1f}.nav-item.active:before{transform:translateY(-50%) scaleY(1)}.nav-icon{font-size:17px;filter:drop-shadow(0 0 6px rgba(120,170,255,.35))}.content{flex:1;min-width:0;padding:16px 20px;display:flex;flex-direction:column}.module-title{font-size:18px;font-weight:700;letter-spacing:1px;margin-bottom:12px;background:linear-gradient(90deg,#eef4ff,#a9c6f8);-webkit-background-clip:text;background-clip:text;color:transparent}.module-shell{display:flex;gap:16px;flex:1;min-height:0}.viewport-wrap{flex:1;min-width:0;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--panel-border-strong);background:radial-gradient(800px 500px at 50% 0%,rgba(50,80,160,.22),transparent 70%),linear-gradient(180deg,#0d1430,#080d20 60%,#05070f);box-shadow:inset 0 0 70px #192d6959,0 10px 40px #00000073,0 0 0 1px #0000004d}.viewport{position:absolute;top:0;right:0;bottom:0;left:0}.viewport canvas{display:block}.viewport-hint{position:absolute;left:12px;bottom:10px;font-size:11px;letter-spacing:.5px;color:#afc8f899;background:#060a1899;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:5px 11px;border-radius:7px;border:1px solid rgba(120,160,255,.14);pointer-events:none}.side-panel{width:400px;flex-shrink:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-right:2px}.side-panel::-webkit-scrollbar{width:6px}.side-panel::-webkit-scrollbar-thumb{background:#6e96ff4d;border-radius:3px}.param-box,.teaching,.reading-item{background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--panel-border);box-shadow:inset 0 1px #c8dcff0f,0 6px 20px #00000047}.btn-row{display:flex;gap:10px}.btn{flex:1;padding:10px 0;border-radius:10px;border:1px solid rgba(120,160,255,.32);background:linear-gradient(180deg,#344c8a80,#22346480);color:#dbe7ff;font-size:14px;letter-spacing:1px;cursor:pointer;transition:all .16s ease;box-shadow:inset 0 1px #c8dcff1a}.btn:hover:not(:disabled){background:linear-gradient(180deg,#4868b49e,#3048849e);box-shadow:0 0 16px #5a8cff66,inset 0 1px #d2e4ff29;transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0) scale(.98)}.btn:focus-visible{outline:2px solid rgba(140,185,255,.7);outline-offset:2px}.btn:disabled{opacity:.38;cursor:default}.btn-primary{background:linear-gradient(135deg,#4a7ee8,#2f56b8);border-color:#96beff8c;box-shadow:0 4px 18px #3c6ee659,inset 0 1px #dcebff40}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#5a8cf5,#3a64cc);box-shadow:0 6px 24px #4678f580,inset 0 1px #dcebff4d}.btn-danger{border-color:#ff8c7859}.btn-danger:hover:not(:disabled){background:linear-gradient(180deg,#a544388c,#782e288c);box-shadow:0 0 14px #ff6e5a59}.progress-row{display:flex;align-items:center;gap:10px}.progress-label{font-size:12px;letter-spacing:1px;color:var(--text-dim);white-space:nowrap}.progress-track{flex:1;height:8px;border-radius:5px;background:#18244ad9;border:1px solid rgba(110,150,255,.14);overflow:hidden;box-shadow:inset 0 1px 3px #00000080}.progress-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#3d8bff,#7ee0c2);box-shadow:0 0 12px #5aaaffbf;transition:width .1s linear}.progress-value{font-size:12px;width:38px;text-align:right;color:#9fd8ff;font-variant-numeric:tabular-nums;text-shadow:0 0 8px rgba(120,200,255,.5)}.finish-tag{align-self:flex-start;font-size:12px;letter-spacing:1px;color:#7ee0c2;padding:4px 12px;border-radius:999px;border:1px solid rgba(126,224,194,.4);background:#2e8c7326;box-shadow:0 0 14px #7ee0c240}.param-box{padding:12px 14px;border-radius:12px}.param-title{font-size:12px;letter-spacing:1.5px;color:var(--text-dim);margin-bottom:8px}.param-title+.param-num-group,.radio-group+.param-title,.param-num-group+.param-title{margin-top:12px}.radio-group{display:flex;flex-wrap:wrap;gap:8px}.radio-item{display:flex;align-items:center;gap:6px;font-size:13px;padding:7px 12px;border-radius:8px;border:1px solid rgba(110,150,255,.24);background:#1a285080;cursor:pointer;transition:all .16s ease}.radio-item:hover{border-color:#8cb9ff80;transform:translateY(-1px)}.radio-item input{accent-color:#5aa2ff}.radio-item.active{border-color:#8cb9ffbf;background:linear-gradient(180deg,#507ad680,#3858a280);color:#fff;box-shadow:0 0 12px #5a8cff59,inset 0 1px #d2e4ff26}.param-num-group{display:flex;flex-direction:column;gap:8px}.param-num{display:flex;align-items:center;gap:8px;font-size:13px;color:#c6d5f6}.param-num-label{flex:1;letter-spacing:.5px}.param-num input{width:96px;padding:6px 9px;border-radius:8px;border:1px solid rgba(110,150,255,.3);background:#080d1ebf;color:#eaf2ff;font-size:13px;font-variant-numeric:tabular-nums;text-align:right;transition:all .16s ease;box-shadow:inset 0 1px 4px #00000073}.param-num input:hover{border-color:#8cb9ff80}.param-num input:focus{outline:none;border-color:#8cbeffd9;box-shadow:0 0 12px #5a96ff59,inset 0 1px 4px #00000073}.param-num-unit{width:36px;font-size:12px;color:var(--text-dim)}.readings{display:grid;grid-template-columns:1fr 1fr;gap:8px}.reading-item{display:flex;flex-direction:column;gap:3px;padding:9px 12px;border-radius:10px;position:relative;overflow:hidden}.reading-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#6ea5ffb3,#6ea5ff1a)}.reading-label{font-size:11px;letter-spacing:1px;color:var(--text-dim)}.reading-value{font-size:14px;font-weight:700;letter-spacing:.5px;color:#a5dcff;font-variant-numeric:tabular-nums;text-shadow:0 0 10px rgba(110,190,255,.4)}.chart-box{border-radius:14px;overflow:hidden;border:1px solid var(--panel-border-strong);height:240px;flex-shrink:0;box-shadow:0 8px 26px #00000059,inset 0 1px #c8dcff0f}.chart-canvas{width:100%;height:100%;display:block}.teaching{padding:13px 15px;border-radius:12px;font-size:13px;line-height:1.8;color:#c3d2f2}.teaching h4{font-size:13px;letter-spacing:1.5px;color:#8fb8ff;margin:8px 0 4px;text-shadow:0 0 12px rgba(110,165,255,.35)}.teaching h4:first-child{margin-top:0}.teaching p{margin-bottom:6px}.teaching b{color:var(--amber)}
