.slw-host {
  --slw-bg:var(--soft,#edf3f4);
  --slw-panel:var(--paper,#fff);
  --slw-sidebar:color-mix(in srgb,var(--soft,#edf3f4) 82%,var(--paper,#fff) 18%);
  --slw-canvas:#f4f6f7;
  --slw-ink:var(--ink,#16343a);
  --slw-muted:var(--muted,#6b858a);
  --slw-line:var(--line,#d4e3e5);
  --slw-accent:var(--teal,#159eaa);
  --slw-orange:#e86f32;
  --slw-shadow:0 18px 55px rgba(16,52,58,.1);
  --slw-palette-width:150px;
  --slw-inspector-width:196px;
  display:block;
  min-width:0;
  color:var(--slw-ink);
}
html[data-theme="dark"] .slw-host {
  --slw-bg:#102327;
  --slw-panel:#0d1b1f;
  --slw-sidebar:#12272b;
  --slw-canvas:#071518;
  --slw-ink:#e8f6f5;
  --slw-muted:#9ab2b6;
  --slw-line:#29444a;
  --slw-accent:#4ed9df;
  --slw-orange:#ff8a4c;
  --slw-shadow:0 22px 62px rgba(0,0,0,.48);
}
.slw-shell {
  overflow:hidden;
  border:1px solid var(--slw-line);
  border-radius:14px;
  background:var(--slw-panel);
  box-shadow:var(--slw-shadow);
}
.slw-toolbar {
  min-height:58px;
  padding:8px 12px;
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  position:relative;
  border-top:0;
  border-bottom:1px solid var(--slw-line);
  background:linear-gradient(180deg,color-mix(in srgb,var(--slw-panel) 88%,var(--slw-bg) 12%),var(--slw-panel));
}
.slw-toolbar::before {
  content:"";
  position:absolute;
  z-index:2;
  left:0;right:0;top:0;
  height:4px;
  background:linear-gradient(100deg,#3678ff 0%,#55a8ff 28%,#37d5e5 52%,#6586ff 76%,#3678ff 100%);
  background-size:220% 100%;
  box-shadow:0 0 10px rgba(67,166,255,.34),0 0 18px rgba(45,211,226,.16);
  animation:slwBluePulse 5.8s ease-in-out infinite;
}
.slw-title {
  display:flex;
  min-width:0;
  align-items:center;
  gap:10px;
}
.slw-app-mark {
  width:34px;
  height:34px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:10px;
  background:
    radial-gradient(circle at 72% 22%,rgba(255,255,255,.52),transparent 21%),
    linear-gradient(145deg,#326dff 0%,#2fa9e8 52%,#28d4d0 100%);
  border:1px solid rgba(255,255,255,.42);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 5px 14px rgba(31,137,222,.26);
  position:relative;
}
.slw-app-mark::before {
  content:"";
  position:absolute;
  width:23px;
  height:13px;
  border:2.3px solid #fff;
  border-left-color:transparent;
  border-right-color:transparent;
  border-radius:50%;
  transform:rotate(-15deg);
  opacity:.96;
}
.slw-app-mark::after {
  content:"";
  position:absolute;
  width:5px;height:5px;
  border-radius:50%;
  background:#fff;
  box-shadow:-10px 3px 0 rgba(255,255,255,.88),10px -3px 0 rgba(255,255,255,.88);
}
.slw-app-mark span{display:none}
.slw-title>div {
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:10px;
}
.slw-title b {
  font-size:.96rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.slw-title [data-role="status"] {
  min-width:0;
  font-size:.72rem;
  color:var(--slw-muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.slw-title [data-role="status"].is-pass { color:var(--slw-accent); }
.slw-title [data-role="status"].is-fail { color:#e16a55; }
.slw-title [data-role="status"].is-warn { color:#d18b39; }
.slw-actions,
.slw-model-actions {
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.slw-actions button,
.slw-inspector button,
.slw-zoom-tools button {
  height:34px;
  padding:0 11px;
  border:1px solid var(--slw-line);
  border-radius:6px;
  background:color-mix(in srgb,var(--slw-panel) 88%,var(--slw-bg) 12%);
  color:var(--slw-ink);
  font:700 .75rem/1 inherit;
  cursor:pointer;
}
.slw-actions button:hover,
.slw-inspector button:hover,
.slw-zoom-tools button:hover {
  border-color:color-mix(in srgb,var(--slw-accent) 58%,var(--slw-line));
  background:color-mix(in srgb,var(--slw-accent) 10%,var(--slw-panel));
}
.slw-actions button:focus-visible,
.slw-inspector button:focus-visible,
.slw-zoom-tools button:focus-visible {
  outline:2px solid color-mix(in srgb,var(--slw-accent) 65%,transparent);
  outline-offset:2px;
}
.slw-actions .primary {
  border-color:var(--slw-accent);
  background:var(--slw-accent);
  color:#05272b;
}
.slw-actions .check {
  border-color:var(--slw-orange);
  background:var(--slw-orange);
  color:#fff;
}
.slw-maximize {
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.slw-maximize>span:first-child { font-size:1rem; line-height:1; }
.slw-main {
  display:grid;
  grid-template-columns:var(--slw-palette-width) minmax(0,1fr) var(--slw-inspector-width);
  min-height:620px;
  background:var(--slw-panel);
}
.slw-palette,
.slw-inspector {
  min-width:0;
  overflow:auto;
  background:var(--slw-sidebar);
  color:var(--slw-ink);
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--slw-accent) 45%,transparent) transparent;
}
.slw-palette {
  padding:11px 8px;
  border-right:1px solid var(--slw-line);
}
.slw-palette section+section { margin-top:12px; }
.slw-palette h4 {
  margin:0 4px 5px;
  color:var(--slw-muted);
  font-size:.64rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.slw-palette button {
  width:100%;
  margin:3px 0;
  padding:6px 5px;
  display:flex;
  align-items:center;
  gap:6px;
  border:1px solid transparent;
  border-radius:5px;
  background:transparent;
  color:var(--slw-ink);
  text-align:left;
  cursor:grab;
}
.slw-palette button:hover {
  border-color:var(--slw-line);
  background:color-mix(in srgb,var(--slw-panel) 74%,var(--slw-bg) 26%);
}
.slw-palette button i {
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--slw-accent) 35%,var(--slw-line));
  border-radius:3px;
  background:var(--slw-panel);
  color:var(--slw-accent);
  font-style:normal;
  font-weight:900;
}
.slw-palette button span {
  color:var(--slw-ink);
  font-size:.67rem;
  font-weight:750;
}
.slw-stage-wrap {
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-rows:auto 440px auto;
  background:var(--slw-panel);
}
.slw-canvasbar {
  min-height:38px;
  padding:5px 8px 5px 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-bottom:1px solid var(--slw-line);
  background:color-mix(in srgb,var(--slw-panel) 78%,var(--slw-bg) 22%);
}
.slw-tip {
  min-width:0;
  color:var(--slw-muted);
  font-size:.72rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.slw-zoom-tools {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:3px;
}
.slw-zoom-tools button {
  min-width:30px;
  height:27px;
  padding:0 7px;
  font-size:.68rem;
}
.slw-zoom-tools [data-role="zoom"] {
  min-width:48px;
  font-family:ui-monospace,Consolas,monospace;
}
.slw-stage {
  position:relative;
  min-width:0;
  height:100%;
  min-height:0;
  overflow:auto;
  outline:0;
  touch-action:none;
  cursor:grab;
  background-color:var(--slw-canvas);
  background-image:radial-gradient(circle,color-mix(in srgb,var(--slw-line) 78%,transparent) 1px,transparent 1.2px);
  background-size:20px 20px;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--slw-accent) 48%,transparent) transparent;
}
.slw-stage.is-panning { cursor:grabbing; user-select:none; }
.slw-stage:focus-visible { box-shadow:inset 0 0 0 2px var(--slw-accent); }
.slw-zoom-space { position:relative; min-width:100%; min-height:100%; }
.slw-canvas {
  --slw-zoom:1;
  position:absolute;
  left:0;
  top:0;
  transform:scale(var(--slw-zoom));
  transform-origin:0 0;
}
.slw-blocks,
.slw-wires {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.slw-wires { z-index:1; overflow:visible; pointer-events:auto; }
.slw-blocks { z-index:2; pointer-events:none; }
.slw-block { pointer-events:auto; }
.slw-wire-line {
  fill:none;
  stroke:color-mix(in srgb,var(--slw-ink) 72%,var(--slw-accent));
  stroke-width:2.35;
  pointer-events:none;
}
.slw-wire-hit {
  fill:none;
  stroke:transparent;
  stroke-width:14;
  pointer-events:stroke;
  cursor:pointer;
}
.slw-wire.selected .slw-wire-line { stroke:var(--slw-orange); stroke-width:3.8; }
.slw-block {
  position:absolute;
  left:0;
  top:0;
  width:145px;
  min-height:88px;
  display:grid;
  grid-template-columns:18px minmax(0,1fr) 18px;
  align-items:stretch;
  transform:translate(var(--x),var(--y));
  filter:drop-shadow(0 5px 10px rgba(4,31,35,.13));
  outline:0;
}
.slw-block.selected .slw-block-body {
  border-color:var(--slw-accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--slw-accent) 22%,transparent);
}
.slw-block-body {
  padding:7px 6px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  border:1.5px solid color-mix(in srgb,var(--slw-ink) 68%,var(--slw-line));
  border-radius:3px;
  background:var(--slw-panel);
  color:var(--slw-ink);
  cursor:grab;
  user-select:none;
}
.slw-block-body:active { cursor:grabbing; }
.slw-block-body small {
  color:var(--slw-muted);
  font-size:.53rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.slw-block-body b {
  max-width:100%;
  color:var(--slw-ink);
  font-size:.68rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.slw-block-icon {
  min-height:26px;
  display:grid;
  place-items:center;
  color:var(--slw-accent);
  font:bold 1.08rem/1 ui-monospace,Consolas,monospace;
}
.slw-gain-symbol {
  width:33px;
  height:25px;
  padding-right:8px;
  display:grid;
  place-items:center;
  clip-path:polygon(0 0,100% 50%,0 100%);
  background:color-mix(in srgb,var(--slw-accent) 22%,var(--slw-panel));
  font-size:.64rem;
}
.slw-sum-symbol {
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border:2px solid var(--slw-accent);
  border-radius:50%;
  font-size:.62rem;
}
.slw-integrator-symbol {
  padding:4px 7px;
  border:1px solid var(--slw-line);
  background:var(--slw-bg);
  font-size:.9rem;
}
.slw-port-column {
  z-index:4;
  display:flex;
  flex-direction:column;
  justify-content:space-evenly;
  align-items:center;
}
.slw-port {
  position:relative;
  width:14px;
  height:14px;
  padding:0;
  border:0;
  border-radius:50%;
  background:var(--slw-panel);
  cursor:crosshair;
}
.slw-port::after {
  content:"";
  position:absolute;
  inset:3px;
  background:var(--slw-ink);
}
.slw-port.in::after {
  clip-path:polygon(0 50%,100% 0,100% 100%);
  background:var(--slw-muted);
}
.slw-port.out::after {
  clip-path:polygon(0 0,100% 50%,0 100%);
  background:var(--slw-accent);
}
.slw-port.pending { box-shadow:0 0 0 5px color-mix(in srgb,var(--slw-orange) 30%,transparent); }
.slw-port span {
  position:absolute;
  left:50%;
  top:18px;
  transform:translateX(-50%);
  color:var(--slw-muted);
  font-size:.48rem;
  opacity:0;
}
.slw-block:hover .slw-port span { opacity:1; }
.slw-inspector {
  padding:12px 10px;
  border-left:1px solid var(--slw-line);
}
.slw-inspector-head {
  margin-bottom:12px;
  display:flex;
  align-items:center;
  gap:10px;
}
.slw-inspector-head i {
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:1px solid var(--slw-line);
  border-radius:4px;
  background:var(--slw-panel);
  color:var(--slw-accent);
  font-style:normal;
  font-weight:900;
}
.slw-inspector-head span { display:flex; flex-direction:column; }
.slw-inspector-head small { color:var(--slw-muted); font-size:.63rem; }
.slw-inspector label,
.slw-inspector-empty label {
  margin:9px 0;
  display:grid;
  gap:5px;
}
.slw-inspector label span,
.slw-inspector-empty label span {
  color:var(--slw-muted);
  font-size:.7rem;
  font-weight:700;
}
.slw-inspector input {
  width:100%;
  height:33px;
  padding:0 8px;
  border:1px solid var(--slw-line);
  border-radius:5px;
  background:var(--slw-panel);
  color:var(--slw-ink);
  font:700 .78rem ui-monospace,Consolas,monospace;
}
.slw-inspector input:focus {
  outline:2px solid color-mix(in srgb,var(--slw-accent) 45%,transparent);
  border-color:var(--slw-accent);
}
.slw-inspector hr {
  margin:13px 0;
  border:0;
  border-top:1px solid var(--slw-line);
}
.slw-inspector .danger { width:100%; color:#dc6655; }
.slw-settings-title { display:block; margin-bottom:8px; font-size:.78rem; }
.slw-inspector-empty b { color:var(--slw-ink); font-size:.82rem; }
.slw-inspector-empty p,
.slw-no-params { color:var(--slw-muted); font-size:.72rem; line-height:1.55; }
.slw-scope {
  border-top:1px solid var(--slw-line);
  background:color-mix(in srgb,var(--slw-panel) 88%,#08191d 12%);
}
.slw-scope>header {
  min-height:38px;
  padding:7px 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.slw-scope>header b { color:var(--slw-ink); font-size:.76rem; }
.slw-scope>header span { color:var(--slw-muted); font-size:.66rem; }
.slw-scope-body {
  max-height:390px;
  padding:0 12px 12px;
  display:grid;
  gap:10px;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--slw-accent) 45%,transparent) transparent;
}
.slw-scope-placeholder,
.slw-scope-error {
  min-height:110px;
  padding:22px;
  display:grid;
  place-items:center;
  color:var(--slw-muted);
  font-size:.74rem;
  text-align:center;
}
.slw-scope-error b { color:#e16a55; }
.slw-plot-card {
  overflow:hidden;
  border:1px solid var(--slw-line);
  border-radius:7px;
  background:var(--slw-panel);
}
.slw-plot-card header {
  padding:8px 11px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  border-bottom:1px solid var(--slw-line);
  color:var(--slw-ink);
  font-size:.7rem;
}
.slw-plot-card header div { display:flex; gap:9px; flex-wrap:wrap; }
.slw-plot-card header span { display:flex; align-items:center; gap:4px; color:var(--slw-muted); }
.slw-plot-card header i { width:11px; height:3px; border-radius:2px; }
.slw-plot-card svg { display:block; width:100%; height:210px; background:#09171a; }
.slw-plot-card .grid path { fill:none; stroke:#294248; stroke-width:1; }
.slw-plot-card .axes path { fill:none; stroke:#789196; stroke-width:1.2; }
.slw-plot-card .curves path { fill:none; stroke-width:2.4; vector-effect:non-scaling-stroke; }
.slw-plot-card text { fill:#8aa2a7; font-size:11px; }
.slw-plot-card .channel-0 { stroke:#25c0d8; background:#25c0d8; }
.slw-plot-card .channel-1 { stroke:#ff9d63; background:#ff9d63; }
.slw-plot-card .channel-2 { stroke:#b0dc67; background:#b0dc67; }
.slw-plot-card .channel-3 { stroke:#be8eff; background:#be8eff; }
.slw-plot-card .channel-4 { stroke:#ff6c8e; background:#ff6c8e; }
.slw-plot-card .channel-5 { stroke:#f0d05f; background:#f0d05f; }
.slw-display-card {
  padding:13px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  border:1px solid var(--slw-line);
  border-radius:6px;
  background:var(--slw-panel);
  color:var(--slw-ink);
}
.slw-display-card strong { color:var(--slw-accent); font:800 .95rem ui-monospace,Consolas,monospace; }
.slw-readonly .slw-main { grid-template-columns:minmax(0,1fr); min-height:430px; }
.slw-readonly .slw-stage-wrap { grid-column:1; }
.slw-readonly .slw-block-body { cursor:default; }
.slw-compact {
  --slw-palette-width:136px;
  --slw-inspector-width:182px;
}
.slw-compact .slw-main { min-height:520px; }
.slw-compact .slw-stage-wrap { grid-template-rows:auto 360px auto; }
.slw-compact .slw-stage { min-height:0; }
.slw-compact .slw-scope-body { max-height:300px; }
.simulink-lab { margin:26px 0; }
.simulink-lab-body { min-width:0; }
.slw-modal-backdrop {
  position:fixed;
  inset:0;
  z-index:9998;
  background:rgba(1,11,13,.78);
  backdrop-filter:blur(5px);
}
body.slw-modal-open { overflow:hidden!important; }
.slw-host.slw-maximized {
  position:fixed;
  inset:10px;
  z-index:9999;
  margin:0!important;
  min-height:0;
}
.slw-maximized .slw-shell {
  height:calc(100vh - 20px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  border-radius:10px;
}
.slw-maximized .slw-main {
  min-height:0;
  height:100%;
}
.slw-maximized .slw-stage-wrap { grid-template-rows:auto minmax(0,1fr) auto; min-height:0; }
.slw-maximized .slw-stage { min-height:0; }
.slw-maximized .slw-scope-body { max-height:34vh; }
@media(max-width:1100px) {
  .slw-host { --slw-palette-width:132px; --slw-inspector-width:176px; }
  .slw-compact { --slw-palette-width:124px; --slw-inspector-width:168px; }
  .slw-palette button { padding:6px 4px; }
  .slw-palette button span { font-size:.66rem; }
}
@media(max-width:820px) {
  .slw-toolbar { align-items:flex-start; flex-direction:column; }
  .slw-actions { width:100%; justify-content:space-between; }
  .slw-main { grid-template-columns:1fr; min-height:0; }
  .slw-palette {
    padding:8px;
    display:flex;
    gap:12px;
    overflow:auto;
    border-right:0;
    border-bottom:1px solid var(--slw-line);
  }
  .slw-palette section { flex:0 0 auto; display:flex; align-items:center; gap:5px; }
  .slw-palette section+section { margin-top:0; }
  .slw-palette h4 { margin:0 2px; writing-mode:vertical-rl; font-size:.6rem; }
  .slw-palette button { width:auto; min-width:68px; margin:0; padding:5px 7px; display:grid; justify-items:center; gap:3px; }
  .slw-palette button i { width:28px; height:26px; }
  .slw-palette button span { white-space:nowrap; font-size:.61rem; }
  .slw-stage-wrap { grid-row:2; }
  .slw-inspector {
    grid-row:3;
    max-height:none;
    padding:12px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 12px;
    border-left:0;
    border-top:1px solid var(--slw-line);
  }
  .slw-inspector-head,
  .slw-inspector-empty { grid-column:1/-1; }
  .slw-inspector hr,
  .slw-settings-title { grid-column:1/-1; }
  .slw-inspector button { grid-column:1/-1; }
  .slw-stage-wrap { grid-template-rows:auto 410px auto; }
  .slw-stage { min-height:0; }
  .slw-scope-body { max-height:330px; }
  .slw-plot-card svg { height:190px; }
  .slw-maximized .slw-main { overflow:auto; }
}
@media(max-width:520px) {
  .slw-shell { border-radius:10px; }
  .slw-toolbar { padding:8px; }
  .slw-title { width:100%; }
  .slw-title>div { min-width:0; flex:1; align-items:flex-start; flex-direction:column; gap:0; }
  .slw-title [data-role="status"] { max-width:100%; }
  .slw-actions button { padding:0 8px; font-size:.68rem; }
  .slw-maximize [data-role="maximize-label"] { display:none; }
  .slw-canvasbar { align-items:flex-start; flex-direction:column; }
  .slw-tip { width:100%; }
  .slw-zoom-tools { width:100%; justify-content:flex-end; }
  .slw-stage-wrap { grid-template-rows:auto 360px auto; }
  .slw-stage { min-height:0; }
  .slw-inspector { grid-template-columns:1fr; }
  .slw-inspector>* { grid-column:1!important; }
  .slw-plot-card header { align-items:flex-start; flex-direction:column; }
  .slw-plot-card svg { height:170px; }
  .slw-host.slw-maximized { inset:4px; }
  .slw-maximized .slw-shell { height:calc(100vh - 8px); }
}


@keyframes slwBluePulse{
  0%,100%{background-position:0% 50%;filter:saturate(.95);opacity:.9}
  50%{background-position:100% 50%;filter:saturate(1.12);opacity:1}
}
@media(prefers-reduced-motion:reduce){.slw-toolbar::before{animation:none;background-position:50% 50%}}
