/* Each deck section owns its geometry. A large Fusion Deck cannot resize Main. */
.builder-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;flex:none}
.builder-heading h1{font-size:23px;letter-spacing:-.7px}
.builder-heading .row{gap:6px;flex-wrap:wrap;justify-content:flex-end}
.builder-layout{display:grid;grid-template-columns:210px minmax(0,1fr) 320px;gap:12px;min-height:0;min-width:0;align-items:stretch}
.builder-layout>*,.builder-layout [hidden]{min-width:0}
.builder-layout [hidden]{display:none!important}
.builder-controls{min-height:0}
.builder-control-scroll{display:flex;flex-direction:column;gap:12px;padding:13px;min-height:0;height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.builder-name-row{display:flex;align-items:flex-end;gap:5px}
.builder-name-row label{flex:1;min-width:0}
.builder-name-row button{min-width:34px;width:34px;padding:6px}
.builder-controls label{font-size:11px;gap:5px}
.builder-controls input,.builder-controls select{width:100%;padding:7px 8px;font-size:13px;min-height:38px}
.builder-controls .check input{width:18px;min-height:18px}
.builder-controls #save-deck{font-size:13px;min-height:39px;padding:7px}
.builder-controls #save-state{font-size:11px;line-height:1.5}
.builder-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.builder-action-grid .small{font-size:11px;padding:6px 3px}
.builder-action-grid .icon{width:15px;height:15px;vertical-align:-3px}
.builder-history{gap:5px}
.builder-history #builder-keys{margin-left:auto;min-width:34px}
.builder-hint{font-size:11px;line-height:1.65;color:var(--muted)}
.builder-deck{position:static;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
.builder-deck .deck-view-tools{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);margin:0;flex:none}
.builder-deck .deck-view-tools label{font-size:11px;gap:6px;flex:none}
.builder-deck .deck-view-tools .row{gap:5px}
.builder-deck .deck-view-tools button{font-size:11px;min-height:34px;padding:5px 9px}
.builder-deck .builder-sort-label{flex-direction:row;align-items:center}
.builder-deck .builder-sort-label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.builder-deck .deck-view-tools select{font-size:12px;min-height:34px;padding:5px 8px;width:112px}
.builder-deck #deck-zones{flex:1;min-height:0;min-width:0;display:grid;grid-template-rows:minmax(0,1fr) minmax(175px,26%);overflow:hidden}
.builder-deck .deck-zone{padding:10px;min-height:0;min-width:0;display:flex;flex-direction:column;gap:8px;border-bottom:0;overflow:hidden}
.builder-deck .deck-zone-head{font-size:11px;letter-spacing:.6px;line-height:1.4;margin:0;flex:none;gap:8px;flex-wrap:wrap;color:var(--muted)}
.deck-type-counts{display:flex;align-items:center;gap:5px;margin-right:auto;letter-spacing:0;text-transform:none}
.deck-type-counts>span{border-radius:4px;padding:2px 5px;font-size:10px;border:1px solid currentColor;font-family:var(--font-mono,ui-monospace,monospace)}
.deck-type-counts .monster-count{color:var(--card-monster-ink,#94612f);background:var(--card-monster-bg,#f3e6d2)}
.deck-type-counts .spell-count{color:var(--card-spell-ink,#2a766b);background:var(--card-spell-bg,#e0f1ed)}
.deck-type-counts .trap-count{color:var(--card-trap-ink,#935171);background:var(--card-trap-bg,#f4e4ed)}
.builder-deck .deck-grid{display:grid;grid-template-columns:repeat(var(--fit-cols,10),minmax(0,1fr));grid-template-rows:repeat(var(--fit-rows,var(--deck-rows)),minmax(0,1fr));gap:5px;min-height:0;min-width:0;flex:1;align-items:start;align-content:start;justify-items:center;overflow:hidden}
.builder-deck .builder-card{position:relative;min-width:0;min-height:0;width:var(--fit-width,100%);height:var(--fit-height,auto);max-width:100%;max-height:100%;display:flex;justify-content:center;align-items:flex-start}
.builder-deck .builder-card>.card-tile{width:100%;height:100%;aspect-ratio:.685;min-height:0;object-fit:contain;flex:none}
.builder-deck .builder-card>.card-tile img{object-fit:contain}
.builder-deck .builder-card-tools{position:absolute;left:1px;right:1px;bottom:1px;margin:0;gap:1px;opacity:0;transform:translateY(3px);transition:opacity .15s,transform .15s;z-index:2;pointer-events:none}
.builder-deck .builder-card:hover .builder-card-tools,.builder-deck .builder-card:focus-within .builder-card-tools{opacity:1;transform:none;pointer-events:auto}
.builder-deck .builder-card-tools button{min-height:27px;font-size:14px;line-height:1;padding:3px 1px;background:var(--surface);color:var(--ink);border-color:var(--line-strong);box-shadow:0 1px 6px #311b4f20}
.builder-deck .card-tile:hover{transform:none}
.builder-deck .card-tile .count{font-size:10px;padding:2px 4px;top:2px;bottom:auto}
.builder-secondary{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;border-top:1px solid var(--line);background:var(--surface-alt)}
.builder-zone-tabs{display:flex;gap:5px;padding:6px 10px 0;flex:none}
.builder-zone-tabs button{min-height:29px;font-size:11px;padding:3px 9px;border-color:transparent;border-radius:5px}
.builder-zone-tabs [data-drop-active=true]{outline:2px dashed var(--accent);outline-offset:-2px}
.builder-zone-tabs .mono{margin-left:5px}
.builder-zone-tabs button.active{color:var(--plum);background:var(--plum-soft);border-color:var(--line)}
.builder-secondary .deck-zone{flex:1;padding-top:5px;gap:4px}
.builder-secondary .deck-zone-head{display:none}
.builder-secondary .builder-card-tools button{min-height:24px}
.deck-section-pagination{display:flex;align-items:center;justify-content:center;gap:10px;flex:none;min-height:26px;font-size:11px;color:var(--muted)}
.deck-section-pagination button{min-height:25px;padding:2px 6px;font-size:11px}
.deck-section-pagination small{font-size:10px;margin-left:5px}
.builder-deck .empty-inline{padding:20px 6px;display:flex;align-items:center;justify-content:center;flex:1;font-size:12px;text-align:center;color:var(--muted)}
.builder-library{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
.builder-library-head{display:flex;align-items:center;justify-content:space-between;padding:12px 13px 8px;flex:none}
.builder-library-head h2{font-size:16px;letter-spacing:-.4px}
.builder-library-head .tag{font-size:10px}
.builder-search{padding:0 12px 9px;display:flex;flex-direction:column;gap:7px;border-bottom:1px solid var(--line);flex:none}
.builder-search label{font-size:11px;gap:4px;min-width:0}
.builder-search input,.builder-search select{min-height:32px;padding:5px 7px;font-size:12px;width:100%}
.builder-search input[type=checkbox]{width:17px;min-height:18px}
.builder-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:center}
.builder-three-filters{grid-template-columns:1fr 1fr 1fr}
.builder-monster-filters{display:grid;grid-template-columns:1fr;gap:7px}
.builder-stat-filters{display:grid;grid-template-columns:45px 1fr 1fr;gap:4px 7px;align-items:center;font-size:10px;color:var(--muted)}
.builder-stat-filters>span:first-of-type~span{font-family:var(--font-mono,ui-monospace,monospace)}
.builder-stat-filters input{min-height:27px;padding:3px 6px;font-size:11px}
.builder-search .builder-reset{align-self:flex-end;min-height:24px;padding:1px 0;font-size:10px}
.builder-catalog-scroll{flex:1;overflow:auto;min-height:80px;padding:12px;overscroll-behavior:contain;scrollbar-width:thin}
.builder-library .catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px}
.builder-library .card-caption{font-size:10px;line-height:1.35;height:27px;margin-top:4px}
.builder-library .add-button{font-size:11px;min-height:30px;margin-top:4px}
.builder-pagination{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;border-top:1px solid var(--line);gap:5px;flex:none}
.builder-pagination small{font-size:10px}
.builder-pagination .row{gap:4px}
.builder-pagination button{padding:4px 7px;min-height:31px}
@media(min-width:1100px) and (min-height:620px){
 body[data-page=build]{height:100dvh;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box;padding-bottom:var(--social-dock-height,0px)}
 body[data-page=build] #header{flex:none}
 body[data-page=build] #main{flex:1;min-height:0;max-width:none;width:100%;padding:10px 14px 14px;display:flex;flex-direction:column;overflow:hidden}
 .builder-layout{flex:1}
}
@media(min-width:1650px){.builder-layout{grid-template-columns:230px minmax(0,1fr) 365px;gap:16px}.builder-library .catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1099px),(max-height:619px){
 .builder-layout{grid-template-columns:210px minmax(0,1fr)}
 .builder-deck #deck-zones{grid-template-rows:auto auto;overflow:visible}
 .builder-deck .deck-grid{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto;flex:none;gap:6px;overflow:visible}
 .builder-deck .builder-card{height:auto;max-height:none}
 .builder-deck .builder-card>.card-tile{height:auto;max-height:none}
 .builder-deck .deck-zone[data-drop-zone=main]{min-height:360px}
 .builder-controls{max-height:620px}
 .builder-library{grid-column:1/-1;max-height:900px}
 .builder-library .catalog-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
 .builder-search{display:grid;grid-template-columns:2fr 1fr;align-items:end}
 .builder-monster-filters{grid-column:1/-1;grid-template-columns:1.4fr 1fr;align-items:start}
 .builder-deck .builder-card-tools{position:static;opacity:1;transform:none;pointer-events:auto;width:100%;margin-top:3px}
 .builder-deck .builder-card{display:block}
 .builder-secondary .deck-grid{grid-template-columns:repeat(8,minmax(0,1fr))}
 .builder-deck .deck-view-tools{flex-wrap:wrap}
}
@media(max-width:700px){
 .builder-heading{flex-wrap:wrap}.builder-heading h1{font-size:22px}.builder-heading .row{gap:4px}.builder-heading button.small{padding:6px 8px;font-size:11px}
 .builder-layout{grid-template-columns:1fr;gap:10px}
 .builder-deck{grid-row:1}.builder-controls{grid-row:2;max-height:none}.builder-library{grid-row:3;grid-column:1;max-height:1000px}
 .builder-control-scroll{display:grid;grid-template-columns:1fr 1fr;gap:12px}
 .builder-control-scroll>.builder-name-row,.builder-control-scroll>.builder-action-grid,.builder-control-scroll>.builder-hint{grid-column:1/-1}
 .builder-control-scroll #save-state{align-self:center}
 .builder-deck .deck-grid,.builder-secondary .deck-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
 .builder-search{display:flex}.builder-monster-filters{display:flex;flex-direction:column;align-items:stretch}.builder-library .catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .builder-controls input,.builder-controls select,.builder-search input,.builder-search select,.builder-deck .deck-view-tools select{font-size:16px;min-height:40px}
 .builder-deck .deck-view-tools{padding:9px;gap:5px}.builder-deck .deck-view-tools label{font-size:11px}.builder-deck .deck-view-tools button{min-height:40px}
 .builder-deck .builder-card-tools button{min-height:38px}.builder-deck .deck-zone[data-drop-zone=main]{min-height:120px}.builder-library .add-button{min-height:44px}
 .deck-section-pagination button{min-height:40px;min-width:40px}
}
@media(hover:none){.builder-deck .builder-card-tools{opacity:1;transform:none;pointer-events:auto}}
@media(prefers-reduced-motion:reduce){.builder-deck .builder-card-tools{transition:none}}
