#view-viyaware.page-view{max-width:none;width:100%;margin:0;padding:16px 12px 24px}
#view-viyaware.hidden-by-editor{display:none!important}

.vw-root{position:relative;display:flex;flex-direction:column;height:calc(100vh - 250px);min-height:560px;background:var(--bg-page);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:var(--fs-sm)}
.vw-root :focus-visible{outline:2px solid #7db3ff;outline-offset:1px}

.vw-root > .vw-dirty{position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:30;color:var(--orange);font-size:var(--fs-md);white-space:nowrap;pointer-events:none}
.vw-toolbar .vw-dirty{position:relative;top:1px;transform:none;align-self:center;padding:0 4px;color:var(--orange);font-size:var(--fs-sm);white-space:nowrap;text-align:left}
.vw-dirty:empty{display:none}

.vw-menubar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:var(--bg-bar);border-bottom:1px solid var(--line);padding:6px 10px}
.vw-menu{position:relative}
.vw-menu-btn{padding:5px 12px;font-size:var(--fs-sm)}
.vw-menu.open .vw-menu-btn{transform:translateY(2px);background:linear-gradient(180deg,var(--press-hi),var(--press-lo));box-shadow:var(--shadow-down)}
.vw-dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:60;min-width:230px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 40px rgba(0,0,0,.55);padding:4px}
.vw-dropdown[hidden]{display:none}
.vw-item{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:7px 10px;font:inherit;font-size:var(--fs-sm);color:var(--text);background:none;border:0;border-radius:4px;cursor:pointer;text-align:left;white-space:nowrap}
.vw-item:hover:not(:disabled){background:var(--mid)}
.vw-item:disabled{color:var(--text-dim);cursor:default}
.vw-item .vw-key{color:var(--text-dim);font-size:.85em}
.vw-sep{height:1px;background:var(--line);margin:4px 6px}
.vw-subhead{padding:6px 10px 2px;color:var(--text-dim);font-size:.85em;text-transform:uppercase;letter-spacing:.6px}
.vw-check{color:var(--green);min-width:1.2em;display:inline-block}

.vw-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--bg-panel);border-bottom:1px solid var(--line);padding:6px 10px}
.vw-toolbar .vw-group{display:flex;gap:6px;align-items:center}
.vw-toolbar .vw-div{width:1px;height:22px;background:var(--line);margin:0 4px}

.vw-main{flex:1;display:grid;grid-template-columns:224px minmax(0,1fr) 288px;min-height:0}

