.simulator{--sim-bg:#f8faf2;--sim-surface:#fffef8;--sim-line:#d9e2cf;--sim-ink:#294631;--sim-muted:#667a5e;--sim-selected:#456b38;margin:22px 0;color:var(--sim-ink)}
.sim-title,.sim-selected-head,.sim-recommend-head,.sim-result-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.sim-title h2{margin:5px 0}.sim-model-tag{border:1px solid #baa976;color:#796327;border-radius:20px;font-size:11px;padding:4px 10px;white-space:nowrap}.sim-intro{font-size:13px;margin:12px 0}.sim-boundary{display:flex;flex-direction:column;gap:5px;border-left:3px solid #b59952;background:#b5995210;padding:12px 15px;margin:16px 0;font-size:12px;line-height:1.8}.sim-boundary b{font-weight:650}.simulator [hidden]{display:none!important}.sim-settings{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin:20px 0}.sim-settings label,.sim-palette label,.sim-mutation-controls label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px}.sim-settings label{flex:1;max-width:240px}.sim-settings>span{font-size:11px;color:var(--sim-muted);padding:8px 0}.simulator input:not([type=checkbox]):not([type=range]):not([type=file]),.simulator select{width:100%;border:1px solid var(--sim-line);border-radius:6px;background:var(--sim-bg);color:inherit;padding:9px;font:inherit;min-width:0}.simulator .choice-trigger{min-width:0;width:100%}.sim-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.85fr);gap:20px;align-items:start}.sim-field{min-width:0}.sim-palette{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin-bottom:15px}.sim-palette>label{flex:1;min-width:180px}.sim-palette>.btn{margin-bottom:3px}.sim-bank-label{font-size:10px;color:var(--sim-muted);margin:8px 0;text-align:center;letter-spacing:.1em}.sim-grid-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;margin:4px 0}.sim-cell{position:relative;border:1px solid #c3d0ae;background:#dfe9cf;border-radius:6px;min-height:57px;padding:3px 0 15px;display:flex;align-items:center;justify-content:center;min-width:0;color:var(--sim-muted);transition:background .1s,border-color .1s}.sim-cell img{width:36px;height:36px;object-fit:contain;filter:drop-shadow(0 2px 2px #183d2120);pointer-events:none}.sim-cell small{position:absolute;bottom:1px;left:0;right:0;text-align:center;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.sim-empty-cell{font-size:17px;opacity:.5}.sim-cell.selected{outline:2px solid var(--sim-selected);outline-offset:1px;background:#b8cf98;z-index:1}.sim-cell.near{border:2px solid #557dac;background:#d2e1ee}.sim-cell.locked:after{content:"";position:absolute;right:4px;top:4px;width:5px;height:5px;border-radius:50%;background:#6b6b47}.sim-cell.suggested{box-shadow:inset 0 0 0 2px #b38e36}.sim-board-foot{display:flex;gap:12px;justify-content:space-between;margin:12px 0;font-size:10px;color:var(--sim-muted);flex-wrap:wrap}.sim-road{position:relative;height:51px;margin:13px 0;background:#e3dfd2;border-top:1px solid #c8c2af;border-bottom:1px solid #c8c2af;overflow:hidden}.sim-road:before{content:"";position:absolute;left:0;right:0;top:24px;border-top:1px dashed #aaa58f}.sim-road-arrow{position:absolute;left:50%;top:17px;transform:translateX(-50%);font-size:10px;white-space:nowrap;color:#625e4b}.sim-reach{position:absolute;top:0;bottom:0;background:#80a85c35;border-left:2px solid #799a57;border-right:2px solid #799a57}.sim-enemy{position:absolute;top:12px;width:25px;height:25px;margin-left:-12px;background:#c37163;border:1px solid #844f46;border-radius:50%;color:white;text-align:center;line-height:21px;font-size:10px;box-shadow:0 2px 3px #0002}.sim-enemy i{position:absolute;left:0;bottom:-4px;height:3px;background:#4c8b43;border-radius:2px}.sim-enemy.retreat{background:#8b839d}.sim-off-left,.sim-off-right{position:absolute;top:0;font-size:10px;background:#d1c9b1;color:#514b37;padding:0 4px}.sim-off-left{left:0}.sim-off-right{right:0}.sim-road-caption{text-align:center;font-size:10px}.sim-editor{border:1px solid var(--sim-line);border-radius:9px;padding:17px;background:var(--sim-bg);min-width:0}.sim-editor>p{font-size:12px;line-height:1.8;margin:12px 0}.sim-selected-head{justify-content:start}.sim-selected-head img,.sim-recommend-head img{width:46px;height:46px;object-fit:contain;flex-shrink:0}.sim-selected-head h3{font-size:16px;margin:0}.sim-selected-head small,.sim-recommend-head small{display:block;font-size:10px;color:var(--sim-muted);margin-top:4px}.sim-label{display:flex;flex-direction:column;font-size:12px;gap:6px;margin:15px 0}.sim-check{display:flex;align-items:start;gap:7px;font-size:11px;margin:12px 0;line-height:1.7}.sim-check input,.sim-mutation-checks input{accent-color:#5d7f45;margin-top:4px}.sim-number-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sim-number-pair>label{font-size:11px;display:flex;flex-direction:column;gap:7px}.sim-editor h4{font-size:12px;margin:18px 0 9px}.sim-mutation-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.sim-mutation-checks label{display:flex;gap:5px;align-items:center;font-size:11px}.sim-other{font-size:11px;margin:16px 0}.sim-other summary,.sim-method summary{cursor:pointer;color:var(--sim-muted)}.sim-plant-note{color:var(--sim-muted);font-size:11px!important}.sim-attr-summary{font-size:11px;border-top:1px solid var(--sim-line);padding:12px 0}.sim-secondary-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.sim-inventory{margin:28px 0 20px;border-top:1px solid var(--sim-line);padding-top:10px}.sim-inventory .section-head{margin:14px 0 8px}.sim-inventory .section-head>span{font-size:10px;color:var(--sim-muted)}.sim-seed-mode{display:flex;gap:10px;align-items:center;font-size:12px;max-width:450px;margin:14px 0}.sim-seed-mode select{flex:1}.sim-inventory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.sim-inventory-grid>label{display:flex;gap:7px;align-items:center;border:1px solid var(--sim-line);padding:8px;border-radius:7px;min-width:0}.sim-inventory-grid img{width:31px;height:31px;object-fit:contain;flex-shrink:0}.sim-inventory-grid>label>span{font-size:11px;line-height:1.5;flex:1;min-width:0}.sim-inventory-grid input{width:58px!important;padding:7px 4px!important;font-size:11px!important;text-align:center}.sim-primary-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:22px 0}.sim-primary-actions>span{font-size:11px;color:var(--sim-muted)}.sim-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.sim-metrics>div{display:flex;flex-direction:column;gap:5px;padding:12px;background:var(--sim-bg);border:1px solid var(--sim-line);border-radius:7px;min-width:0}.sim-metrics small{color:var(--sim-muted);font-size:10px}.sim-metrics b{font-size:21px;overflow-wrap:anywhere}.sim-result-panel,.sim-proposal{padding:20px 0;border-top:1px solid var(--sim-line)}.sim-result-title{flex-wrap:wrap}.sim-result-title>span{font-size:11px;color:var(--sim-muted)}.sim-contribution-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin:15px 0}.sim-contribution{display:flex;gap:9px;align-items:center;min-width:0;text-align:left;border:0;border-bottom:1px solid var(--sim-line);background:none;color:inherit;padding:10px 0}.sim-contribution img{width:36px;height:36px;object-fit:contain;flex-shrink:0}.sim-contribution>div{flex:1;min-width:0}.sim-contribution>span{text-align:right;font-size:12px}.sim-contribution b{font-size:12px}.sim-contribution small{display:block;color:var(--sim-muted);font-size:9px;line-height:1.7}.sim-bar{display:block;background:var(--sim-bg);height:5px;border-radius:3px;margin-top:5px;overflow:hidden}.sim-bar>span{display:block;height:100%;background:#7ca05e;border-radius:3px}.sim-replay{display:flex;gap:12px;align-items:center;margin:18px 0}.sim-replay input{flex:1;min-width:50px;accent-color:#718d54}.sim-replay output{font-size:11px;min-width:44px}.sim-comparison{display:flex;gap:20px;align-items:center;justify-content:center;margin:18px 0}.sim-comparison>div{display:flex;flex-direction:column;gap:6px;flex:1;padding:15px;background:var(--sim-bg);border:1px solid var(--sim-line);border-radius:8px}.sim-comparison small,.sim-comparison span{font-size:11px;color:var(--sim-muted)}.sim-comparison b{font-size:24px}.sim-proposal>p{font-size:12px;line-height:1.8}.sim-mutation{border-top:1px solid var(--sim-line);padding-top:22px;margin-top:14px}.sim-mutation>h3{margin-bottom:10px}.sim-mutation-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:15px 0}.sim-mutation-controls label{flex:1;max-width:350px}.sim-recommendations{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.sim-recommendations article{border:1px solid var(--sim-line);border-radius:8px;padding:15px;min-width:0}.sim-recommend-head{justify-content:start}.sim-recommendations p{font-size:11px;line-height:1.8;margin-top:10px}.sim-method{margin-top:22px;font-size:12px;line-height:1.9}.sim-method ul{padding-left:20px;color:var(--sim-muted)}.sim-method li{margin:8px 0}.sim-storage{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--sim-line);margin-top:22px;padding-top:16px;font-size:10px;color:var(--sim-muted)}.sim-storage>div{display:flex;gap:8px}.sim-import{position:relative;overflow:hidden}.sim-import input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.sim-preview-note{border:1px solid #b38e36;color:#806629;background:#b38e3612;padding:8px 12px;border-radius:6px;font-size:11px;margin-bottom:9px}
html[data-theme=dark] .simulator{--sim-bg:#243528;--sim-surface:#1c2921;--sim-line:#48603f;--sim-ink:#d0dfc2;--sim-muted:#a6b99a;--sim-selected:#bbce8c}html[data-theme=dark] .sim-cell{background:#35472c;border-color:#61704b;color:#b6c9a3}html[data-theme=dark] .sim-cell.selected{background:#4f6d36}html[data-theme=dark] .sim-cell.near{background:#29495c;border-color:#789abd}html[data-theme=dark] .sim-road{background:#37372c;border-color:#63614d}html[data-theme=dark] .sim-road-arrow{color:#b3b29a}html[data-theme=dark] .sim-model-tag,html[data-theme=dark] .sim-preview-note{color:#d3bd7d}
@media(max-width:1100px){.sim-inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:850px){.sim-layout{grid-template-columns:1fr}.sim-editor{margin-top:5px}.sim-contribution-list,.sim-recommendations{grid-template-columns:1fr}.sim-metrics{grid-template-columns:1fr 1fr}.sim-inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.simulator{padding:14px}.sim-cell{min-height:48px}.sim-cell img{width:29px;height:29px}.sim-grid-row{gap:3px}.sim-palette>label{flex-basis:100%}.sim-inventory-grid>label{padding:7px 5px;gap:4px}.sim-inventory-grid input{width:45px!important}.sim-inventory-grid img{width:27px;height:27px}.sim-inventory-grid>label>span{font-size:10px}.sim-mutation-checks{grid-template-columns:repeat(3,minmax(0,1fr))}.sim-comparison{gap:10px}.sim-comparison>div{padding:10px}.sim-selected-head img{width:40px;height:40px}}

.sim-export-dialog{width:min(650px,92vw);border:1px solid #799568;border-radius:12px;padding:24px}.sim-export-dialog p{font-size:12px;line-height:1.8;margin:12px 0}.sim-export-dialog textarea{width:100%;height:260px;resize:vertical;font:12px/1.7 monospace;border:1px solid #aab99b;border-radius:7px;padding:10px;background:transparent;color:inherit}.sim-export-dialog::backdrop{background:#10251b99}

.sim-weight-guide{border-top:1px solid var(--sim-line);margin:16px 0;padding:12px 0}.sim-weight-guide p{font-size:12px;line-height:1.75;margin:8px 0}.sim-weight-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sim-weight-list p{padding:8px;background:var(--sim-bg);border-radius:6px}.sim-export-dialog{background:var(--panel,#fff);color:var(--ink,#27382b)}html[data-theme=dark] .sim-export-dialog{background:#1c2921;color:#d0dfc2}

/* Direct placement palette and one-bank board. */
.sim-field-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}.sim-field-tools .sim-check{margin:0;font-size:12px}.sim-field-tools>span{font-size:10px;color:var(--sim-muted)}.sim-sidebar{min-width:0;display:flex;flex-direction:column;gap:16px}.sim-palette-panel{border:1px solid var(--sim-line);background:var(--sim-bg);padding:15px;border-radius:10px}.sim-palette-panel h3{font-size:16px;margin:0 0 6px}.sim-palette-panel>.hint{margin-bottom:12px}.sim-plant-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.sim-plant-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;padding:8px 3px;border:1px solid var(--sim-line);border-radius:7px;background:var(--sim-surface);color:inherit;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.sim-plant-tile img{width:36px;height:36px;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.sim-plant-tile>span{font-size:11px;line-height:1.5;text-align:center;overflow-wrap:anywhere}.sim-plant-tile.selected{border-color:var(--sim-selected);box-shadow:inset 0 0 0 1px var(--sim-selected)}.sim-cell[data-sim-occupied]{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.sim-cell img{pointer-events:none;-webkit-user-drag:none}.sim-drag-source{opacity:.35}.sim-drop-hover{outline:3px solid var(--sim-selected)!important;outline-offset:1px;background:#96b56b44!important}.sim-remove-zone{width:100%;min-height:56px;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:10px;background:transparent;color:var(--sim-muted);border:1px dashed var(--sim-line);border-radius:8px;padding:9px;cursor:pointer;font:inherit}.sim-remove-zone span{font-size:12px}.sim-remove-zone small{display:block;font-size:9px;margin-top:3px}.sim-remove-zone svg{flex-shrink:0}.sim-remove-zone.sim-drop-hover{outline-color:#b45448!important;color:#a13f35}@media(max-width:850px){.sim-dragging-existing .sim-remove-zone{position:fixed;z-index:1002;left:50%;bottom:20px;transform:translateX(-50%);width:230px;background:var(--sim-surface);border-color:#bc796e;box-shadow:0 5px 24px #0003}}.sim-editor{position:static;top:auto}.sim-locked-bank{border:1px dashed var(--sim-line);border-radius:8px;padding:20px 12px;text-align:center;color:var(--sim-muted);background:var(--sim-bg)}.sim-locked-bank b{display:block;font-size:12px;margin-bottom:6px}.sim-locked-bank span{font-size:10px}.sim-drag-ghost{position:fixed;z-index:1200;pointer-events:none;display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:10px;background:#fffef8;color:#294631;border:2px solid #718d54;box-shadow:0 5px 24px #0004;max-width:160px;font-size:12px}.sim-drag-ghost img{width:36px;height:36px;object-fit:contain}.sim-drag-ghost.invalid{border-color:#bc796e;opacity:.75}html[data-theme=dark] .sim-drag-ghost{background:#243528;color:#d0dfc2}
@media(max-width:850px){.sim-sidebar{display:contents}.sim-palette-panel{grid-row:1}.sim-field{grid-row:2}.sim-editor{grid-row:3}.sim-plant-list{grid-template-columns:repeat(5,minmax(0,1fr))}.sim-palette-panel{padding:10px}.sim-palette-panel>.hint{margin-bottom:8px}.sim-plant-tile{padding:6px 1px;gap:3px}.sim-plant-tile img{width:30px;height:30px}.sim-plant-tile>span{font-size:10px}.sim-remove-zone{min-height:42px;margin-top:8px}.sim-remove-zone small{display:inline;margin-left:8px}.sim-field-tools{margin-top:8px}.sim-storage>div{flex-wrap:wrap}}

.sim-plant-tile,.sim-cell[data-sim-occupied]{-webkit-touch-callout:none}

@media(max-width:850px){.sim-settings>label{flex:1 1 140px;max-width:none}.sim-settings>span{flex-basis:100%;padding:0}.sim-plant-tile>span{max-width:100%}}
@media(max-width:850px){.sim-dragging-existing .sim-palette-panel{padding-bottom:60px}}

/* The board and palette share a row; plant details use the full row below. */
.sim-layout{grid-template-columns:minmax(0,1.85fr) minmax(245px,.85fr);gap:18px;align-items:start}.sim-layout>.sim-editor{grid-column:1/-1;margin-top:0;padding:18px}.sim-cell{min-height:76px}.sim-cell img{width:39px;height:39px}.sim-cell small{font-size:11px}.sim-road{min-height:64px}.sim-new-source{display:flex;flex-direction:column;gap:5px;font-size:11px;margin:10px 0 14px}.sim-new-source select{width:100%;font-size:11px;padding:8px}.sim-unit-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--sim-line)}.sim-unit-head .sim-check{margin:0}.sim-editor-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:22px;margin-top:16px}.sim-editor-grid>section{min-width:0}.sim-editor-grid h4{margin:0 0 12px;font-size:13px}.sim-editor-grid p{font-size:11px;line-height:1.8}.sim-attr-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0;border:0;margin-top:12px}.sim-attr-summary>div{display:flex;flex-direction:column;gap:6px;padding:10px 7px;border:1px solid var(--sim-line);border-radius:7px;min-width:0}.sim-attr-summary small{font-size:9px;color:var(--sim-muted)}.sim-attr-summary b{font-size:14px;overflow-wrap:anywhere}.sim-weight-control{display:flex;align-items:stretch;gap:5px;margin-top:7px}.sim-weight-control input{width:100%;min-width:0;text-align:center;font-variant-numeric:tabular-nums}.sim-weight-control button{min-width:38px;min-height:40px;padding:5px;font-size:18px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.sim-editor .sim-mutation-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.sim-weight-guide{margin-bottom:0}.sim-weight-list{grid-template-columns:repeat(4,minmax(0,1fr))}.sim-editor .sim-other{margin-top:10px}
@media(min-width:851px) and (max-width:1100px){.sim-layout{grid-template-columns:minmax(0,1fr) 245px}.sim-editor-grid{grid-template-columns:1fr 1fr}.sim-editor-grid>section:last-child{grid-column:1/-1}}
@media(max-width:850px){.sim-layout{grid-template-columns:1fr}.sim-cell{min-height:52px}.sim-cell img{width:31px;height:31px}.sim-editor-grid{grid-template-columns:1fr 1fr;gap:16px}.sim-editor-grid>section:last-child{grid-column:1/-1}.sim-layout>.sim-editor{padding:14px}.sim-weight-list{grid-template-columns:repeat(2,minmax(0,1fr))}.sim-new-source{flex-direction:row;align-items:center;gap:10px}.sim-new-source select{flex:1;min-width:0}}
@media(max-width:550px){.sim-editor-grid{grid-template-columns:1fr}.sim-editor-grid>section:last-child{grid-column:auto}.sim-unit-head .sim-selected-head{flex:1}.sim-editor-grid>section+section{padding-top:14px;border-top:1px solid var(--sim-line)}}
