@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap");

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:var(--sim-bg);--bg-soft:#0b101c;--panel:var(--sim-panel);--panel-2:#131c2e;
  --line:var(--sim-line);--line-hot:var(--sim-line-hot);
  --text:var(--sim-text);--muted:var(--sim-muted);--dim:var(--sim-dim);
  --cyan:var(--sim-action);--blue:var(--sim-blue);--indigo:#818cf8;--green:var(--sim-green);--red:var(--sim-red);--amber:var(--sim-value);
  --radius:18px;--radius-sm:11px;--font:var(--sim-font);--mono:var(--sim-mono);
}
html{font-size:14px;background:var(--bg)}
body{height:100dvh;overflow:hidden;color:var(--text);font-family:var(--font);background:var(--bg);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
button{color:inherit}
#app{width:100%;height:100dvh;display:grid;grid-template-rows:64px 1fr}

.app-header{display:flex;align-items:center;gap:13px;padding:0 18px;border-bottom:1px solid rgba(148,163,184,.1);background:rgba(7,10,18,.65);backdrop-filter:blur(20px) saturate(1.4);z-index:20;box-shadow:0 1px 0 rgba(255,255,255,.04),0 4px 20px rgba(0,0,0,.2)}
.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#22d3ee,#6366f1);box-shadow:0 8px 30px rgba(34,211,238,.2)}
.brand-mark svg{width:20px;height:20px;fill:white;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}
.brand-copy{width:145px;line-height:1}
.brand-copy h1{font-size:1rem;font-weight:700;letter-spacing:-.02em}
.brand-copy span{display:block;margin-top:6px;color:var(--dim);font-size:.62rem;letter-spacing:.03em}
#tabs{position:relative;display:flex;align-items:center;min-width:0;flex:1}
.lab-launcher{display:flex;align-items:center;gap:10px;min-width:230px;padding:7px 11px;border:1px solid rgba(148,163,184,.12);border-top-color:rgba(255,255,255,.06);border-radius:12px;color:var(--text);background:#101628;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.04);transition:background .18s ease,box-shadow .18s ease,border-color .18s ease,transform .18s ease}.lab-launcher:hover,.menu-open .lab-launcher{border-color:rgba(103,232,249,.25);background:#161e34;box-shadow:0 6px 18px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.05);transform:translateY(-1px)}.lab-launcher-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(103,232,249,.15);border-radius:9px;background:linear-gradient(135deg,rgba(34,211,238,.14),rgba(99,102,241,.13));font-size:1rem}.lab-launcher>span:nth-child(2){display:flex;min-width:0;flex:1;flex-direction:column;align-items:flex-start}.lab-launcher small{color:var(--dim);font:700 .5rem var(--mono);letter-spacing:.12em}.lab-launcher strong{max-width:170px;margin-top:3px;overflow:hidden;font-size:.73rem;text-overflow:ellipsis;white-space:nowrap}.lab-launcher b{color:var(--dim);transition:.18s}.menu-open .lab-launcher b{transform:rotate(180deg)}
.lab-menu{position:absolute;z-index:80;top:52px;left:0;width:min(780px,calc(100vw - 300px));max-height:calc(100dvh - 82px);overflow:auto;padding:14px;border:1px solid rgba(148,163,184,.12);border-top-color:rgba(255,255,255,.08);border-radius:18px;background:#090e1c;box-shadow:0 32px 80px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.05)}.lab-menu[hidden]{display:none}.lab-menu-head{display:flex;align-items:end;justify-content:space-between;padding:2px 3px 12px;border-bottom:1px solid var(--line)}.lab-menu-head span{font-size:.9rem;font-weight:700}.lab-menu-head small{color:var(--dim);font:.58rem var(--mono)}.lab-groups{columns:2;column-gap:15px;padding-top:13px}.lab-group{margin-bottom:15px;break-inside:avoid}.lab-group header{display:flex;flex-direction:column;margin:0 3px 6px}.lab-group header strong{color:#cbd5e1;font-size:.68rem}.lab-group header small{margin-top:2px;color:var(--dim);font-size:.55rem}.lab-group>div{display:grid;gap:5px}.lab-card{display:flex;align-items:center;gap:9px;width:100%;padding:9px;border:1px solid transparent;border-radius:11px;color:var(--muted);background:transparent;text-align:left;cursor:pointer;transition:background .18s ease,box-shadow .18s ease,border-color .18s ease,transform .18s ease}.lab-card:hover{border-color:rgba(148,163,184,.12);color:var(--text);background:rgba(22,32,52,.5);transform:translateX(2px) translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.15)}.lab-card.active{border-color:rgba(103,232,249,.22);color:#cffafe;background:linear-gradient(135deg,rgba(34,211,238,.11),rgba(99,102,241,.08))}.lab-card i{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:9px;background:#172237;font-style:normal}.lab-card span{display:flex;min-width:0;flex:1;flex-direction:column}.lab-card span strong{font-size:.68rem}.lab-card span small{display:-webkit-box;overflow:hidden;margin-top:2px;color:var(--dim);font-size:.54rem;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:1}.lab-card em{color:var(--dim);font-style:normal}
.header-status{display:flex;align-items:center;gap:7px;color:var(--dim);font-size:.65rem;white-space:nowrap}
.header-status i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.45}}

.workspace{min-height:0;display:grid;grid-template-columns:250px minmax(420px,1fr) 300px}
#library,#sidebar{min-height:0;overflow-y:auto;padding:14px;background:#0b101c}
#library{border-right:1px solid rgba(148,163,184,.08)}
#sidebar{min-height:0;overflow-y:auto;padding:14px;background:#0b101c;border-left:1px solid rgba(148,163,184,.08)}

.aside-title{display:flex;align-items:center;justify-content:space-between;margin:2px 2px 12px;color:var(--dim);font:700 .58rem var(--mono);letter-spacing:.15em}.aside-title kbd{padding:2px 5px;border:1px solid var(--line);border-radius:5px;font:inherit}
.library-search{width:100%;min-height:39px;margin-bottom:12px;padding:9px 10px;border:1px solid rgba(148,163,184,.12);border-radius:10px;outline:0;color:var(--text);background:rgba(10,15,26,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:.72rem;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.library-search:focus{border-color:var(--line-hot);box-shadow:0 0 0 3px rgba(34,211,238,.06)}
.library-family{margin-bottom:9px;border:1px solid transparent;border-radius:11px}.family-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 7px;border:0;color:var(--dim);background:transparent;font:700 .57rem var(--mono);letter-spacing:.12em;cursor:pointer}.family-head b{min-width:20px;padding:2px 5px;border-radius:99px;color:#8290a5;background:#151e2e;font-size:.55rem}.family-head::before{content:'⌄';margin-right:6px;color:#718096}.family-head span{margin-right:auto}.collapsed .family-head::before{content:'›'}.collapsed .family-body{display:none}
.library-context{display:flex;flex-direction:column;gap:5px;margin-bottom:10px;padding:10px;border:1px solid rgba(148,163,184,.1);border-radius:10px;background:rgba(14,20,36,.45)}
.library-context span{color:var(--dim);font:700 .53rem var(--mono);letter-spacing:.12em}.library-context strong{font-size:.75rem}.library-empty{padding:14px 10px;border:1px dashed var(--line);border-radius:10px;color:var(--dim);font-size:.64rem;line-height:1.55}
.library-card{position:relative;display:flex;align-items:center;gap:9px;width:100%;margin:3px 0;padding:9px;border:1px solid transparent;border-radius:10px;color:var(--text);background:transparent;text-align:left;cursor:pointer;transition:background .18s ease,box-shadow .18s ease,border-color .18s ease,transform .18s ease}.library-card:hover{border-color:rgba(148,163,184,.15);background:rgba(22,32,52,.5);transform:translateX(2px) translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.15)}.library-card.active{border-color:rgba(103,232,249,.22);background:linear-gradient(135deg,rgba(34,211,238,.12),rgba(99,102,241,.08))}.library-card i{display:grid;place-items:center;flex:0 0 29px;height:29px;border:1px solid rgba(103,232,249,.1);border-radius:9px;background:#151f31;font-style:normal}.library-card span{display:flex;min-width:0;flex-direction:column}.library-card strong{font-size:.72rem}.library-card small{overflow:hidden;margin-top:2px;color:var(--dim);font-size:.59rem;text-overflow:ellipsis;white-space:nowrap}.source-card i{color:var(--tool);border-color:color-mix(in srgb,var(--tool),transparent 75%);background:color-mix(in srgb,var(--tool),transparent 90%)}.source-card em{margin-left:auto;color:var(--dim);font-style:normal}.library-tip{margin-top:14px;padding:10px;border:1px dashed rgba(148,163,184,.12);border-radius:10px;color:var(--dim);font-size:.63rem;line-height:1.5;background:rgba(10,15,26,.3)}
.panel{position:relative;padding:14px;border:0;border-radius:0;background:transparent}
.panel:hover{background:transparent}
.tooltip-container{position:relative}
.panel h3{display:flex;align-items:center;gap:9px;margin-bottom:12px;font-size:1.03rem;letter-spacing:-.02em}
.panel h3 .icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(135deg,rgba(34,211,238,.17),rgba(129,140,248,.13));border:1px solid rgba(103,232,249,.12)}
.formula{margin-bottom:15px;padding:10px 11px;border:1px solid rgba(103,232,249,.12);border-radius:10px;color:var(--cyan);background:rgba(8,13,23,.55);font:500 .7rem/1.55 var(--mono);white-space:normal;cursor:help;position:relative;display:block;box-shadow:inset 0 1px 3px rgba(0,0,0,.15);transition:background .18s ease,box-shadow .18s ease}.formula br{display:block;margin-top:4px;content:""}
.formula .tooltip-trigger{margin-left:6px;color:var(--cyan);opacity:.7;transition:opacity .15s}
.formula .tooltip-trigger:hover{opacity:1}
.tooltip{position:fixed;z-index:100;left:0;top:0;min-width:260px;max-width:320px;padding:12px;border:1px solid var(--line-hot);border-radius:10px;background:rgba(14,21,36,.96);backdrop-filter:blur(12px);box-shadow:0 12px 32px rgba(0,0,0,.4);color:var(--text);font-size:.68rem;line-height:1.5;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}
.tooltip.show{opacity:1;transform:translateY(0);pointer-events:auto}
.tooltip h4{margin:0 0 6px;color:var(--cyan);font-size:.72rem;font-weight:600}
.tooltip p{margin:0 0 8px;color:var(--muted)}
.tooltip .concept{padding:6px 8px;background:rgba(34,211,238,.06);border-radius:6px;border-left:2px solid var(--cyan);font-size:.65rem;color:var(--text)}
.control{margin-bottom:14px}
.control>label:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:var(--muted);font-size:.73rem;font-weight:500}
.val{padding:2px 6px;border-radius:5px;color:var(--cyan);background:rgba(34,211,238,.07);font:500 .66rem var(--mono)}
select,input[type=number]{width:100%;min-height:39px;padding:8px 34px 8px 10px;border:1px solid var(--line);border-radius:10px;outline:0;color:var(--text);background:#0a101c;font-size:.73rem;transition:border-color .18s ease}
select:hover,select:focus,input[type=number]:focus{border-color:var(--line-hot);box-shadow:0 0 0 3px rgba(34,211,238,.06)}
input[type=range]{appearance:none;width:100%;height:5px;border-radius:99px;outline:0;background:linear-gradient(90deg,rgba(34,211,238,.65),#27344c);cursor:pointer}
input[type=range]::-webkit-slider-thumb{appearance:none;width:17px;height:17px;border:3px solid #0d1524;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 3px rgba(103,232,249,.12)}
.toggle{display:flex!important;justify-content:flex-end!important;margin:0!important;cursor:pointer}
.toggle input{position:absolute;opacity:0}
.toggle .track{position:relative;width:36px;height:20px;border:1px solid rgba(148,163,184,.15);border-radius:99px;background:#263149;transition:border-color .2s,background .2s,box-shadow .2s;box-shadow:inset 0 1px 2px rgba(0,0,0,.2)}
.toggle .track::after{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:#8491a7;transition:.2s}
.toggle input:checked+.track{border-color:rgba(103,232,249,.45);background:rgba(34,211,238,.3)}
.toggle input:checked+.track::after{left:19px;background:#cffafe;box-shadow:0 0 9px rgba(103,232,249,.5)}
.btn-row{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 14px}
.btn{min-height:36px;padding:7px 11px;border:1px solid rgba(148,163,184,.12);border-radius:10px;background:#1a2539;color:#dbe6f4;font-size:.7rem;font-weight:600;cursor:pointer;transition:background .18s ease,border-color .18s ease}
.btn:hover{border-color:rgba(103,232,249,.3);background:#202e46}
.btn.primary{border-color:transparent;color:#061018;background:linear-gradient(135deg,#67e8f9,#38bdf8);box-shadow:0 7px 20px rgba(56,189,248,.15)}
.btn.danger{color:#fecdd3;border-color:rgba(251,113,133,.24);background:rgba(251,113,133,.08)}
.legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:10px;padding-top:11px;border-top:1px solid var(--line);color:var(--dim);font-size:.63rem}
.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:7px;height:7px;border-radius:50%}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}.stat{padding:10px 7px;border:1px solid rgba(148,163,184,.08);border-radius:11px;background:rgba(10,15,26,.4)}.stat .num{color:var(--cyan);font:600 .88rem var(--mono)}.stat .lbl{margin-top:4px;color:var(--dim);font-size:.59rem;text-transform:uppercase;letter-spacing:.06em}
.learning-card{margin:2px 0 14px;padding:11px;border:1px solid rgba(52,211,153,.18);border-radius:11px;background:rgba(52,211,153,.04);color:var(--muted);font-size:.67rem;line-height:1.5}.learning-card strong{display:block;margin-bottom:4px;color:#6ee7b7;font-size:.7rem}.learning-card em{display:block;margin-top:6px;color:#cbd5e1;font-style:normal}
.vec-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:-2px 0 12px}.vec-progress span{padding:5px 3px;border-radius:6px;color:var(--dim);background:rgba(148,163,184,.06);font:600 .52rem var(--mono);text-align:center;text-transform:uppercase}.vec-progress span:first-child{color:var(--cyan);background:rgba(34,211,238,.09)}
.field-definition{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px 8px;margin:-3px 0 14px;padding:9px;border:1px solid rgba(148,163,184,.09);border-radius:10px;background:rgba(10,15,26,.35)}.field-definition span{color:var(--dim);font:700 .48rem var(--mono);letter-spacing:.1em}.field-definition code{overflow:hidden;color:#dbeafe;font:500 .61rem var(--mono);text-overflow:ellipsis;white-space:nowrap}
.direction-control{display:none}.direction-mode .direction-control{display:block}
.vec-display{margin:2px 0 13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.vec-display summary{padding:11px 2px;color:var(--muted);font-size:.68rem;font-weight:600;cursor:pointer;list-style:none}.vec-display summary::after{content:'＋';float:right;color:var(--dim)}.vec-display[open] summary::after{content:'−'}.vec-display .control{display:flex;align-items:center;justify-content:space-between;margin:0;padding:8px 2px;border-top:1px solid rgba(148,163,184,.06)}.vec-display .control>label:first-child{margin:0}.vec-display input[type=range]{width:52%}
.legend-dot.negative{background:#38bdf8}.legend-dot.neutral{background:#e2e8f0}.legend-dot.positive{background:#fb7185}
.measurement-panel{margin-top:12px;padding:10px;border:1px solid rgba(148,163,184,.08);border-radius:11px;background:rgba(10,15,26,.4)}.measurement-panel h4{margin-bottom:8px;color:var(--dim);font:700 .58rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.measurement-panel div{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-top:1px solid rgba(148,163,184,.07);color:var(--muted);font-size:.64rem}.measurement-panel output{color:var(--cyan);font:500 .62rem var(--mono);text-align:right}
.direction-picker{display:grid;grid-template-columns:1fr 1fr;gap:7px}.direction-picker button{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:11px;color:var(--muted);background:#0a101c;text-align:left;cursor:pointer;transition:.18s}.direction-picker button:hover{border-color:var(--line-hot);color:var(--text)}.direction-picker button.active{border-color:rgba(103,232,249,.35);color:#cffafe;background:rgba(34,211,238,.08);box-shadow:0 0 0 3px rgba(34,211,238,.08),0 2px 8px rgba(0,0,0,.12)}.direction-picker i{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#172237;color:var(--cyan);font:normal 1rem var(--mono)}.direction-picker span{display:flex;flex-direction:column;font-size:.65rem;font-weight:600}.direction-picker small{margin-top:1px;color:var(--dim);font-size:.52rem;font-weight:400}
.physics-note{display:flex;flex-wrap:wrap;gap:5px;margin:-5px 0 14px;color:var(--dim);font-size:.58rem}.physics-note strong{width:100%;color:var(--muted);font-size:.6rem}.physics-note span{padding:3px 6px;border:1px solid rgba(148,163,184,.1);border-radius:99px;background:rgba(10,15,26,.4)}.physics-note span:first-of-type{color:#fbbf24}.physics-note span:last-child{color:var(--cyan)}

#canvas-wrap{position:relative;min-width:0;overflow:hidden;background:radial-gradient(ellipse 60% 50% at 50% 40%,rgba(34,211,238,.04),transparent),radial-gradient(circle at 30% 60%,rgba(99,102,241,.04),transparent 50%),radial-gradient(circle at 70% 30%,rgba(34,211,238,.03),transparent 50%),linear-gradient(160deg,#0a1020,#070c18);background-size:200% 200%,100% 100%,100% 100%,100% 100%;animation:glass-drift 20s ease infinite}
@keyframes glass-drift{0%{background-position:0% 0%}50%{background-position:100% 50%}100%{background-position:0% 0%}}
#canvas-wrap::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(rgba(148,163,184,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.025) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,black,transparent 92%)}
#canvas-wrap canvas{position:absolute;inset:0;z-index:2;width:100%;height:100%;touch-action:none}
#canvas-wrap .canvas-3d{position:absolute;inset:0;z-index:3;width:100%;height:100%;touch-action:none}
.header-actions button{padding:6px 8px;border:1px solid rgba(148,163,184,.12);border-radius:7px;color:var(--muted);background:rgba(18,27,43,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:.62rem;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.header-actions button:hover{color:var(--text);border-color:rgba(103,232,249,.25);background:rgba(24,34,52,.6);transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.15)}
.header-actions{display:flex;align-items:center;gap:10px}.drop-ready{box-shadow:inset 0 0 0 2px rgba(103,232,249,.4),0 0 40px rgba(34,211,238,.08)}.drop-ready::after{content:'Solte para adicionar ao campo';position:absolute;z-index:6;inset:70px 30px 70px;display:grid;place-items:center;border:1px dashed rgba(103,232,249,.35);border-radius:18px;color:var(--cyan);background:rgba(8,15,30,.5);backdrop-filter:blur(10px);font:600 .75rem var(--mono);pointer-events:none;box-shadow:0 0 30px rgba(34,211,238,.06)}
#info-bar{position:absolute;z-index:5;left:14px;right:14px;bottom:13px;display:flex;flex-direction:column;gap:8px;min-height:auto;color:var(--muted);background:transparent;backdrop-filter:none;font:400 .62rem var(--mono);pointer-events:none}
#info-bar .toolbar{display:flex;align-items:center;gap:8px;padding:5px 6px 5px 9px;border:1px solid rgba(148,163,184,.1);border-radius:11px;background:rgba(7,10,22,.6);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);width:fit-content;box-shadow:0 2px 10px rgba(0,0,0,.2)}
#info-bar .toolbar .live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}
#info-bar .toolbar strong{min-width:120px;color:var(--muted);font:500 .62rem var(--mono)}
#info-bar .toolbar button{padding:6px 8px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:#121b2b;font-size:.62rem;cursor:pointer}
#info-bar .toolbar button:hover{color:var(--text);border-color:var(--line-hot)}
#info-bar .status{display:flex;align-items:center;gap:16px;padding:8px 11px;border:1px solid rgba(148,163,184,.1);border-radius:11px;background:rgba(7,10,22,.6);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 2px 10px rgba(0,0,0,.2)}
#info-bar .status span:first-child{color:var(--green)}
button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

@media(max-width:1180px){.brand-copy,.header-status{display:none}.workspace{grid-template-columns:220px minmax(400px,1fr) 270px}}
@media(max-width:920px){#library{display:none}.workspace{grid-template-columns:minmax(400px,1fr) 270px}}
@media(max-width:720px){
  body{overflow:auto}#app{height:auto;min-height:100dvh;grid-template-rows:auto 1fr}.app-header{min-height:58px;padding:8px 10px}.brand-mark{width:34px;height:34px}.lab-launcher{min-width:0;width:100%}.lab-launcher small{display:none}.lab-menu{position:fixed;top:66px;left:8px;right:8px;width:auto;max-height:calc(100dvh - 76px)}.lab-groups{columns:1}
  .workspace{display:flex;flex-direction:column}#sidebar{order:2;width:100%;max-height:none;border-top:1px solid var(--line);border-left:0}.panel{max-width:560px;margin:auto}#canvas-wrap{order:1;min-height:58dvh}.canvas-toolbar{top:8px;left:8px}#info-bar span:nth-child(n+3){display:none}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ===== LIGHT THEME OVERRIDES ===== */
:root[data-theme="light"]{
  --bg:#f1f5f9;--bg-soft:#e8ecf2;--panel:#ffffff;--panel-2:#f8fafc;
  --line:#cbd5e1;--line-hot:#0ea5e9;
  --text:#0f172a;--muted:#475569;--dim:#64748b;
  --cyan:#0891b2;--blue:#0284c7;--indigo:#6366f1;--green:#059669;--red:#dc2626;--amber:#d97706;
}
:root[data-theme="light"] .app-header{background:rgba(255,255,255,.85);border-bottom-color:rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.06),0 4px 20px rgba(0,0,0,.06)}
:root[data-theme="light"] .brand-mark{box-shadow:0 8px 30px rgba(14,165,233,.15)}
:root[data-theme="light"] #library,#root[data-theme="light"] #sidebar{background:#f8fafc}
:root[data-theme="light"] #library{border-right-color:rgba(0,0,0,.08)}
:root[data-theme="light"] #sidebar{border-left-color:rgba(0,0,0,.08);background:#f8fafc}
:root[data-theme="light"] .library-search{background:#ffffff;border-color:rgba(0,0,0,.15);box-shadow:none;color:var(--text)}
:root[data-theme="light"] .library-search:focus{box-shadow:0 0 0 3px rgba(14,165,233,.12)}
:root[data-theme="light"] .library-family{border-color:rgba(0,0,0,.08)}
:root[data-theme="light"] .family-head{color:var(--dim)}
:root[data-theme="light"] .family-head b{background:#e8ecf2;color:#475569}
:root[data-theme="light"] .library-context{background:#f1f5f9;border-color:rgba(0,0,0,.1)}
:root[data-theme="light"] .library-card{color:var(--muted)}
:root[data-theme="light"] .library-card:hover{background:rgba(241,245,249,.6);border-color:rgba(0,0,0,.12)}
:root[data-theme="light"] .library-card.active{border-color:rgba(8,145,178,.3);background:linear-gradient(135deg,rgba(14,165,233,.08),rgba(99,102,241,.06))}
:root[data-theme="light"] .library-card i{background:#e8ecf2;color:var(--cyan)}
:root[data-theme="light"] .library-tip{background:#f1f5f9;border-color:rgba(0,0,0,.12);color:var(--dim)}
:root[data-theme="light"] .panel{background:transparent;border:0;box-shadow:none}
:root[data-theme="light"] .panel:hover{background:transparent}
:root[data-theme="light"] .formula{background:rgba(241,245,249,.7);border-color:rgba(14,165,233,.2)}
:root[data-theme="light"] select,input[type=number]{background:#ffffff;color:var(--text)}
:root[data-theme="light"] input[type=range]{background:linear-gradient(90deg,rgba(14,165,233,.45),#cbd5e1)}
:root[data-theme="light"] input[type=range]::-webkit-slider-thumb{border-color:#ffffff}
:root[data-theme="light"] .toggle .track{background:#e2e8f0}
:root[data-theme="light"] .toggle input:checked+.track{background:rgba(14,165,233,.25)}
:root[data-theme="light"] .btn{background:#f1f5f9;color:var(--text)}
:root[data-theme="light"] .btn:hover{background:#e2e8f0}
:root[data-theme="light"] .btn.primary{color:#083344}
:root[data-theme="light"] .stat{background:#f1f5f9}
:root[data-theme="light"] .learning-card{background:rgba(5,150,105,.06);border-color:rgba(5,150,105,.25)}
:root[data-theme="light"] .measurement-panel{background:#f1f5f9}
:root[data-theme="light"] .direction-picker button{background:#ffffff;color:var(--muted);box-shadow:none}
:root[data-theme="light"] .direction-picker button.active{background:rgba(14,165,233,.1);border-color:rgba(8,145,178,.35);color:var(--cyan)}
:root[data-theme="light"] .direction-picker i{background:#e8ecf2;color:var(--cyan)}
:root[data-theme="light"] .physics-note span{background:#f1f5f9}
:root[data-theme="light"] #canvas-wrap{background:radial-gradient(ellipse 60% 50% at 50% 40%,rgba(14,165,233,.03),transparent),radial-gradient(circle at 30% 60%,rgba(99,102,241,.03),transparent 50%),radial-gradient(circle at 70% 30%,rgba(14,165,233,.02),transparent 50%),linear-gradient(160deg,#f8fafc,#f1f5f9)}
:root[data-theme="light"] #canvas-wrap::before{background-image:linear-gradient(rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.06) 1px,transparent 1px)}
:root[data-theme="light"] .header-actions button{background:#f1f5f9;color:var(--muted)}
:root[data-theme="light"] .header-actions button:hover{background:#e2e8f0;color:var(--text)}
:root[data-theme="light"] #info-bar .toolbar{background:#ffffff;border-color:rgba(0,0,0,.1)}
:root[data-theme="light"] #info-bar .toolbar button{background:#f8fafc;color:var(--muted)}
:root[data-theme="light"] #info-bar .toolbar button:hover{color:var(--text)}
:root[data-theme="light"] #info-bar .status{background:#ffffff}
:root[data-theme="light"] .lab-launcher{background:#ffffff;border-color:rgba(0,0,0,.12);box-shadow:0 2px 8px rgba(0,0,0,.1)}
:root[data-theme="light"] .lab-launcher:hover{background:#f8fafc;box-shadow:0 6px 18px rgba(0,0,0,.12)}
:root[data-theme="light"] .lab-menu{background:#ffffff;border-color:rgba(0,0,0,.12);box-shadow:0 32px 80px rgba(0,0,0,.15),0 12px 32px rgba(0,0,0,.1)}
:root[data-theme="light"] .lab-card{color:var(--muted)}
:root[data-theme="light"] .lab-card:hover{background:rgba(241,245,249,.5);border-color:rgba(0,0,0,.12)}
:root[data-theme="light"] .lab-card.active{border-color:rgba(8,145,178,.3);background:linear-gradient(135deg,rgba(14,165,233,.08),rgba(99,102,241,.06))}
:root[data-theme="light"] .lab-card i{background:#e8ecf2}
:root[data-theme="light"] .tooltip{background:rgba(255,255,255,.96);border-color:rgba(0,0,0,.15)}
:root[data-theme="light"] .tooltip .concept{background:rgba(14,165,233,.06);border-left-color:var(--cyan)}
:root[data-theme="light"] .drop-ready{border-color:rgba(14,165,233,.4)}
:root[data-theme="light"] .drop-ready::after{background:rgba(248,250,252,.6);border-color:rgba(14,165,233,.35);color:var(--cyan)}
:root[data-theme="light"] .val{background:rgba(14,165,233,.08);color:var(--cyan)}
