:root{color-scheme:dark;--ink:#f5f7f8;--muted:#9aa8ae;--panel:#182126;--line:#35434a;--accent:#f47a1f;--accent2:#d8641a;--bg:#0d1215}
body{background:radial-gradient(circle at 20% 10%,rgba(244,122,31,.11),transparent 28%),radial-gradient(circle at 85% 85%,rgba(94,123,137,.10),transparent 30%),var(--bg)}
button{background:#202c31;color:var(--ink);transition:background .2s,border-color .2s,transform .2s}button:hover{background:#2a383e;border-color:#75878f;transform:translateY(-1px)}.primary,.accent{background:var(--accent2);border-color:var(--accent);color:#fff}
.topbar{background:rgba(19,27,31,.95);border-color:#35434a;box-shadow:0 8px 30px rgba(0,0,0,.24)}.search-wrap input,input,select,textarea{background:#10171a;color:var(--ink);border-color:#35434a}.canvas-shell,.canvas{background-color:#0d1215}.canvas{background-image:radial-gradient(#2a363b 1px,transparent 1px),radial-gradient(circle at 20% 10%,rgba(244,122,31,.08),transparent 32%)}
aside{background:rgba(24,33,38,.97)}.form-actions{background:#182126}.layer-row{border-color:#2a363b}.layer-row:hover{background:#223037}.status{color:#9aa8ae}.status span{background:#182126db}.edge-label{fill:#d9e0e3;stroke:#11181b}.tooltip{background:rgba(25,35,40,.97);border-color:#46565d;box-shadow:0 18px 42px rgba(0,0,0,.42)}dialog{background:#182126;color:var(--ink);border:1px solid #46565d}
.edge{transition:opacity .25s,stroke .25s,filter .25s}.node{transition:opacity .25s,filter .28s}.node:hover{filter:drop-shadow(0 8px 10px rgba(0,0,0,.42)) drop-shadow(0 0 6px rgba(244,122,31,.42))}.node.selected{filter:drop-shadow(0 0 7px #f47a1f)}
.edge.selected,.edge.related{stroke-dasharray:2 4 12 4!important;animation:edgeFlow .72s linear infinite,edgeGlow 1.15s ease-in-out infinite alternate}@keyframes edgeFlow{to{stroke-dashoffset:-22}}@keyframes edgeGlow{from{filter:drop-shadow(0 0 2px rgba(244,122,31,.65))}to{filter:drop-shadow(0 0 6px rgba(255,158,73,.98))}}
.node-card.decoration{color:#f2a064!important;font-size:max(12px,1.35em)!important;text-shadow:0 0 9px rgba(244,122,31,.42)}
.node-card.decoration img{display:block;width:100%;height:100%;object-fit:contain}.decoration-node{pointer-events:none}.node-card.title{line-height:1.2;letter-spacing:.035em;box-shadow:0 10px 28px rgba(0,0,0,.28)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* Touch-first presentation mode. The editor keeps the established desktop layout. */
body:not(.editing) .topbar{display:none}body:not(.editing) main{height:100vh;grid-template-columns:1fr}body:not(.editing) #inspector{display:none}
body.editing .topbar{display:flex}body.editing main{height:calc(100% - 64px);grid-template-columns:1fr 330px}body.editing #inspector{display:flex}
.canvas-shell,#svg{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.canvas-shell{overscroll-behavior:none}
.empty-hint[hidden]{display:none!important}
.floating-controls{position:fixed;z-index:30;right:14px;bottom:14px;display:flex;gap:8px}.floating-controls button{width:48px;height:48px;border-radius:50%;font-size:22px;background:rgba(24,33,38,.72);backdrop-filter:blur(8px);opacity:.62}.floating-controls button:hover,.floating-controls button:focus-visible{opacity:1}.editing #revealEditor{display:none}
.detail-drawer{display:block;position:fixed;z-index:50;right:0;top:0;bottom:0;width:min(190px,92vw);padding:22px 16px 88px;border:0;border-left:1px solid #46565d;background:rgba(24,33,38,.98);box-shadow:-24px 0 64px rgba(0,0,0,.48);transform-origin:left bottom;transform:translate3d(112%,18%,0) scale(.18);opacity:0;filter:blur(4px);overflow:auto;visibility:hidden;pointer-events:none;will-change:transform,opacity,filter}.detail-drawer.open{visibility:visible;pointer-events:auto;animation:drawerDockIn .62s cubic-bezier(.16,1,.3,1) both}.detail-drawer.closing{visibility:visible;pointer-events:none;animation:drawerDockOut .4s cubic-bezier(.55,0,.85,.36) both}@keyframes drawerDockIn{0%{transform:translate3d(112%,18%,0) scale(.18);opacity:0;filter:blur(5px)}48%{transform:translate3d(-5%,-1.5%,0) scale(1.055);opacity:1;filter:blur(0)}70%{transform:translate3d(2%,.5%,0) scale(.985)}86%{transform:translate3d(-.7%,0,0) scale(1.008)}100%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}}@keyframes drawerDockOut{0%{transform:translate3d(0,0,0) scale(1);opacity:1;filter:blur(0)}22%{transform:translate3d(-4%,-1%,0) scale(1.04)}100%{transform:translate3d(112%,18%,0) scale(.18);opacity:0;filter:blur(5px)}}.drawer-close{position:fixed;right:calc(min(190px,92vw) - 66px);bottom:14px;left:auto;top:auto;width:52px;height:52px;border-radius:50%;line-height:1;display:grid;place-items:center}.drawer-close svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.detail-drawer h2{font-size:20px;line-height:1.2;margin:0 0 8px;color:#fff;overflow-wrap:anywhere}.detail-drawer .drawer-role{font-size:15px;line-height:1.35;color:#f2a064;margin-bottom:18px}.detail-drawer dl{display:grid;grid-template-columns:1fr;gap:4px;margin:0;font-size:13px}.detail-drawer dt{color:#9aa8ae;font-weight:700;margin-top:10px}.detail-drawer dd{margin:0 0 6px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4;color:#eef2f4}.detail-drawer,.detail-drawer *{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
@media(pointer:coarse){.tooltip{display:none!important}button{min-height:44px}.topbar{min-height:72px}.floating-controls{right:18px;bottom:18px}.floating-controls button{width:54px;height:54px}}
@media(max-width:800px){body.editing main{grid-template-columns:1fr}body.editing #inspector{position:fixed;z-index:40;right:0;top:72px;bottom:0;width:min(360px,92vw)}.detail-drawer{padding-left:14px;padding-right:14px}.detail-drawer dl{grid-template-columns:1fr;gap:4px}.detail-drawer dd{margin-bottom:10px}}
