/* AGENT DUNGEON — css/builder.css : the build-mode panel (js/builder.js). Tokens come from css/app.css. */
#builder{position:fixed;left:12px;top:12px;bottom:12px;width:312px;z-index:30;display:flex;flex-direction:column;box-sizing:border-box;
  background:var(--glass);border:1px solid var(--line-dim);border-radius:10px;box-shadow:0 0 0 1px rgba(0,0,0,.4),0 0 24px rgba(92,212,242,.08);color:var(--text);font-family:var(--font-ui);font-size:12px;overflow:hidden}
#builder[hidden]{display:none}
#builder *{box-sizing:border-box}
#builder button{padding:5px 8px;font-size:11px;border-radius:5px;line-height:1.2}
#builder button:active{transform:translateY(1px)}
#builder button.active{border-color:var(--line);color:#fff;background:rgba(92,212,242,.14);box-shadow:0 0 10px var(--line-faint)}
#builder button.danger{color:var(--bad);border-color:rgba(255,92,92,.45)}
#builder button.danger:hover{border-color:var(--bad);box-shadow:0 0 10px rgba(255,92,92,.25)}
#builder button.primary{background:rgba(92,212,242,.16);border-color:var(--line)}
#builder input,#builder select{width:100%;font-size:12px;padding:4px 6px}
#builder input[type=number]{padding-right:2px}
#builder input[type=checkbox]{width:auto;margin:0 6px 0 0}
#builder .mono{font-family:var(--font-mono);font-size:14px;letter-spacing:.02em}
.bld-head{display:flex;align-items:center;gap:8px;padding:9px 10px 8px;border-bottom:1px solid var(--line-faint);background:rgba(92,212,242,.05)}
.bld-title{color:var(--line);font-weight:700;letter-spacing:.14em;font-size:12px}
.bld-name{color:var(--text-dim);letter-spacing:.08em;font-size:11px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bld-io2{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:8px 10px 4px}
#builder .bld-io2 button{padding:5px 2px;font-size:10px;letter-spacing:.04em}
.bld-tools{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:4px 10px 6px}
#builder .bld-tool{display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 2px 4px;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;line-height:1}
#builder .bld-tool .k{font-family:var(--font-mono);font-size:13px;color:var(--text-dim);line-height:1}
#builder .bld-tool.active .k{color:#fff}
.bld-legend{padding:1px 12px 6px;font-size:10px;line-height:1.4;letter-spacing:.04em;color:var(--text-dim)}
.bld-legend b{color:var(--line);font-weight:600}
.bld-io{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px 6px;font-size:11px;color:var(--text-dim);letter-spacing:.06em;border-bottom:1px solid var(--line-faint)}
.bld-io a{color:var(--line);text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-weight:600}
.bld-io a:hover{text-shadow:0 0 8px var(--line-faint)}
.bld-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 10px 12px;scrollbar-width:thin;scrollbar-color:var(--line-dim) transparent}
.bld-body::-webkit-scrollbar{width:8px}.bld-body::-webkit-scrollbar-thumb{background:var(--line-dim);border-radius:4px}
.bld-sec{color:var(--text-dim);font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin:10px 0 6px;display:flex;align-items:center;gap:8px}
.bld-sec::after{content:'';flex:1;height:1px;background:var(--line-faint)}
.bld-sec:first-child{margin-top:2px}
.bld-sec.fold{cursor:pointer;user-select:none}
.bld-sec.fold:hover{color:var(--text)}
.bld-sec .n{font-family:var(--font-mono);font-size:12px;letter-spacing:0;color:var(--text-dim)}
.bld-sec .tri{font-size:9px;color:var(--line);width:9px;display:inline-block}
.bld-sec .sw{width:7px;height:7px;border-radius:2px;display:inline-block;box-shadow:0 0 6px currentColor}
.bld-sec.shut .tri{transform:rotate(-90deg)}
.bld-filter{display:flex;gap:6px;align-items:center;margin:2px 0 8px}
#builder .bld-filter input{flex:1;padding:5px 8px;letter-spacing:.06em}
#builder .bld-filter button{padding:5px 7px}
.bld-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.bld-grid.recent{grid-template-columns:repeat(4,minmax(0,1fr))}
#builder .bld-tile.hero{border-color:rgba(255,200,87,.45)}
#builder .bld-tile .tag{font-size:8px;letter-spacing:.14em;color:var(--warn);line-height:1}
.bld-badges{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 2px}
.bld-badge{font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:2px 6px;border-radius:4px;border:1px solid var(--line-dim);color:var(--line);white-space:nowrap}
.bld-badge.hero{color:var(--warn);border-color:rgba(255,200,87,.5)}
.bld-badge.ok{color:var(--ok);border-color:rgba(110,231,160,.5)}
.bld-badge.warn{color:var(--warn);border-color:rgba(255,200,87,.5)}
.bld-badge.bad{color:var(--bad);border-color:rgba(255,92,92,.5)}
#builder .bld-tile{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:6px 4px 5px;background:var(--glass2);border:1px solid rgba(92,212,242,.22);border-radius:6px;cursor:pointer;color:var(--text);text-transform:none;letter-spacing:0;font-weight:500}
#builder .bld-tile:hover{border-color:var(--line-dim);box-shadow:0 0 10px var(--line-faint)}
#builder .bld-tile.active{border-color:var(--line);box-shadow:0 0 0 1px var(--line),0 0 14px var(--line-faint);background:rgba(92,212,242,.12)}
.bld-tile canvas{width:100%;max-width:84px;height:auto;aspect-ratio:7/5;image-rendering:pixelated;image-rendering:crisp-edges;display:block}  /* VQ-13: fills the card (was 56px in a ~90px card) */
.bld-grid.recent .bld-tile canvas{max-width:56px}
.bld-tile .lbl{font-size:9px;letter-spacing:.05em;text-transform:uppercase;line-height:1.15;text-align:center;max-width:100%;overflow:hidden;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}  /* VQ-13: two lines, no ellipsis */
.bld-tile .sz{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);line-height:1}
.bld-card{background:var(--glass2);border:1px solid var(--line-dim);border-radius:8px;padding:9px 10px 10px;margin-bottom:10px;box-shadow:0 0 14px var(--line-faint)}
.bld-card h4{margin:0 0 6px;color:var(--line);font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:8px}
.bld-card h4 .dot{width:8px;height:8px;border-radius:50%;display:inline-block;box-shadow:0 0 8px currentColor}
#builder .bld-card h4 .x{margin-left:auto;padding:1px 6px;font-size:11px}
.bld-row{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:6px;margin:5px 0}
.bld-row label,.bld-k{color:var(--text-dim);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.bld-v{font-family:var(--font-mono);font-size:15px;color:var(--text);line-height:1.1}
.bld-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin-top:8px}
.bld-actions.two{grid-template-columns:1fr 1fr}
.bld-2{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:5px 0}
.bld-4{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:6px 0}
.bld-f{display:flex;flex-direction:column;gap:3px}
.bld-f span{color:var(--text-dim);font-size:9px;letter-spacing:.16em;text-transform:uppercase}
.bld-check{display:flex;align-items:center;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin:6px 0;cursor:pointer}
.bld-check.off{opacity:.45;cursor:default}
.bld-meta{font-family:var(--font-mono);font-size:13px;color:var(--text-dim);margin:4px 0 6px}
.bld-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:4px 0 7px}
.bld-stat{background:rgba(0,0,0,.25);border:1px solid var(--line-faint);border-radius:5px;padding:4px 5px;display:flex;flex-direction:column;gap:1px;min-width:0}
.bld-stat span{color:var(--text-dim);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase}
.bld-stat b{font-family:var(--font-mono);font-size:15px;font-weight:400;color:var(--text);line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bld-stat.bad b{color:var(--bad)}.bld-stat.warn b{color:var(--warn)}.bld-stat.ok b{color:var(--ok)}
.bld-conn{font-size:10.5px;letter-spacing:.06em;line-height:1.4;padding:6px 8px;border-radius:6px;margin:2px 0 8px;border:1px solid var(--line-faint);color:var(--ok);background:rgba(110,231,160,.06)}
.bld-conn.bad{color:var(--bad);border-color:rgba(255,92,92,.45);background:rgba(255,92,92,.08)}
.bld-conn b{font-weight:600}
.bld-zone{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:6px 8px;border:1px solid rgba(92,212,242,.18);border-radius:6px;margin-bottom:5px;cursor:pointer;background:rgba(0,0,0,.18)}
.bld-zone:hover{border-color:var(--line-dim)}
.bld-zone.active{border-color:var(--line);box-shadow:0 0 10px var(--line-faint)}
.bld-zone.corridor{border-style:dashed}
.bld-zone.sub{margin-left:14px}
.bld-zone.unreachable{border-color:rgba(255,92,92,.55);box-shadow:inset 3px 0 0 var(--bad)}
.bld-zone .nm{color:var(--line);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bld-zone .st{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);white-space:nowrap}
.bld-zone .st i{font-style:normal;color:var(--bad)}
.bld-zone .st u{text-decoration:none;color:var(--warn)}
.bld-kind{font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:2px 6px;border-radius:4px;border:1px solid var(--line-dim);color:var(--line);white-space:nowrap}
.bld-kind.corridor{color:var(--warn);border-color:rgba(255,200,87,.5)}
.bld-kind.sub{color:var(--accent);border-color:rgba(169,139,255,.5)}
.bld-swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:4px 0 6px}  /* VQ-13: 4 per row so CORRIDOR fits and HEX NAVY / MARS DUST wrap */
.bld-swatches.walls{grid-template-columns:repeat(3,1fr)}
#builder .bld-sw{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 2px 3px;background:rgba(0,0,0,.2);border:1px solid rgba(92,212,242,.2);border-radius:5px;cursor:pointer;text-transform:none;letter-spacing:0;min-width:0}
#builder .bld-sw.active{border-color:var(--line);box-shadow:0 0 0 1px var(--line),0 0 12px var(--line-faint)}
#builder .bld-sw canvas{width:100%;max-width:56px;height:auto;aspect-ratio:5/3;image-rendering:pixelated;display:block;border-radius:2px}
.bld-swatches.walls .bld-sw canvas{max-width:72px;aspect-ratio:8/3}
#builder .bld-sw span{font-size:8.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);max-width:100%;overflow:hidden;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
#builder .bld-sw.active span{color:var(--text)}
#builder .bld-sw.erase canvas{background:repeating-linear-gradient(45deg,rgba(255,92,92,.5) 0 4px,transparent 4px 8px)}
.bld-brush{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:4px 0}
.bld-counter{font-family:var(--font-mono);font-size:13px;color:var(--text-dim);margin:4px 0 2px}
.bld-counter b{color:var(--line);font-weight:400}
.bld-doors{font-family:var(--font-mono);font-size:13px;color:var(--text);margin:3px 0}
.bld-doors .d{display:inline-block;padding:1px 6px;border:1px solid var(--line-faint);border-radius:4px;margin:2px 3px 2px 0}
#builder .bld-add{width:100%;margin-top:4px;padding:8px}
.bld-hint{border-top:1px solid var(--line-faint);padding:7px 12px;font-size:10.5px;line-height:1.35;letter-spacing:.06em;color:var(--text-dim);min-height:34px;background:rgba(0,0,0,.25);transition:color .2s}
.bld-hint.flash{color:var(--ok)}.bld-hint.flash.bad{color:var(--bad)}
.bld-hint b{color:var(--line);font-weight:600}
.bld-empty{color:var(--text-dim);font-size:11px;padding:8px 2px;letter-spacing:.06em;line-height:1.4}
/* build-mode offsets for UI's toast stack / wordmark live with their owner: js/ui.js CSS (.od-toasts / .od-brand), left = 12 + 312 + 14 */
/* VQ-13 — narrow viewports in BUILD mode. UI centres its HUD on the whole window (js/ui.js .od-hud); with the "BUILD MODE" pill it
   is ~470-490px wide, so below ~1150px its left end (CREW · BUILD) runs under this panel and its hint box (12 + 312 = 324px; the
   1280 breakpoint leaves margin for font metrics). These rules exist only because of the panel's geometry, so they live here:
   re-centre the HUD on the free canvas right of the panel (offset 324 / 2 = 162px) and under 1000px drop the pill (redundant:
   the BUILD button is already amber and the panel header says BUILD). The toast lift for the same widths is in css/app.css. */
