:root{color-scheme:light;--opv-bg: #f5f8f7;--opv-bg-strong: #ecf2f0;--opv-surface: rgba(255, 255, 255, .86);--opv-surface-strong: #ffffff;--opv-surface-muted: rgba(241, 247, 245, .9);--opv-ink: #102129;--opv-muted: #60737c;--opv-soft: #526a73;--opv-line: rgba(16, 33, 41, .12);--opv-line-strong: rgba(16, 33, 41, .2);--opv-teal: #0f766e;--opv-teal-strong: #115e59;--opv-teal-soft: rgba(15, 118, 110, .12);--opv-copper: #c26b36;--opv-copper-soft: rgba(194, 107, 54, .14);--opv-blue: #316b9c;--opv-blue-soft: rgba(49, 107, 156, .13);--opv-purple: #6d5aa8;--opv-purple-soft: rgba(109, 90, 168, .14);--opv-danger: #ba5b3e;--opv-warning: #b7791f;--opv-success: #0b8f66;--opv-shadow-sm: 0 10px 26px rgba(16, 33, 41, .08);--opv-shadow-md: 0 18px 44px rgba(16, 33, 41, .12);--opv-shadow-lg: 0 28px 70px rgba(16, 33, 41, .16);--opv-radius-xl: 28px;--opv-radius-lg: 22px;--opv-radius-md: 16px;--opv-radius-sm: 12px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at top left,rgba(15,118,110,.2),transparent 28%),radial-gradient(circle at bottom right,rgba(194,107,54,.18),transparent 28%),linear-gradient(180deg,var(--opv-bg) 0%,var(--opv-bg-strong) 100%);color:var(--opv-ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{color-scheme:dark;--opv-bg: #071213;--opv-bg-strong: #0b1c1f;--opv-surface: rgba(10, 27, 30, .78);--opv-surface-strong: #0d2024;--opv-surface-muted: rgba(13, 35, 39, .92);--opv-ink: #edf8f6;--opv-muted: #a2b7bb;--opv-soft: #7f979c;--opv-line: rgba(220, 246, 241, .13);--opv-line-strong: rgba(220, 246, 241, .24);--opv-teal: #21a99a;--opv-teal-strong: #7ee3d5;--opv-teal-soft: rgba(33, 169, 154, .16);--opv-copper: #e0985f;--opv-copper-soft: rgba(224, 152, 95, .16);--opv-blue: #69a6dc;--opv-blue-soft: rgba(105, 166, 220, .16);--opv-purple: #a99dec;--opv-purple-soft: rgba(169, 157, 236, .16);--opv-danger: #f08a6b;--opv-warning: #e4b45d;--opv-success: #35d39b;--opv-shadow-sm: 0 14px 32px rgba(0, 0, 0, .26);--opv-shadow-md: 0 22px 54px rgba(0, 0, 0, .34);--opv-shadow-lg: 0 34px 82px rgba(0, 0, 0, .42);background:radial-gradient(circle at top left,rgba(33,169,154,.2),transparent 30%),radial-gradient(circle at bottom right,rgba(224,152,95,.16),transparent 30%),linear-gradient(180deg,var(--opv-bg) 0%,var(--opv-bg-strong) 100%)}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;height:100%;min-height:680px;margin:0;overflow:hidden}button,input,select{font:inherit}button,select,input{border:1px solid transparent}button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:38px;border-radius:14px;padding:.66rem .86rem;background:linear-gradient(135deg,var(--opv-teal),var(--opv-teal-strong));color:#f7fffd;font-weight:800;letter-spacing:.005em;cursor:pointer;box-shadow:0 12px 24px #0f766e2e;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,opacity .14s ease}button:hover{transform:translateY(-1px);box-shadow:0 16px 30px #0f766e3b}button:active{transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.55;transform:none;box-shadow:none}input,select{width:100%;min-height:42px;border-radius:14px;padding:.72rem .85rem;background:#ffffffeb;color:var(--opv-ink);border-color:var(--opv-line);box-shadow:inset 0 1px #fffc}input:focus,select:focus,button:focus-visible{outline:2px solid var(--opv-teal-strong);outline-offset:2px}code{border-radius:8px;padding:.1rem .35rem;color:var(--opv-teal-strong);background:var(--opv-teal-soft)}.opv-shell{display:grid;grid-template-rows:auto 1fr;gap:0;padding:16px;background:radial-gradient(circle at 12% 10%,rgba(255,255,255,.78),transparent 30%),radial-gradient(circle at 82% 12%,rgba(15,118,110,.14),transparent 24%),radial-gradient(circle at 88% 78%,rgba(194,107,54,.13),transparent 24%)}.opv-topbar{min-height:74px;display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(300px,.9fr);align-items:center;gap:16px;padding:12px;border:1px solid var(--opv-line);border-radius:var(--opv-radius-xl);background:#ffffffc7;box-shadow:var(--opv-shadow-sm);backdrop-filter:blur(18px);z-index:10}.opv-brand{display:flex;align-items:center;gap:13px;min-width:0}.opv-logo{position:relative;width:48px;height:48px;flex:0 0 auto;border-radius:18px;background:linear-gradient(135deg,#0f766eeb,#115e59f5),var(--opv-teal);box-shadow:0 14px 30px #0f766e38;overflow:hidden}.opv-logo span{position:absolute;display:block;border-radius:999px;background:#ffffffeb}.opv-logo span:nth-child(1){width:11px;height:11px;left:13px;top:14px}.opv-logo span:nth-child(2){width:9px;height:9px;right:12px;top:21px}.opv-logo span:nth-child(3){width:13px;height:13px;left:21px;bottom:10px}.opv-logo:before,.opv-logo:after{content:"";position:absolute;height:2px;width:27px;background:#ffffffa3;transform-origin:left center;left:19px;top:21px}.opv-logo:before{transform:rotate(17deg)}.opv-logo:after{top:27px;left:24px;transform:rotate(-35deg)}.opv-brand h1,.opv-card h2,.opv-empty-state h2{margin:0;color:var(--opv-ink)}.opv-brand h1{max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.05rem,1.55vw,1.55rem);letter-spacing:-.035em}.opv-eyebrow{margin:0 0 .25rem;color:var(--opv-teal-strong);font-size:.68rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.opv-view-tabs{display:grid;grid-template-columns:repeat(4,auto);gap:6px;padding:5px;border:1px solid var(--opv-line);border-radius:18px;background:#f0f6f4bd}.opv-view-tabs button{min-height:38px;padding:.52rem .74rem;border-radius:13px;background:transparent;color:var(--opv-muted);border:0;box-shadow:none}.opv-view-tabs button:hover{background:#fffc;box-shadow:none}.opv-view-tabs button.is-active{background:#fff;color:var(--opv-teal-strong);box-shadow:0 10px 24px #10212917}.opv-top-actions{display:grid;grid-template-columns:1fr repeat(4,auto);align-items:center;gap:8px}.opv-search{position:relative;display:block}.opv-search input{padding-left:2.4rem}.opv-search__icon{position:absolute;top:50%;left:.9rem;transform:translateY(-50%);color:var(--opv-soft);font-size:1.35rem;z-index:1}.opv-icon-button,.opv-secondary-button{background:#ffffffc2;color:var(--opv-ink);border-color:var(--opv-line);box-shadow:none}.opv-icon-button{width:42px;height:42px;min-height:42px;padding:0;border-radius:14px;font-size:1.12rem}.opv-icon-button:hover,.opv-secondary-button:hover{background:#fff;box-shadow:0 10px 24px #10212914}.opv-main{display:grid;grid-template-columns:minmax(225px,285px) minmax(380px,1fr) minmax(285px,350px);gap:16px;min-height:0;padding-top:16px}.opv-left-panel,.opv-detail-panel{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(16,33,41,.22) transparent}.opv-card{border:1px solid var(--opv-line);border-radius:var(--opv-radius-lg);background:var(--opv-surface);box-shadow:var(--opv-shadow-sm);backdrop-filter:blur(18px)}.opv-card--compact{padding:15px}.opv-detail-card{padding:18px}.opv-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.opv-card h2{font-size:.98rem;letter-spacing:-.02em}.opv-context-stack{display:grid;gap:10px}.opv-context-stack div{display:grid;gap:2px;padding:10px;border:1px solid var(--opv-line);border-radius:15px;background:#ffffff94}.opv-context-stack span,.opv-detail-list dt{color:var(--opv-soft);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.opv-context-stack strong{min-width:0;overflow:hidden;color:var(--opv-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.opv-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.opv-toggle-grid label{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid var(--opv-line);border-radius:12px;background:#ffffff85;color:var(--opv-muted);font-size:.81rem;font-weight:800}.opv-toggle-grid input{width:auto;min-height:auto;margin:0}.opv-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.opv-stage{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:auto 1fr;overflow:hidden;border:1px solid var(--opv-line);border-radius:var(--opv-radius-xl);background:linear-gradient(180deg,#ffffffd1,#f7fbfaf0),var(--opv-surface-strong);box-shadow:var(--opv-shadow-md)}.opv-stage-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid var(--opv-line);background:#ffffffa3;z-index:3}.opv-status{display:inline-flex;align-items:center;gap:8px;min-width:125px;padding:8px 11px;border-radius:999px;border:1px solid var(--opv-line);background:#ffffffc2;color:var(--opv-muted);font-size:.8rem}.opv-status span{width:9px;height:9px;border-radius:999px;background:var(--opv-soft)}.opv-status strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opv-status--loading span{background:var(--opv-warning);box-shadow:0 0 0 5px #b7791f24;animation:opvPulse 1s infinite ease-in-out}.opv-status--success span{background:var(--opv-success);box-shadow:0 0 0 5px #0b8f6621}.opv-status--error span{background:var(--opv-danger);box-shadow:0 0 0 5px #ba5b3e21}@keyframes opvPulse{0%,to{transform:scale(1);opacity:.74}50%{transform:scale(1.22);opacity:1}}.opv-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:var(--opv-muted);font-size:.82rem;font-weight:800}.opv-metrics span{display:inline-flex;align-items:center;min-height:30px;border:1px solid var(--opv-line);border-radius:999px;padding:.3rem .68rem;background:#ffffff94}.opv-export-menu{display:flex;gap:6px}.opv-export-menu button{min-height:34px;padding:.48rem .65rem;font-size:.78rem}.opv-canvas-host{position:relative;min-height:0;overflow:hidden;background:radial-gradient(circle at 30px 30px,rgba(15,118,110,.065) 0 1px,transparent 1px 100%),linear-gradient(135deg,rgba(15,118,110,.04),transparent 28%),linear-gradient(315deg,rgba(194,107,54,.05),transparent 34%),#f9fcfb;background-size:28px 28px,auto,auto,auto}.opv-graph{width:100%;height:100%;min-height:100%;display:block;cursor:grab;touch-action:none}.opv-graph:active{cursor:grabbing}.opv-graph__hitbox{fill:transparent}.opv-edge path,.opv-edge line{fill:none;stroke-linecap:round;stroke-linejoin:round}.opv-edge__halo{stroke:transparent;stroke-width:16}.opv-edge__line{stroke-width:2.1;opacity:.92}.opv-edge__label{paint-order:stroke;stroke:#f9fcfbeb;stroke-width:4px;stroke-linecap:round;fill:var(--opv-muted);font-size:10.5px;font-weight:800;pointer-events:none}.opv-edge--inheritance .opv-edge__line{stroke:#0f766e94;marker-end:url(#arrow-inheritance)}.opv-edge--property .opv-edge__line,.opv-edge--related .opv-edge__line{stroke:#316b9c85;marker-end:url(#arrow-property);stroke-dasharray:8 7}.opv-edge--mapping .opv-edge__line{stroke:#c26b369e;marker-end:url(#arrow-mapping);stroke-dasharray:3 7}#arrow-inheritance path{fill:#0f766ead}#arrow-property path{fill:#316b9cad}#arrow-mapping path{fill:#c26b36b8}.opv-node{cursor:pointer;outline:none}.opv-node:focus-visible .opv-node__ring{stroke:var(--opv-teal-strong);stroke-width:10}.opv-node__ring{fill:#ffffffc7;stroke:#fffffff5;stroke-width:8;filter:url(#nodeShadow)}.opv-node__shape{stroke:#fffffff2;stroke-width:2.2}.opv-node__glyph{fill:#fff;font-size:12px;font-weight:900;pointer-events:none;text-anchor:middle;dominant-baseline:central}.opv-node__label{fill:#102129;font-size:12px;font-weight:850;text-anchor:middle;paint-order:stroke;stroke:#f9fcfbf0;stroke-width:5px;stroke-linecap:round;pointer-events:none}.opv-node__sub{fill:var(--opv-muted);font-size:9.5px;font-weight:800;text-anchor:middle;paint-order:stroke;stroke:#f9fcfbeb;stroke-width:4px;pointer-events:none}.opv-node--focus .opv-node__shape{fill:var(--opv-teal)}.opv-node--root .opv-node__shape,.opv-node--parent .opv-node__shape{fill:var(--opv-teal-strong)}.opv-node--child .opv-node__shape,.opv-node--path .opv-node__shape{fill:#2f8f88}.opv-node--mapping .opv-node__shape,.opv-node--ontology .opv-node__shape{fill:var(--opv-copper)}.opv-node--property .opv-node__shape,.opv-node--relation .opv-node__shape{fill:var(--opv-blue)}.opv-node--cluster .opv-node__shape{fill:var(--opv-purple)}.opv-node.is-selected .opv-node__ring{stroke:#c26b367a;stroke-width:11}.opv-node.is-dimmed,.opv-edge.is-dimmed{opacity:.18}.opv-node.is-hidden,.opv-edge.is-hidden{display:none}.opv-tooltip{position:absolute;z-index:8;max-width:280px;padding:12px 13px;border:1px solid var(--opv-line);border-radius:16px;background:#fffffff0;box-shadow:var(--opv-shadow-md);color:var(--opv-ink);pointer-events:none;opacity:0;transform:translateY(8px);transition:opacity .12s ease,transform .12s ease;backdrop-filter:blur(16px)}.opv-tooltip.is-visible{opacity:1;transform:translateY(0)}.opv-tooltip strong{display:block;margin-bottom:4px}.opv-tooltip span{display:block;overflow:hidden;color:var(--opv-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.opv-minimap{position:absolute;right:16px;bottom:16px;width:172px;height:118px;border:1px solid var(--opv-line);border-radius:18px;overflow:hidden;background:#ffffffc2;box-shadow:var(--opv-shadow-sm);backdrop-filter:blur(14px)}.opv-minimap svg{width:100%;height:100%}.opv-minimap line{stroke:#10212929;stroke-width:1}.opv-minimap circle{fill:#0f766ebd}.opv-minimap rect{fill:#0f766e14;stroke:#0f766e73;stroke-width:1.4}.opv-empty-state{position:absolute;inset:50% auto auto 50%;width:min(480px,calc(100% - 48px));padding:26px;transform:translate(-50%,-50%);border:1px dashed var(--opv-line-strong);border-radius:var(--opv-radius-xl);background:#fffc;text-align:center;box-shadow:var(--opv-shadow-sm)}.opv-empty-state p:last-child{margin-bottom:0;color:var(--opv-muted)}.opv-kind-chip{display:inline-flex;align-items:center;width:fit-content;min-height:28px;margin:0 0 12px;padding:.28rem .62rem;border-radius:999px;color:var(--opv-teal-strong);background:var(--opv-teal-soft);font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.opv-definition{margin:0 0 15px;color:var(--opv-muted);line-height:1.52}.opv-detail-list{display:grid;gap:10px;margin:0}.opv-detail-list div{display:grid;gap:4px;min-width:0}.opv-detail-list dd{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--opv-ink);font-size:.85rem;line-height:1.42}.opv-connection-list,.opv-search-results,.opv-trail{display:grid;gap:8px}.opv-connection-item,.opv-search-result,.opv-trail button{width:100%;display:grid;justify-content:stretch;gap:4px;padding:10px 11px;border:1px solid var(--opv-line);border-radius:14px;background:#ffffff9e;color:var(--opv-ink);box-shadow:none;text-align:left}.opv-search-result,.opv-trail button{cursor:pointer}.opv-search-result:hover,.opv-trail button:hover{background:#fff;box-shadow:0 10px 24px #10212914}.opv-connection-item strong,.opv-search-result strong,.opv-trail strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}.opv-connection-item span,.opv-search-result span,.opv-trail span{min-width:0;overflow:hidden;color:var(--opv-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:750}.opv-connection-empty,.opv-search-empty{padding:12px;border:1px dashed var(--opv-line);border-radius:14px;color:var(--opv-muted);background:#ffffff6b;font-size:.84rem}.opv-mini-badge{display:inline-flex;align-items:center;min-height:26px;padding:.2rem .58rem;border:1px solid var(--opv-line);border-radius:999px;background:var(--opv-surface-muted);color:var(--opv-muted);font-size:.72rem;font-weight:900;white-space:nowrap}.opv-range-field{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;color:var(--opv-muted);font-weight:850;font-size:.82rem}.opv-range-field span{color:var(--opv-soft);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.opv-range-field strong{color:var(--opv-teal-strong);font-size:.82rem}.opv-range-field input[type=range]{grid-column:1 / -1;min-height:30px;padding:0;accent-color:var(--opv-teal);background:transparent;border:0;box-shadow:none}.opv-card-note{margin:10px 0 0;color:var(--opv-muted);font-size:.8rem;line-height:1.45}.opv-graph-story{position:absolute;left:18px;top:18px;z-index:4;width:min(360px,calc(100% - 220px));padding:15px 16px;border:1px solid var(--opv-line);border-radius:22px;background:var(--opv-surface);background:color-mix(in srgb,var(--opv-surface-strong) 80%,transparent);box-shadow:var(--opv-shadow-sm);backdrop-filter:blur(18px);pointer-events:none}.opv-graph-story h2{margin:0 0 6px;color:var(--opv-ink);font-size:1rem;letter-spacing:-.025em}.opv-graph-story p:last-child{margin:0;color:var(--opv-muted);font-size:.82rem;line-height:1.45}.opv-graph-legend{position:absolute;left:18px;bottom:18px;z-index:4;display:flex;flex-wrap:wrap;gap:7px;max-width:calc(100% - 220px);pointer-events:none}.opv-graph-legend span{display:inline-flex;align-items:center;gap:6px;min-height:31px;padding:.34rem .62rem;border:1px solid var(--opv-line);border-radius:999px;background:var(--opv-surface);background:color-mix(in srgb,var(--opv-surface-strong) 78%,transparent);color:var(--opv-muted);box-shadow:0 8px 22px #10212914;font-size:.76rem;font-weight:900;backdrop-filter:blur(14px)}.opv-dot{width:9px;height:9px;border-radius:999px;display:inline-block;box-shadow:0 0 0 4px var(--opv-teal-soft)}.opv-dot--focus{background:var(--opv-teal)}.opv-dot--inheritance{background:var(--opv-teal-strong)}.opv-dot--property{background:var(--opv-blue);box-shadow:0 0 0 4px var(--opv-blue-soft)}.opv-dot--mapping{background:var(--opv-copper);box-shadow:0 0 0 4px var(--opv-copper-soft)}.opv-zoom-controls{position:absolute;right:16px;top:16px;z-index:5;display:grid;gap:7px}.opv-zoom-controls .opv-icon-button{background:var(--opv-surface);background:color-mix(in srgb,var(--opv-surface-strong) 84%,transparent);backdrop-filter:blur(14px)}.opv-detail-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px}.opv-detail-actions button{justify-content:flex-start;min-height:36px;font-size:.8rem}.opv-help-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:#040f116b;backdrop-filter:blur(14px)}.opv-help-overlay[hidden]{display:none}.opv-help-card{width:min(560px,100%);padding:22px;border:1px solid var(--opv-line);border-radius:28px;background:var(--opv-surface-strong);color:var(--opv-ink);box-shadow:var(--opv-shadow-lg)}.opv-help-card h2{margin:0;font-size:1.35rem;letter-spacing:-.04em}.opv-shortcut-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.opv-shortcut-grid div{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--opv-line);border-radius:16px;background:var(--opv-surface-muted);color:var(--opv-muted);font-weight:800}.opv-shortcut-grid kbd{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:30px;padding:0 .45rem;border:1px solid var(--opv-line-strong);border-radius:10px;background:var(--opv-surface-strong);color:var(--opv-ink);font-size:.8rem;font-weight:950;box-shadow:inset 0 -2px #10212914}.opv-help-copy{margin:16px 0 0;color:var(--opv-muted);line-height:1.5}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] .opv-topbar,:root[data-theme=dark] .opv-stage-toolbar,:root[data-theme=dark] .opv-icon-button,:root[data-theme=dark] .opv-secondary-button,:root[data-theme=dark] .opv-context-stack div,:root[data-theme=dark] .opv-toggle-grid label,:root[data-theme=dark] .opv-connection-item,:root[data-theme=dark] .opv-search-result,:root[data-theme=dark] .opv-trail button,:root[data-theme=dark] .opv-connection-empty,:root[data-theme=dark] .opv-search-empty,:root[data-theme=dark] .opv-empty-state,:root[data-theme=dark] .opv-minimap,:root[data-theme=dark] .opv-tooltip,:root[data-theme=dark] .opv-status,:root[data-theme=dark] .opv-metrics span,:root[data-theme=dark] .opv-view-tabs{background-color:#0c1f23bd}:root[data-theme=dark] .opv-stage{background:linear-gradient(180deg,#0d1f23d6,#081619f5),var(--opv-surface-strong)}:root[data-theme=dark] .opv-canvas-host{background:radial-gradient(circle at 30px 30px,rgba(126,227,213,.1) 0 1px,transparent 1px 100%),linear-gradient(135deg,rgba(33,169,154,.1),transparent 30%),linear-gradient(315deg,rgba(224,152,95,.08),transparent 34%),#071214;background-size:28px 28px,auto,auto,auto}:root[data-theme=dark] .opv-node__label{fill:var(--opv-ink);stroke:#071214f0}:root[data-theme=dark] .opv-node__sub,:root[data-theme=dark] .opv-edge__label{stroke:#071214f0}:root[data-theme=dark] .opv-node__ring{fill:#0a1b1ec2;stroke:#edf8f633}.opv-shell.is-embed{padding:0}.opv-shell.is-embed .opv-topbar,.opv-shell.is-embed .opv-stage,.opv-shell.is-embed .opv-card{border-radius:0}.opv-shell.is-embed .opv-main{padding-top:0;gap:0}.opv-shell.is-embed .opv-left-panel{border-right:1px solid var(--opv-line);background:#ffffff75}.opv-shell.is-embed .opv-detail-panel{border-left:1px solid var(--opv-line);background:#ffffff75}.opv-shell.is-embed .opv-left-panel,.opv-shell.is-embed .opv-detail-panel{padding:12px}@media(max-width:920px){.opv-main{grid-template-columns:74px minmax(360px,1fr) minmax(265px,320px)}.opv-left-panel .opv-card:not(:nth-child(2)):not(.opv-display-card){display:none}.opv-left-panel .opv-card{padding:10px}.opv-left-panel .opv-card__header h2,.opv-left-panel .opv-eyebrow,.opv-toggle-grid,.opv-action-grid,.opv-display-card .opv-card-note{display:none}.opv-left-panel select{min-height:42px;padding:.5rem}}@media(max-width:1180px){html,body,#app{min-height:760px}.opv-shell{overflow:auto}.opv-topbar{grid-template-columns:1fr;align-items:stretch}.opv-brand h1{max-width:100%}.opv-view-tabs,.opv-top-actions{width:100%}.opv-main{grid-template-columns:1fr;grid-template-rows:auto minmax(560px,1fr) auto;overflow:visible}.opv-left-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.opv-left-panel .opv-card:not(:nth-child(2)){display:block}.opv-left-panel .opv-card__header h2,.opv-left-panel .opv-eyebrow,.opv-toggle-grid,.opv-action-grid{display:initial}.opv-left-panel select{writing-mode:horizontal-tb;min-height:42px}.opv-stage{min-height:560px}.opv-detail-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.opv-detail-panel .opv-detail-card:first-child{grid-column:1 / -1}}@media(max-width:620px){.opv-shell{padding:8px}.opv-view-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.opv-top-actions{grid-template-columns:1fr repeat(4,auto)}.opv-graph-story{width:calc(100% - 36px);max-width:none;top:auto;bottom:70px}.opv-graph-legend{max-width:calc(100% - 36px);bottom:18px}.opv-zoom-controls{top:12px;right:12px}.opv-left-panel,.opv-detail-panel{grid-template-columns:1fr}.opv-stage-toolbar{grid-template-columns:1fr;align-items:stretch}.opv-export-menu{justify-content:stretch}.opv-export-menu button{flex:1}.opv-minimap{display:none}}:root{--opv-gold: #d9a441;--opv-gold-soft: rgba(217, 164, 65, .16);--opv-card-gradient: linear-gradient(145deg, rgba(255,255,255,.95), rgba(247,252,251,.78))}:root[data-theme=dark]{--opv-gold: #ffd37a;--opv-gold-soft: rgba(255, 211, 122, .16);--opv-card-gradient: linear-gradient(145deg, rgba(13,35,39,.95), rgba(7,22,24,.78))}textarea{width:100%;min-height:150px;border:1px solid var(--opv-line);border-radius:16px;padding:.8rem .9rem;background:#ffffffe6;color:var(--opv-ink);font:750 .76rem/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;resize:vertical;box-shadow:inset 0 1px #ffffffc2}textarea:focus{outline:3px solid rgba(15,118,110,.24);outline-offset:2px}.opv-shell:before,.opv-shell:after{content:"";position:fixed;pointer-events:none;z-index:0;border-radius:999px;filter:blur(12px);opacity:.68}.opv-shell:before{width:380px;height:380px;left:-140px;top:-120px;background:radial-gradient(circle,rgba(15,118,110,.26),transparent 68%)}.opv-shell:after{width:440px;height:440px;right:-180px;bottom:-160px;background:radial-gradient(circle,rgba(217,164,65,.2),transparent 67%)}.opv-topbar,.opv-main{position:relative;z-index:1}.opv-topbar{grid-template-columns:minmax(280px,1.05fr) auto minmax(360px,.95fr);background:linear-gradient(135deg,#ffffffd6,#ffffffa8)}.opv-brand-copy{min-width:0}.opv-subtitle{display:flex;flex-wrap:wrap;gap:6px;margin:.32rem 0 0}.opv-subtitle span{display:inline-flex;align-items:center;min-height:24px;padding:.18rem .52rem;border:1px solid var(--opv-line);border-radius:999px;color:var(--opv-muted);background:#ffffff80;font-size:.72rem;font-weight:850;white-space:nowrap}.opv-subtitle span:last-child{color:var(--opv-copper);background:var(--opv-copper-soft);border-color:#c26b3638}.opv-view-tabs{grid-template-columns:repeat(6,auto);background:color-mix(in srgb,var(--opv-surface-muted) 86%,transparent)}.opv-view-tabs button[data-view=diagram] span:before{content:"\25a3";margin-right:.38rem;color:var(--opv-copper)}.opv-field-label{display:block;margin:.72rem 0 .34rem;color:var(--opv-soft);font-size:.7rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.opv-sparql-card,.opv-selection-card,.opv-resource-card{background:var(--opv-card-gradient)}.opv-selection-card{box-shadow:0 14px 34px #c26b3617}.opv-sparql-card{box-shadow:0 14px 34px #316b9c14}.opv-action-grid--wide{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.opv-selection-chips{display:grid;gap:7px;max-height:210px;margin-top:12px;overflow:auto;padding-right:2px}.opv-selection-chip{display:grid;grid-template-columns:1fr auto;justify-content:stretch;gap:2px 8px;width:100%;min-height:42px;padding:.56rem .62rem;border:1px solid rgba(194,107,54,.2);border-radius:14px;background:#fff7e8b8;color:var(--opv-ink);box-shadow:none;text-align:left}.opv-selection-chip strong,.opv-selection-chip span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opv-selection-chip strong{font-size:.8rem}.opv-selection-chip span{color:var(--opv-muted);font-size:.72rem;font-weight:800}.opv-selection-chip i{grid-row:1 / span 2;grid-column:2;align-self:center;color:var(--opv-copper);font-style:normal;font-weight:950}.opv-selection-empty{padding:10px;border:1px dashed rgba(194,107,54,.25);border-radius:14px;background:var(--opv-copper-soft);color:var(--opv-muted);font-size:.8rem;line-height:1.42}.opv-stage{isolation:isolate}.opv-stage:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.72),transparent 36%),linear-gradient(120deg,transparent,rgba(15,118,110,.04),transparent 62%)}.opv-stage-toolbar,.opv-canvas-host{position:relative;z-index:1}.opv-stage-toolbar{grid-template-columns:auto minmax(200px,1fr) minmax(420px,auto)}.opv-export-menu{flex-wrap:wrap;justify-content:flex-end}.opv-export-menu button:nth-last-child(-n+3){border-color:#c26b3633;background:#fff7e8c7;color:var(--opv-copper)}:root[data-theme=dark] .opv-export-menu button:nth-last-child(-n+3){border-color:#e0985f57;background:var(--opv-copper-soft);color:var(--opv-copper)}.opv-paper-frame{position:absolute;inset:9% 8%;z-index:1;display:none;pointer-events:none;border:1px dashed rgba(194,107,54,.36);border-radius:22px;background:linear-gradient(180deg,#ffffff47,#ffffff14);box-shadow:inset 0 0 0 12px #ffffff29}.opv-paper-frame span{position:absolute;right:18px;top:14px;padding:.24rem .62rem;border-radius:999px;background:#ffffffdb;color:var(--opv-copper);font-size:.72rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.opv-shell.is-uml-mode .opv-paper-frame{display:block}.opv-shell.is-uml-mode .opv-graph-story{width:min(410px,calc(100% - 220px))}.opv-shell.is-uml-mode .opv-minimap{opacity:.82}.opv-node.is-in-basket .opv-node__ring{stroke:#d9a441ad;stroke-width:12}.opv-node--uml{cursor:pointer}.opv-uml-card__shadow{fill:#10212914;transform:translateY(8px);filter:url(#nodeShadow)}.opv-uml-card{fill:#fffffff0;stroke:#1021292e;stroke-width:1.4}.opv-uml-card__header{fill:#0f766e14;stroke:none}.opv-node--focus .opv-uml-card{fill:#e7fbf7fa;stroke:#0f766e9e;stroke-width:2}.opv-node--mapping .opv-uml-card,.opv-node--ontology .opv-uml-card{fill:#fff7e8fa;stroke:#c26b366b}.opv-node--property .opv-uml-card,.opv-node--relation .opv-uml-card{fill:#eef6fffa;stroke:#316b9c6b}.opv-node.is-in-basket .opv-uml-card{stroke:#d9a441c7;stroke-width:2.2}.opv-uml-card__divider{stroke:#1021291f;stroke-width:1}.opv-uml-card__kind,.opv-uml-card__badge,.opv-uml-card__meta,.opv-uml-card__extra,.opv-uml-card__label{pointer-events:none}.opv-uml-card__kind{fill:var(--opv-teal-strong);font-size:10px;font-weight:950;letter-spacing:.03em}.opv-uml-card__badge{fill:var(--opv-copper);font-size:9.5px;font-weight:950}.opv-uml-card__label{fill:var(--opv-ink);font-size:14px;font-weight:950;letter-spacing:-.02em}.opv-uml-card__meta{fill:var(--opv-muted);font-size:10px;font-weight:800}.opv-uml-card__extra{fill:var(--opv-soft);font-size:9.5px;font-style:italic;font-weight:750}.opv-resource-facts{display:grid;gap:8px;max-height:360px;overflow:auto}.opv-resource-row{display:grid;grid-template-columns:minmax(88px,.42fr) minmax(0,1fr);gap:10px;padding:9px 10px;border:1px solid var(--opv-line);border-radius:14px;background:#ffffff85}.opv-resource-row dt,.opv-resource-row dd{min-width:0;margin:0;overflow-wrap:anywhere}.opv-resource-row dt{color:var(--opv-blue);font-size:.72rem;font-weight:950}.opv-resource-row dd{color:var(--opv-ink);font-size:.78rem;line-height:1.38}:root[data-theme=dark] textarea,:root[data-theme=dark] .opv-paper-frame span,:root[data-theme=dark] .opv-selection-chip,:root[data-theme=dark] .opv-resource-row,:root[data-theme=dark] .opv-subtitle span{background-color:#0c1f23c7}:root[data-theme=dark] .opv-uml-card{fill:#0d2327f2;stroke:#edf8f62e}:root[data-theme=dark] .opv-uml-card__header{fill:#7ee3d51a}:root[data-theme=dark] .opv-node--focus .opv-uml-card{fill:#123c3bf5}:root[data-theme=dark] .opv-node--mapping .opv-uml-card,:root[data-theme=dark] .opv-node--ontology .opv-uml-card{fill:#3a2416f0}:root[data-theme=dark] .opv-node--property .opv-uml-card,:root[data-theme=dark] .opv-node--relation .opv-uml-card{fill:#122a3ef0}:root[data-theme=dark] .opv-uml-card__divider{stroke:#edf8f624}@media(max-width:1320px){.opv-topbar{grid-template-columns:1fr;align-items:stretch}.opv-view-tabs{justify-content:start;overflow-x:auto}.opv-top-actions{grid-template-columns:1fr repeat(4,auto)}}@media(max-width:920px){.opv-stage-toolbar{grid-template-columns:1fr;align-items:stretch}.opv-export-menu{justify-content:flex-start}.opv-sparql-card textarea,.opv-selection-chips,.opv-sparql-card .opv-field-label,.opv-sparql-card input,.opv-sparql-card select,.opv-sparql-card .opv-action-grid,.opv-sparql-card .opv-card-note,.opv-selection-card .opv-card-note,.opv-selection-card .opv-action-grid,.opv-selection-card .opv-selection-chips{display:none}.opv-selection-chips,.opv-resource-facts,.opv-search-results{scrollbar-width:thin;scrollbar-color:var(--opv-line-strong) transparent}}@media(max-width:620px){.opv-view-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.opv-export-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.opv-export-menu button{min-width:0}}@media print{:root,:root[data-theme=dark]{color-scheme:light;--opv-bg: #ffffff;--opv-bg-strong: #ffffff;--opv-surface: #ffffff;--opv-surface-strong: #ffffff;--opv-surface-muted: #f7faf9;--opv-ink: #102129;--opv-muted: #526a73;--opv-soft: #60737c;--opv-line: rgba(16, 33, 41, .18);--opv-line-strong: rgba(16, 33, 41, .28)}@page{size:A4 landscape;margin:10mm}html,body,#app{width:auto;height:auto;min-height:0;overflow:visible!important;background:#fff!important}.opv-shell{display:block;padding:0;background:#fff!important}.opv-shell:before,.opv-shell:after,.opv-topbar,.opv-left-panel,.opv-detail-panel,.opv-stage-toolbar,.opv-graph-story,.opv-zoom-controls,.opv-minimap,.opv-tooltip,.opv-paper-frame{display:none!important}.opv-main{display:block;padding:0}.opv-stage{display:block;width:100%;min-height:180mm;border:0;border-radius:0;box-shadow:none;background:#fff!important}.opv-canvas-host{height:180mm;overflow:visible;background:#fff!important}.opv-graph{width:100%;height:180mm}.opv-graph-legend{display:flex!important;position:absolute;left:12mm;bottom:10mm;background:#fff!important;border:0;box-shadow:none}.opv-edge__label{stroke:#fff}.opv-node.is-dimmed,.opv-edge.is-dimmed{opacity:.45}}.opv-atlas-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.opv-atlas-actions button{min-width:0;padding-inline:.58rem}.opv-atlas-progress{position:relative;height:8px;margin-top:10px;overflow:hidden;border-radius:999px;background:#10212914;box-shadow:inset 0 0 0 1px var(--opv-line)}.opv-atlas-progress:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--value, 0%);border-radius:inherit;background:linear-gradient(90deg,var(--opv-teal),var(--opv-copper));transition:width .22s ease}.opv-atlas-progress span{position:absolute;inset:0}.opv-shell.is-atlas-mode .opv-canvas-host{background:radial-gradient(circle at 30px 30px,rgba(15,118,110,.08) 0 1px,transparent 1px 100%),radial-gradient(circle at 90px 80px,rgba(194,107,54,.06) 0 1px,transparent 1px 100%),linear-gradient(135deg,rgba(15,118,110,.045),transparent 30%),linear-gradient(315deg,rgba(194,107,54,.06),transparent 36%),#fbfdfc;background-size:32px 32px,88px 88px,auto,auto,auto}.opv-shell.is-atlas-mode .opv-graph-story{width:min(430px,calc(100% - 320px))}.opv-shell.is-atlas-mode .opv-minimap{width:248px;height:166px;cursor:crosshair;border-radius:22px;box-shadow:var(--opv-shadow-md)}.opv-minimap__label,.opv-minimap__hint{position:absolute;z-index:2;left:10px;pointer-events:none;color:var(--opv-muted);font-size:.62rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.opv-minimap__label{top:8px}.opv-minimap__hint{bottom:8px}.opv-minimap__background{fill:#ffffff6b;stroke:none}.opv-minimap__edge{stroke-width:.7;opacity:.38}.opv-minimap__edge--inheritance{stroke:#0f766e6b}.opv-minimap__edge--mapping{stroke:#c26b3673}.opv-minimap__edge--property,.opv-minimap__edge--related{stroke:#316b9c6b}.opv-minimap__node{fill:#0f766ea8;stroke:none}.opv-minimap__node--cluster{fill:#6d5aa8ad}.opv-minimap__viewport{fill:#d9a4411f;stroke:#c26b36e6;stroke-width:2;vector-effect:non-scaling-stroke}.opv-atlas-region{opacity:.94;pointer-events:none}.opv-atlas-region__shape{fill:#ffffff47;stroke:#0f766e1f;stroke-width:1.4;stroke-dasharray:10 12}.opv-atlas-region__label{fill:#10212973;font-size:19px;font-weight:950;letter-spacing:-.03em;paint-order:stroke;stroke:#ffffffb8;stroke-width:5px}.opv-node--atlas .opv-node__atlas-halo{fill:#ffffffad;stroke:#ffffffe6;stroke-width:1;opacity:.58}.opv-node--atlas .opv-node__atlas-dot{fill:var(--opv-teal);stroke:#ffffffeb;stroke-width:1.2;vector-effect:non-scaling-stroke}.opv-node--atlas.opv-node--focus .opv-node__atlas-dot{fill:var(--opv-copper);stroke:#fffffffa;stroke-width:2.2}.opv-node--atlas.is-selected .opv-node__atlas-halo,.opv-node--atlas.is-in-basket .opv-node__atlas-halo{fill:#d9a4413d;stroke:#c26b36b8;stroke-width:2.2;opacity:1}.opv-node__atlas-label{opacity:0;fill:var(--opv-ink);font-size:11px;font-weight:900;text-anchor:middle;paint-order:stroke;stroke:#f9fcfbf0;stroke-width:4px;pointer-events:none;transition:opacity .14s ease}.opv-node__atlas-pin{fill:#fff;font-size:13px;font-weight:950;text-anchor:middle;dominant-baseline:central;pointer-events:none}.opv-shell.is-atlas-labels .opv-node--atlas .opv-node__atlas-label,.opv-node--atlas.opv-node--focus .opv-node__atlas-label,.opv-node--atlas.is-selected .opv-node__atlas-label,.opv-node--atlas.is-in-basket .opv-node__atlas-label{opacity:1}.opv-node__atlas-cluster{fill:#6d5aa81f;stroke:#6d5aa86b;stroke-width:1.6;stroke-dasharray:4 5}.opv-node__atlas-cluster-label{fill:var(--opv-purple);font-size:12px;font-weight:950;text-anchor:middle;pointer-events:none}.opv-shell.is-atlas-mode .opv-edge__line{stroke-width:1.35;opacity:.54}.opv-shell.is-atlas-mode .opv-edge__halo{stroke-width:8}.opv-shell.is-atlas-mode .opv-edge--related .opv-edge__line{stroke-dasharray:2 9;opacity:.24}:root[data-theme=dark] .opv-atlas-progress{background:#edf8f614}:root[data-theme=dark] .opv-shell.is-atlas-mode .opv-canvas-host{background:radial-gradient(circle at 30px 30px,rgba(126,227,213,.11) 0 1px,transparent 1px 100%),radial-gradient(circle at 90px 80px,rgba(224,152,95,.08) 0 1px,transparent 1px 100%),linear-gradient(135deg,rgba(33,169,154,.07),transparent 30%),linear-gradient(315deg,rgba(224,152,95,.07),transparent 36%),#081719}:root[data-theme=dark] .opv-minimap__background{fill:#0d232794}:root[data-theme=dark] .opv-atlas-region__shape{fill:#0d23273d;stroke:#7ee3d524}:root[data-theme=dark] .opv-atlas-region__label{fill:#edf8f675;stroke:#081719bd}:root[data-theme=dark] .opv-node__atlas-label{stroke:#081719f0}.opv-atlas-card{position:relative;overflow:hidden;border-color:#6d5aa833;background:radial-gradient(circle at 18% 16%,rgba(109,90,168,.14),transparent 42%),radial-gradient(circle at 86% 20%,rgba(15,118,110,.1),transparent 40%),var(--opv-surface);box-shadow:0 16px 36px #6d5aa814}.opv-atlas-card:after{content:"";position:absolute;inset:auto -40px -60px auto;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(194,107,54,.14),transparent 68%);pointer-events:none}.opv-atlas-progress{position:relative;display:grid;gap:8px;margin:12px 0;padding:10px;border:1px solid rgba(109,90,168,.18);border-radius:16px;background:#ffffff94}.opv-atlas-progress>span{position:relative;display:block;height:9px;overflow:hidden;border-radius:999px;background:#6d5aa821}.opv-atlas-progress>span:after{content:"";position:absolute;inset:0 auto 0 0;width:var(--value, 0%);border-radius:inherit;background:linear-gradient(90deg,var(--opv-purple),var(--opv-teal),var(--opv-copper));box-shadow:0 0 22px #0f766e40;transition:width .24s ease}.opv-atlas-progress strong{color:var(--opv-muted);font-size:.78rem;line-height:1.35}.opv-shell[data-view=atlas] .opv-canvas-host{background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.78),transparent 34%),linear-gradient(rgba(15,118,110,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(15,118,110,.045) 1px,transparent 1px),radial-gradient(circle at 8% 8%,rgba(109,90,168,.13),transparent 28%),radial-gradient(circle at 92% 88%,rgba(194,107,54,.13),transparent 28%),#f9fcfbf0;background-size:auto,64px 64px,64px 64px,auto,auto,auto}.opv-shell[data-view=atlas] .opv-graph{background:transparent}.opv-shell[data-view=atlas] .opv-graph__hitbox{cursor:grab}.opv-shell[data-view=atlas] .opv-edge__label{display:none}.opv-shell[data-view=atlas] .opv-edge__line{stroke-width:1.25;opacity:.52}.opv-shell[data-view=atlas] .opv-node__ring{filter:none;stroke-width:3;opacity:.52}.opv-shell[data-view=atlas] .opv-node__shape{stroke-width:1.35}.opv-shell[data-view=atlas] .opv-node__glyph{font-size:9px}.opv-shell[data-view=atlas] .opv-node__label,.opv-shell[data-view=atlas] .opv-node__sub{opacity:0;transition:opacity .14s ease}.opv-shell[data-view=atlas] .opv-node.is-selected .opv-node__label,.opv-shell[data-view=atlas] .opv-node.is-selected .opv-node__sub,.opv-shell[data-view=atlas] .opv-node--focus .opv-node__label,.opv-shell[data-view=atlas] .opv-node--focus .opv-node__sub,.opv-shell[data-view=atlas] .opv-node.is-in-basket .opv-node__label,.opv-shell[data-view=atlas] .opv-node.is-in-basket .opv-node__sub{opacity:1}.opv-shell[data-view=atlas] .opv-node.is-selected .opv-node__ring{stroke-width:9;opacity:.9}.opv-shell[data-view=atlas] .opv-graph-story{max-width:410px;border-color:#6d5aa82e;background:#ffffffc2}.opv-shell[data-view=atlas] .opv-minimap{width:248px;height:166px;border-radius:22px;cursor:crosshair;box-shadow:0 20px 46px #10212924}.opv-minimap__label,.opv-minimap__hint{position:absolute;z-index:2;pointer-events:none;color:var(--opv-muted);font-size:.64rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.opv-minimap__label{top:9px;left:11px;padding:3px 7px;border-radius:999px;background:#ffffffbd}.opv-minimap__hint{right:10px;bottom:9px}.opv-minimap__background{fill:#ffffff85;stroke:none}.opv-minimap__edge{stroke:#10212924;stroke-width:.75}.opv-minimap__edge--inheritance{stroke:#0f766e38}.opv-minimap__edge--mapping{stroke:#c26b363d}.opv-minimap__node{fill:#0f766eb3}.opv-minimap__node--focus{fill:var(--opv-copper)}.opv-minimap__node--cluster,.opv-minimap__node--ontology{fill:var(--opv-purple)}.opv-minimap__viewport{fill:#ffffff3d;stroke:var(--opv-copper);stroke-width:2;filter:drop-shadow(0 4px 12px rgba(194,107,54,.26))}:root[data-theme=dark] .opv-atlas-card{background:radial-gradient(circle at 18% 16%,rgba(169,157,236,.18),transparent 42%),radial-gradient(circle at 86% 20%,rgba(33,169,154,.16),transparent 40%),var(--opv-surface)}:root[data-theme=dark] .opv-atlas-progress,:root[data-theme=dark] .opv-shell[data-view=atlas] .opv-graph-story,:root[data-theme=dark] .opv-minimap__label{background:#0a1b1ead}:root[data-theme=dark] .opv-shell[data-view=atlas] .opv-canvas-host{background:radial-gradient(circle at 50% 50%,rgba(13,32,36,.78),transparent 34%),linear-gradient(rgba(126,227,213,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(126,227,213,.055) 1px,transparent 1px),radial-gradient(circle at 8% 8%,rgba(169,157,236,.14),transparent 28%),radial-gradient(circle at 92% 88%,rgba(224,152,95,.13),transparent 28%),#081618;background-size:auto,64px 64px,64px 64px,auto,auto,auto}.opv-atlas-region{pointer-events:none}.opv-atlas-region__shape{fill:#6d5aa809;stroke:#6d5aa81f;stroke-width:1.4;stroke-dasharray:9 10}.opv-atlas-region__label{fill:var(--opv-soft);font-size:13px;font-weight:950;letter-spacing:.04em;paint-order:stroke;stroke:#f9fcfbd1;stroke-width:5px;text-transform:uppercase}.opv-node--atlas .opv-node__atlas-halo{fill:#ffffffb8;stroke:#ffffffe6;stroke-width:1.4}.opv-node--atlas .opv-node__atlas-dot{fill:var(--opv-teal);stroke:#fffffff0;stroke-width:1.1;filter:drop-shadow(0 5px 10px rgba(16,33,41,.14))}.opv-node--atlas.opv-node--root .opv-node__atlas-dot,.opv-node--atlas.opv-node--parent .opv-node__atlas-dot{fill:var(--opv-teal-strong)}.opv-node--atlas.opv-node--property .opv-node__atlas-dot,.opv-node--atlas.opv-node--relation .opv-node__atlas-dot{fill:var(--opv-blue)}.opv-node--atlas.opv-node--mapping .opv-node__atlas-dot,.opv-node--atlas.opv-node--ontology .opv-node__atlas-dot{fill:var(--opv-copper)}.opv-node--atlas.opv-node--focus .opv-node__atlas-dot{fill:var(--opv-copper);stroke-width:2}.opv-node__atlas-cluster{fill:#6d5aa8b8;stroke:#ffffffeb;stroke-width:2.2;filter:drop-shadow(0 8px 18px rgba(109,90,168,.26))}.opv-node__atlas-cluster-label,.opv-node__atlas-label,.opv-node__atlas-pin{pointer-events:none;text-anchor:middle;dominant-baseline:central}.opv-node__atlas-cluster-label{fill:#fff;font-size:11px;font-weight:950}.opv-node__atlas-label{fill:var(--opv-ink);font-size:10.5px;font-weight:900;opacity:0;paint-order:stroke;stroke:#f9fcfbf2;stroke-width:5px;stroke-linecap:round;transition:opacity .16s ease}.opv-node__atlas-pin{fill:#fff;font-size:12px;font-weight:950}.opv-shell[data-view=atlas] .opv-node--focus .opv-node__atlas-label,.opv-shell[data-view=atlas] .opv-node.is-selected .opv-node__atlas-label,.opv-shell[data-view=atlas] .opv-node.is-in-basket .opv-node__atlas-label{opacity:1}.opv-shell[data-view=atlas] .opv-node.is-selected .opv-node__atlas-halo,.opv-shell[data-view=atlas] .opv-node.is-in-basket .opv-node__atlas-halo{fill:#fff7e8e6;stroke:#c26b36b8;stroke-width:3}:root[data-theme=dark] .opv-atlas-region__label,:root[data-theme=dark] .opv-node__atlas-label{stroke:#081618eb}:root[data-theme=dark] .opv-node--atlas .opv-node__atlas-halo{fill:#0a1b1eb3;stroke:#dcf6f12e}.opv-atlas-card .opv-atlas-progress{height:auto;overflow:visible;box-shadow:none}.opv-atlas-card .opv-atlas-progress:before{display:none}.opv-atlas-card .opv-atlas-progress>span{position:relative;inset:auto}.opv-atlas-card .opv-atlas-progress>span:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--value, 0%);border-radius:inherit;background:linear-gradient(90deg,var(--opv-purple),var(--opv-teal),var(--opv-copper));box-shadow:0 0 22px #0f766e40;transition:width .24s ease}.opv-shell[data-view=atlas] .opv-minimap__viewport{cursor:move}.opv-shell[data-view=atlas] .opv-minimap:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px #ffffff6b,inset 0 0 0 8px #ffffff2e}

/* MatPortal BioMixer P0 redesign: canvas-first shell, compact chrome, overlay drawers. */
@media screen{
:root{--opv-radius-xl:6px;--opv-radius-lg:5px;--opv-radius-md:4px;--opv-radius-sm:3px;--opv-shadow-sm:0 1px 3px rgba(16,33,41,.12);--opv-shadow-md:0 4px 12px rgba(16,33,41,.15);--opv-shadow-lg:0 8px 24px rgba(16,33,41,.2)}
html,body,#app{min-height:560px}.opv-shell{position:relative!important;grid-template-rows:auto minmax(0,1fr)!important;gap:0!important;padding:0!important;overflow:hidden!important;background:var(--opv-bg)!important}.opv-shell:before,.opv-shell:after{display:none!important}.opv-topbar{min-height:52px!important;padding:6px 10px!important;gap:10px!important;border-width:0 0 1px!important;border-radius:0!important;background:var(--opv-surface-strong)!important;box-shadow:none!important;backdrop-filter:none!important;grid-template-columns:minmax(180px,.72fr) minmax(0,auto) minmax(240px,.65fr)!important;z-index:30!important}.opv-brand{gap:9px!important}.opv-logo{width:34px!important;height:34px!important;border-radius:8px!important;box-shadow:none!important}.opv-logo span:nth-child(1){width:8px!important;height:8px!important;left:9px!important;top:9px!important}.opv-logo span:nth-child(2){width:6px!important;height:6px!important;right:9px!important;top:14px!important}.opv-logo span:nth-child(3){width:9px!important;height:9px!important;left:15px!important;bottom:7px!important}.opv-logo:before,.opv-logo:after{width:18px!important;left:13px!important}.opv-logo:before{top:14px!important}.opv-logo:after{top:19px!important;left:16px!important}.opv-brand-copy .opv-eyebrow,.opv-brand-copy .opv-subtitle{display:none!important}.opv-brand h1{font-size:1.04rem!important;letter-spacing:-.02em!important;max-width:32vw!important}.opv-view-tabs{display:flex!important;grid-template-columns:none!important;align-items:center!important;gap:3px!important;min-width:0!important;overflow-x:auto!important;padding:3px!important;border-radius:6px!important;background:var(--opv-surface-muted)!important;scrollbar-width:none!important}.opv-view-tabs::-webkit-scrollbar{display:none}.opv-view-tabs button{flex:0 0 auto!important;min-height:30px!important;padding:.34rem .55rem!important;border-radius:4px!important;font-size:.78rem!important;font-weight:800!important}.opv-top-actions{gap:5px!important;grid-template-columns:minmax(120px,1fr) repeat(4,auto)!important}.opv-search input{min-height:32px!important;padding-top:.36rem!important;padding-bottom:.36rem!important;border-radius:4px!important}.opv-icon-button{width:32px!important;height:32px!important;min-height:32px!important;border-radius:4px!important;font-size:.95rem!important}.opv-main{position:relative!important;display:block!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}.opv-stage{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:block!important;z-index:1!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--opv-surface-strong)!important}.opv-stage:before{display:none!important}.opv-stage-toolbar{position:absolute!important;top:8px!important;left:50%!important;transform:translateX(-50%)!important;width:auto!important;max-width:calc(100% - 120px)!important;grid-template-columns:auto minmax(0,1fr) auto!important;gap:8px!important;padding:5px 8px!important;border:1px solid var(--opv-line)!important;border-radius:5px!important;background:var(--opv-surface-strong)!important;box-shadow:0 2px 10px rgba(16,33,41,.12)!important;backdrop-filter:none!important;z-index:22!important;pointer-events:auto!important}.opv-status{min-height:28px!important;min-width:100px!important;padding:4px 8px!important;border-radius:4px!important;font-size:.72rem!important}.opv-metrics{gap:4px!important;font-size:.72rem!important}.opv-metrics span{min-height:24px!important;padding:.16rem .42rem!important;border-radius:4px!important}.opv-export-menu{gap:4px!important;flex-wrap:wrap!important;justify-content:flex-end!important}.opv-export-menu button{min-height:28px!important;padding:.28rem .44rem!important;border-radius:4px!important;font-size:.7rem!important}.opv-canvas-host{position:absolute!important;inset:0!important;z-index:1!important;width:100%!important;height:100%!important;min-height:0!important;background:radial-gradient(circle at 24px 24px,rgba(16,33,41,.08) 0 1px,transparent 1px 100%),#fbfdfc!important;background-size:24px 24px,auto!important}.opv-left-panel,.opv-detail-panel{position:absolute!important;top:10px!important;bottom:10px!important;z-index:12!important;display:flex!important;grid-template-columns:none!important;flex-direction:column!important;gap:8px!important;min-height:0!important;max-width:calc(100vw - 48px)!important;padding:0!important;overflow-y:auto!important;overflow-x:hidden!important;background:transparent!important;transition:transform .18s ease,opacity .18s ease,visibility .18s ease!important;scrollbar-width:thin!important}.opv-left-panel{left:10px!important;width:min(280px,calc(100vw - 48px))!important}.opv-detail-panel{right:10px!important;width:min(320px,calc(100vw - 48px))!important}.opv-shell.left-panel-collapsed .opv-left-panel{transform:translateX(calc(-100% - 24px))!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}.opv-shell.right-panel-collapsed .opv-detail-panel{transform:translateX(calc(100% + 24px))!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}.opv-card,.opv-detail-card,.opv-help-card{border-radius:5px!important;background:var(--opv-surface-strong)!important;box-shadow:0 2px 10px rgba(16,33,41,.12)!important;backdrop-filter:none!important}.opv-card--compact,.opv-detail-card{padding:10px!important}.opv-card__header{gap:8px!important;margin-bottom:8px!important}.opv-card h2{font-size:.88rem!important}.opv-context-stack{gap:6px!important}.opv-context-stack div,.opv-toggle-grid label,.opv-connection-item,.opv-search-result,.opv-trail button,.opv-resource-row,.opv-selection-chip{border-radius:4px!important}.opv-sparql-card textarea{min-height:92px!important;border-radius:4px!important}.opv-floating-toggle{position:absolute!important;top:50%!important;z-index:24!important;width:24px!important;height:52px!important;min-height:52px!important;padding:0!important;border:1px solid var(--opv-line)!important;background:var(--opv-surface-strong)!important;color:var(--opv-soft)!important;box-shadow:0 2px 8px rgba(16,33,41,.14)!important;transform:translateY(-50%)!important;transition:left .18s ease,right .18s ease,background .12s ease!important}.opv-floating-toggle:hover{background:var(--opv-surface-muted)!important;box-shadow:0 3px 10px rgba(16,33,41,.16)!important}.opv-floating-toggle--left{left:0!important;border-left:0!important;border-radius:0 5px 5px 0!important}.opv-floating-toggle--right{right:0!important;border-right:0!important;border-radius:5px 0 0 5px!important}.opv-shell:not(.left-panel-collapsed) .opv-floating-toggle--left{left:min(290px,calc(100vw - 30px))!important}.opv-shell:not(.right-panel-collapsed) .opv-floating-toggle--right{right:min(330px,calc(100vw - 30px))!important}.opv-floating-toggle--left:after{content:"▶";font-size:.78rem}.opv-shell:not(.left-panel-collapsed) .opv-floating-toggle--left:after{content:"◀"}.opv-floating-toggle--right:after{content:"◀";font-size:.78rem}.opv-shell:not(.right-panel-collapsed) .opv-floating-toggle--right:after{content:"▶"}.opv-graph-story{display:none!important}.opv-graph-legend{left:10px!important;bottom:10px!important;gap:4px!important;max-width:calc(100% - 220px)!important}.opv-graph-legend span{min-height:24px!important;padding:.18rem .42rem!important;border-radius:4px!important;background:var(--opv-surface-strong)!important;box-shadow:none!important;backdrop-filter:none!important;font-size:.68rem!important}.opv-zoom-controls{top:10px!important;right:10px!important;gap:4px!important}.opv-zoom-controls .opv-icon-button,.opv-minimap,.opv-tooltip{border-radius:5px!important;background:var(--opv-surface-strong)!important;box-shadow:0 2px 10px rgba(16,33,41,.12)!important;backdrop-filter:none!important}.opv-minimap{right:10px!important;bottom:10px!important;width:148px!important;height:100px!important}.opv-paper-frame,.opv-shell.is-uml-mode .opv-paper-frame{display:none!important}.opv-uml-card__shadow{display:none!important}.opv-uml-card{stroke-width:1.25!important}.opv-uml-card__header{fill:rgba(15,118,110,.08)!important}.opv-node__ring{filter:none!important}.opv-node__shape{stroke-width:1.6!important}.opv-node.is-dragging .opv-uml-card,.opv-node.is-dragging .opv-node__shape{stroke:var(--opv-teal-strong)!important;stroke-width:2.2!important}
}
@media screen and (max-width:1320px){.opv-topbar{grid-template-columns:minmax(128px,.38fr) minmax(0,1fr) minmax(210px,.55fr)!important;align-items:center!important}.opv-brand h1{max-width:18vw!important}.opv-top-actions{grid-template-columns:minmax(120px,1fr) repeat(4,auto)!important}.opv-main{height:100%!important}.opv-stage{min-height:0!important}.opv-detail-panel{grid-template-columns:none!important;overflow-y:auto!important}.opv-left-panel{grid-template-columns:none!important}}
@media screen and (max-width:920px){.opv-topbar{grid-template-columns:minmax(0,1fr) minmax(180px,.8fr)!important}.opv-brand{display:none!important}.opv-view-tabs{order:1!important}.opv-top-actions{order:2!important}}
@media screen and (max-width:720px){html,body,#app{min-height:620px}.opv-topbar{padding:5px!important}.opv-view-tabs button{font-size:.74rem!important;padding:.3rem .45rem!important}.opv-top-actions{grid-template-columns:1fr repeat(2,auto)!important}.opv-top-actions #themeButton,.opv-top-actions #helpButton{display:none!important}.opv-stage-toolbar{width:calc(100% - 20px)!important;max-width:calc(100% - 20px)!important;grid-template-columns:1fr!important}.opv-export-menu{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;justify-content:stretch!important}.opv-graph-legend,.opv-minimap{display:none!important}}

/* MatPortal BioMixer P0.3: native Draw.io-style browser annotation layer. */
@media screen{
.opv-diagram-layer{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}.opv-diagram-object{position:absolute;z-index:1;pointer-events:auto;border:1px solid var(--opv-line-strong);border-radius:5px;background:rgba(255,255,255,.92);box-shadow:0 2px 10px rgba(16,33,41,.12);color:var(--opv-ink);min-width:120px;min-height:54px}.opv-diagram-object__handle{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px;padding:4px 7px;border-bottom:1px solid var(--opv-line);background:var(--opv-surface-muted);color:var(--opv-muted);font-size:.68rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase;cursor:move;user-select:none}.opv-diagram-object__body{min-height:28px;padding:7px 8px;font-size:.82rem;line-height:1.35;outline:none}.opv-diagram-note{max-width:260px}.opv-diagram-group{background:rgba(15,118,110,.055);border:1.5px dashed rgba(15,118,110,.62);min-width:190px;min-height:116px}.opv-diagram-group .opv-diagram-object__handle{border-bottom:1px dashed rgba(15,118,110,.32);background:rgba(15,118,110,.08);color:var(--opv-teal-strong)}.opv-diagram-object.is-dragging{outline:2px solid var(--opv-teal-strong);outline-offset:2px}.opv-diagram-hud{position:absolute;left:50%;bottom:14px;z-index:18;display:none;align-items:center;gap:6px;max-width:calc(100% - 180px);padding:6px 8px;border:1px solid var(--opv-line);border-radius:5px;background:var(--opv-surface-strong);box-shadow:0 2px 12px rgba(16,33,41,.16);pointer-events:auto;transform:translateX(-50%)}.opv-shell[data-view=diagram] .opv-diagram-hud{display:flex}.opv-diagram-hud__label{color:var(--opv-teal-strong);font-size:.72rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.opv-diagram-hud__hint{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--opv-muted);font-size:.72rem;font-weight:750}.opv-diagram-hud button{min-height:28px!important;padding:.28rem .48rem!important;border-radius:4px!important;font-size:.72rem!important}:root[data-theme=dark] .opv-diagram-object{background:rgba(13,32,36,.94)}:root[data-theme=dark] .opv-diagram-group{background:rgba(33,169,154,.09)}
}
@media screen and (max-width:720px){.opv-diagram-hud{left:10px;right:10px;bottom:10px;transform:none;max-width:none;display:none;flex-wrap:wrap}.opv-shell[data-view=diagram] .opv-diagram-hud{display:flex}.opv-diagram-hud__hint{display:none}}
.opv-export-menu #exportDrawioButton,.opv-export-menu #exportPlantUmlButton,.opv-export-menu #printButton{color:#7a3513!important;border-color:#7a3513!important;background:#fffaf3!important}:root[data-theme=dark] .opv-export-menu #exportDrawioButton,:root[data-theme=dark] .opv-export-menu #exportPlantUmlButton,:root[data-theme=dark] .opv-export-menu #printButton{color:#ffd2a6!important;border-color:#ffd2a6!important;background:#23140c!important}
/* MatPortal UX tighten: keep graph canvas wide; move mode/export controls into explicit menus. */
.opv-control-menu{position:relative!important;display:inline-block!important;min-width:0!important;color:var(--opv-ink)!important}.opv-control-menu>summary{display:grid!important;grid-template-columns:1fr auto!important;gap:0 8px!important;align-items:center!important;min-height:32px!important;padding:4px 10px!important;border:1px solid var(--opv-line)!important;border-radius:5px!important;background:var(--opv-surface-muted)!important;cursor:pointer!important;list-style:none!important;box-shadow:none!important}.opv-control-menu>summary::-webkit-details-marker{display:none}.opv-control-menu>summary:after{content:"▾";grid-row:1 / span 2;grid-column:2;color:var(--opv-soft);font-size:.8rem}.opv-control-menu[open]>summary:after{content:"▴"}.opv-control-menu>summary span{font-size:.76rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.opv-control-menu>summary small{color:var(--opv-muted);font-size:.66rem;font-weight:750}.opv-control-menu:not([open])>.opv-view-tabs,.opv-control-menu:not([open])>.opv-export-menu{display:none!important}.opv-control-menu[open]>.opv-view-tabs,.opv-control-menu[open]>.opv-export-menu{position:absolute!important;top:calc(100% + 6px)!important;right:0!important;z-index:45!important;padding:8px!important;border:1px solid var(--opv-line)!important;border-radius:6px!important;background:var(--opv-surface-strong)!important;box-shadow:0 8px 28px rgba(16,33,41,.2)!important}.opv-view-menu .opv-view-tabs{min-width:250px!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}.opv-download-menu .opv-export-menu{min-width:260px!important;display:grid!important;grid-template-columns:1fr!important;gap:6px!important}.opv-download-menu .opv-export-menu button{justify-content:flex-start!important;width:100%!important}.opv-stage-toolbar{grid-template-columns:auto minmax(140px,1fr) auto!important}.opv-stage-toolbar .opv-download-menu{justify-self:end!important}.opv-shell.right-panel-collapsed .opv-graph-legend{max-width:calc(100% - 40px)!important}.opv-shell.right-panel-collapsed .opv-minimap{right:10px!important}@media screen and (max-width:720px){.opv-control-menu[open]>.opv-view-tabs,.opv-control-menu[open]>.opv-export-menu{left:0!important;right:auto!important}.opv-download-menu .opv-export-menu{min-width:min(280px,calc(100vw - 24px))!important}}
.opv-shell.opv-no-drawers .opv-left-panel,.opv-shell.opv-no-drawers .opv-detail-panel,.opv-shell.opv-no-drawers .opv-floating-toggle{display:none!important}
.opv-shell.opv-no-drawers .opv-main{grid-template-columns:minmax(0,1fr)!important}
/* MatPortal: keep view choices inline; no graph-covering dropdown. */
.opv-view-menu{display:block!important;position:static!important;min-width:0!important}
.opv-view-menu>summary{display:none!important}
.opv-view-menu>.opv-view-tabs,.opv-view-menu[open]>.opv-view-tabs,.opv-control-menu[open]>.opv-view-tabs{position:static!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:4px!important;min-width:0!important;width:100%!important;padding:3px!important;border:1px solid var(--opv-line)!important;border-radius:7px!important;background:var(--opv-surface-muted)!important;box-shadow:none!important;z-index:auto!important}
.opv-view-menu .opv-view-tabs button{min-height:30px!important;padding:.34rem .52rem!important;border-radius:5px!important;font-size:.76rem!important;white-space:nowrap!important}
.opv-view-menu .opv-view-tabs button:disabled{opacity:.42!important;cursor:not-allowed!important;background:transparent!important;color:var(--opv-muted)!important;box-shadow:none!important}
.opv-shell.is-embed .opv-topbar{grid-template-columns:minmax(150px,.35fr) minmax(0,1fr) minmax(220px,.55fr)!important}
.opv-shell.is-embed .opv-view-tabs{overflow-x:auto!important;scrollbar-width:thin!important}
.opv-canvas-host,.opv-graph{touch-action:none!important}
/* MatPortal: all primary controls live in one top strip, never over the graph. */
.opv-control-strip{display:grid!important;grid-template-columns:minmax(300px,1fr) minmax(260px,.8fr)!important;gap:8px!important;min-width:0!important;align-items:start!important}
.opv-control-group{min-width:0!important;display:grid!important;gap:3px!important}
.opv-control-label{color:var(--opv-soft)!important;font-size:.62rem!important;font-weight:950!important;letter-spacing:.12em!important;text-transform:uppercase!important;line-height:1!important}
.opv-top-export .opv-export-menu{position:static!important;display:flex!important;flex-wrap:wrap!important;gap:4px!important;width:100%!important;min-width:0!important;padding:3px!important;border:1px solid var(--opv-line)!important;border-radius:7px!important;background:var(--opv-surface-muted)!important;box-shadow:none!important}
.opv-top-export .opv-export-menu button{flex:1 1 auto!important;min-width:56px!important;min-height:30px!important;width:auto!important;padding:.32rem .44rem!important;border-radius:5px!important;font-size:.72rem!important;font-weight:850!important;justify-content:center!important;white-space:nowrap!important}
.opv-stage-toolbar{grid-template-columns:auto minmax(160px,1fr)!important}
.opv-download-menu{display:none!important}
@media screen and (max-width:1320px){.opv-shell.is-embed .opv-topbar{grid-template-columns:1fr!important}.opv-control-strip{grid-template-columns:1fr!important}.opv-top-actions{grid-template-columns:minmax(160px,1fr) repeat(4,auto)!important}}
@media screen and (max-width:720px){.opv-control-strip{gap:5px!important}.opv-top-export .opv-export-menu{overflow-x:auto!important;flex-wrap:nowrap!important}.opv-top-export .opv-export-menu button{flex:0 0 auto!important}.opv-view-menu>.opv-view-tabs{flex-wrap:nowrap!important;overflow-x:auto!important}}
/* MatPortal: compact classic menu bar for graph controls. */
.opv-menu-bar{display:flex!important;align-items:center!important;gap:6px!important;width:auto!important;min-width:0!important;align-self:center!important}
.opv-menu{position:relative!important;display:block!important;margin:0!important;min-width:0!important}
.opv-menu>summary{display:inline-flex!important;align-items:center!important;gap:6px!important;min-height:32px!important;padding:0 .72rem!important;border:1px solid var(--opv-line)!important;border-radius:5px!important;background:var(--opv-surface-strong)!important;color:var(--opv-ink)!important;font-size:.82rem!important;font-weight:850!important;line-height:1!important;cursor:pointer!important;list-style:none!important;box-shadow:none!important}
.opv-menu>summary::-webkit-details-marker{display:none!important}
.opv-menu>summary:after{content:"▾"!important;color:var(--opv-muted)!important;font-size:.72rem!important}
.opv-menu[open]>summary{background:#fff!important;border-color:var(--opv-line-strong)!important}
.opv-menu[open]>summary:after{content:"▴"!important}
.opv-menu>.opv-menu-panel,.opv-menu[open]>.opv-menu-panel,.opv-menu[open]>.opv-view-tabs,.opv-menu[open]>.opv-export-menu{position:absolute!important;top:calc(100% + 4px)!important;left:0!important;right:auto!important;z-index:1000!important;display:grid!important;grid-template-columns:1fr!important;gap:2px!important;width:max-content!important;min-width:180px!important;max-width:min(320px,calc(100vw - 32px))!important;padding:5px!important;border:1px solid var(--opv-line-strong)!important;border-radius:6px!important;background:#fff!important;color:var(--opv-ink)!important;box-shadow:0 14px 36px rgba(16,33,41,.2)!important;overflow:hidden!important}
.opv-menu .opv-menu-panel button,.opv-menu .opv-view-tabs button,.opv-menu .opv-export-menu button{display:flex!important;justify-content:flex-start!important;width:100%!important;min-width:0!important;min-height:30px!important;padding:.42rem .56rem!important;border:0!important;border-radius:4px!important;background:transparent!important;color:var(--opv-ink)!important;box-shadow:none!important;font-size:.8rem!important;font-weight:800!important;text-align:left!important;white-space:nowrap!important}
.opv-menu .opv-menu-panel button:hover,.opv-menu .opv-menu-panel button:focus{background:var(--opv-surface-muted)!important;color:var(--opv-teal-strong)!important}
.opv-menu .opv-menu-panel button.is-active{background:var(--opv-teal-soft)!important;color:var(--opv-teal-strong)!important}
.opv-menu .opv-menu-panel button:disabled{opacity:.45!important;cursor:not-allowed!important;background:transparent!important;color:var(--opv-muted)!important}
.opv-shell.is-embed .opv-topbar{min-height:46px!important;grid-template-columns:minmax(160px,.4fr) auto minmax(260px,.75fr)!important;padding:5px 8px!important;gap:8px!important;overflow:visible!important}
.opv-shell.is-embed .opv-main{height:calc(100% - 46px)!important}
@media screen and (max-width:920px){.opv-shell.is-embed .opv-topbar{grid-template-columns:auto minmax(180px,1fr)!important}.opv-menu-bar{order:1!important}.opv-top-actions{order:2!important}}
@media screen and (max-width:720px){.opv-menu>.opv-menu-panel{max-width:calc(100vw - 20px)!important}.opv-menu-bar{gap:4px!important}.opv-menu>summary{padding:0 .55rem!important}}
/* MatPortal: single compact top menu. */
.opv-control-strip,.opv-menu-bar,.opv-view-menu:not(.opv-main-menu),.opv-download-menu:not(.opv-main-menu){display:none!important}
.opv-main-menu{position:relative!important;display:block!important;justify-self:center!important;align-self:center!important}
.opv-main-menu>.opv-main-menu-panel{left:50%!important;right:auto!important;transform:translateX(-50%)!important;display:grid!important;grid-template-columns:repeat(3,minmax(140px,1fr))!important;gap:8px!important;min-width:min(560px,calc(100vw - 32px))!important;width:min(620px,calc(100vw - 32px))!important;max-width:calc(100vw - 32px)!important;padding:8px!important}
.opv-main-menu-panel section{display:grid!important;gap:4px!important;min-width:0!important}
.opv-main-menu-panel strong{color:var(--opv-soft)!important;font-size:.66rem!important;font-weight:950!important;letter-spacing:.12em!important;text-transform:uppercase!important}
.opv-main-menu-panel .opv-view-tabs,.opv-main-menu-panel .opv-export-menu,.opv-main-menu-panel .opv-action-menu{position:static!important;display:grid!important;grid-template-columns:1fr!important;gap:2px!important;width:100%!important;min-width:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.opv-main-menu-panel button{display:flex!important;justify-content:flex-start!important;width:100%!important;min-height:29px!important;padding:.38rem .5rem!important;border:0!important;border-radius:4px!important;background:transparent!important;color:var(--opv-ink)!important;box-shadow:none!important;font-size:.78rem!important;font-weight:800!important;text-align:left!important;white-space:nowrap!important}
.opv-main-menu-panel button:hover,.opv-main-menu-panel button:focus{background:var(--opv-surface-muted)!important;color:var(--opv-teal-strong)!important}
.opv-main-menu-panel button.is-active{background:var(--opv-teal-soft)!important;color:var(--opv-teal-strong)!important}
.opv-main-menu-panel button:disabled{opacity:.45!important;cursor:not-allowed!important;background:transparent!important;color:var(--opv-muted)!important}
.opv-search-only{grid-template-columns:minmax(180px,1fr)!important}
.opv-shell.is-embed .opv-topbar{min-height:46px!important;grid-template-columns:minmax(160px,.45fr) auto minmax(220px,.55fr)!important;padding:5px 8px!important;gap:8px!important;overflow:visible!important}
@media screen and (max-width:720px){.opv-main-menu>.opv-main-menu-panel{grid-template-columns:1fr!important;left:0!important;transform:none!important;min-width:min(260px,calc(100vw - 20px))!important;width:min(280px,calc(100vw - 20px))!important}.opv-shell.is-embed .opv-topbar{grid-template-columns:auto 1fr!important}}
/* MatPortal: one horizontal menubar with dropdown submenus. */
.opv-main-menu{display:none!important}
.opv-menubar{display:flex!important;align-items:center!important;gap:0!important;height:32px!important;min-width:0!important;justify-self:center!important;border:1px solid var(--opv-line)!important;border-radius:5px!important;background:var(--opv-surface-strong)!important;overflow:visible!important}
.opv-menubar .opv-menu{display:block!important;position:relative!important;margin:0!important;min-width:0!important}
.opv-menubar .opv-menu>summary{display:inline-flex!important;align-items:center!important;gap:5px!important;height:30px!important;min-height:30px!important;padding:0 .62rem!important;border:0!important;border-right:1px solid var(--opv-line)!important;border-radius:0!important;background:transparent!important;color:var(--opv-ink)!important;font-size:.8rem!important;font-weight:850!important;line-height:1!important;cursor:pointer!important;list-style:none!important;box-shadow:none!important;white-space:nowrap!important}
.opv-menubar .opv-menu:last-child>summary{border-right:0!important}
.opv-menubar .opv-menu>summary::-webkit-details-marker{display:none!important}
.opv-menubar .opv-menu>summary:after{content:"▾"!important;color:var(--opv-muted)!important;font-size:.68rem!important}
.opv-menubar .opv-menu[open]>summary,.opv-menubar .opv-menu>summary:hover{background:var(--opv-surface-muted)!important;color:var(--opv-teal-strong)!important}
.opv-menubar .opv-menu[open]>.opv-menu-panel,.opv-menubar .opv-menu[open]>.opv-view-tabs,.opv-menubar .opv-menu[open]>.opv-export-menu,.opv-menubar .opv-menu[open]>.opv-action-menu{position:absolute!important;top:calc(100% + 2px)!important;left:0!important;right:auto!important;z-index:1000!important;display:grid!important;grid-template-columns:1fr!important;gap:2px!important;min-width:180px!important;width:max-content!important;max-width:min(320px,calc(100vw - 24px))!important;padding:5px!important;border:1px solid var(--opv-line-strong)!important;border-radius:6px!important;background:#fff!important;box-shadow:0 14px 36px rgba(16,33,41,.2)!important;overflow:hidden!important}
.opv-menubar .opv-menu-panel button,.opv-menubar .opv-view-tabs button,.opv-menubar .opv-export-menu button,.opv-menubar .opv-action-menu button{display:flex!important;justify-content:flex-start!important;width:100%!important;min-height:29px!important;padding:.38rem .55rem!important;border:0!important;border-radius:4px!important;background:transparent!important;color:var(--opv-ink)!important;box-shadow:none!important;font-size:.78rem!important;font-weight:800!important;text-align:left!important;white-space:nowrap!important}
.opv-menubar .opv-menu-panel button:hover,.opv-menubar .opv-menu-panel button:focus{background:var(--opv-surface-muted)!important;color:var(--opv-teal-strong)!important}
.opv-menubar .opv-menu-panel button.is-active{background:var(--opv-teal-soft)!important;color:var(--opv-teal-strong)!important}
.opv-menubar .opv-menu-panel button:disabled{opacity:.45!important;cursor:not-allowed!important;background:transparent!important;color:var(--opv-muted)!important}
.opv-menubar .opv-view-menu:not(.opv-main-menu),.opv-menubar .opv-download-menu:not(.opv-main-menu),.opv-menubar .opv-actions-menu{display:block!important}
.opv-shell.is-embed .opv-topbar{min-height:46px!important;grid-template-columns:minmax(160px,.42fr) auto minmax(220px,.58fr)!important;padding:5px 8px!important;gap:8px!important;overflow:visible!important}
@media screen and (max-width:720px){.opv-menubar .opv-menu>summary{padding:0 .45rem!important;font-size:.75rem!important}.opv-menubar .opv-menu[open]>.opv-menu-panel{max-width:calc(100vw - 20px)!important}.opv-shell.is-embed .opv-topbar{grid-template-columns:auto 1fr!important}}
/* MatPortal: fold graph status into the horizontal menubar. */
.opv-stage-toolbar{display:none!important}
.opv-stage{grid-template-rows:1fr!important}
.opv-menubar{height:32px!important;max-width:100%!important}
.opv-menubar-status{display:inline-flex!important;align-items:center!important;gap:0!important;height:30px!important;min-width:0!important;border-left:1px solid var(--opv-line)!important;color:var(--opv-muted)!important;font-size:.75rem!important;font-weight:850!important;white-space:nowrap!important}
.opv-menubar-status .opv-status{min-width:0!important;max-width:132px!important;height:30px!important;min-height:30px!important;padding:0 .55rem!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--opv-muted)!important;font-size:.75rem!important;gap:5px!important}
.opv-menubar-status .opv-status span{width:7px!important;height:7px!important;flex:0 0 auto!important}
.opv-menubar-status .opv-status strong{font-size:.75rem!important;max-width:96px!important}
.opv-menubar-status>span{display:inline-flex!important;align-items:center!important;height:30px!important;min-height:30px!important;padding:0 .5rem!important;border-left:1px solid var(--opv-line)!important;border-radius:0!important;background:transparent!important;color:var(--opv-muted)!important;box-shadow:none!important}
.opv-menubar-status #layoutMetric{max-width:112px!important;overflow:hidden!important;text-overflow:ellipsis!important}
.opv-shell.is-embed .opv-topbar{grid-template-columns:minmax(140px,.32fr) minmax(360px,auto) minmax(190px,.45fr)!important}
@media screen and (max-width:960px){.opv-menubar-status #layoutMetric{display:none!important}.opv-menubar-status>span{padding:0 .38rem!important}.opv-shell.is-embed .opv-topbar{grid-template-columns:1fr!important}.opv-menubar{justify-self:start!important}.opv-search-only{justify-self:stretch!important}}
@media screen and (max-width:720px){.opv-menubar-status #edgeMetric{display:none!important}.opv-menubar-status .opv-status strong{max-width:72px!important}.opv-menubar .opv-menu>summary{padding:0 .38rem!important}}
/* MatPortal: narrow class-tab embed - keep the menubar usable, not clipped. */
@media screen and (max-width:1100px){
  .opv-shell.is-embed .opv-topbar{grid-template-columns:minmax(0,1fr)!important;min-height:38px!important;padding:3px 5px!important;gap:0!important;overflow:visible!important}
  .opv-brand,.opv-search-only{display:none!important}
  .opv-menubar{justify-self:start!important;width:auto!important;max-width:100%!important;height:32px!important}
  .opv-menubar-status #layoutMetric{display:none!important}
  .opv-menubar-status .opv-status strong{max-width:74px!important}
}
@media screen and (max-width:720px){
  .opv-menubar-status #edgeMetric{display:none!important}
  .opv-menubar .opv-menu>summary{padding:0 .34rem!important;font-size:.74rem!important}
  .opv-menubar-status>span{padding:0 .32rem!important}
}
@media screen and (max-width:560px){
  .opv-menubar-status #nodeMetric{display:none!important}
  .opv-menubar-status .opv-status{padding:0 .38rem!important}
}