.vw-sidebar{background:var(--bg-panel);border-right:1px solid var(--line);overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}
.vw-side-title{font-size:var(--fs-md)}
.vw-search-row{display:flex;align-items:center;gap:8px;color:var(--text-dim)}
.vw-search{flex:1;min-width:0;padding:7px 10px;font:inherit;font-size:var(--fs-sm);color:var(--text);background:#141516;border:1px solid var(--line);border-radius:var(--radius)}
.vw-cat{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.vw-cat-head{width:100%;display:flex;justify-content:space-between;padding:8px 10px;font:inherit;font-size:var(--fs-sm);color:var(--text);background:linear-gradient(180deg,var(--hi),var(--mid) 48%,var(--lo));border:0;cursor:pointer}
.vw-cat-body{display:flex;flex-direction:column;gap:4px;padding:6px;background:var(--bg-panel)}
.vw-cat-body[hidden]{display:none}
.vw-node-item{padding:7px 9px;font-size:var(--fs-sm);text-align:left}
.vw-node-item small{display:block;color:var(--text-dim);font-size:.8em}
.vw-empty{color:var(--text-dim);font-size:var(--fs-sm);padding:4px 2px}

.vw-viewport{position:relative;overflow:hidden;background:var(--bg-page);touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.vw-viewport.panning{cursor:grabbing}
.vw-viewport.grid-on{background-image:radial-gradient(rgba(230,230,230,.14) 1px,transparent 1.4px);background-size:20px 20px;background-position:0 0}
.vw-world{position:absolute;left:0;top:0;transform-origin:0 0}
.vw-wires{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.vw-wire{fill:none;stroke-width:3.5;pointer-events:none}
.vw-wire-hit{fill:none;stroke:rgba(0,0,0,0);stroke-width:16;pointer-events:stroke;cursor:pointer}
.vw-wire-hit.selected{stroke:rgba(255,255,255,.14)}
.vw-wire-temp{fill:none;stroke-width:3.5;stroke-dasharray:9 6;pointer-events:none}
.vw-hint{position:absolute;left:12px;bottom:10px;color:var(--text-dim);font-size:var(--fs-sm);pointer-events:none;user-select:none;-webkit-user-select:none;max-width:60%}

.vw-nodes{position:absolute;left:0;top:0}
.vw-node{position:absolute;min-width:178px;max-width:250px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 22px rgba(0,0,0,.5);user-select:none;-webkit-user-select:none}
.vw-node.selected{border-color:#7db3ff;box-shadow:0 0 0 1px #7db3ff,0 8px 22px rgba(0,0,0,.5)}
.vw-node-title{padding:7px 10px;font-size:var(--fs-md);border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--hi),var(--mid) 60%,var(--lo));border-radius:var(--radius) var(--radius) 0 0;cursor:grab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.vw-node[data-cat="Input / Output"] .vw-node-title{background:linear-gradient(180deg,#5b6247,#4a5039 60%,#3e4330)}
.vw-node[data-cat="Logic"] .vw-node-title{background:linear-gradient(180deg,#5c4f6e,#4a3f59 60%,#40364d)}
.vw-node[data-cat="Device"] .vw-node-title{background:linear-gradient(180deg,#466372,#384f5b 60%,#303f47)}
.vw-node[data-cat="Math"] .vw-node-title{background:linear-gradient(180deg,#41705f,#35594c 60%,#2d4a40)}
.vw-node[data-cat="Utilities"] .vw-node-title{background:linear-gradient(180deg,#6e5c40,#594a34 60%,#4a3e2c)}

.vw-node.vw-ok{border-color:var(--green);box-shadow:0 0 0 2px var(--green),0 8px 22px rgba(0,0,0,.5)}
.vw-node.vw-error{border-color:var(--red);box-shadow:0 0 0 2px var(--red),0 8px 22px rgba(0,0,0,.5)}
.vw-wire.vw-ok{stroke:var(--green)!important}
.vw-wire.vw-error{stroke:var(--red)!important}
.vw-node-io{display:flex;justify-content:space-between;gap:8px;padding:6px 0}
.vw-ports{display:flex;flex-direction:column;gap:7px;min-width:0}
.vw-port{position:relative;display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);padding:0 10px;white-space:nowrap}
.vw-port.in{justify-content:flex-start}
.vw-port.out{justify-content:flex-end;text-align:right}

.vw-socket{position:absolute;top:calc(50% - 6.5px);width:13px;height:13px;border-radius:50%;border:2px solid #0c0d0e;cursor:crosshair;flex:none}
.vw-port.in .vw-socket{left:-8px}
.vw-port.out .vw-socket{right:-8px}
.vw-socket::after{content:"";position:absolute;inset:-4px}
.vw-socket.compat{outline:2px solid var(--green);outline-offset:2px;cursor:copy}
.vw-socket.incompat{outline:2px solid var(--red);outline-offset:2px;cursor:not-allowed}
.vw-socket.unmapped{outline:1px solid rgba(255,152,0,.7);outline-offset:1px}
.vw-params{display:flex;flex-direction:column;gap:6px;padding:2px 10px 10px}
.vw-param{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-dim)}
.vw-param select,.vw-param input{flex:1;min-width:0;padding:5px 8px;font:inherit;font-size:var(--fs-sm);color:var(--text);background:#141516;border:1px solid var(--line);border-radius:4px}
.vw-param input[type="number"]{max-width:84px}

.vw-side{background:var(--bg-panel);border-left:1px solid var(--line);overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}
.vw-side .btn{width:100%}
.vw-device{color:var(--green);font-size:var(--fs-md);text-align:center}
.vw-device.off{color:var(--red)}
.vw-device.pending{color:var(--orange)}
.vw-side .btn em{font-weight:700}
.vw-log-label{color:var(--text-dim)}
.vw-log{flex:1;min-height:180px;background:#141516;border:1px solid var(--line);border-radius:var(--radius);padding:8px;overflow-y:auto;font-size:var(--fs-sm);display:flex;flex-direction:column;gap:3px}
.vw-log-line{margin:0;word-break:break-word}
.vw-log-line.info{color:var(--text-dim)}
.vw-log-line.warn{color:var(--orange)}
.vw-log-line.error{color:var(--red)}
.vw-log-line.success{color:var(--green)}
.vw-version{color:var(--text-dim);font-size:var(--fs-sm);text-align:right}

.vw-ctx{position:fixed;z-index:200;min-width:210px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 40px rgba(0,0,0,.6);padding:4px}

.vw-ctx-group{position:relative}
.vw-flyout{position:absolute;top:-4px;left:calc(100% - 2px);z-index:201;min-width:220px;max-height:60vh;overflow-y:auto;display:none;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 40px rgba(0,0,0,.6);padding:4px}
.vw-ctx-group:hover>.vw-flyout,.vw-ctx-group.open>.vw-flyout{display:block}
.vw-ctx.flip .vw-flyout{left:auto;right:calc(100% - 2px)}
.vw-has-fly{font-weight:700}

.vw-modal-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55)}
.vw-modal-overlay[hidden]{display:none}
.vw-modal{width:min(560px,calc(100vw - 32px));max-height:80vh;overflow-y:auto;background:var(--bg-panel);border:1px solid var(--line);border-radius:10px;padding:20px 22px;box-shadow:0 18px 50px rgba(0,0,0,.55)}
.vw-modal h2{margin:0 0 12px;font-size:var(--fs-lg)}
.vw-modal table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.vw-modal th,.vw-modal td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
.vw-modal th{color:var(--text-dim);font-weight:500}
.vw-modal kbd{background:#141516;border:1px solid var(--line);border-radius:4px;padding:1px 7px;font-family:inherit;white-space:nowrap}
.vw-modal-actions{display:flex;gap:10px;margin-top:16px;justify-content:flex-end}
.vw-dot{display:inline-block;width:11px;height:11px;border-radius:50%;border:1px solid #000;margin-right:8px;vertical-align:baseline}

#newsletter-footer{transition:transform .35s ease,opacity .3s ease,visibility 0s}
#newsletter-show-tab{transition:transform .35s,visibility 0s .35s,opacity .3s ease}
html.viyaware-active body{padding-bottom:14px}
html.viyaware-active #view-viyaware.page-view{padding-bottom:0}
html.viyaware-active .vw-root{height:calc(100vh - 135px)}
html.viyaware-active #newsletter-footer{transform:translateY(110%);opacity:0;visibility:hidden;transition:transform .35s ease,opacity .3s ease,visibility 0s .35s}
html.viyaware-active #newsletter-show-tab{transform:translateY(110%);opacity:0;visibility:hidden;transition:transform .35s,opacity .3s ease,visibility 0s .35s}

@media (max-width:1023.98px),(orientation:portrait){
    .vw-root,
    html.viyaware-active .vw-root{height:auto;max-height:none}
    .vw-main{grid-template-columns:1fr;grid-template-rows:auto 60vh auto}
    .vw-sidebar{border-right:0;border-bottom:1px solid var(--line);max-height:300px;position:relative;z-index:5;margin-bottom:-28px}

    #vw-lib-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start}

    .vw-side{border-left:0;border-top:1px solid var(--line);position:relative;z-index:5;margin-top:-28px}

    .vw-side{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,auto);grid-auto-flow:column;gap:8px;align-content:start}
    .vw-side .btn{width:100%}
    .vw-log{min-height:140px;max-height:220px}
    .vw-hint{display:none}
}

@media (prefers-reduced-motion:reduce){
    .vw-viewport,.vw-node,.vw-wire-temp{transition:none!important}
}

@media (max-width:659.98px),(max-width:1023.98px) and (max-height:500px) and (orientation:landscape){
    .vw-root > .vw-dirty{position:static;transform:none;text-align:center;white-space:normal;padding:2px 8px}
    .vw-menubar{padding:4px 6px}
    .vw-toolbar{padding:4px 6px}
    .vw-sidebar{padding:8px}
    .vw-side{padding:8px}
}

@media (max-width:1023.98px),(orientation:portrait),(pointer:coarse){
    .vw-socket::after{inset:-10px}
    .vw-socket.compat{outline-offset:8px}
    .vw-socket.incompat{outline-offset:8px}
    .vw-port.compat{color:var(--green)}
    .vw-port.incompat{color:var(--red)}
}
