:root{--grid-size:40px;--color-bg:#fff;--color-fg:#000;--color-border:#000;--color-invert-bg:#000;--color-invert-fg:#fff;--color-shadow:#000;--color-dot:#000;--color-bar-bg:#000;--color-bar-fg:#fff;--color-panel-header-bg:#ddd;--color-panel-header-fg:#000;--color-panel-header-border:#999;--icon-filter:none;--icon-filter-invert:invert(1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--color-fg);background-color:var(--color-bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-family:Helvetica Neue,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#0b0b0b;--color-fg:#f2f2f2;--color-border:#d0d0d0;--color-invert-bg:#e6e6e6;--color-invert-fg:#0b0b0b;--color-shadow:#7a7a7a;--color-dot:#2f2f2f;--color-bar-bg:#242424;--color-bar-fg:#f2f2f2;--color-panel-header-bg:#242424;--color-panel-header-fg:#f2f2f2;--color-panel-header-border:#3a3a3a;--icon-filter:invert(1);--icon-filter-invert:none}}*{box-sizing:border-box}body{min-width:calc(var(--grid-size)*8);min-height:100vh;color:inherit;background-color:var(--color-bg);margin:0}body.resizing-active,body.resizing-active *{cursor:se-resize!important}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font:inherit;cursor:pointer;border-radius:0;margin:.3em;padding:.4em .8em}button:hover{background:var(--color-invert-bg);color:var(--color-invert-fg)}button:focus-visible{outline:2px solid var(--color-border);outline-offset:2px}input,textarea{border:1px solid var(--color-border);font:inherit;background:var(--color-bg);color:var(--color-fg);border-radius:0;padding:.5em}input[type=color]{background:0 0;height:2.4rem;padding:.2em}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none}select{border:1px solid var(--color-border);font:inherit;background:var(--color-bg);color:var(--color-fg);border-radius:0;padding:.4em .5em}#root{text-align:center;min-height:100vh;margin:0;padding:0}header *{box-sizing:border-box}.app-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);z-index:100;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding:.5rem 1rem;display:flex;position:sticky;top:0}h1{margin:0;font-size:2.4rem;line-height:1.2}.model-picker label{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.6rem;font-size:.75rem;display:flex}.model-picker select{min-width:220px}.canvas{background-color:var(--color-bg);background-image:radial-gradient(circle,var(--color-dot)1px,transparent 1px);background-size:var(--grid-size)var(--grid-size);background-position:0 0;min-height:calc(100vh - 60px);position:relative}.card{border:1px solid var(--color-border);background:var(--color-bg);flex-direction:column;display:flex;position:absolute;overflow:hidden}.card-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.card-resizing{-webkit-user-select:none;user-select:none;cursor:se-resize!important}.card-resizing *,.card-resizing .card-titlebar,.card-resizing .card-content{cursor:se-resize!important}.card-content{flex:1;padding:1em;overflow:auto}.card-titlebar{background:var(--color-bar-bg);color:var(--color-bar-fg);border-bottom:1px solid var(--color-border);cursor:grab;flex-shrink:0;justify-content:space-between;align-items:center;padding:.35rem .75rem;font-size:.95rem;display:flex}.card-title{flex:1;align-items:center;display:flex}.card-title-input{border:1px solid var(--color-bar-fg);background:var(--color-bar-bg);width:100%;color:var(--color-bar-fg);font:inherit;padding:.2rem .4rem}.card-title-input::placeholder{color:var(--color-bar-fg);opacity:.6}.card-dragging .card-titlebar{cursor:grabbing}.card-titlebar h2{text-align:left;letter-spacing:.04em;margin:0;font-size:.9rem}.card-type{font-weight:400}.card-status{margin-left:.5rem;font-weight:400}.card .intent{width:100%;display:block}.intent-row{align-items:stretch;gap:.5rem;display:flex}.intent-row .intent{flex:auto}.card .card-close{color:var(--color-bar-fg);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:1.1rem;height:1.1rem;margin:0;padding:0;font-size:1rem;display:inline-flex}.card .card-close:hover{color:var(--color-bar-fg);background:0 0}.card-resize-handle{cursor:se-resize;background:linear-gradient(135deg,transparent 50%,var(--color-fg)50%);width:16px;height:16px;position:absolute;bottom:0;right:0}.card-resize-handle:hover{background:linear-gradient(135deg,transparent 50%,var(--color-fg)50%)}.input-stack{text-align:left;margin-top:.75em}.input-body{margin-top:.5em}.input-body input,.input-body textarea{width:100%}.debug-button{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);cursor:pointer;margin:0;padding:.2rem .5rem;font-size:.85rem}.debug-button:focus,.debug-button:focus-visible,.debug-button:active{background:var(--color-bg);color:var(--color-fg);outline:none}.custom-input{flex-direction:column;gap:1rem;display:flex}.custom-toolbar{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.custom-docs{border:1px solid var(--color-border);background:var(--color-bg);padding:.75rem}.custom-docs h3{letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;font-size:.85rem}.custom-docs ul{margin:0 0 .75rem 1rem;padding:0;font-size:.9rem}.custom-docs li{margin-bottom:.4rem}.custom-sample p{margin:0 0 .4rem;font-size:.85rem}.custom-sample pre{border:1px solid var(--color-border);background:var(--color-bg);white-space:pre-wrap;margin:0;padding:.6rem;font-size:.8rem}.custom-fields label{letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;display:block}.custom-fields textarea{margin-top:.4rem;margin-bottom:.8rem;font-family:SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.custom-error{border:1px solid var(--color-border);margin:0 0 .6rem;padding:.4rem .6rem;font-size:.85rem}.custom-preview,.custom-render{border:1px solid var(--color-border);margin-bottom:.8rem;padding:.6rem}.custom-preview span,.custom-render span{letter-spacing:.08em;text-transform:uppercase;margin-bottom:.4rem;font-size:.7rem;display:block}.custom-preview pre{white-space:pre-wrap;margin:0;font-size:.85rem}.custom-debug-actions{text-align:left;margin-top:.5rem}.custom-runtime{display:block}.custom-runtime input,.custom-runtime textarea,.custom-runtime select{width:100%}.custom-shadow-host{width:100%;display:block}.custom-placeholder{opacity:.7;margin:0}.image-input{flex-direction:column;gap:.6rem;display:flex}.image-dropzone{border:1px dashed var(--color-border);text-align:center;cursor:pointer;background:var(--color-bg);padding:.8rem;display:block}.image-dropzone.is-dragging{background:var(--color-invert-bg);color:var(--color-invert-fg)}.image-dropzone.is-disabled{cursor:not-allowed;opacity:.6}.image-placeholder p{margin:0;font-size:.85rem}.image-preview{border:1px solid var(--color-border);object-fit:contain;max-width:100%;max-height:220px;margin:0 auto;display:block}.image-file-input{display:none}.image-meta{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.image-filename{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.85rem;overflow:hidden}.image-clear{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);cursor:pointer;margin:0;padding:.25rem .5rem;font-size:.75rem}.image-clear:hover{background:var(--color-invert-bg);color:var(--color-invert-fg)}.image-error{border-left:2px solid var(--color-border);margin:0;padding-left:.5rem;font-size:.85rem}.drawing-input{flex-direction:column;gap:.6rem;display:flex}.drawing-toolbar{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.drawing-toolbar button{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);margin:0;padding:.25rem .5rem;font-size:.8rem}.drawing-toolbar button.is-active{background:var(--color-invert-bg);color:var(--color-invert-fg)}.drawing-toolbar .drawing-color{border:1px solid var(--color-border);background:var(--color-bg);cursor:pointer;appearance:none;flex:0 0 28px;width:28px;height:28px;padding:0}.drawing-toolbar .drawing-color::-webkit-color-swatch-wrapper{padding:0}.drawing-toolbar .drawing-color::-webkit-color-swatch{border:none}.drawing-canvas-wrap{border:1px solid var(--color-border);background:var(--color-bg);justify-content:center;align-items:center;display:flex;overflow:hidden}.drawing-canvas{background:var(--color-bg);cursor:crosshair;touch-action:none;width:100%;max-width:100%;height:auto}.drawing-error{border-left:2px solid var(--color-border);margin:0;padding-left:.5rem;font-size:.85rem}.drawing-hint{opacity:.7;margin:0;font-size:.8rem}.html-input{gap:.6rem;display:grid}.html-toolbar{justify-content:flex-end;display:flex}.html-toolbar button{margin:0}.html-input label{letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;display:block}.html-input textarea{width:100%;margin-top:.4rem;font-family:SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.html-preview{border:1px solid var(--color-border);background:var(--color-bg);text-align:left;padding:.6rem}.html-preview h2,.html-preview h3,.html-preview p,.html-preview ul,.html-preview ol{margin:0 0 .6rem}.html-preview ul,.html-preview ol{padding-left:1.2rem}.html-preview li{margin-bottom:.3rem}.html-preview strong{font-weight:600}.output{border:1px dashed var(--color-border);text-align:left;min-height:4rem;margin-top:.5em;padding:1em}.output ul,.output ol{margin:.5em 0;padding-left:1.5em}.output li{margin:.25em 0}.output table{border-collapse:collapse;width:100%;margin:.5em 0}.output th,.output td{border:1px solid var(--color-border);text-align:left;padding:.4em .6em}.output th{background:var(--color-invert-bg);color:var(--color-invert-fg)}.output p{margin:.5em 0}.output p:first-child{margin-top:0}.output p:last-child{margin-bottom:0}.output-actions{text-align:left;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5em;display:flex}.generate-button{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);cursor:pointer;margin:0 .5rem 0 0;padding:.2rem .6rem;font-size:.85rem}.generate-button:hover{background:var(--color-invert-bg);color:var(--color-invert-fg)}.generate-button:disabled{opacity:.6;cursor:not-allowed}.download-button{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);cursor:pointer;padding:.2rem .6rem;font-size:.85rem}.download-button:hover{background:var(--color-invert-bg);color:var(--color-invert-fg)}.download-button:disabled{opacity:.6;cursor:not-allowed}.output-placeholder{color:var(--color-fg);opacity:.6;font-style:italic}.output-status{text-align:left;color:var(--color-fg);opacity:.7;margin-top:.5em}.output-error{text-align:left;color:var(--color-fg);border-left:2px solid var(--color-border);margin-top:.5em;padding-left:.5rem}.prompt-debug{border:1px solid var(--color-border);background:var(--color-bg);text-align:left;white-space:pre-wrap;margin:0;padding:.75em;font-size:.8rem}.debug-panel{flex-direction:column;gap:.5em;margin-top:.5em;display:flex}.debug-section{text-align:left}.debug-label{letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3em;font-size:.7rem;display:block}.card-actions{top:calc(var(--grid-size)*2);background:var(--color-bg);border:2px solid var(--color-border);z-index:50;width:calc(var(--grid-size)*5);box-shadow:2px 2px 0 var(--color-shadow);flex-direction:column;align-items:stretch;gap:0;padding:0;display:flex;position:fixed;left:12px}.card-actions.card-actions-right{left:auto;right:12px}.action-group{border:none;flex-direction:column;align-items:stretch;gap:0;padding:0;display:flex}.action-group+.action-group{border-top:1px solid var(--color-border)}.action-group button{text-align:left;background:var(--color-bg);border:none;margin:0;padding:.5rem .75rem;font-size:.875rem}.tool-button{white-space:nowrap;justify-content:flex-start;align-items:center;gap:.5rem;display:flex}.tool-icon{width:24px;height:24px;image-rendering:pixelated;filter:var(--icon-filter);flex:0 0 24px}.action-group button:hover .tool-icon,.action-group button:focus-visible .tool-icon{filter:var(--icon-filter-invert)}.action-inline{align-items:flex-start;gap:.5rem;width:100%;display:flex;position:relative}.action-inline>button{flex:auto;width:100%}.action-group button:hover{background:var(--color-invert-bg);color:var(--color-invert-fg)}.action-label-row{background:var(--color-panel-header-bg);border-bottom:1px solid var(--color-panel-header-border);position:relative}.action-label-row .action-label{color:var(--color-panel-header-fg);background:0 0;border-bottom:0;padding:.4rem 2rem .4rem .75rem;display:block}.action-group .action-label-button{color:var(--color-panel-header-fg);appearance:none;background:0 0;border:0;padding:0;font-size:1.4rem;font-weight:400;line-height:1;position:absolute;top:50%;right:.75rem;transform:translateY(-60%)}.action-group .action-label-button:hover,.action-group .action-label-button:focus-visible{color:var(--color-panel-header-fg);background:0 0}.action-divider{border-top:2px solid var(--color-border)}.board-button{width:100%}.board-row{align-items:center;display:flex;position:relative}.board-row .board-button{flex:auto;width:100%;padding-right:2.5rem}.board-name-input{text-align:left;background:var(--color-invert-bg);width:100%;color:var(--color-invert-fg);box-sizing:border-box;border:none;outline:none;padding:.5rem 2.5rem .5rem .75rem;font-family:inherit;font-size:.875rem}.board-name-input:focus-visible{outline:2px solid var(--color-invert-fg);outline-offset:-2px}.action-group .board-row:hover .board-button,.action-group .board-row:focus-within .board-button{background:var(--color-invert-bg);color:var(--color-invert-fg)}.board-remove{border:1px solid var(--color-bg);background:var(--color-bg);width:1.75rem;height:1.75rem;color:var(--color-fg);opacity:0;pointer-events:none;justify-content:center;align-items:center;margin-right:.5rem;padding:0;display:flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.action-group .board-row:hover .board-remove,.action-group .board-row:focus-within .board-remove{background:var(--color-invert-bg);border-color:var(--color-invert-fg);color:var(--color-invert-fg)}.action-group .board-row:hover .board-remove:hover,.action-group .board-row:focus-within .board-remove:hover,.action-group .board-row:focus-within .board-remove:focus-visible{background:var(--color-bg);border-color:var(--color-border);color:var(--color-fg)}.board-remove:disabled{opacity:0;cursor:not-allowed}.board-row:has(.board-name-input) .board-remove{display:none}.board-row:hover .board-remove:not(:disabled),.board-row:focus-within .board-remove:not(:disabled){opacity:1;pointer-events:auto}.board-remove-icon{width:18px;height:18px;filter:var(--icon-filter);flex:0 0 18px}.action-group .board-row:hover .board-remove-icon,.action-group .board-row:focus-within .board-remove-icon{filter:var(--icon-filter-invert)}.action-group .board-row:hover .board-remove:hover .board-remove-icon,.action-group .board-row:focus-within .board-remove:hover .board-remove-icon,.action-group .board-row:focus-within .board-remove:focus-visible .board-remove-icon{filter:var(--icon-filter)}.action-group .board-button-active{background:var(--color-invert-bg);color:var(--color-invert-fg);font-weight:700}.action-group .board-button-active:hover,.action-group .board-button-active:focus-visible{background:var(--color-invert-bg);color:var(--color-invert-fg)}.import-input{display:none}.import-button{border:1px dashed var(--color-border)}.board-error{border-left:2px solid var(--color-border);margin:.35rem .75rem .6rem;padding-left:.5rem;font-size:.75rem}.action-label{letter-spacing:.06em;text-transform:uppercase;background:var(--color-panel-header-bg);border-bottom:1px solid var(--color-panel-header-border);text-align:left;color:var(--color-panel-header-fg);padding:.4rem .75rem;font-size:.75rem;font-weight:700}.custom-generator{border:1px solid var(--color-border);text-align:left;width:100%;margin-top:.4rem;padding:.6rem}.custom-generator.custom-generator-inline{background:var(--color-bg);z-index:60;width:240px;margin-top:0;position:absolute;top:0;left:calc(100% + .5rem)}.custom-generator label{letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;display:block}.custom-generator textarea{width:100%;margin-top:.4rem}.custom-generator-actions{gap:.4rem;margin-top:.4rem;display:flex}.custom-generator-error{border-left:2px solid var(--color-border);margin:.4rem 0 0;padding-left:.5rem;font-size:.85rem}
