/* Layout and controls owned by this editor adapter. */
.logic-main{display:flex;flex-direction:column;min-height:0;gap:12px}
.logic-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.script-panel{background:var(--editor);background-image:radial-gradient(#aec4bb 1px,transparent 1px);background-size:16px 16px;border:1px solid #d5dedb;border-radius:14px;min-height:0;overflow:hidden;flex:1;display:flex;flex-direction:column;isolation:isolate}
.editor-viewport{overflow:auto;min-height:0;flex:1}.editor-content{transform-origin:top left;zoom:var(--program-zoom,1)}
.library-block{width:100%;display:flex;justify-content:space-between;text-align:left;cursor:grab}
.event-head{display:flex;align-items:center;font-weight:800;border-radius:14px 14px 5px 5px}.end-cap{border-radius:5px 5px 14px 14px;font-weight:800}
.event-head::after,.script-block::after,.control-block::after{content:'';position:absolute;pointer-events:none}
.end-cap::before,.script-block::before,.control-block::before{content:'';position:absolute;pointer-events:none;border-radius:0 0 6px 6px}
.script-block,.control-block{position:relative;cursor:grab;outline:2px solid transparent;outline-offset:-2px}.script-block.selected,.control-block.selected>.control-head{outline:2px solid var(--sun);outline-offset:-2px}
.block-tools{display:flex;gap:3px;flex-wrap:nowrap;align-self:flex-start}.block-tools .icon{width:15px;height:15px}.script-block .block-tools,.control-head .block-tools{position:absolute}
.block-fields{display:flex;align-items:center;flex-wrap:wrap;font-size:12px}.block-fields label{display:flex;align-items:center;flex-wrap:wrap}.block-fields input,.block-fields select{width:auto;padding:4px 6px}.block-icon-value{display:inline-flex;align-items:center;gap:5px}.block-icon-value svg{width:18px;height:18px}
.control-head{position:relative;border-radius:0 7px 7px 0;font-size:13px;font-weight:750}.control-head>strong{display:block}
.drop-slot.over::before{content:'';position:absolute;left:0;right:0;top:10px;height:4px;background:#ed8a20;border-radius:4px}
.empty-blocks{display:flex;align-items:center;justify-content:center;width:100%;font-weight:400}.empty-blocks.over{background:#f2b95635;border-color:#ed8a20}
.editor-zoom{display:flex;align-items:center;gap:8px;padding:7px 12px;background:#eef2ef;border-top:1px solid #d5dedb;font-size:12px;flex-shrink:0}.editor-zoom button{min-height:29px;padding:4px 9px;font-size:12px;background:white}.run-button{width:100%;min-height:52px;font-size:16px}.executing{outline:4px solid #edb234!important;outline-offset:2px!important;filter:brightness(1.1)}
/* App adapter for the CURRENT Roboterwerkstatt geometry (programming-kit.css).
   Every connection has 2px clearance; branch mouths use 12px on three sides.
   Endpoint classes are explicit: drop slots must not affect first/last detection. */
:root{--program-head-height:52px;--program-inset:12px;--program-foot-height:22px;--program-gap:2px;--program-action-color:#247f91;--program-condition-color:#986a12;--program-loop-color:#996311}
.editor-body.logic-body{grid-template-columns:296px minmax(0,1fr)}
.palette.logic-palette{display:flex;flex-direction:column;overflow:hidden;padding:20px;gap:12px;background:#f7faf7}
.logic-palette .panel-heading{margin:0;font-size:15px}.logic-palette>input{flex:none;min-width:0;width:100%;background:white}
.block-categories{display:block;flex:none}
.library-list{flex:1;min-height:0;overflow-y:auto;padding:0 5px 10px 2px;scrollbar-gutter:stable}
.logic-palette .category{margin:14px 0 10px;font-size:12px;color:var(--block);font-weight:800}.logic-palette .category:first-child{margin-top:2px}
.library-block{position:relative;border:0;border-bottom:3px solid #0002;border-radius:8px;padding:11px 12px;margin:0 0 10px;min-height:46px;font-size:13px;line-height:1.35;background:var(--block);color:white}
.library-block::after{content:'+';position:static;background:none;flex:none;width:auto;height:auto;margin-left:10px}.library-block:hover{filter:brightness(1.08)}
.library-footer{flex:none;border-top:1px solid var(--line);padding-top:12px}.library-footer .wide{width:100%}.library-footer .logic-note{margin:10px 0 0;font-size:11px}
.block-action{--block:var(--program-action-color)}.block-condition{--block:var(--program-condition-color)}.block-loop{--block:var(--program-loop-color)}.block-variable{--block:#6853a2}.block-math{--block:#28754f}.block-text{--block:#89612a}.block-lists{--block:#986043}.block-speech,.block-device{--block:#3a6d9a}
/* Category list uses block-list only on actual statements, not sequence containers. */
.script-block.block-lists{--block:#986043}
.logic-main{padding:16px 20px 12px;min-width:0}.logic-top{min-height:40px}.logic-top-hint{font-size:12px;color:var(--muted);flex:1;min-width:180px}.logic-top button{white-space:nowrap}
.editor-viewport{padding:24px;scrollbar-gutter:stable}.editor-content{max-width:760px}.event-stack{margin:0 0 30px}
.event-head,.end-cap{background:#946414;color:white;border:0;position:relative;margin:0;min-height:var(--program-head-height)}
.event-head{padding:12px 14px;gap:10px;flex-wrap:nowrap;cursor:pointer}.event-head>label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:1;min-width:0;font-size:13px}.event-head select{background:#fffaf0;border:0;color:#193840;min-width:120px;width:auto;max-width:100%;min-height:32px;padding:5px 28px 5px 8px;font-size:13px}.event-head>.icon{flex:none}.event-head .block-tools{align-self:center}
.end-cap{padding:13px 16px;font-size:14px;cursor:pointer}
.event-head::after,.script-block::after{left:26px;bottom:-10px;width:27px;height:10px;border-radius:0 0 4px 4px;background:var(--block,#946414);z-index:3}
.end-cap::before,.script-block::before{left:24px;top:0;width:31px;height:10px;border-radius:0 0 6px 6px;background:var(--editor)}
.block-list{min-height:0;position:relative}
.script-block{display:block;min-height:52px;margin:0;padding:12px;border:0;border-radius:7px;background:var(--block);color:white}
.script-block>.block-head{display:flex;padding:0 122px 0 0;min-height:26px;gap:8px}.script-block>.block-head>strong{font-size:13px;line-height:1.4}
.script-block>.block-fields{padding:6px 0 0;margin:0}.script-block>.block-head>.block-tools{top:12px;right:12px}
.block-fields{gap:8px 14px}.block-fields label{font-size:12px;gap:6px;max-width:100%}.block-fields .value-field{padding:3px 0;gap:5px}
.block-fields input,.block-fields select{height:30px;min-height:30px;max-width:220px;min-width:60px;font-size:12px;border:0;border-radius:6px;background:#fff;color:#193840}.block-fields input{width:150px}.block-fields button{color:var(--ink);background:#fff;min-height:30px;font-size:12px;padding:4px 8px}
.control-block,.control-block.repeat{--control:var(--block,var(--program-condition-color));margin:0;border-left:14px solid var(--control);border-bottom:var(--program-foot-height) solid var(--control);border-radius:10px 7px 7px 10px;background:transparent}
.control-block::before{top:0;left:10px;width:31px;height:10px;background:var(--editor);z-index:4}.control-block::after{left:12px;bottom:-32px;width:27px;height:10px;border-radius:0 0 4px 4px;background:var(--control);z-index:3}
.control-head{min-height:var(--program-head-height);padding:12px 12px 12px 10px;background:var(--control);color:white}.control-head>strong{line-height:26px;min-height:26px;padding-right:122px}.control-head .block-tools{top:12px;right:12px}.control-head .block-fields{padding-top:6px}
.control-block>.block-list{margin:var(--program-inset) 0 var(--program-inset) var(--program-inset);min-height:48px}
.control-block>.block-list:has(>[data-block]){min-height:0}
.control-block>.block-list>.branch-first::before,.control-block>.block-list>.branch-last::after{display:none}
.control-block>.block-list>.drop-slot:first-child,.control-block>.block-list>.drop-slot:last-child{height:0;min-height:0}
.control-else{display:block;width:100%;text-align:left;min-height:40px;padding:10px 12px;border:0;border-radius:0 7px 7px 0;background:var(--control);color:white;font-size:13px;box-shadow:none}
.drop-slot{height:var(--program-gap);min-height:var(--program-gap);padding:0;margin:0;position:relative;transition:none}
.drop-slot.over,.control-block>.block-list>.drop-slot.over{height:24px;min-height:24px;background:#f2b95635}.drop-slot.over::before{z-index:8}
.empty-blocks{min-height:80px;margin:12px 0;padding:16px;border:2px dashed #a4bdb7;border-radius:6px;background:transparent;font-size:14px;color:#547278}.control-block>.block-list>.empty-blocks{min-height:48px;margin:0;padding:10px}
.empty-blocks.chosen{border-color:#c28b27;background:#f2b95615}.block-list.chosen>.empty-blocks{border-color:#c28b27}
[data-block].drop-before{box-shadow:0 -4px #ed8a20!important}[data-block].drop-after{box-shadow:0 4px #ed8a20!important}
.editor-content .block-tools button{height:26px;min-height:26px;min-width:26px;width:26px;padding:0;background:#ffffff24;color:white;border:0;box-shadow:none;border-radius:4px}.editor-content .block-tools button:hover:not(:disabled){background:#ffffff40}.editor-content .block-tools button:disabled{opacity:.35}
.logic-empty{padding:38px 28px;max-width:580px;background:#f9fbf8;border:2px dashed #a4bdb7;border-radius:12px}.logic-empty>.icon{width:36px;height:36px;margin-bottom:14px}.logic-empty h3{font-size:21px;line-height:1.3}.logic-empty p{font-size:14px;line-height:1.6;margin:14px 0 22px}
@media(max-width:1190px){.editor-body.logic-body{grid-template-columns:264px minmax(0,1fr)}.palette.logic-palette{padding:16px}.logic-main{padding:12px}.editor-viewport{padding:16px}}
@media(max-width:960px){.editor-body.logic-body{grid-template-columns:230px minmax(0,1fr)}.palette.logic-palette{padding:14px}.logic-top-hint{display:none}.editor-viewport{padding:14px}.block-fields input,.block-fields select{max-width:185px}}

.block-categories select{width:100%;min-height:35px;background:#e8f2ed;border:1px solid #bed5d0;font-size:13px;font-weight:700}.logic-palette .library-list{min-height:100px}

.block-warning{font:500 12px/1.45 system-ui;color:#70212b;background:#fff3ec;border:1px solid #e7b6ae;border-radius:6px;padding:8px 10px;margin:8px 14px 12px;max-width:430px;white-space:normal}.has-error{outline:2px solid #b52b35;outline-offset:1px}.has-error:focus-visible{outline:3px solid var(--ink);outline-offset:4px}

.script-block.has-error,.control-block.has-error{outline:2px solid #b52b35;outline-offset:2px}.script-block:focus-visible,.control-block:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
