/* Game · editor Blocks Lite v2 (vlastní, ne Blockly) uvnitř laboratoře: styl omezen na .gmb a tmavý. Vygenerováno z blocks/MD-Blocks.css (tools/mkcss.py). */
.gmb{--bg:#0a1224;--panel:#111c33;--text:#e6f1ff;--muted:#8ea7c4;--border:#2c3d5e;--accent:#8bacff;--sel:#8bacff;--drop:#fbbf24;
 --k-data-bg:#1f3358;--k-data-fg:#dbe8ff;--k-data-bd:#6f9bff;--k-logic-bg:#35264f;--k-logic-fg:#eadcff;--k-logic-bd:#a98be0;--k-hardware-bg:#173f31;--k-hardware-fg:#d3f5e4;--k-hardware-bd:#3fc08a;
 color:var(--text);font:14px/1.45 system-ui,sans-serif;box-sizing:border-box}
.gmb *{box-sizing:border-box}
.gmb button{font:inherit;color:inherit;cursor:pointer}
.gmb .mdb-toolbox,.gmb .mdb-workspace{max-block-size:none}
.gmb .block,.gmb .toolbox-item,.gmb .drag-ghost,.gmb .drop-gap{--kbg:var(--k-data-bg);--kfg:var(--k-data-fg);--kbd:var(--k-data-bd)}
.gmb .block.logic,.gmb .toolbox-item.logic,.gmb .drag-ghost.logic,.gmb .drop-gap.logic{--kbg:var(--k-logic-bg);--kfg:var(--k-logic-fg);--kbd:var(--k-logic-bd)}
.gmb .block.hardware,.gmb .toolbox-item.hardware,.gmb .drag-ghost.hardware,.gmb .drop-gap.hardware{--kbg:var(--k-hardware-bg);--kfg:var(--k-hardware-fg);--kbd:var(--k-hardware-bd)}
.gmb .editor-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.gmb .editor-actions button{font-size:12px;padding:6px 10px}
.gmb .editor-actions span{font:600 12px ui-monospace,monospace;color:var(--muted);margin-right:8px;min-width:4ch}
.gmb .editor-help{margin:0 0 10px;font-size:11px;line-height:1.5;color:var(--muted)}
.gmb .editor-grid{display:grid;grid-template-columns:minmax(155px,210px) minmax(0,1fr);gap:10px;min-height:560px}
.gmb .mdb-toolbox{position:relative;background:var(--bg);border-radius:12px;border:1px solid var(--border);padding:9px;overflow:auto;max-height:790px;transition:background .15s,border-color .15s}
.gmb .mdb-toolbox.drop-delete{border:2px dashed #e5484d;background:color-mix(in srgb,#e5484d 14%,var(--bg))}
.gmb .mdb-toolbox.drop-delete::before{content:attr(data-delete);position:sticky;top:0;display:block;margin:-2px 0 8px;padding:8px;border-radius:8px;background:#e5484d;color:#fff;font-weight:700;font-size:12px;text-align:center;z-index:2}
.gmb .toolbox-group{border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:10px}
.gmb .toolbox-group summary{font-weight:750;font-size:12px;padding:6px 0;cursor:pointer}
.gmb .toolbox-item{display:block;text-align:left;width:100%;border-radius:5px 12px 12px 5px;margin:5px 0;padding:10px 7px;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;font-size:12px;border:1px solid transparent;border-left:5px solid var(--kbd);background:var(--kbg);color:var(--kfg);cursor:grab;transition:transform .12s,box-shadow .12s}
.gmb .toolbox-item:hover{transform:translateX(3px);box-shadow:0 3px 10px #0002;filter:none}
.gmb .toolbox-item:active{cursor:grabbing}
.gmb .mdb-workspace{min-width:0;max-height:790px;overflow:auto;background:radial-gradient(circle,var(--border) .7px,transparent 1px);background-size:19px 19px;border:1px solid var(--border);padding:12px;border-radius:12px;overscroll-behavior:contain;scroll-behavior:auto}
.gmb .mdb-workspace.is-dragging{cursor:grabbing}
.gmb .canvas{min-width:min-content}
.gmb .scope{background:color-mix(in srgb,var(--panel) 89%,transparent);padding:12px;margin:0 0 16px;border:1px solid var(--border);border-radius:12px;transition:box-shadow .15s,border-color .15s}
.gmb .scope-header{font-size:12px;font-weight:750;color:var(--muted);margin-bottom:10px}
.gmb .block-stack{min-height:8px}
.gmb .block-stack:empty{min-height:38px;border:1px dashed var(--border);border-radius:9px;display:grid;place-items:center;transition:background .15s,border-color .15s}
.gmb .block-stack:empty::after{content:attr(data-empty);font-size:11px;color:var(--muted);opacity:.7;pointer-events:none}
.gmb .mdb-dragging .block-stack:empty{border-color:var(--drop);background:color-mix(in srgb,var(--drop) 8%,transparent)}
.gmb .mdb-dragging .block-stack:empty::after{opacity:1;color:var(--text)}
.gmb .scope.drop-host,.gmb .nested.drop-host{border-color:var(--drop)!important;box-shadow:0 0 0 2px var(--drop),0 0 22px color-mix(in srgb,var(--drop) 40%,transparent)}
.gmb .block{background:var(--kbg);color:var(--kfg);border:1px solid color-mix(in srgb,var(--kbd) 35%,transparent);border-left:5px solid var(--kbd);border-radius:5px 13px 13px 5px;position:relative;margin:0 0 4px;padding:7px 7px 7px 3px;box-shadow:0 3px 0 #00000013;outline:none;transition:box-shadow .15s,opacity .15s,transform .15s}
.gmb .block:not(.selected):not(:has(.block:hover)):hover{box-shadow:0 3px 0 #00000013,0 0 0 2px color-mix(in srgb,var(--sel) 30%,transparent)}
.gmb .block.selected{box-shadow:0 0 0 2px var(--sel),0 0 0 6px color-mix(in srgb,var(--sel) 24%,transparent),0 6px 16px #0003;z-index:1}
.gmb .block:focus-visible{box-shadow:0 0 0 3px var(--sel),0 0 0 7px color-mix(in srgb,var(--sel) 30%,transparent)}
.gmb .block.drag-source{opacity:.38;filter:saturate(.4)}
.gmb .block.just-dropped{animation:blk-pop .5s cubic-bezier(.2,1.5,.4,1)}
@keyframes blk-pop{0%{transform:scale(.96);box-shadow:0 0 0 0 var(--drop)}45%{box-shadow:0 0 0 7px color-mix(in srgb,var(--drop) 55%,transparent)}100%{transform:scale(1)}}
.gmb .block-body{display:flex;gap:6px;flex-wrap:wrap;align-items:center;user-select:none;-webkit-user-select:none;cursor:grab}
.gmb .block-body input,.gmb .block-body select{user-select:text;-webkit-user-select:text;cursor:text;min-width:0;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:7px;padding:5px;width:85px}
.gmb .block-body select{cursor:pointer}
.gmb .block-body input[type=text]{width:140px}
.gmb .block-title{font-size:12px;font-weight:750;min-width:0;white-space:nowrap}
.gmb .block-field{display:inline-flex;align-items:center;gap:4px;font:11px/1.4 system-ui}
.gmb .block .drag-handle{touch-action:none;user-select:none;cursor:grab;border:0;font-size:18px;line-height:1;padding:3px 4px;color:inherit;background:transparent}
.gmb .block .drag-handle:active{cursor:grabbing}
.gmb .block .ctl{margin-left:auto;display:flex;gap:2px;opacity:.3;transition:opacity .15s}
.gmb .block .ctl button{font-size:12px;padding:2px 6px;background:transparent;color:inherit;border:1px solid #7288a66b}
.gmb .block:hover>.block-body .ctl,.gmb .block.selected>.block-body .ctl,.gmb .block:focus-within>.block-body .ctl{opacity:1}
@media(hover:none){.gmb .block .ctl{opacity:1}}
.gmb .block .nested{border:2px solid color-mix(in srgb,var(--k-logic-bd) 70%,transparent);border-radius:6px 6px 10px 10px;margin:8px 3px 1px 15px;padding:5px 7px;background:#ffffff1f;min-height:45px;transition:box-shadow .15s,border-color .15s}
.gmb .nest-label{font-size:10px;color:var(--muted);font-weight:650;margin-bottom:5px}
.gmb .drop-gap{display:flex;align-items:center;gap:8px;height:42px;margin:0 0 4px;padding:0 12px;overflow:hidden;white-space:nowrap;border:2px dashed var(--drop);border-radius:5px 13px 13px 5px;color:var(--kfg);font:700 12px system-ui;pointer-events:none;
  background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--drop) 26%,transparent) 0 8px,color-mix(in srgb,var(--drop) 9%,transparent) 8px 16px);background-size:22.63px 22.63px;animation:gap-open .16s ease-out,gap-run 1.1s linear infinite}
.gmb .drop-gap .gap-icon{color:var(--drop);font-size:15px}
@keyframes gap-open{from{height:0;margin-bottom:0;opacity:0;padding:0 12px}}
@keyframes gap-run{to{background-position:22.63px 0}}
.gmb .drag-ghost{position:fixed;top:0;left:0;padding:9px 18px 9px 12px;min-width:130px;z-index:999999;pointer-events:none;white-space:nowrap;background:var(--kbg);color:var(--kfg);border:2px solid var(--kbd);border-radius:5px 15px 15px 5px;font:700 13px system-ui;box-shadow:0 16px 30px #0006;transform-origin:0 0;will-change:transform;opacity:.96}
.gmb .drag-ghost.no-drop{border-color:#e5484d;opacity:.6}
.gmb .drag-ghost.will-delete{background:#e5484d;color:#fff;border-color:#b42318}
body.mdb-dragging .gmb{cursor:grabbing;user-select:none;-webkit-user-select:none}
.gmb .editor-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,16px);max-width:min(92vw,520px);padding:9px 16px;border-radius:999px;background:#17233b;color:#fff;font:600 13px system-ui;box-shadow:0 10px 30px #0005;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:1000000}
.gmb .editor-toast:empty{display:none}
.gmb .editor-toast.show{opacity:1;transform:translate(-50%,0)}
.gmb kbd{font:600 10px ui-monospace,monospace;border:1px solid var(--border);border-radius:4px;padding:0 4px;background:var(--panel)}
@media(max-width:1060px){.gmb .editor-grid{grid-template-columns:160px minmax(0,1fr)}}
@media(max-width:520px){.gmb .editor-grid{grid-template-columns:110px minmax(0,1fr)}
.gmb .toolbox-item{font-size:10px;padding:8px 4px}
.gmb .block-body input{width:65px}
.gmb .block-title{white-space:normal}}
@media(prefers-reduced-motion:reduce){.gmb *,.gmb *::before,.gmb *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media(forced-colors:active){.gmb .block.selected{outline:3px solid Highlight}
.gmb .drop-gap{border-color:Highlight}}
.gmb .vslot{display:inline-flex;align-items:center;min-height:26px;min-width:44px;border-radius:999px;padding:1px 3px;background:color-mix(in srgb,var(--panel) 70%,transparent);border:1px solid var(--border);transition:box-shadow .12s,background .12s,border-color .12s,transform .12s}
.gmb .vslot.filled{padding:0;background:transparent;border-color:transparent;min-width:0}
.gmb .vslot input{width:70px!important}
.gmb .vslot.slot-ok{border:2px dashed var(--drop);background:color-mix(in srgb,var(--drop) 18%,transparent);animation:slot-pulse 1s ease-in-out infinite}
.gmb .vslot.slot-hot{border-style:solid;background:color-mix(in srgb,var(--drop) 45%,transparent);box-shadow:0 0 0 3px var(--drop),0 0 16px var(--drop);transform:scale(1.08);animation:none}
.gmb .mdb-dragging-value .vslot:not(.slot-ok){opacity:.45}
@keyframes slot-pulse{50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--drop) 40%,transparent)}}
.gmb .vblock{display:inline-flex;align-items:center;gap:5px;padding:2px 6px 2px 3px;border-radius:999px;background:var(--kbg,var(--k-data-bg));color:var(--kfg,var(--k-data-fg));border:2px solid var(--kbd,var(--k-data-bd));font:600 11px system-ui;cursor:grab;user-select:none;-webkit-user-select:none;--kbg:var(--k-data-bg);--kfg:var(--k-data-fg);--kbd:var(--k-data-bd)}
.gmb .vblock.logic{--kbg:var(--k-logic-bg);--kfg:var(--k-logic-fg);--kbd:var(--k-logic-bd)}
.gmb .vblock.hardware{--kbg:var(--k-hardware-bg);--kfg:var(--k-hardware-fg);--kbd:var(--k-hardware-bd)}
.gmb .vblock.out-bool{border-radius:6px 999px 999px 6px;clip-path:none;border-style:solid}
.gmb .vblock .vgrip{touch-action:none;opacity:.6;font-size:13px;line-height:1}
.gmb .vblock .block-field{font-size:11px}
.gmb .vblock input,.gmb .vblock select{padding:2px 3px;font-size:11px;width:56px;border-radius:6px}
.gmb .vblock input[type=text]{width:70px}
.gmb .vblock .vx{border:0;background:transparent;color:inherit;opacity:.5;padding:0 3px;font-size:13px;cursor:pointer}
.gmb .vblock .vx:hover{opacity:1}
.gmb .vblock:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--sel) 35%,transparent)}
.gmb .block .nested.else{border-color:color-mix(in srgb,var(--drop) 70%,transparent)}
.gmb .scope.sub{border-style:dashed}
.gmb .scope.sub .scope-header{display:flex;align-items:center;gap:6px}
.gmb .sub-name{width:130px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:7px;padding:3px 6px;font:700 12px system-ui}
.gmb .sub-del{margin-left:auto;padding:2px 8px}
.gmb .scope[data-scope=game] .scope-header{color:var(--k-logic-bd)}
.gmb .scope[data-scope=render] .scope-header{color:var(--k-hardware-bd)}

/* ===== Blocks · UX průchod 2026-10-26: kompaktní bloky, modal parametrů, menu, graf. Logické vlastnosti tam, kde se text zrcadlí (modal); okno bloků a graf zůstávají LTR jako kód. ===== */
:root{--mdb-num:#4fd1c5;--mdb-bool:#ff7a90;--mdb-any:#a5b4fc;--mdb-exec:#e8f1ff}
.gmb [hidden]{display:none!important}
.gmb{--k-entity-bg:#41290f;--k-entity-fg:#ffe6c4;--k-entity-bd:#f0a04b;--k-world-bg:#0f3a42;--k-world-fg:#d3f7ff;--k-world-bd:#3bb7d0;--k-sound-bg:#451d38;--k-sound-fg:#ffd9ef;--k-sound-bd:#e86bb6;--k-state-bg:#3a3d12;--k-state-fg:#f6f6c8;--k-state-bd:#c9d24a}
.gmb .block.state,.gmb .toolbox-item.state,.gmb .drag-ghost.state,.gmb .drop-gap.state,.gmb .vblock.state,.gmb .gn.k-state{--kbg:var(--k-state-bg);--kfg:var(--k-state-fg);--kbd:var(--k-state-bd)}
.gmb .block.entity,.gmb .toolbox-item.entity,.gmb .drag-ghost.entity,.gmb .drop-gap.entity,.gmb .vblock.entity,.gmb .gn.k-entity{--kbg:var(--k-entity-bg);--kfg:var(--k-entity-fg);--kbd:var(--k-entity-bd)}
.gmb .block.world,.gmb .toolbox-item.world,.gmb .drag-ghost.world,.gmb .drop-gap.world,.gmb .vblock.world,.gmb .gn.k-world{--kbg:var(--k-world-bg);--kfg:var(--k-world-fg);--kbd:var(--k-world-bd)}
.gmb .block.sound,.gmb .toolbox-item.sound,.gmb .drag-ghost.sound,.gmb .drop-gap.sound,.gmb .vblock.sound,.gmb .gn.k-sound{--kbg:var(--k-sound-bg);--kfg:var(--k-sound-fg);--kbd:var(--k-sound-bd)}
.gmb .gn.k-data{--kbg:var(--k-data-bg);--kfg:var(--k-data-fg);--kbd:var(--k-data-bd)}
.gmb .gn.k-logic{--kbg:var(--k-logic-bg);--kfg:var(--k-logic-fg);--kbd:var(--k-logic-bd)}
.gmb .gn.k-hardware{--kbg:var(--k-hardware-bg);--kfg:var(--k-hardware-fg);--kbd:var(--k-hardware-bd)}
.gmb .mdb-workspace{position:relative}
/* kompaktní blok */
.gmb .block.compact{padding:4px 6px 4px 2px}
.gmb .block.compact>.block-body{flex-wrap:nowrap;gap:5px;min-height:28px}
.gmb .block-icon{font-size:15px;line-height:1}
.gmb .block.compact .block-title{font-size:12px;font-weight:700;flex:0 0 auto}
.gmb .block-sum{flex:1 1 0;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:12px/1.3 ui-monospace,Menlo,Consolas,monospace;color:var(--kfg);opacity:.85;background:#0003;border:1px solid transparent;border-radius:6px;padding:3px 7px;cursor:pointer}
.gmb .block-sum:hover,.gmb .block-sum:focus-visible{opacity:1;border-color:var(--kbd)}
.gmb .block-sum:empty{display:none}
.gmb .block.compact .ctl{opacity:.3}
.gmb .block-note{margin:2px 6px 0 26px;font-size:11px;font-style:italic;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}
.gmb .fold-stub{display:block;margin:4px 4px 0 18px;padding:3px 9px;border:1px dashed var(--kbd);border-radius:6px;background:#0002;color:var(--kfg);font-size:11px;cursor:pointer;text-align:left}
.gmb .fold-stub:hover{background:#0004}
.gmb .block.folded>.block-body{border-bottom-left-radius:5px}
.gmb .drop-row{display:flex;gap:8px;flex-wrap:wrap;margin:5px 0 2px 24px;padding:4px 8px;border:1px dashed var(--drop);border-radius:8px;background:color-mix(in srgb,var(--drop) 10%,transparent)}
.gmb .drop-row .vslot:not(.slot-ok){display:none}
.gmb .drop-row .block-field:not(:has(.slot-ok)){display:none}
/* přehled programu */
.gmb .mdb-nav{position:sticky;top:-12px;z-index:4;display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:-12px -12px 12px;padding:8px 12px;background:color-mix(in srgb,var(--bg) 93%,transparent);backdrop-filter:blur(4px);border-bottom:1px solid var(--border)}
.gmb .nav-chip{padding:3px 9px;border-radius:999px;border:1px solid var(--border);background:var(--panel);font-size:11.5px}
.gmb .nav-chip b{color:var(--accent);margin-left:3px;font-family:ui-monospace,monospace}
.gmb .nav-chip:hover{border-color:var(--accent)}
.gmb .nav-chip.loose{border-style:dashed;color:var(--drop)}
.gmb .nav-note{font-size:11px;color:var(--muted)}
.gmb .nav-sp{flex:1 1 8px}
.gmb .mdb-nav>button:not(.nav-chip){padding:2px 9px;border-radius:7px;border:1px solid var(--border);background:var(--panel);font-size:14px}
.gmb .scope.flash{animation:scope-flash .9s ease-out}
@keyframes scope-flash{from{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:0 0 0 0 transparent}}
.gmb .scope.folded>.block-stack{display:none}
.gmb .scope-header{display:flex;align-items:center;gap:6px}
.gmb .scope-tg{padding:0 6px;border:1px solid var(--border);background:transparent;border-radius:6px;font-size:13px;line-height:1.4}
.gmb .scope-count{margin-left:auto;font:600 11px ui-monospace,monospace;color:var(--muted)}
.gmb .scope.loose{border-style:dotted;border-color:var(--drop)}
/* nabídka bloků: hledání */
.gmb .toolbox-search{width:100%;margin:0 0 8px;padding:6px 9px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);font:12px system-ui}
.gmb .toolbox-none,.gmb .mdb-none{font-size:12px;color:var(--muted);padding:8px}
.gmb .toolbox-item.is-value{border-radius:999px;border-left-width:1px;padding:7px 10px;border-color:var(--kbd)}
.gmb .toolbox-item.is-value::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:var(--mdb-any)}
.gmb .toolbox-item.out-num::before{background:var(--mdb-num)}
.gmb .toolbox-item.out-bool::before{background:var(--mdb-bool)}
/* menu a paleta */
.gmb .mdb-menu{position:fixed;z-index:1000001;min-width:220px;max-width:min(92vw,330px);max-height:min(72vh,480px);overflow:auto;background:#0b1320;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:0 18px 44px #000b;font:13px system-ui}
.gmb .mdb-menu-title{font:700 11px system-ui;color:var(--muted);padding:5px 8px 6px;text-transform:none}
.gmb .mdb-mi{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit}
.gmb .mdb-mi:hover,.gmb .mdb-mi:focus-visible{background:color-mix(in srgb,var(--accent) 22%,transparent);outline:none}
.gmb .mdb-mi-i{width:20px;text-align:center}
.gmb .mdb-mi-tag{margin-left:auto;font-size:10px;padding:1px 7px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}
.gmb .mdb-mi.extra{color:var(--accent)}
.gmb .mdb-sep{height:1px;background:var(--border);margin:5px 4px}
.gmb .mdb-grp{font:700 10px system-ui;color:var(--muted);padding:7px 8px 3px;letter-spacing:.03em}
.gmb .mdb-pal-in{width:100%;margin:2px 0 6px;padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);font:13px system-ui}
.gmb .mdb-pal-list{max-height:min(52vh,360px);overflow:auto}
.gmb .mdb-dialog{position:fixed;inset:0;z-index:1000002;display:grid;place-items:center;background:rgba(2,5,10,.74)}
.gmb .mdb-dialog-card{position:relative;max-width:min(560px,94vw);max-height:90vh;overflow:auto;background:#0b1320;border:1px solid var(--border);border-radius:14px;padding:16px 18px}
.gmb .mdb-dialog-x{position:absolute;top:8px;right:10px;border:0;background:transparent;font-size:16px}
/* modal s parametry (mimo .gmb: dialog hostitele je v body) */
.mdp{display:flex;flex-direction:column;gap:10px;min-inline-size:min(520px,84vw);color:#e6f1ff;font:14px/1.45 system-ui}
.mdp-head{display:flex;align-items:center;gap:9px;font-size:17px;padding:6px 10px;border-radius:10px;background:#16233b;border-inline-start:5px solid #6f9bff}
.mdp-head.logic{border-inline-start-color:#a98be0}.mdp-head.hardware{border-inline-start-color:#3fc08a}.mdp-head.entity{border-inline-start-color:#f0a04b}.mdp-head.world{border-inline-start-color:#3bb7d0}.mdp-head.state{border-inline-start-color:#c9d24a}.mdp-head.sound{border-inline-start-color:#e86bb6}
.mdp-icon{font-size:22px}
.mdp-tag{margin-inline-start:auto;font-size:11px;padding:1px 9px;border-radius:999px;border:1px solid #2c3d5e;color:#8ea7c4}
.mdp-help{margin:0;color:#b9cde6;font-size:13.5px}
.mdp-empty{margin:0;color:#8ea7c4}
.mdp-row{display:grid;grid-template-columns:minmax(80px,150px) minmax(0,1fr);gap:6px 12px;align-items:start}
.mdp-row>label{padding-block-start:6px;color:#b9cde6;font-size:13px;overflow-wrap:anywhere}
.mdp input,.mdp select{min-inline-size:0;inline-size:100%;box-sizing:border-box;padding:6px 8px;border-radius:8px;border:1px solid #2c3d5e;background:#111c33;color:#e6f1ff;font:inherit}
.mdp input[type=number]{max-inline-size:160px}
.mdp-slot,.mdp-ctl{display:flex;flex-direction:column;gap:6px;min-inline-size:0}
.mdp-slot>input[type=number]{max-inline-size:160px}
.mdp-val{border:1px solid #2c3d5e;border-inline-start:4px solid #6f9bff;border-radius:10px;padding:8px 10px;background:#0e1830;display:flex;flex-direction:column;gap:8px}
.mdp-val.logic{border-inline-start-color:#a98be0}.mdp-val.hardware{border-inline-start-color:#3fc08a}.mdp-val.entity{border-inline-start-color:#f0a04b}.mdp-val.state{border-inline-start-color:#c9d24a}.mdp-val.world{border-inline-start-color:#3bb7d0}
.mdp-val-h{display:flex;align-items:center;gap:8px}
.mdp-x{margin-inline-start:auto;border:1px solid #2c3d5e;background:transparent;color:inherit;border-radius:7px;padding:1px 8px;font-size:15px;cursor:pointer}
.mdp-pin{display:inline-block;inline-size:10px;block-size:10px;border-radius:50%;margin-inline-end:6px;background:var(--mdb-any);flex:0 0 auto}
.mdp-pin.num{background:var(--mdb-num)}.mdp-pin.bool{background:var(--mdb-bool)}
.mdp-foot{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-block-start:4px}
.mdp-foot .btn{margin:0}
/* ===== pohled Graf ===== */
.gmb .mdb-workspace.is-graph{overflow:hidden;padding:0;height:min(78vh,820px);min-height:520px;max-height:none;background:#070d1b}
.gmb .mdg-host{position:absolute;inset:0}
.gmb .mdg-vp{position:absolute;inset:0;overflow:hidden;touch-action:none;outline:none;background-image:radial-gradient(circle,#2a3b5c 1px,transparent 1.3px);background-size:var(--gs,24px) var(--gs,24px);background-position:var(--gx,0) var(--gy,0);cursor:default;user-select:none;-webkit-user-select:none}
.gmb .mdg-vp.grab,.gmb .mdg-vp.panning{cursor:grabbing}
.gmb .mdg-vp:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.gmb .mdg-world{position:absolute;left:0;top:0;transform-origin:0 0}
.gmb .mdg-wires{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}
.gmb .mdg-wires path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.gmb .mdg-wires .w{stroke-width:2.4;opacity:.78}
.gmb .mdg-wires .w.exec{stroke:var(--mdb-exec);stroke-width:2.8}
.gmb .mdg-wires .w.data.num{stroke:var(--mdb-num)}.gmb .mdg-wires .w.data.bool{stroke:var(--mdb-bool)}.gmb .mdg-wires .w.data.any{stroke:var(--mdb-any)}
.gmb .mdg-wires .w.hl{opacity:1;stroke-width:3.6}
.gmb .mdg-wires .w.sel{stroke:#ffc857;opacity:1;stroke-width:4.2}
.gmb .mdg-wires .w.rubber{opacity:1;stroke-dasharray:7 5;stroke-width:3}
.gmb .mdg-wires .wh{stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}
.gmb .vp.wiring .mdg-wires .wh,.gmb .mdg-vp.wiring .wh{pointer-events:none}
.gmb .mdg-nodes{position:absolute;left:0;top:0}
.gmb .gn{position:absolute;box-sizing:border-box;border-radius:10px 14px 14px 10px;background:linear-gradient(#0f1b33,#0a1426);border:1px solid color-mix(in srgb,var(--kbd,#6f9bff) 55%,transparent);color:var(--text);font:12px/1.2 system-ui;box-shadow:0 6px 16px #0007;--kbg:var(--k-data-bg);--kbd:var(--k-data-bd);--kfg:var(--k-data-fg)}
.gmb .gn.val{border-radius:999px 14px 14px 999px;border-radius:16px}
.gmb .gn.loose{border-style:dashed}
.gmb .gn.sel{box-shadow:0 0 0 2px var(--sel),0 0 0 6px color-mix(in srgb,var(--sel) 24%,transparent),0 8px 22px #0008;z-index:2}
.gmb .gn-head{display:flex;align-items:center;gap:6px;height:30px;padding:0 6px 0 10px;border-radius:9px 13px 0 0;background:linear-gradient(90deg,var(--kbg),color-mix(in srgb,var(--kbg) 50%,#0a1426));border-bottom:1px solid color-mix(in srgb,var(--kbd) 70%,transparent);color:var(--kfg);cursor:grab;overflow:hidden}
.gmb .gn.val .gn-head{border-radius:15px 15px 0 0}
.gmb .gn.out-num .gn-head{box-shadow:inset 0 -2px 0 var(--mdb-num)}.gmb .gn.out-bool .gn-head{box-shadow:inset 0 -2px 0 var(--mdb-bool)}
.gmb .gn-icon{font-size:14px}
.gmb .gn-title{font-weight:750;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}
.gmb .gn-btn{border:0;background:transparent;color:inherit;opacity:.55;font-size:13px;padding:2px 4px;border-radius:5px;line-height:1}
.gmb .gn-btn:hover{opacity:1;background:#0004}
.gmb .gn.scope-root{background:linear-gradient(#2a2410,#1a160a);border-color:#ffc857;--kbg:#4a3a10;--kfg:#ffecb8;--kbd:#ffc857}
.gmb .gn.scope-root .gn-head{cursor:default;border-bottom:0;border-radius:9px 13px 13px 9px;height:100%}
.gmb .gn-badge{font:700 10px ui-monospace,monospace;padding:1px 7px;border-radius:999px;background:#0005}
.gmb .gn-row{position:absolute;left:0;right:0;height:22px;display:flex;align-items:center;gap:6px;padding:0 14px;box-sizing:border-box}
.gmb .gn-row .gn-lab{flex:1 1 auto;min-width:0;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gmb .gn-row.port .gn-lab{text-align:right;color:var(--k-logic-bd)}
.gmb .gn-sum{color:var(--kfg);font:11.5px ui-monospace,Menlo,Consolas,monospace;white-space:nowrap}
.gmb .gn-sum>span{overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%}
.gmb .gn-lit,.gmb .gn-sel{box-sizing:border-box;border:1px solid var(--border);background:#0b1220;color:var(--text);border-radius:6px;padding:2px 5px;font:11.5px ui-monospace,monospace;min-width:0}
.gmb .gn-lit{width:72px}.gmb .gn-sel{width:100%}
.gmb .gn-link{font-size:11px;color:var(--text);opacity:.85;white-space:nowrap}
.gmb .gn-note{color:var(--muted);font-style:italic;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gmb .gn-fold{border:1px dashed var(--kbd);background:#0003;color:var(--kfg);text-align:left;font-size:11px;border-radius:5px;margin:0 10px;left:0;right:0}
.gmb .pin{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;box-sizing:border-box;z-index:3;touch-action:none}
.gmb .pin::after{content:"";position:absolute;inset:-7px}
.gmb .pin.data{border-radius:50%;border:2px solid var(--mdb-any);background:#0a1426;inset-block-start:auto}
.gmb .pin.data.num{border-color:var(--mdb-num)}.gmb .pin.data.bool{border-color:var(--mdb-bool)}
.gmb .pin.data.on,.gmb .pin.data.out{background:currentColor}
.gmb .pin.data.num.on,.gmb .pin.data.num.out{background:var(--mdb-num)}.gmb .pin.data.bool.on,.gmb .pin.data.bool.out{background:var(--mdb-bool)}.gmb .pin.data.any.on,.gmb .pin.data.any.out{background:var(--mdb-any)}
.gmb .pin.exec{background:var(--mdb-exec);opacity:.45;clip-path:polygon(12% 12%,88% 12%,50% 90%)}
.gmb .pin.exec.on{opacity:1}
.gmb .pin.exec[data-k=port]{clip-path:polygon(12% 12%,90% 50%,12% 88%)}
.gmb .pin[data-k=in]{left:20px;top:0}.gmb .pin[data-k=next],.gmb .pin[data-k=start]{left:20px;top:100%}
.gmb .pin[data-k=out]{left:100%;top:15px}.gmb .pin[data-k=slot]{left:0}.gmb .pin[data-k=port]{left:100%}
.gmb .pin:hover{transform:scale(1.25)}
.gmb .pin.ok{filter:drop-shadow(0 0 5px var(--drop));transform:scale(1.35);opacity:1}
.gmb .pin.dim{opacity:.18}
.gmb .pin.hot{transform:scale(1.8);filter:drop-shadow(0 0 9px var(--drop))}
.gmb .mdg-vp.lod .gn-row,.gmb .mdg-vp.lod .pin,.gmb .mdg-vp.lod .gn-btn{display:none}
.gmb .mdg-vp.lod .gn-title{font-size:14px}
.gmb .mdg-hud{position:absolute;top:8px;right:8px;display:flex;gap:3px;align-items:center;background:#0b1320d9;border:1px solid var(--border);border-radius:999px;padding:3px 7px;z-index:6}
.gmb .mdg-hud button{border:0;background:transparent;color:var(--text);padding:2px 7px;border-radius:6px;font-size:14px;line-height:1.2}
.gmb .mdg-hud button:hover{background:#ffffff1a}
.gmb .mdg-zoom{font:600 11px ui-monospace,monospace;color:var(--muted);min-width:4ch;text-align:center}
.gmb .mdg-hint{position:absolute;left:10px;bottom:8px;max-width:min(60%,520px);font-size:11px;color:var(--muted);background:#0b1320d9;border:1px solid var(--border);border-radius:8px;padding:5px 9px;pointer-events:none;animation:hint-off .6s 9s forwards}
@keyframes hint-off{to{opacity:0;visibility:hidden}}
.gmb .mdg-mini{position:absolute;right:10px;bottom:10px;width:190px;height:118px;border:1px solid var(--border);border-radius:8px;z-index:6;cursor:pointer;touch-action:none}
.gmb .mdg-marquee{position:absolute;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);pointer-events:none;z-index:5}
@media(prefers-reduced-motion:reduce){.gmb .mdg-hint{animation:none}.gmb .scope.flash{animation:none}}
@media(forced-colors:active){.gmb .gn.sel{outline:3px solid Highlight}.gmb .pin{forced-color-adjust:none}}

.mdp-thumb{display:inline-flex;align-items:center;justify-content:center;min-inline-size:48px;min-block-size:48px;padding:4px;border:1px solid #2c3d5e;border-radius:8px;background:repeating-conic-gradient(#0e1830 0 25%,#13203a 0 50%) 0 0/12px 12px}
.mdp-thumb-c{image-rendering:pixelated;max-inline-size:96px;max-block-size:96px;inline-size:auto;block-size:auto;min-inline-size:32px}
.mdp-ctl{flex-direction:row;align-items:center;flex-wrap:wrap}
.mdp-ctl>input,.mdp-ctl>select{flex:1 1 160px}
.gmb .mdb-toolbox{display:block}

/* zámek (jen ke čtení) */
.gmb .block.locked{box-shadow:inset 3px 0 0 rgba(255,255,255,.35)}
.gmb .lock-badge,.gmb .gn-lock{margin-inline-start:4px;font-size:12px;opacity:.85;flex:none}
.gmb .gn.locked .gn-head{box-shadow:inset 0 -2px 0 rgba(255,255,255,.28)}
.mdp-lock{margin:6px 0;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.07);font-size:.9em}

/* Velké bloky (šablony): zlatý proužek a tečkovaný okraj, ať je na první pohled vidět, že se rozkládají na obyčejné bloky; text zůstává čitelný (kontrast před efektem) */
.gmb{--k-big-bg:#3d3216;--k-big-fg:#fff1c9;--k-big-bd:#f2b83a}
.gmb .block.big,.gmb .toolbox-item.big,.gmb .drag-ghost.big,.gmb .drop-gap.big,.gmb .gn.k-big,.gmb .mdb-mi.big{--kbg:var(--k-big-bg);--kfg:var(--k-big-fg);--kbd:var(--k-big-bd)}
.gmb .block.big{border-style:dotted;border-left-style:solid}
.gmb .big-badge,.gmb .gn-big{margin-inline-start:4px;font-size:12px;flex:none;color:var(--k-big-bd);font-weight:700}
.gmb .big-preview{margin:6px 4px 4px 22px;padding:6px 8px;border:1px dashed color-mix(in srgb,var(--k-big-bd) 60%,transparent);border-radius:8px;background:#0006;color:var(--text);font-size:12px;cursor:default}
.gmb .big-preview-h{font-weight:700;color:var(--k-big-bd);margin-bottom:4px}
.gmb .big-preview-l{list-style:none;margin:0;padding:0}
.gmb .pv-line{padding-block:1px;line-height:1.45;overflow-wrap:anywhere}
.gmb .pv-icon{margin-inline-end:4px}
.gmb .pv-sum{color:var(--muted)}
.gmb .pv-hook{font-style:italic;color:var(--k-big-bd)}
.gmb .mdp .big-preview{margin:10px 0 4px}
.gmb .sub-sig{display:inline-flex;align-items:center;gap:4px;font-weight:500;color:var(--muted)}
.gmb .sub-sig input{width:9ch;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:7px;padding:2px 5px;font:600 12px ui-monospace,monospace}
.gmb .mdp-sub .sub-sig{display:flex;margin-top:8px}
.gmb .mdp-sub .sub-sig input{width:100%}
.gmb .sub-sig-sum{font:600 12px ui-monospace,monospace;color:var(--k-big-bd)}
.gmb .scope-header .ctl-ic,.gmb .scope-header>button:not(.scope-tg):not(.sub-del){font-size:12px;padding:2px 6px;background:transparent;color:inherit;border:1px solid #7288a66b;border-radius:6px}
.gmb .vblock .vsym{font:700 13px system-ui;padding:0 3px;opacity:.9}

/* Konstruktor hry a události (game-blueprint.js): vlastní barvy, ať je na první pohled vidět, co je nastavení a co děj */
.gmb{--k-ctor-bg:#1d2f55;--k-ctor-fg:#dbe8ff;--k-ctor-bd:#6c9bff;--k-event-bg:#4a1f26;--k-event-fg:#ffdfe3;--k-event-bd:#ff6b7d}
.gmb .block.ctor,.gmb .toolbox-item.ctor,.gmb .drag-ghost.ctor,.gmb .drop-gap.ctor,.gmb .vblock.ctor,.gmb .gn.k-ctor,.gmb .mdb-mi.ctor{--kbg:var(--k-ctor-bg);--kfg:var(--k-ctor-fg);--kbd:var(--k-ctor-bd)}
.gmb .block.event,.gmb .toolbox-item.event,.gmb .drag-ghost.event,.gmb .drop-gap.event,.gmb .vblock.event,.gmb .gn.k-event,.gmb .mdb-mi.event{--kbg:var(--k-event-bg);--kfg:var(--k-event-fg);--kbd:var(--k-event-bd)}
