:root{--color-bg:#1e1e1e;--color-surface:#252525;--color-border:#ff9d00;--color-text:#d4d4d4;--color-heading:#f5f5f5;--color-accent:#ff9d00;--color-accent-muted:color-mix(in srgb, var(--color-accent) 22%, transparent);--color-surplus:#4ecca3;--color-deficit:#e53935;--color-balanced:#9e9e9e;--color-rate:#5dade2;--color-recipe-border:#444;--color-on-accent:#111;--radius:8px;--gap:1.5rem;--layout-max-width:960px;--header-inner-max:min(100%, var(--layout-max-width));--header-logo-max-h:48px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text);background-image:linear-gradient(#ff9d0008 1px,#0000 1px),linear-gradient(90deg,#ff9d0008 1px,#0000 1px);background-size:24px 24px;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6}.app-page{padding:var(--gap)}.app-root{flex-direction:column;min-height:100vh;display:flex}@media (width>=701px){.app-root--canvas{height:100dvh;min-height:0;overflow:hidden}.app-root--canvas .canvas-view{flex:1 1 0;min-height:0}}.app-view-switch{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.app-view-switch-sep{color:var(--color-balanced);opacity:.75;-webkit-user-select:none;user-select:none;justify-content:center;align-self:center;align-items:center;margin-inline:.15rem;font-weight:800;line-height:1;display:inline-flex}.app-view-tab[aria-pressed=true]{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 22%, var(--color-surface));color:var(--color-heading)}.app-home{flex:1;display:flex}.app-home-main{max-width:var(--layout-max-width);padding:var(--gap);flex:1;justify-content:center;align-items:center;margin:0 auto;display:flex}.app-home-card{border-radius:calc(var(--radius) + 6px);border:1px solid color-mix(in srgb, var(--color-border) 35%, transparent);background:color-mix(in srgb, var(--color-surface) 92%, transparent);width:100%;max-width:42rem;padding:1.25rem;box-shadow:0 16px 50px #00000059}.app-home-title{color:var(--color-heading);margin:0;font-size:1.25rem;font-weight:800}.app-home-subtitle{color:var(--color-balanced);margin:.35rem 0 .95rem;font-size:.95rem;font-weight:600}.app-home-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.app-home-action{text-align:left;white-space:normal;overflow-wrap:anywhere;word-break:break-word;flex-direction:column;align-items:flex-start;width:100%;min-width:0;padding:.95rem 1rem;display:flex}.app-home-action-title{min-width:0;max-width:100%;color:var(--color-heading);font-size:1.05rem;font-weight:800;display:block}.app-home-action-subtitle{min-width:0;max-width:100%;color:var(--color-balanced);margin-top:.25rem;font-size:.9rem;font-weight:600;line-height:1.35;display:block}@media (width<=560px){.app-home-actions{grid-template-columns:1fr}}.btn.app-home-action{white-space:normal}.canvas-view{background:var(--color-bg);flex-direction:row;flex:1;align-items:stretch;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.canvas-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex:0 0 min(100%,17.5rem);min-width:0;min-height:0;display:flex;box-shadow:2px 0 12px #0003}.canvas-results-sidebar-shell{flex-direction:column;flex:none;align-self:stretch;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.canvas-results-sidebar-resize-handle{z-index:4;cursor:col-resize;touch-action:none;background:0 0;border:none;width:8px;margin:0;padding:0;position:absolute;top:0;bottom:0;left:0;transform:translate(-50%)}.canvas-results-sidebar-resize-handle:hover{background:color-mix(in srgb, var(--color-accent) 18%, transparent)}.canvas-results-sidebar-resize-handle:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.canvas-results-sidebar{background:var(--color-surface);border-left:1px solid var(--color-border);flex-direction:column;flex:1;width:100%;min-width:0;min-height:0;display:flex;overflow:hidden;box-shadow:-2px 0 12px #0003}.canvas-results-sidebar-header{padding:.65rem var(--gap);border-bottom:1px solid color-mix(in srgb, var(--color-border) 30%, transparent);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.canvas-results-sidebar-title-wrap{min-width:0}.canvas-results-sidebar-title{color:var(--color-heading);margin:0;font-size:1rem;font-weight:700}.canvas-results-sidebar-subtitle{color:var(--color-balanced);margin:.25rem 0 0;font-size:.78rem;font-weight:600;line-height:1.35}.canvas-results-sidebar-width-hint{padding:.5rem var(--gap) .55rem;color:var(--color-balanced);border-bottom:1px solid color-mix(in srgb, var(--color-border) 30%, transparent);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.4rem;margin:0;font-size:.78rem;font-weight:500;line-height:1.35;display:flex}.canvas-results-sidebar-width-hint-text{flex:1;min-width:0}.canvas-results-sidebar-help{width:1.35rem;height:1.35rem;color:var(--color-heading);cursor:help;border:1px solid color-mix(in srgb, var(--color-border) 55%, transparent);background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface));border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;font-size:.78rem;font-weight:800;line-height:1;display:inline-flex}.canvas-results-sidebar-help:hover{color:var(--color-heading);border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border));background:color-mix(in srgb, var(--color-accent) 22%, var(--color-surface))}.canvas-results-sidebar-help:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.canvas-results-sidebar-hide{flex-shrink:0;padding:.35rem .65rem;font-size:.82rem}.canvas-results-sidebar-body{overscroll-behavior:contain;min-height:0;padding:0 var(--gap) var(--gap);flex:1;overflow:hidden auto}.canvas-results-sidebar-section{margin-bottom:.75rem}.canvas-results-sidebar-section-heading{color:var(--color-heading);margin:.75rem 0 .5rem;font-size:.92rem;font-weight:700}.canvas-results-sidebar .net-flow-chart-panel{max-width:none;margin-left:0;margin-right:0}.canvas-results-sidebar .net-flow-chart-heading{font-size:1rem}.canvas-results-sidebar-reopen{min-height:0;color:var(--color-heading);writing-mode:vertical-rl;text-orientation:mixed;cursor:pointer;border:none;border-left:1px solid var(--color-border);background:var(--color-surface);flex:0 0 2.5rem;align-self:stretch;margin:0;padding:.5rem .25rem;font-size:.78rem;font-weight:700;transform:rotate(180deg);box-shadow:-2px 0 8px #0000001f}.canvas-results-sidebar-reopen:hover{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface))}.canvas-results-sidebar-reopen:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.canvas-search{padding:.75rem var(--gap) .5rem;flex-shrink:0;margin-bottom:0}.canvas-search .canvas-search-input{width:100%}.canvas-placement-style{border-bottom:1px solid color-mix(in srgb, var(--color-border) 30%, transparent);flex-shrink:0;margin-bottom:0;padding:0 0 .65rem}.canvas-placement-style-label{color:var(--color-heading);margin-bottom:.4rem;font-size:.78rem;font-weight:600;display:block}.canvas-placement-style-toggle{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--color-border) 45%, transparent);background:var(--color-bg);flex-wrap:wrap;gap:0;padding:2px;display:flex}.canvas-placement-style-option{min-width:0;min-height:2rem;font:inherit;color:var(--color-text);cursor:pointer;border-radius:calc(var(--radius) - 3px);background:0 0;border:none;flex:1 1 0;padding:.35rem .5rem;font-size:.78rem;font-weight:600}.canvas-placement-style-option:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.canvas-placement-style-option:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.canvas-placement-style-option[aria-checked=true]{color:var(--color-heading);background:color-mix(in srgb, var(--color-accent) 22%, var(--color-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-accent) 35%, transparent)}.canvas-category-actions{padding:0 var(--gap) .65rem;border-bottom:1px solid color-mix(in srgb, var(--color-border) 30%, transparent);flex-wrap:wrap;gap:.4rem;display:flex}.canvas-category-action-btn{flex:auto;min-width:0;padding:.35rem .5rem;font-size:.78rem;font-weight:600}.canvas-resource-strip{overscroll-behavior:contain;min-height:0;padding:0 var(--gap) var(--gap);flex-direction:column;flex:1;gap:1rem;display:flex;overflow:hidden auto}.canvas-resource-empty{color:var(--color-balanced);margin:.5rem 0 0;font-size:.85rem}.canvas-resource-category{min-width:0}.canvas-resource-category-toggle{width:100%;font:inherit;letter-spacing:.04em;text-transform:uppercase;color:var(--color-balanced);border-radius:calc(var(--radius) - 4px);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 .45rem;padding:.35rem .15rem;font-size:.7rem;font-weight:700;line-height:1.3;display:flex}.canvas-resource-category-toggle:hover{color:var(--color-heading);background:color-mix(in srgb, var(--color-accent) 8%, transparent)}.canvas-resource-category-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.canvas-resource-category-toggle-label{flex:1;min-width:0}.canvas-resource-category-toggle-chevron{opacity:.9;flex-shrink:0;justify-content:center;align-items:center;width:1rem;height:1rem;display:flex}.canvas-resource-category-toggle-chevron:before{content:"▼";font-size:.55rem;line-height:1;transition:transform .15s;display:block}.canvas-resource-category-toggle[aria-expanded=false] .canvas-resource-category-toggle-chevron:before{transform:rotate(-90deg)}.canvas-resource-grid{grid-template-columns:repeat(auto-fill,minmax(2.25rem,1fr));align-content:start;gap:.4rem;display:grid}.canvas-resource-thumb{aspect-ratio:1;width:100%;min-width:0;font:inherit;font-size:inherit;line-height:inherit;cursor:pointer;border-radius:calc(var(--radius) - 2px);border:1px solid color-mix(in srgb, var(--color-border) 40%, transparent);background:var(--color-bg);justify-content:center;align-items:center;margin:0;padding:0;display:flex}.canvas-resource-thumb:hover{border-color:color-mix(in srgb, var(--color-accent) 55%, var(--color-border))}.canvas-resource-thumb[aria-pressed=true]{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 22%, var(--color-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-accent) 35%, transparent)}.canvas-resource-thumb:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.canvas-tooltip{pointer-events:none;max-width:17.5rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.65rem .8rem;font-size:.8rem;line-height:1.45;box-shadow:0 8px 28px #00000073}.canvas-tooltip-title{color:var(--color-heading);margin:0 0 .2rem;font-size:.95rem;font-weight:700;line-height:1.25}.canvas-tooltip-id{color:var(--color-balanced);word-break:break-all;opacity:.95;margin:0 0 .45rem;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.68rem;font-weight:500}.canvas-tooltip-line{color:var(--color-balanced);margin:.15rem 0 0}.canvas-tooltip-line--accent{color:var(--color-accent);font-weight:600}.canvas-tooltip-block{border-top:1px solid color-mix(in srgb, var(--color-border) 35%, transparent);margin-top:.45rem;padding-top:.45rem}.canvas-tooltip-k{letter-spacing:.06em;text-transform:uppercase;color:var(--color-balanced);margin:0 0 .2rem;font-size:.65rem;font-weight:700}.canvas-tooltip-buildings{color:var(--color-text);word-break:break-word;max-height:5.5rem;margin:0;font-size:.78rem;overflow-y:auto}img.canvas-resource-icon{width:1.75rem;height:1.75rem}.canvas-resource-fallback{color:var(--color-balanced);font-size:.75rem;font-weight:700}.canvas-workspace{overscroll-behavior:contain;background-color:#fff;flex:1;min-width:0;min-height:12rem;position:relative;overflow:auto}.canvas-workspace:not(.canvas-workspace--placing){cursor:grab}.canvas-workspace--panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.canvas-workspace-surface{box-sizing:border-box;background-color:#fff;background-image:linear-gradient(#0000000f 1px,#0000 1px),linear-gradient(90deg,#0000000f 1px,#0000 1px);background-size:24px 24px;min-width:100%;min-height:100%;position:relative}.canvas-workspace--placing{cursor:crosshair}.canvas-workspace--placing-hover{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--color-accent) 45%, transparent)}.canvas-workspace-toolbar{z-index:30;pointer-events:none;align-items:center;gap:.4rem;margin:.65rem 0 0 .65rem;display:inline-flex;position:sticky;top:.65rem;left:0}.canvas-workspace-toolbar>*{pointer-events:auto}.canvas-workspace-toolbar-btn{padding:.35rem .55rem;font-size:.78rem;font-weight:700;line-height:1.1}.canvas-workspace-toolbar-popover-anchor{display:inline-flex;position:relative}.canvas-blocks-panel{border-radius:calc(var(--radius) + 2px);border:1px solid color-mix(in srgb, var(--color-border) 45%, transparent);background:color-mix(in srgb, var(--color-surface) 96%, #000);flex-direction:column;width:min(18rem,100vw - 2rem);max-height:min(22rem,55vh);display:flex;position:absolute;top:calc(100% + .35rem);left:0;overflow:hidden;box-shadow:0 16px 48px #00000059}.canvas-blocks-panel-header{border-bottom:1px solid color-mix(in srgb, var(--color-border) 25%, transparent);flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .65rem;display:flex}.canvas-blocks-panel-title{color:var(--color-heading);font-size:.82rem;font-weight:800}.canvas-blocks-panel-close{cursor:pointer;width:1.5rem;height:1.5rem;color:var(--color-text);border:1px solid color-mix(in srgb, var(--color-border) 20%, transparent);background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;display:inline-flex}.canvas-blocks-panel-close:hover{color:var(--color-heading);border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border));background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.canvas-blocks-panel-close:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.canvas-blocks-panel-body{flex-direction:column;flex:1;gap:.25rem;min-height:0;padding:.35rem;display:flex;overflow:auto}.canvas-blocks-panel-item{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--color-border) 18%, transparent);background:color-mix(in srgb, var(--color-bg) 35%, transparent);width:100%;color:var(--color-text);cursor:pointer;text-align:left;justify-content:space-between;align-items:baseline;gap:.55rem;padding:.45rem .55rem;display:flex}.canvas-blocks-panel-item:hover{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border));background:color-mix(in srgb, var(--color-accent) 8%, var(--color-bg))}.canvas-blocks-panel-item--active{border-color:color-mix(in srgb, var(--color-accent) 65%, var(--color-border));background:color-mix(in srgb, var(--color-accent) 14%, var(--color-bg));color:var(--color-heading)}.canvas-blocks-panel-item-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.8rem;font-weight:750;overflow:hidden}.canvas-blocks-panel-item-id{color:var(--color-balanced);flex-shrink:0;font-size:.7rem;font-weight:700}.canvas-workspace-hint{color:#525252;-webkit-user-select:none;user-select:none;pointer-events:none;margin:0;font-size:1rem;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.canvas-workspace-place-hint{z-index:3;color:#333;background:color-mix(in srgb, #fff 92%, var(--color-accent));border:1px solid color-mix(in srgb, var(--color-accent) 35%, #ccc);border-radius:var(--radius);pointer-events:none;-webkit-user-select:none;user-select:none;text-align:center;max-width:calc(100% - 2rem);margin:0;padding:.4rem .75rem;font-size:.82rem;font-weight:600;position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);box-shadow:0 2px 10px #0000001f}.canvas-workspace-error{z-index:4;color:#b71c1c;border-radius:calc(var(--radius) - 2px);text-align:center;background:#ffedf0;border:1px solid #d78a88;max-width:min(28rem,100% - 2rem);margin:0;padding:.4rem .65rem;font-size:.8rem;font-weight:600;position:absolute;top:.75rem;left:50%;transform:translate(-50%)}.canvas-placement-ghost{z-index:1;pointer-events:none;opacity:.55;border:2px dashed color-mix(in srgb, var(--color-accent) 55%, #888);border-radius:var(--radius);background:color-mix(in srgb, #fff 88%, var(--color-accent));flex-direction:column;align-items:center;gap:.2rem;min-width:4.5rem;max-width:10rem;padding:.35rem .5rem .45rem;display:flex;position:absolute;transform:translate(-50%,-50%)}.canvas-placement-ghost-icon{object-fit:contain;filter:grayscale(.15);width:2rem;height:2rem}.canvas-placement-ghost-fallback{color:#666;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.95rem;font-weight:700;display:flex}.canvas-placement-ghost-label{color:#333;text-align:center;word-break:break-word;font-size:.65rem;font-weight:600;line-height:1.2}.canvas-workspace-paint{pointer-events:none;z-index:0;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.canvas-dependency-links-line{stroke:color-mix(in srgb, var(--color-accent) 55%, #666);stroke-width:2px;fill:none}.canvas-dependency-links-arrowhead{fill:color-mix(in srgb, var(--color-accent) 45%, #555)}.canvas-block-selection-highlight{z-index:10;pointer-events:none;border-radius:calc(var(--radius) + 6px);border:3px solid var(--color-accent);box-shadow:0 0 0 1px color-mix(in srgb, #fff 75%, var(--color-accent)), 0 8px 28px #00000024}.canvas-placed-card{z-index:2;box-sizing:border-box;border-radius:var(--radius);-webkit-user-select:none;user-select:none;cursor:grab;touch-action:none;background:#f3f3f3;border:1px solid #b0b0b0;width:140px;min-height:256px;overflow:hidden;box-shadow:0 4px 14px #0000001f}.canvas-placed-card:active{cursor:grabbing}.canvas-placed-card-header{color:#fff;background:#6200ee;justify-content:space-between;align-items:center;gap:.25rem;min-height:1.5rem;padding:.28rem .35rem .28rem .45rem;display:flex}.canvas-placed-card-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.68rem;font-weight:700;line-height:1.2;overflow:hidden}.canvas-placed-card-header-actions{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.canvas-placed-card-expand-upstream{color:#fff;cursor:pointer;background:#ffffff2e;border:1px solid #ffffff73;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;padding:0;font-size:1rem;font-weight:700;line-height:1;display:flex}.canvas-placed-card-remove{color:#fff;cursor:pointer;background:var(--color-deficit);border:1px solid color-mix(in srgb, var(--color-deficit) 70%, #000);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;padding:0;font-size:1rem;font-weight:700;line-height:1;display:flex}.canvas-placed-card-remove:hover{background:color-mix(in srgb, var(--color-deficit) 88%, #fff)}.canvas-placed-card-remove:active{background:color-mix(in srgb, var(--color-deficit) 75%, #000)}.canvas-placed-card-remove:focus-visible{outline-offset:1px;outline:2px solid #fff}.canvas-placed-card-expand-upstream:hover{background:#ffffff52}.canvas-placed-card-expand-upstream:focus-visible{outline-offset:1px;outline:2px solid #fff}.canvas-placed-card-body{background:linear-gradient(#fafafa 0%,#ececec 100%);justify-content:center;align-items:center;min-height:2rem;padding:.3rem .25rem .2rem;display:flex}.canvas-placed-card-icon{object-fit:contain;width:2rem;height:2rem}.canvas-placed-card-fallback{color:#666;font-size:1rem;font-weight:700}.canvas-placed-card-flows{touch-action:auto;-webkit-user-select:text;user-select:text;background:#e8e8e8;border-top:1px solid #0000001a;padding:.35rem .4rem .42rem}.canvas-placed-card-flow-row{flex-direction:column;gap:.12rem;margin-bottom:.32rem;display:flex}.canvas-placed-card-flow-row:last-child{margin-bottom:0}.canvas-placed-card-flow-label{letter-spacing:.03em;text-transform:uppercase;color:#555;font-size:.58rem;font-weight:700;line-height:1.2}.canvas-placed-card-flow-input-wrap{align-items:stretch;gap:.2rem;display:flex}.canvas-placed-card-flow-step-btn{color:#333;cursor:pointer;background:#f0f0f0;border:1px solid #aaa;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:1.35rem;min-height:1.45rem;padding:0;font-size:.95rem;font-weight:700;line-height:1;display:flex}.canvas-placed-card-flow-step-btn:hover{background:#e2e2e2}.canvas-placed-card-flow-step-btn:active{background:#d5d5d5}.canvas-placed-card-flow-step-btn:focus-visible{outline-offset:1px;outline:2px solid #6200ee}.canvas-placed-card-flow-input{color:#222;-webkit-user-select:text;user-select:text;touch-action:auto;background:#fff;border:1px solid #aaa;border-radius:3px;flex:1;min-width:0;padding:.2rem .3rem;font-size:.65rem;font-weight:600}.canvas-placed-card-flow-input:focus{outline-offset:1px;outline:2px solid #6200ee}.canvas-placed-card-flow-unit{color:#555;flex-shrink:0;font-size:.58rem;font-weight:600}.canvas-placed-card-flow-bulk{flex-direction:column;gap:.32rem;max-width:100%;margin-top:.28rem;display:flex}.canvas-placed-card-flow-bulk-row{flex-wrap:wrap;justify-content:center;gap:.12rem;width:100%;display:flex}.canvas-placed-card-flow-bulk-btn{cursor:pointer;border:1px solid #0000;border-radius:3px;flex:calc(33.333% - .12rem);min-width:2.35rem;max-width:calc(33.333% - .08rem);padding:.12rem .08rem;font-size:.55rem;font-weight:700;line-height:1.15}.canvas-placed-card-flow-bulk-btn--add{color:#fff;background:color-mix(in srgb, var(--color-surplus) 16%, var(--color-surface));border-color:color-mix(in srgb, var(--color-surplus) 42%, var(--color-border))}.canvas-placed-card-flow-bulk-btn--add:hover{color:#fff;background:color-mix(in srgb, var(--color-surplus) 28%, var(--color-surface));border-color:color-mix(in srgb, var(--color-surplus) 58%, var(--color-border))}.canvas-placed-card-flow-bulk-btn--add:active{color:#fff;background:color-mix(in srgb, var(--color-surplus) 38%, var(--color-surface))}.canvas-placed-card-flow-bulk-btn--subtract{color:#fff;background:color-mix(in srgb, var(--color-deficit) 14%, var(--color-surface));border-color:color-mix(in srgb, var(--color-deficit) 38%, var(--color-border))}.canvas-placed-card-flow-bulk-btn--subtract:hover{color:#fff;background:color-mix(in srgb, var(--color-deficit) 24%, var(--color-surface));border-color:color-mix(in srgb, var(--color-deficit) 52%, var(--color-border))}.canvas-placed-card-flow-bulk-btn--subtract:active{color:#fff;background:color-mix(in srgb, var(--color-deficit) 34%, var(--color-surface))}.canvas-placed-card-flow-bulk-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.canvas-block-label{color:#1a1a1a;background:color-mix(in srgb, #fff 94%, var(--color-accent));border:1px solid color-mix(in srgb, var(--color-accent) 40%, #bbb);border-radius:var(--radius);pointer-events:auto;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;align-items:center;gap:.35rem;max-width:min(20rem,100vw - 4rem);padding:.22rem .35rem .22rem .55rem;font-size:.78rem;font-weight:700;line-height:1.25;display:inline-flex;box-shadow:0 2px 10px #0000001f}.canvas-block-label:active{cursor:grabbing}.canvas-block-label-text{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.canvas-block-label-input{min-width:4rem;max-width:100%;font:inherit;color:inherit;text-align:center;border:1px solid color-mix(in srgb, var(--color-accent) 55%, #888);box-sizing:border-box;cursor:text;-webkit-user-select:text;user-select:text;touch-action:auto;background:#fff;border-radius:4px;outline:none;flex:1;margin:0;padding:.08rem .25rem;font-weight:700;line-height:1.25}.canvas-block-label-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-accent) 35%, transparent)}.canvas-block-label-remove{color:#555;cursor:pointer;background:#ffffffb3;border:1px solid #99999980;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;margin:0;padding:0;font-size:1rem;font-weight:700;line-height:1;display:flex}.canvas-block-label-remove:hover{color:#b71c1c;background:#ffeff1;border-color:#d78a88}.canvas-block-label-remove:focus-visible{outline-offset:1px;outline:2px solid #6200ee}.canvas-placement-picker-block-name{flex-shrink:0;margin:0 0 .75rem}.canvas-placement-picker-block-name label{color:var(--color-heading);margin-bottom:.35rem;font-size:.78rem;font-weight:600;display:block}.canvas-placement-picker-block-input{width:100%;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid color-mix(in srgb, var(--color-border) 55%, transparent);border-radius:calc(var(--radius) - 2px);padding:.45rem .55rem;font-size:.9rem}.canvas-placement-picker-block-input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.canvas-placement-picker-block-hint{color:var(--color-balanced);margin:.35rem 0 0;font-size:.72rem;line-height:1.35}.canvas-placement-picker-backdrop{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.canvas-placement-picker{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:min(40rem,100vw - 2rem);min-height:0;max-height:min(92vh,52rem);color:var(--color-text);flex-direction:column;padding:1rem 1.1rem .85rem;display:flex;overflow:hidden auto;box-shadow:0 16px 48px #00000073}.canvas-placement-picker-title{color:var(--color-heading);flex-shrink:0;margin:0 0 .45rem;font-size:1.05rem;font-weight:700}.canvas-placement-picker-lead{color:var(--color-balanced);flex-shrink:0;margin:0 0 .85rem;font-size:.85rem;line-height:1.45}.canvas-placement-picker-lead strong{color:var(--color-heading)}.canvas-placement-picker-primary{border-radius:calc(var(--radius) - 2px);background:color-mix(in srgb, var(--color-accent) 12%, var(--color-bg));border:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.35rem .5rem;margin-bottom:.75rem;padding:.5rem .6rem;display:flex}.canvas-placement-picker-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--color-on-accent);background:var(--color-accent);border-radius:4px;flex-shrink:0;padding:.12rem .4rem;font-size:.62rem;font-weight:700}.canvas-placement-picker-primary-label{color:var(--color-heading);font-size:.88rem;font-weight:700}.canvas-placement-picker-id{color:var(--color-balanced);word-break:break-all;flex:100%;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.65rem}.canvas-placement-picker-deps-header{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.canvas-placement-picker-deps-heading{letter-spacing:.03em;text-transform:uppercase;color:var(--color-balanced);font-size:.72rem;font-weight:700}.canvas-placement-picker-deps-actions{flex-wrap:wrap;gap:.35rem;display:flex}.canvas-placement-picker-linkish{padding:.25rem .45rem;font-size:.75rem}.canvas-placement-picker-list{border:1px solid color-mix(in srgb, var(--color-border) 45%, transparent);border-radius:calc(var(--radius) - 2px);background:var(--color-bg);flex:0 auto;min-height:min(14rem,38vh);max-height:min(52vh,36rem);margin:0 0 .75rem;padding:0;list-style:none;overflow-y:auto}.canvas-placement-picker-row{border-bottom:1px solid color-mix(in srgb, var(--color-border) 35%, transparent)}.canvas-placement-picker-row:last-child{border-bottom:none}.canvas-placement-picker-label{cursor:pointer;align-items:center;gap:.45rem;margin:0;padding:.4rem .5rem;font-size:.82rem;display:flex}.canvas-placement-picker-label:hover{background:color-mix(in srgb, var(--color-accent) 8%, transparent)}.canvas-placement-picker-check{width:1rem;height:1rem;accent-color:var(--color-accent);flex-shrink:0}.canvas-placement-picker-icon{object-fit:contain;flex-shrink:0;width:1.5rem;height:1.5rem}.canvas-placement-picker-fallback{width:1.5rem;height:1.5rem;color:var(--color-balanced);flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.canvas-placement-picker-name{min-width:0;color:var(--color-text);flex:1;font-weight:600}.canvas-placement-picker-row .canvas-placement-picker-id{opacity:.85;flex:0 35%;font-size:.6rem}.canvas-placement-picker-empty{color:var(--color-balanced);flex-shrink:0;margin:0 0 .75rem;font-size:.82rem}.canvas-placement-picker-footer{border-top:1px solid color-mix(in srgb, var(--color-border) 40%, transparent);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:.5rem;padding-top:.35rem;display:flex}@media (width<=700px){.canvas-view{flex-direction:column}.canvas-sidebar{border-right:none;border-bottom:1px solid var(--color-border);flex:none;max-height:40vh;box-shadow:0 4px 12px #0003}.canvas-workspace{flex:1;min-height:50vh}.canvas-results-sidebar-shell{flex:0 auto!important;width:100%!important;max-width:100%!important}.canvas-results-sidebar-resize-handle,.canvas-results-sidebar-width-hint{display:none}.canvas-results-sidebar{border-left:none;border-top:1px solid var(--color-border);max-height:min(45vh,22rem);box-shadow:0 -4px 12px #0000001f}.canvas-results-sidebar-reopen{writing-mode:horizontal-tb;border-left:none;border-top:1px solid var(--color-border);flex:none;align-self:stretch;width:100%;min-height:2.25rem;transform:none;box-shadow:0 -2px 8px #00000014}}.app-header{z-index:50;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;width:100%;position:sticky;top:0;box-shadow:0 2px 12px #00000059}.app-header-inner{max-width:var(--header-inner-max);padding:.5rem var(--gap);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-left:auto;margin-right:auto;display:flex}.app-brand{flex:auto;align-items:center;gap:.65rem;min-width:0;display:flex}.app-brand-text{text-align:left;min-width:0}.app-logo{max-height:var(--header-logo-max-h);object-fit:contain;flex-shrink:0;width:auto;height:auto;display:block}.app-header h1{color:var(--color-heading);font-size:1.15rem;font-weight:700;line-height:1.25}.app-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.app-heading-row h1{flex:1;min-width:min(100%,12rem);margin:0}.subtitle{color:var(--color-balanced);margin-top:.15rem;font-size:.8rem;line-height:1.35}.app-toolbar{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}@media (width<=700px){.app-header-inner{flex-direction:column;align-items:stretch}.app-brand{justify-content:flex-start}.app-toolbar{border-top:1px solid color-mix(in srgb, var(--color-border) 35%, transparent);justify-content:flex-start;padding-top:.25rem}}.app-main{max-width:min(100%, var(--layout-max-width));gap:var(--gap);grid-template-columns:1fr 1fr;margin:0 auto;display:grid}@media (width>=1200px){:root{--layout-max-width:1280px;--header-logo-max-h:52px}}@media (width>=1536px){:root{--layout-max-width:1440px}}@media (width<=700px){.app-main{grid-template-columns:1fr}}.user-guide-dialog:not([open]){display:none}.user-guide-dialog[open]{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:calc(100vw - 2rem);max-width:min(100%,40rem);max-height:min(90vh,42rem);color:var(--color-text);flex-direction:column;margin:0;padding:0;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 16px 48px #00000073}.user-guide-dialog--canvas{max-width:min(100%,44rem)}.user-guide-dialog::backdrop{background:#0000008c}.user-guide-dialog-inner{padding:var(--gap);flex-direction:column;flex:1;min-height:0;display:flex}.user-guide-dialog-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.user-guide-dialog-title{color:var(--color-heading);margin:0;font-size:1.15rem;line-height:1.3}.user-guide-dialog-close{flex-shrink:0}.user-guide-dialog-body{flex:1;min-height:0;padding:0;overflow-y:auto}.app-target-panel{max-width:min(100%, var(--layout-max-width));margin-left:auto;margin-right:auto;margin-bottom:var(--gap);border-width:2px;box-shadow:0 4px 20px #00000059}.app-target-panel-body{padding-bottom:.25rem;padding-left:.15rem}.app-target-fields-row{flex-direction:column;gap:.65rem;margin-bottom:.5rem;display:flex}.app-target-fields-row .field{margin-bottom:0}.app-target-panel .field label{margin-bottom:.85rem}@media (width>=36rem){.app-target-fields-row{flex-direction:row;align-items:flex-start;gap:1rem}.app-target-field-col{flex:1 1 0;min-width:0}}.app-footer{margin-top:var(--gap)}.app-footer-inner{max-width:var(--header-inner-max);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);text-align:center;margin-left:auto;margin-right:auto;padding:.65rem .75rem;box-shadow:0 2px 16px #0000004d}.app-footer-nav{flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .5rem;font-size:.9rem;display:flex}.app-footer-sep{color:var(--color-balanced);-webkit-user-select:none;user-select:none}.app-footer-contrib{color:var(--color-balanced);margin:.5rem 0 0;font-size:.8rem;line-height:1.45}.app-footer-link{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline}.app-footer-link:hover{color:color-mix(in srgb, var(--color-accent) 75%, #fff)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--gap);overflow:hidden}.panel.panel-results{z-index:0;position:relative;overflow:auto visible}.panel.app-target-panel{overflow:visible}.panel.panel-inputs{padding-bottom:calc(var(--gap) + .5rem);z-index:1;position:relative;overflow:visible}.panel-inputs .field-target-rate-row{align-items:flex-start;gap:.65rem;display:flex}.panel-inputs .field-target-rate-icon{flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;margin-top:.15rem;display:flex}.panel-inputs .field-target-rate-resource-icon{object-fit:contain;width:28px;height:28px}.panel-inputs .field-target-rate-icon-placeholder{border:1px dashed var(--color-border);background:color-mix(in srgb, var(--color-surface) 85%, var(--color-border));border-radius:4px;width:28px;height:28px;display:block}.panel-inputs .field-target-rate-fields{flex:1 1 0;min-width:0}.panel-inputs .field-target-rate-resource-name,.panel-inputs .field-target-rate-hint{color:var(--color-balanced);margin:.2rem 0 .45rem;font-size:.88rem;line-height:1.35}.panel-inputs .field-target-rate-resource-name{color:var(--color-heading);font-weight:600}.panel h2:first-of-type{margin:calc(-1 * var(--gap)) calc(-1 * var(--gap)) var(--gap);padding:.55rem var(--gap);background:var(--color-accent);color:var(--color-on-accent);letter-spacing:.02em;border-radius:0;border-top-left-radius:calc(var(--radius) - 1px);border-top-right-radius:calc(var(--radius) - 1px);font-size:1.05rem;font-weight:700}.panel h2:not(:first-of-type){color:var(--color-heading);margin-bottom:.75rem;font-size:1.15rem}.panel h3{color:var(--color-heading);margin-top:1rem;margin-bottom:.5rem;font-size:1rem}.panel-results .results-section,.panel-inputs .results-section,.app-target-panel .results-section{margin-bottom:.5rem}.panel-results .results-section:last-child,.panel-inputs .results-section:last-child,.app-target-panel .results-section:last-child{margin-bottom:0}.panel-inputs .results-section+.results-section{margin-top:.75rem}.panel-results .results-section-summary,.panel-inputs .results-section-summary,.app-target-panel .results-section-summary{color:var(--color-heading);cursor:pointer;border-left:3px solid var(--color-accent);background:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface));border-radius:4px;margin-bottom:.65rem;padding:.4rem .55rem .4rem .65rem;font-size:1.05rem;font-weight:700;list-style:none}.panel-results .results-section-summary::-webkit-details-marker{display:none}.panel-inputs .results-section-summary::-webkit-details-marker{display:none}.app-target-panel .results-section-summary::-webkit-details-marker{display:none}.panel-results .results-section-summary:before,.panel-inputs .results-section-summary:before,.app-target-panel .results-section-summary:before{content:"";border-right:2px solid var(--color-accent);border-bottom:2px solid var(--color-accent);vertical-align:middle;width:.45em;height:.45em;margin-right:.5rem;transition:transform .15s;display:inline-block;transform:rotate(-45deg)}.panel-results .results-section[open] .results-section-summary:before,.panel-inputs .results-section[open] .results-section-summary:before,.app-target-panel .results-section[open] .results-section-summary:before{margin-bottom:.1em;transform:rotate(45deg)}.panel-results .results-section-body,.panel-inputs .results-section-body,.app-target-panel .results-section-body{padding-left:.15rem}.user-guide-list{gap:.5rem;margin:0;padding-left:1.25rem;font-size:.95rem;line-height:1.5;display:grid}.user-guide-list li{padding-left:.15rem}.recent-resources-section{max-width:min(100%, var(--layout-max-width));margin-left:auto;margin-right:auto;margin-bottom:var(--gap);box-shadow:none;background:0 0;border:none;padding:0 .35rem}.recent-resources-heading{color:var(--color-heading);margin:0 0 .45rem;font-size:.95rem;font-weight:700}.recent-resources{min-height:1.5rem;margin:0}.recent-resources-empty{color:var(--color-balanced);margin:0;font-size:.85rem;line-height:1.45}.recent-resources-list{flex-wrap:wrap;gap:.35rem .45rem;margin:0;padding:0;list-style:none;display:flex}.recent-resources-item{margin:0}button.recent-resource-chip{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 92%, var(--color-heading));cursor:pointer;text-align:left;border-radius:4px;align-items:center;max-width:100%;padding:.2rem .45rem .2rem .35rem;font-size:.8rem;font-weight:600;display:inline-flex}button.recent-resource-chip .resource-label-text{text-overflow:ellipsis;white-space:nowrap;max-width:11rem;overflow:hidden}button.recent-resource-chip .resource-icon{flex-shrink:0;width:18px;height:18px}.panel-inputs .results-section-body{padding-bottom:.5rem}.panel-inputs .production-section-summary{align-items:center;gap:.5rem;display:flex}.panel-inputs .production-section-summary .production-clear-all{margin-left:auto}.field{margin-bottom:.75rem}.field label{color:var(--color-balanced);margin-bottom:.25rem;font-size:.85rem;display:block}.field-resource-target{flex-direction:column;gap:0;display:flex}.field-resource-target .resource-picker-wrap{margin-top:.35rem}.resource-search-wrap{position:relative}.resource-search-results{z-index:20;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);max-height:14rem;margin:2px 0 0;padding:.25rem 0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 6px 16px #00000059}.resource-search-results li{cursor:pointer;color:var(--color-text);padding:.45rem .65rem;font-size:.9rem}.resource-search-results li[role=option]:hover,.resource-search-results li[role=option]:focus,.resource-search-results li[role=option].resource-search-hit-active{background:var(--color-accent-muted);outline:none}.resource-search-results .resource-search-empty{cursor:default;color:var(--color-balanced);font-size:.85rem}.resource-search-hit{align-items:center;gap:.45rem;display:flex}.resource-search-hit-label{min-width:0}.resource-picker-wrap{position:relative}select.resource-select-sr{clip-path:inset(50%);white-space:nowrap;opacity:0;pointer-events:none;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.resource-picker-trigger{text-align:left;width:100%;min-width:0;font:inherit;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);cursor:pointer;justify-content:flex-start;align-items:center;gap:.5rem;padding:.5rem .6rem;font-size:.95rem;display:flex}.resource-picker-trigger:focus{outline:2px solid var(--color-accent);outline-offset:1px}.resource-picker-trigger .resource-label-with-icon{min-width:0}.resource-picker-panel{z-index:20;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);max-height:18rem;margin-top:2px;padding:.35rem 0;position:absolute;top:100%;left:0;right:0;overflow:hidden auto;box-shadow:0 6px 16px #00000059}.resource-picker-group+.resource-picker-group{border-top:1px solid var(--color-border);margin-top:.35rem;padding-top:.35rem}.resource-picker-group-label{color:var(--color-balanced);padding:.25rem .65rem .15rem;font-size:.75rem;font-weight:600}.resource-picker-group-list{margin:0;padding:0;list-style:none}.resource-picker-option{cursor:pointer;color:var(--color-text);padding:.45rem .65rem;font-size:.9rem}.resource-picker-option:hover,.resource-picker-option:focus{background:var(--color-accent-muted);outline:none}.resource-picker-option .resource-label-with-icon{align-items:center;gap:.35rem;min-width:0;display:inline-flex}.resource-wiki-link-wrap{min-height:0;margin:.75rem 0;font-size:.85rem;line-height:1.4}.resource-wiki-link-wrap:empty{display:none}.resource-wiki-link{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline}.resource-wiki-link:hover{color:color-mix(in srgb, var(--color-accent) 75%, #fff)}.resource-label-with-icon{align-items:center;gap:.35rem;min-width:0;display:inline-flex}.resource-label-text{min-width:0}img.resource-icon{object-fit:contain;vertical-align:middle;image-rendering:auto;flex-shrink:0;width:1.25rem;height:1.25rem}.production-row-target .resource-label-with-icon{width:100%}select,input[type=number],input[type=search]{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);width:100%;color:var(--color-text);padding:.5rem .6rem;font-size:.95rem}select:focus,input[type=number]:focus,input[type=search]:focus{outline:2px solid var(--color-accent);outline-offset:1px}input.input-invalid{border-color:var(--color-deficit);outline:2px solid var(--color-deficit);outline-offset:1px}.production-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-top:1rem;margin-bottom:.5rem;display:flex}.panel .production-heading-row h3{margin:0}.production-clear-all{color:var(--color-accent);text-underline-offset:2px;white-space:nowrap;font-size:.85rem;text-decoration:underline}.production-clear-all:hover{color:color-mix(in srgb, var(--color-accent) 75%, #fff)}.production-hint{color:var(--color-balanced);margin-bottom:.6rem;font-size:.8rem;line-height:1.45}.production-add-field{margin-top:.75rem}.resource-picker-empty{color:var(--color-balanced);padding:.45rem .65rem;font-size:.85rem}.production-add-picker-wrap .resource-picker-trigger:disabled{cursor:not-allowed;opacity:.65}.production-row{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.production-row-target{border-radius:var(--radius);min-width:0;font:inherit;color:var(--color-balanced);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;margin:0;padding:.15rem .35rem;font-size:.85rem;display:flex}.production-row-target:hover{color:var(--color-text);background:var(--color-accent-muted)}.production-row-target:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.production-row-target[aria-pressed=true]{color:var(--color-text);border-left:3px solid var(--color-accent);padding-left:calc(.35rem - 3px);font-weight:600}.production-row input{width:6rem}.production-row-remove{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);width:1.75rem;height:1.75rem;color:var(--color-balanced);cursor:pointer;flex-shrink:0;padding:0;font-size:1.15rem;line-height:1}.production-row-remove:hover{color:var(--color-deficit);border-color:var(--color-deficit)}.production-presets{margin-top:0;padding-top:0}.production-presets-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.production-presets-row:last-child{margin-bottom:0}.production-presets-grid{grid-template-columns:auto 1fr;align-items:center;gap:.5rem;margin-bottom:.5rem;display:grid}.production-presets-grid>label{min-width:4.5rem;color:var(--color-balanced);flex:none;margin-bottom:0;font-size:.85rem}.production-presets-grid select{width:100%;min-width:10rem}.production-presets-actions-buttons{flex-wrap:wrap;grid-column:2;align-items:center;gap:.5rem;display:flex}.production-presets-row>label{min-width:4.5rem;color:var(--color-balanced);flex:none;margin-bottom:0;font-size:.85rem}.production-presets-row select{flex:1;min-width:10rem}.production-presets-save input[type=text]{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);min-width:8rem;color:var(--color-text);flex:1;padding:.5rem .6rem;font-size:.95rem}.btn{appearance:none;border-radius:var(--radius);border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-on-accent);cursor:pointer;white-space:nowrap;padding:.45rem .75rem;font-size:.9rem;font-weight:600}.btn:hover{filter:brightness(1.08)}.btn-secondary{border-color:var(--color-border);color:var(--color-text);background:0 0}.btn-secondary:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-muted)}.btn:disabled{cursor:not-allowed;opacity:.45;filter:none}.btn:disabled:hover{filter:none}.data-table{border-collapse:collapse;width:100%;margin-bottom:1.25rem;font-size:.9rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.4rem .6rem}.data-table th{color:color-mix(in srgb, var(--color-accent) 55%, var(--color-balanced));text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.data-table td .production-row-target{text-align:left;width:100%;display:flex}.tree-node .tree-label.production-row-target{vertical-align:middle;width:auto;display:inline-flex}.net-surplus td:nth-child(4),.net-surplus td:nth-child(5){color:var(--color-surplus);font-weight:600}.net-deficit td:nth-child(4),.net-deficit td:nth-child(5){color:var(--color-deficit);font-weight:600}.net-deficit{background:color-mix(in srgb, var(--color-deficit) 12%, transparent)}.net-surplus{background:color-mix(in srgb, var(--color-surplus) 12%, transparent)}.net-balanced td:nth-child(4),.net-balanced td:nth-child(5){color:var(--color-balanced)}.net-status-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:.1rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.net-deficit .net-status-badge{background:color-mix(in srgb, var(--color-deficit) 22%, transparent);color:var(--color-deficit)}.net-surplus .net-status-badge{background:color-mix(in srgb, var(--color-surplus) 22%, transparent);color:var(--color-surplus)}.net-balanced .net-status-badge{color:var(--color-balanced);background:#a0a0a026}.net-flow-chart-panel{max-width:min(100%, var(--layout-max-width));margin-left:auto;margin-right:auto;margin-top:var(--gap)}.net-flow-chart-root{min-height:.5rem}.net-flow-chart-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.85rem;display:flex}.net-flow-chart-toolbar label{color:color-mix(in srgb, var(--color-accent) 55%, var(--color-balanced));font-size:.85rem;font-weight:600}.net-flow-chart-toolbar select{min-width:12rem;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-recipe-border);border-radius:6px;padding:.35rem .5rem;font-size:.88rem}.net-flow-chart-legend{color:color-mix(in srgb, var(--color-text) 88%, transparent);margin-bottom:.75rem;font-size:.82rem;line-height:1.45}.net-flow-chart-empty{color:var(--color-balanced);margin:0;font-size:.9rem}.net-flow-chart-canvas-wrap{width:100%;max-width:100%;position:relative;overflow-x:auto}.tree-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.65rem;display:flex}.tree-bulk-btn{padding:.32rem .6rem;font-size:.82rem}.base-requirements-toolbar .tree-bulk-btn[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-muted);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-accent) 35%, transparent)}.tree-container{margin-bottom:1.25rem}.tree-node{border-left:2px solid color-mix(in srgb, var(--color-balanced) 45%, transparent);flex-wrap:wrap;align-items:center;gap:.25rem;padding:.35rem 0 .35rem .75rem;font-size:.9rem;display:flex;position:relative}.tree-node.tree-depth-0{border-left:none;padding-left:0}.tree-node:before{content:"";border-top:2px solid color-mix(in srgb, var(--color-balanced) 45%, transparent);width:.5rem;height:0;position:absolute;top:50%;left:-2px}.tree-node.tree-depth-0:before{display:none}.tree-label{color:var(--color-heading);font-weight:600}.tree-amount{color:var(--color-balanced);margin-left:.25rem;font-size:.85rem}.tree-arrow{color:color-mix(in srgb, var(--color-accent) 55%, var(--color-balanced));margin-right:.25rem}.tree-toggle,.tree-toggle-spacer{box-sizing:border-box;flex:0 0 1.35rem;width:1.35rem;height:1.35rem;margin:0;padding:0}.tree-toggle{background:color-mix(in srgb, var(--color-accent) 12%, transparent);color:var(--color-accent);cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.tree-toggle:hover{background:color-mix(in srgb, var(--color-accent) 22%, transparent)}.tree-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.tree-toggle-chevron:before{content:"▼";transform-origin:50% 55%;font-size:.55rem;line-height:1;transition:transform .15s;display:block}.tree-branch.tree-collapsed .tree-toggle-chevron:before{transform:rotate(-90deg)}.tree-toggle-spacer{flex-shrink:0;display:inline-block}.tree-children{margin:0;padding:0}.panel-inputs .recipe-diagram-section.results-section,.app-target-panel .recipe-diagram-section.results-section{margin-top:1.5rem;margin-bottom:.5rem}.panel-inputs .recipe-diagram-section .results-section-summary,.app-target-panel .recipe-diagram-section .results-section-summary{margin-bottom:.25rem;padding:.28rem .4rem .28rem .5rem;font-size:.88rem}.panel-inputs .recipe-diagram-section .results-section-body,.app-target-panel .recipe-diagram-section .results-section-body{padding-bottom:.25rem}.recipe-diagram-section[hidden]{display:none!important}.target-recipe-diagram{margin:0}.recipe-diagram-hint{color:var(--color-balanced);margin:0 0 .4rem;font-size:.68rem;line-height:1.35}.recipe-diagram-accent{color:var(--color-accent);font-weight:600}.recipe-diagram-empty{color:var(--color-balanced);margin:0;font-size:.75rem}.recipe-card-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.recipe-card-item{margin:0;padding:0}.recipe-card-li{list-style:none}button.recipe-card{box-sizing:border-box;border:1px solid var(--color-recipe-border);background:var(--color-surface);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:4px;flex-wrap:wrap;align-items:center;gap:.3rem .45rem;margin:0;padding:.3rem .4rem;display:flex}button.recipe-card:hover{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-recipe-border))}button.recipe-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button.recipe-card[aria-pressed=true]{border-color:var(--color-accent);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-accent) 35%, transparent)}.recipe-machine{min-width:min(100%,9rem);color:var(--color-heading);flex-wrap:wrap;flex:0 auto;align-items:center;gap:.1rem .25rem;font-size:.72rem;font-weight:600;display:flex}.recipe-machine-icon{color:var(--color-text);opacity:.95;display:inline-flex}.recipe-machine-svg{vertical-align:middle;display:block}.recipe-machine-sep{color:var(--color-heading);font-weight:700}.recipe-building-name{font-weight:600}.recipe-io{flex-wrap:wrap;flex:10rem;justify-content:center;align-items:center;gap:.2rem .35rem;display:flex}.recipe-item-stack{flex-direction:column;align-items:center;gap:.05rem;min-width:2.35rem;display:flex}.recipe-item-stack .resource-icon{object-fit:contain;width:22px;height:22px}.recipe-item-qty{color:var(--color-heading);font-size:.68rem;font-weight:700;line-height:1.2}.recipe-item-rate{color:var(--color-rate);font-size:.65rem;font-weight:700;line-height:1.2}.recipe-item-icon-fallback{background:color-mix(in srgb, var(--color-balanced) 25%, transparent);border-radius:3px;width:22px;height:22px;display:block}.recipe-no-inputs{color:var(--color-balanced);font-size:.75rem;font-weight:600}.recipe-plus{color:var(--color-heading);align-self:center;padding:0 .05rem;font-size:.8rem;font-weight:700;line-height:1}.recipe-arrow-block{flex-direction:column;flex:none;justify-content:center;align-items:center;gap:.05rem;min-width:4.25rem;display:flex}.recipe-time-primary,.recipe-time-secondary{color:var(--color-heading);justify-content:center;align-items:center;gap:.15rem;font-size:.65rem;font-weight:600;line-height:1.2;display:flex}.recipe-time-secondary{color:var(--color-rate)}.recipe-time-val{white-space:nowrap}.recipe-out-rate-suffix{color:var(--color-rate);opacity:.9;font-size:.62rem;font-weight:600}.recipe-clock-svg{color:currentColor;opacity:.85;flex-shrink:0}.recipe-arrow{letter-spacing:-.05em;color:var(--color-heading);font-family:ui-monospace,monospace;font-size:.72rem;font-weight:700;line-height:1}@media (width<=640px){.recipe-card-item button.recipe-card{flex-direction:column;align-items:stretch}.recipe-io{justify-content:flex-start}.recipe-arrow-block{flex-flow:wrap;justify-content:center;width:100%;min-width:0}}