@media (max-width:1280px){
  body[data-mode="build"] .od-hud{left:calc(50% + 162px)}
}
@media (max-width:1000px){
  body[data-mode="build"] #ui .od-hud .hud-mode{display:none}
}

/* v4 SIMPLE BUILDER: tabs, chips, footer */
#builder button.ico{padding:4px 7px;font-size:13px;line-height:1}
.bld-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 10px 6px;border-bottom:1px solid var(--line-faint)}
#builder .bld-tab{padding:9px 4px;font-size:12px;letter-spacing:.18em;font-weight:700;border-radius:6px;background:rgba(6,16,30,.6)}
#builder .bld-tab.active{background:rgba(92,212,242,.18);border-color:var(--line);color:#fff;box-shadow:0 0 14px var(--line-faint),inset 0 -2px 0 var(--line)}
.bld-chips{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}
#builder .bld-chip{padding:4px 8px;font-size:10px;letter-spacing:.08em;border-radius:999px;background:rgba(6,16,30,.6)}
#builder .bld-chip.active{background:rgba(92,212,242,.16);border-color:var(--line);color:#fff}
.bld-help{flex-basis:100%;color:var(--text-dim);font-size:10.5px;line-height:1.45;letter-spacing:.03em;margin-top:2px}
.bld-foot{display:flex;align-items:center;gap:8px;padding:8px 10px;border-top:1px solid var(--line-faint)}
#builder .bld-foot button.primary{padding:7px 16px;font-size:12px;letter-spacing:.14em}
.bld-saved{flex:1;color:var(--text-dim);font-size:10.5px;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bld-more{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px 8px;border-top:1px solid var(--line-faint);background:rgba(6,16,30,.5)}
.bld-more[hidden]{display:none}
.bld-more .bld-legend{padding:4px 0 0;flex-basis:100%}
.bld-dl{color:var(--line);text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-weight:600;font-size:11px;padding:5px 8px;border:1px solid var(--line-dim);border-radius:5px}

.bld-tools[hidden]{display:none}
