#business-analysis-grid.free-home-grid { grid-template-columns:repeat(48,minmax(0,1fr)); grid-auto-flow:row; grid-auto-rows:8px; gap:10px 2.5px; align-content:start; }
#business-analysis-grid.free-home-grid.is-editing { background-image:radial-gradient(#ccd9df 1px,transparent 1px); background-size:calc((100% + 2.5px)/48) 18px; padding-bottom:100px; }
.free-home-grid .business-widget { overflow:visible; }
.free-home-grid .business-widget>article { overflow:auto; }
.free-home-grid .business-widget-controls { top:3px; left:6px; right:6px; justify-content:flex-end; gap:6px; }
.free-home-grid .business-widget-drag { margin-right:auto; touch-action:none; }
.free-home-grid.is-editing .business-widget>article { padding-top:34px; }
.free-home-grid .business-widget-resize-handle { display:none; }
.free-home-grid.is-editing .business-widget-resize-handle { display:block; touch-action:none; }
.free-home-grid.is-editing .business-widget { outline:1px solid #c7d6de; outline-offset:0; box-shadow:none; }
.free-home-grid .business-widget-controls { top:4px; left:8px; right:8px; height:24px; }
.free-home-grid .business-widget-controls :is(span,button) { border:0; border-radius:4px; background:transparent; box-shadow:none; height:24px; color:#71838e; }
.free-home-grid .business-widget-controls .business-widget-drag { flex:1; width:auto; place-items:center start; padding-left:4px; }
.free-home-grid .business-widget-controls button:hover { color:#aa4242; background:#fbeeee; }
.free-home-grid .business-widget-drag:hover { background:#edf3f6; }
.free-home-grid.is-editing .business-widget-resize-handle { right:3px; bottom:3px; width:18px; height:18px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.free-home-grid .business-widget-resize-handle::after { content:""; position:absolute; right:3px; bottom:3px; width:8px; height:8px; border-right:2px solid #8da5b2; border-bottom:2px solid #8da5b2; }
.free-home-grid .home-position-blocked { outline:2px solid #bd5656!important; }
.home-page-board { container-type:inline-size; }
.home-page-board .biz-analytics { margin:0; padding:0; border:0; background:transparent; }
.home-page-board .biz-analytics-toolbar,.home-page-board .biz-analytics-range { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.home-page-board .biz-analytics-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; }
.home-page-board .biz-analytics-card { min-width:0; }
.home-page-board input[type=date] { max-width:150px; min-width:0; }
.home-page-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:16px; margin-top:16px; }
.home-page-metrics>div { border-left:2px solid #dce5ea; padding-left:12px; }
.home-page-metrics span { display:block; color:#647782; font-size:14px; }
.home-page-metrics strong { display:block; font-size:28px; margin-top:8px; }
@container(max-width:420px) { .home-page-board .biz-analytics-grid { grid-template-columns:1fr; } }
.home-position-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.home-position-fields label { display:flex; flex-direction:column; gap:6px; }
.home-position-fields input { width:100%; box-sizing:border-box; padding:8px; }
.home-position-fields [role=alert] { grid-column:1/-1; color:#ae3636; }
.capacity-panel { box-sizing:border-box; }
[data-capacity-root] { height:100%; min-width:0; display:flex; flex-direction:column; color:#253640; }
.capacity-head { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.capacity-head h4 { margin:0; font-size:18px; }
.capacity-head>div { display:flex; gap:8px; }
.capacity-head :is(select,button),.capacity-map-tools button { border:1px solid #c9d8e0; border-radius:4px; background:#fff; color:#2f637c; height:32px; padding:4px 10px; }
.capacity-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-block:1px solid #dce5ea; margin:12px 0; padding:10px 0; }
.capacity-metrics>div { padding:0 12px; border-right:1px solid #dce5ea; }
.capacity-metrics>div:last-child { border:0; }
.capacity-metrics span { display:block; font-size:12px; color:#677e8b; }
.capacity-metrics strong { display:block; font-size:24px; margin-top:4px; }
.capacity-main { display:grid; grid-template-columns:minmax(0,1fr) 250px; flex:1; min-height:280px; }
.capacity-map { position:relative; min-width:0; min-height:280px; background:#f7fafb; overflow:hidden; }
.capacity-canvas { position:absolute; inset:0; }
.capacity-canvas canvas { width:100%; height:100%; display:block; }
.capacity-city-label { position:absolute; font-size:11px; color:#264f63; font-weight:600; transform:translate(5px,-14px); white-space:nowrap; pointer-events:none; text-shadow:1px 1px white,-1px -1px white; }
.capacity-map-tools { position:absolute; top:8px; left:8px; display:flex; align-items:center; gap:6px; }
.capacity-map-tools label { display:flex; align-items:center; gap:4px; font-size:12px; }
.capacity-map-tools input { width:70px; }
.capacity-legend { position:absolute; bottom:8px; left:8px; font-size:11px; display:flex; align-items:center; gap:6px; }
.capacity-legend i { width:65px; height:8px; background:linear-gradient(90deg,#e6eff2,#347c98); }
.capacity-routes { border-left:1px solid #dce5ea; padding:0 12px; overflow:auto; min-width:0; }
.capacity-routes h5 { font-size:14px; margin:4px 0 10px; }
[data-capacity-route] { display:flex; align-items:center; justify-content:space-between; gap:8px; border:0; border-bottom:1px solid #e4ebee; padding:10px 6px; width:100%; background:white; color:#31586c; text-align:left; cursor:pointer; }
[data-capacity-route] span { overflow-wrap:anywhere; min-width:0; }
[data-capacity-route] b { white-space:nowrap; }
[data-capacity-route][aria-pressed=true] { background:#e8f1f6; }
[data-capacity-detail] { margin-top:16px; }
.capacity-order { display:flex; flex-direction:column; gap:5px; font-size:12px; border-bottom:1px solid #e4ebee; padding:10px 0; overflow-wrap:anywhere; }
.capacity-order small,.capacity-foot { color:#687e8c; }
.capacity-province { width:min(1000px,calc(100vw - 32px))!important; max-height:90vh; }
.capacity-province-inline { position:absolute; inset:0; z-index:5; display:flex; flex-direction:column; background:#f7fafb; }
.capacity-province-inline>header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 12px; }
.capacity-province-inline [data-province-content] { flex:1; min-height:0; display:flex; flex-direction:column; }
.capacity-province-inline .province-map { flex:1; height:auto; min-height:200px; position:relative; }
.capacity-province-inline button { border:1px solid #c9d8e0; border-radius:4px; background:white; color:#31586c; padding:5px 8px; cursor:pointer; }
.capacity-province-inline footer { display:flex; gap:8px; flex-wrap:wrap; padding:8px; }
.province-map-labels { position:absolute; inset:0; pointer-events:none; }
.province-map-labels button { position:absolute; transform:translate(-50%,-50%); pointer-events:auto; background:transparent; border:0; padding:2px; max-width:94px; font-size:11px; line-height:14px; text-shadow:0 1px white,1px 0 white,-1px 0 white; }
.province-map-labels small { display:block; }
.province-map-labels button[aria-pressed=true] { color:#123c50; font-weight:700; }
.capacity-province .upload-modal-body { overflow:auto; min-height:0; }
.province-layout { display:grid; grid-template-columns:minmax(0,1fr) 200px; gap:16px; }
.province-map { height:380px; min-width:0; background:#f7fafb; }
.province-map canvas { display:block; width:100%; height:100%; cursor:pointer; }
.province-cities { max-height:380px; overflow:auto; }
.province-cities button { display:flex; justify-content:space-between; gap:8px; width:100%; padding:8px; background:#fff; border:0; border-bottom:1px solid #dce5ea; color:#31586c; text-align:left; }
.province-cities button[aria-pressed=true] { background:#e8f1f6; font-weight:600; }
.province-cities b { white-space:nowrap; }
.province-order-list { max-height:230px; overflow:auto; }
@media(max-width:600px) { .province-layout { grid-template-columns:1fr; }.province-map { height:300px; }.province-cities { max-height:150px; }.capacity-province { max-height:95vh; } }
.capacity-foot { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; font-size:11px; padding-top:10px; }
.capacity-foot small { font-size:10px; }
@container (max-width:700px) { .capacity-main { grid-template-columns:1fr; flex:none; }.capacity-map { min-height:320px; }.capacity-routes { border-left:0; border-top:1px solid #dce5ea; max-height:220px; padding:12px 0; } }
@media(max-width:720px) {
  #business-analysis-grid.free-home-grid { display:flex; flex-direction:column; min-height:0!important; }
  .free-home-grid .business-widget { height:auto; min-height:130px; }
  .free-home-grid .business-widget>article { height:auto; }
  .free-home-grid .business-widget-drag,.free-home-grid.is-editing .business-widget-resize-handle { display:none; }
  .capacity-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:10px; }
}
