:root{--mu:#b09a79;--br:#49351d}
html{height:100%}
body{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0}
button{touch-action:manipulation}
button:focus-visible,summary:focus-visible{outline:3px solid var(--am2);outline-offset:3px}
button:disabled{cursor:not-allowed;opacity:.6}
button:disabled:hover{transform:none;filter:none}
#hdr{position:relative;flex-shrink:0;padding:12px 18px;gap:12px}
#tabs{position:relative;top:auto;min-height:48px}
.tab{font-size:12px;padding:12px 14px;min-height:44px}
.tab:hover{color:var(--wh);background:var(--c)}
.chip{font-size:12px;padding:6px 10px;font-variant-numeric:tabular-nums}
#main{width:100%;min-height:0;padding:18px;scroll-behavior:smooth}
#main>.col,#main .col{min-width:0}
#main>.brewery-layout{grid-template-columns:minmax(0,1fr) 300px!important}
#factory-floor{min-width:900px}
.bt-floor-scroll{overflow-x:auto}
#resetbtn{font-size:11px;min-height:40px;color:var(--mu)}
#turnbtn{min-height:44px;padding:10px 18px}
#bt-save-status{width:100%;font-size:10px;text-align:right;color:var(--mu)}
#bt-save-status.bt-save-error{color:#ff9c8f}
#brand{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bt-brewery-identity{display:flex;align-items:center;flex-wrap:wrap;gap:12px;width:100%}
.bt-brewery-identity>strong{overflow-wrap:anywhere;min-width:0}
#bt-name-dialog{margin:auto;width:min(460px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:24px;color:var(--tx);background:var(--s);border:1px solid var(--am);border-radius:14px}
#bt-name-dialog::backdrop{background:#000b}
#bt-name-dialog h2{margin-bottom:16px;font-size:20px}
#bt-name-dialog label{font-size:12px}
#bt-name-dialog input[type=text]{margin-top:8px;font-size:16px;min-height:44px}
#bt-name-error{color:#ffb49e;font-size:12px;margin:10px 0}
.bt-fleet-content{padding:16px;display:flex;flex-direction:column;gap:14px;font-size:13px;line-height:1.6}
.bt-fleet-content>p{color:var(--mu)}
.bt-fleet-summary{padding:12px;border:1px solid var(--br);border-radius:10px;display:flex;flex-wrap:wrap;gap:8px 20px}
.bt-fleet-summary strong{color:var(--gn)}
.bt-season-trend{color:var(--gn);font-size:12px;font-weight:600}
.bt-season-trend.bt-season-low{color:var(--rd)}
.bt-fleet-summary .bt-fleet-warning{color:#ffb49e;width:100%}
.bt-fleet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px}
.bt-fleet-card{border:1px solid var(--br);border-radius:10px;padding:14px;background:var(--s);display:flex;flex-direction:column;gap:10px}
.bt-fleet-card h2,.bt-fleet-content .stock-card h2{font-size:16px;color:var(--am2)}
.bt-fleet-card small{color:#ffb49e}
.bt-market-demand{display:grid;grid-template-columns:minmax(120px,1fr) minmax(40px,2fr) 35px;align-items:center;gap:10px}
.bt-market-demand meter{width:100%;height:10px;accent-color:var(--gn)}
.bt-fleet-content .stock-card{display:flex;flex-direction:column;gap:10px}
.bt-fleet-content .stock-card label{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.bt-fleet-content input[type=number]{max-width:130px;min-height:44px;font-size:16px;background:var(--c);border:1px solid var(--br);border-radius:6px;color:var(--tx);padding:8px}
.bt-market-buttons{display:flex;flex-wrap:wrap;gap:10px}
.bt-market-buttons .btn{flex:1;min-width:160px;min-height:44px}
.bt-rank-content{padding:18px;display:flex;flex-direction:column;gap:16px;font-size:13px;line-height:1.6}
.bt-rank-content>p{color:var(--mu)}
.bt-rank-summary{display:flex;flex-direction:column;gap:6px;background:var(--s);border:1px solid var(--br);border-radius:12px;padding:16px}
.bt-rank-summary>strong{font-size:30px;color:var(--am2);font-variant-numeric:tabular-nums}
.bt-rank-breakdown{display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--mu);font-size:12px}
.bt-rank-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:12px;align-items:end}
.bt-rank-fields label,.bt-rank-tools label{display:flex;flex-direction:column;gap:6px}
.bt-rank-fields input[type=text],.bt-rank-tools select{width:100%;min-height:44px;font-size:16px;background:var(--s);color:var(--tx);border:1px solid var(--br);border-radius:8px;padding:8px}
.bt-rank-content input:focus-visible,.bt-rank-content select:focus-visible{outline:2px solid var(--am2);outline-offset:2px}
.bt-rank-privacy{margin-bottom:12px;color:var(--mu)}
.bt-rank-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.bt-rank-pseudo-editor{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.bt-rank-pseudo-editor label{display:flex;flex-direction:column;gap:6px;flex:1;min-width:220px}
.bt-rank-pseudo-editor input[type=text]{width:100%;min-height:44px;font-size:16px;background:var(--s);color:var(--tx);border:1px solid var(--br);border-radius:8px;padding:8px}
.bt-rank-tools label{flex:1}
.bt-rank-tools .btn,.bt-rank-fields .btn,.bt-rank-pseudo-editor .btn{width:auto;min-height:44px}
#bt-rank-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.bt-rank-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--br);border-radius:10px;background:var(--s)}
.bt-rank-you{border-color:var(--am);background:#d4880a15}
.bt-rank-player{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.bt-rank-player span{font-size:11px;color:var(--mu)}
.bt-rank-place,.bt-rank-points{color:var(--am2);font-variant-numeric:tabular-nums}
.bt-rank-empty{padding:20px;text-align:center;color:var(--mu)}
#bt-rank-status.bt-rank-error{color:#ffb49e}
@media(max-width:700px){
  .bt-rank-content{padding:12px}
  .bt-rank-fields{grid-template-columns:minmax(0,1fr)}
  .bt-rank-row{grid-template-columns:32px minmax(0,1fr);gap:8px;padding:12px}
  .bt-rank-points{grid-column:2}
  #bt-save-status.bt-save-error{display:block;order:4}
}
.phead{padding:12px 14px}
.ptitle{font-size:11px}
.psub{font-size:10px}
.btn{min-height:38px;font-size:12px;line-height:1.4}
.qb{min-width:36px;min-height:36px;font-size:12px}
.rec-card{padding:16px;gap:10px}
.cost-lbl,.pill-l{font-size:10px}
.cost-val,.pill-v{font-size:12px}
.cost-cell{padding:7px 9px}
.bt-overview{border:1px solid #755020;border-radius:16px;padding:22px;margin-bottom:18px;background:linear-gradient(125deg,#30210f,var(--s) 75%);box-shadow:0 8px 28px #0003}
.bt-overview-head{display:flex;justify-content:space-between;align-items:center;gap:20px}
.bt-overview h1{font-size:22px;color:var(--wh);font-weight:700;letter-spacing:-.02em}
.bt-overview p{font-size:13px;line-height:1.6;color:var(--mu);margin-top:7px}
.bt-actions{display:flex;gap:8px;flex-shrink:0}
.bt-actions .btn{width:auto;padding:10px 16px}
.bt-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}
.bt-metric{padding:14px;background:#100c0780;border:1px solid var(--br);border-radius:10px;display:flex;flex-direction:column;gap:8px}
.bt-metric span{font-size:11px;color:var(--mu)}
.bt-metric strong{font-size:23px;color:var(--am2);font-variant-numeric:tabular-nums}
.bt-guidance{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px;align-items:start}
.bt-overview .bt-hint{color:var(--tx);margin:0}
.bt-overview .bt-warning{color:#ffb49e}
.bt-help{font-size:12px;margin-top:12px;line-height:1.7;color:var(--mu)}
.bt-help summary{cursor:pointer;color:var(--am2);padding:4px 0}
.bt-help ol{padding-left:20px;margin-top:8px}
.bt-help li+li{margin-top:6px}
.bt-objective{display:flex;flex-direction:column;gap:7px;background:var(--s);border:1px solid var(--br);border-radius:10px;padding:14px;text-align:left;color:var(--tx);cursor:pointer;font:inherit}
.bt-objective:hover{border-color:var(--am)}
.bt-objective span,.bt-objective small{font-size:11px;color:var(--mu)}
.bt-objective strong{font-size:13px}
.bt-objective progress{width:100%;height:8px;accent-color:var(--am)}
.bt-estimate{font-size:10px;color:var(--mu);margin-top:auto}
#nstack{top:12px;max-width:min(360px,calc(100vw - 24px))}
.notif{font-size:12px;padding:10px 14px}
@media(max-width:1000px){
  #main>.brewery-layout{grid-template-columns:minmax(0,1fr)!important}
  .bt-overview-head{align-items:flex-start;flex-direction:column;gap:14px}
}
@media(max-width:700px){
  body{overflow:hidden;overscroll-behavior:none}
  #hdr{padding:calc(8px + env(safe-area-inset-top)) 10px 8px;gap:8px}
  #hdr>div:first-child{flex:1;min-width:0}
  #brand{font-size:13px}
  #hdr-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
  #hdr>div:last-child{gap:4px}
  #resetbtn{width:40px;padding:0;font-size:0}
  #resetbtn::after{content:'↻';font-size:20px}
  #turnbtn{padding:8px 11px;font-size:11px;min-height:40px}
  #hstats{order:3;flex-basis:100%;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:2px 0 5px;scroll-snap-type:x proximity}
  .chip{flex-shrink:0}
  .chip{scroll-snap-align:start}
  #bt-save-status{display:none}
  #tabs{padding:0 4px;min-height:48px;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .tab{flex-shrink:0;scroll-snap-align:start;padding:11px 12px;font-size:11px}
  #main{padding:10px 10px calc(16px + env(safe-area-inset-bottom));overflow-y:auto!important;overflow-x:hidden;height:auto!important;-webkit-overflow-scrolling:touch}
  #main .pgrid{grid-template-columns:minmax(0,1fr)!important}
  .bt-overview{padding:16px}
  .bt-overview h1{font-size:20px}
  .bt-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}
  .bt-metric{padding:11px}
  .bt-metric strong{font-size:19px}
  .bt-guidance{grid-template-columns:minmax(0,1fr);gap:14px}
  .bt-actions{flex-wrap:wrap}
  .bt-actions .btn{flex:1}
  .phead{padding:10px 12px}
  .pgrid{padding:10px;gap:8px}
  .rec-card{padding:13px;gap:8px}
  .cost-grid{gap:5px}
  .cost-cell{padding:6px 8px}
  .qty-row{gap:5px}
  .qty-row .qb{min-width:42px;padding:4px}
  .step-box{width:78px}
  .bt-floor-scroll{margin:0 -1px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  #factory-floor{scroll-snap-align:start}
  #view3d{overflow-y:auto}
  #layout3d{height:auto;min-height:100%;overflow:visible}
  #canvas-wrap{flex:none;height:38dvh;min-height:230px}
  #sidebar{height:auto;min-height:280px;max-height:none}
  #sidebar-content{padding:8px}
  #cam-controls{right:8px;bottom:8px;flex-direction:row}
  #step-progress{left:8px;bottom:8px;max-width:calc(100% - 175px);overflow:hidden}
  #step-progress .step-line{width:12px}
  .btn,.qb{min-height:44px}
}
@media(max-width:420px){
  #hstats .chip:nth-child(n+5){display:none}
  .bt-metric strong{font-size:17px}
  .bt-metric span{font-size:10px}
  .bt-overview{padding:14px}
  .bt-actions .btn{padding:9px 10px;font-size:11px}
  .pill{padding:3px 5px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
#bt-house-dialog{margin:auto;width:min(900px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;background:var(--s);color:var(--tx);border:1px solid var(--am);border-radius:18px;padding:26px;box-shadow:0 24px 80px #0009}
#bt-house-dialog::backdrop{background:#060403e6;backdrop-filter:blur(5px)}
#bt-house-dialog h1{font-size:24px;color:var(--wh);margin-bottom:10px}
#bt-house-dialog p{font-size:13px;line-height:1.6;color:var(--mu);margin:8px 0}
#bt-house-dialog #bt-house-rule{color:var(--tx)}
.bt-house-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}
.bt-house-card{position:relative;display:flex;flex-direction:column;gap:9px;padding:18px;border:1px solid var(--br);border-radius:12px;background:var(--c);cursor:pointer;font-size:13px}
.bt-house-card:hover,.bt-house-card:has(input:checked){border-color:var(--house-color);background:#392811}
.bt-house-card:has(input:focus-visible){outline:3px solid var(--am2);outline-offset:3px}
.bt-house-card input{position:absolute;right:12px;top:12px;accent-color:var(--am);width:18px;height:18px}
.bt-house-card strong{font-size:22px;color:var(--house-color)}
.bt-house-kind{font-size:10px;color:var(--mu);padding-right:18px}
.bt-house-premium,.bt-specialty-badge{color:var(--gn);font-size:11px;font-weight:700}
.bt-house-footer{display:flex;align-items:center;gap:20px}
.bt-house-footer small{font-size:11px;line-height:1.5;color:var(--mu);flex:1}
.bt-house-footer .btn{width:auto;padding:12px 22px}
.bt-house-banner{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;border:1px solid var(--house-color);border-radius:12px;padding:12px 16px;margin-bottom:16px;background:var(--s)}
.bt-house-banner span{font-size:12px;color:var(--mu)}
.bt-house-banner strong{font-size:19px;color:var(--house-color)}
.bt-house-banner b{margin-left:auto;font-size:12px;color:var(--gn)}
.bt-specialty-badge{padding:8px;background:#0c2518;border:1px solid #2ecc7140;border-radius:7px}
@media(max-width:700px){
  #bt-house-dialog{padding:18px}
  #bt-house-dialog h1{font-size:21px}
  .bt-house-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .bt-house-card{padding:13px}
  .bt-house-card strong{font-size:18px}
  .bt-house-kind{padding-top:20px;padding-right:0}
  .bt-house-footer{flex-direction:column;align-items:stretch;gap:12px}
  .bt-house-banner b{margin-left:0}
}
@media(max-width:360px){.bt-house-grid{grid-template-columns:minmax(0,1fr)}}

.bt-mobile-pipeline{display:none}
.bt-factory-details>summary{display:none}
.bt-floor-tools{display:none}
.bt-equipment-column{scroll-margin-top:16px}
.bt-floor-scroll:focus-visible{outline:3px solid var(--am2);outline-offset:-3px}
.bt-floor-object:focus-visible{outline:3px solid var(--am2);outline-offset:4px}
@media(max-width:700px){
  .bt-desktop-pipeline{display:none}
  .bt-mobile-pipeline{display:block;padding:16px}
  .bt-mobile-pipeline h2{font-size:16px;line-height:1.4;color:var(--tx)}
  .bt-mobile-pipeline>p{font-size:12px;line-height:1.6;color:var(--mu);margin:6px 0 14px}
  .bt-mobile-pipeline ol{display:flex;flex-direction:column;gap:8px;list-style:none;padding:0}
  .bt-mobile-stage{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:10px;text-align:left;width:100%;min-height:68px;padding:12px;border:1px solid var(--br);border-radius:7px;background:var(--s);color:var(--tx);font:inherit;cursor:pointer}
  .bt-mobile-stage[aria-pressed=true]{outline:2px solid var(--am);outline-offset:1px}
  .bt-stage-number{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--br);border-radius:50%;font-size:12px;font-weight:700;color:var(--am2)}
  .bt-stage-copy{min-width:0;display:flex;flex-direction:column;gap:5px}
  .bt-stage-copy strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
  .bt-stage-copy>span{font-size:12px;color:var(--mu);line-height:1.4;overflow-wrap:anywhere}
  .bt-stage-icon{font-size:21px;text-align:center}
  .bt-stage-busy{border-left:4px solid var(--gn)}
  .bt-mobile-stage progress{width:100%;height:6px;accent-color:var(--gn)}
  .bt-factory-details{border-top:1px solid var(--br)}
  .bt-factory-details>summary{display:list-item;cursor:pointer;padding:16px 18px;min-height:52px;font-size:13px;font-weight:700;color:var(--am2);list-style-position:inside}
  .bt-floor-tools{display:block;padding:0 16px 14px}
  .bt-floor-tools p{font-size:12px;line-height:1.6;color:var(--mu);margin-bottom:10px}
  .bt-floor-tools>div{display:flex;gap:6px;flex-wrap:wrap}
  .bt-floor-tools .qb{font-size:11px;flex:1}
  .bt-floor-scroll{scroll-snap-type:none;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:auto;margin:0}
  #factory-floor{width:900px!important;min-width:900px}
  .bt-floor-object>div:last-child{font-size:11px!important;white-space:normal!important;width:100px;max-width:100px;padding:3px;border-radius:3px;background:#17231cee;line-height:1.4!important;z-index:2}
  .bt-equipment-column{min-width:0}
  .bt-equipment-column .phead{padding:14px}
  .bt-equipment-column .ptitle{font-size:12px;line-height:1.5}
  .bt-equipment-column .btn{min-height:44px;font-size:12px!important}
}
