.planner-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);color:var(--ink);font-size:12px;font-weight:800;text-decoration:none;transition:background .15s,border-color .15s,scale .48s var(--ease-spring);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.planner-action:hover{background:color-mix(in srgb,var(--ink) 7%,var(--surface));border-color:color-mix(in srgb,var(--ink) 25%,var(--line))}.planner-action:active:not(:disabled){scale:.95;transition:background .15s,border-color .15s,scale 70ms var(--ease-out-quick)}.planner-action svg{flex-shrink:0}.planner-action-compact{min-height:32px;padding:6px 9px;font-size:12px}.planner-action:focus-visible,.upgrade-chooser button:focus-visible,.upgrade-chooser summary:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.planner-action:disabled{opacity:.35;cursor:default}.app-sheet:has(.upgrade-chooser){max-width:800px;max-height:94dvh}.upgrade-chooser{display:flex;flex-direction:column;gap:16px;min-width:0}.upgrade-toolbar{display:flex;flex-wrap:wrap;gap:10px}.upgrade-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);min-width:0;padding:0 12px;height:44px;font-size:12px}.upgrade-toolbar .upgrade-hall{flex-shrink:0;font-size:12px}.upgrade-search{flex:1;color:var(--muted)}.upgrade-search input{min-width:0;width:100%;background:transparent;color:var(--ink);outline:none}.upgrade-search:focus-within{border-color:var(--ink)}.upgrade-nav{display:flex;gap:6px;overflow:auto;flex-shrink:0;padding:3px 0 7px;scrollbar-width:thin}.upgrade-controls{display:flex;gap:5px;flex-shrink:0}.upgrade-controls button{display:grid;place-items:center;min-height:36px;min-width:36px;padding:5px 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-size:12px;font-weight:800}.upgrade-controls button:hover:not(:disabled){border-color:var(--ink)}.upgrade-controls button:disabled{opacity:.3}.upgrade-building,.upgrade-hall-card{border:1px solid var(--line);border-radius:16px;background:var(--surface)}.upgrade-building>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:13px}.upgrade-building summary::-webkit-details-marker,.upgrade-requirements summary::-webkit-details-marker{display:none}.upgrade-disclosure{color:var(--muted);transition:transform .15s}.upgrade-building[open] .upgrade-disclosure{transform:rotate(180deg)}.upgrade-hall-card{padding:14px}.upgrade-requirements{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:12px}.upgrade-requirements summary{display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer;font-weight:700;padding:4px 0}.upgrade-basket-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.upgrade-eyebrow{display:block;font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--muted);margin-bottom:2px}.upgrade-basket-list{max-height:min(28dvh,240px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:1px}.upgrade-basket-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);margin-bottom:7px}.upgrade-basket-row:last-child{margin-bottom:0}.upgrade-basket-copy{min-width:0}.upgrade-basket-copy strong{display:block;font-size:12px;overflow-wrap:anywhere}.upgrade-basket-copy small{display:block;font-size:12px;color:var(--muted);margin-top:2px}.upgrade-level-range{display:block;font-size:12px;font-weight:700;margin-top:3px}.upgrade-level-range>span{font-size:12px;color:var(--muted);padding:0 3px}.upgrade-level-range b{color:var(--ink)}.upgrade-stepper{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:11px;background:var(--surface);flex-shrink:0}.upgrade-stepper button{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;font-size:12px;font-weight:900;transition:background-color .15s,scale .48s var(--ease-spring);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.upgrade-stepper button:active:not(:disabled){scale:.88;transition:background-color .15s,scale 70ms var(--ease-out-quick)}.upgrade-stepper button:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 8%,var(--surface))}.upgrade-stepper button:disabled{opacity:.25}.upgrade-stepper>span{min-width:23px;text-align:center;font-size:12px;font-weight:900;font-variant-numeric:tabular-nums}.upgrade-stepper .upgrade-stepper-max{width:auto;padding:0 8px;border-left:1px solid var(--line);border-radius:0 7px 7px 0;margin-left:3px;color:var(--muted)}.upgrade-empty{display:flex;align-items:center;gap:12px;border:1px dashed var(--line);border-radius:13px;padding:14px;color:var(--muted);font-size:12px}.upgrade-empty svg{flex-shrink:0}.upgrade-notice{border:1px solid var(--line);border-radius:11px;padding:9px 11px;font-size:12px;color:var(--muted);background:var(--surface-2)}.upgrade-row-issue{grid-column:1/-1;font-size:12px;color:var(--danger);overflow-wrap:anywhere}.upgrade-basket-row.has-issue{border-color:var(--danger)}@media(max-width:480px){.app-sheet:has(.upgrade-chooser){max-height:96dvh}.upgrade-chooser{gap:12px}.upgrade-toolbar{gap:7px}.upgrade-toolbar .upgrade-hall{gap:5px;padding:0 9px}.upgrade-hall-caption{display:none}.upgrade-search{padding:0 10px}.upgrade-basket-row{grid-template-columns:30px minmax(0,1fr) auto;padding:10px 8px;gap:7px}.upgrade-basket-row>img{width:30px;height:30px}.upgrade-stepper{flex-wrap:wrap;justify-content:center;max-width:99px;padding:2px}.upgrade-stepper button{width:29px;height:29px}.upgrade-stepper>span{min-width:23px}.upgrade-stepper .upgrade-stepper-max{height:23px;width:100%;border:0;border-top:1px solid var(--line);margin:0;border-radius:0 0 7px 7px}.upgrade-basket-copy small,.upgrade-basket-copy strong{font-size:12px}.shop-cart-panel{gap:10px}.shop-cart-bar{padding:8px 14px max(12px,env(safe-area-inset-bottom))}.shop-cart-panel{padding:12px 14px 0}.shop-cart{margin:0 -18px -24px}}@media(max-height:500px){.app-sheet:has(.upgrade-chooser){max-height:98dvh;padding-top:8px}.app-sheet:has(.upgrade-chooser) h2{font-size:20px}.app-sheet:has(.upgrade-chooser)>div>p{display:none}.upgrade-chooser{gap:8px}.upgrade-basket-list{max-height:90px}.shop-cart{bottom:-12px}.shop-cart-panel{gap:6px;padding-top:8px}.upgrade-basket-row{padding:7px 10px}.shop-cart-foot>div:last-child button{padding-top:8px;padding-bottom:8px}}@media(prefers-reduced-motion:reduce){.planner-action,.upgrade-disclosure{transition:none}}.upgrade-nav-split{flex:0 0 1px;align-self:stretch;margin-inline:2px;background:var(--line)}.upgrade-nav-count{font-style:normal;font-variant-numeric:tabular-nums;opacity:.65}.upgrade-section{display:flex;flex-direction:column;gap:8px;scroll-margin-top:8px}.upgrade-section+.upgrade-section{margin-top:18px}.upgrade-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:6px;border-bottom:1px solid var(--line)}.upgrade-section-head h3{font-family:var(--font-display);font-size:16px;font-weight:700}.upgrade-section-head h3 em{font-style:normal;font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.upgrade-added-total{font-size:12px;color:var(--muted);margin-top:2px}.upgrade-shop{position:relative}.shop-catalog{gap:16px;min-width:0}.shop-catalog,.shop-catalog-head{display:flex;flex-direction:column}.shop-catalog-head{position:sticky;top:0;z-index:3;gap:8px;padding-block:6px;background:var(--surface)}.shop-close{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;margin-left:auto;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);color:var(--muted);transition:color .15s,border-color .15s,scale .48s var(--ease-spring);-webkit-tap-highlight-color:transparent}.shop-close:hover{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 25%,var(--line))}.shop-close:active{scale:.9;transition:color .15s,border-color .15s,scale 70ms var(--ease-out-quick)}.shop-cart{position:sticky;bottom:-24px;z-index:5;margin:0 -18px -24px;display:flex;flex-direction:column;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -12px 24px color-mix(in srgb,var(--ink) 5%,transparent)}.shop-cart.has-issue{border-top-color:var(--danger)}.shop-cart-panel{display:none;flex-direction:column;gap:12px;min-height:0;padding:14px 18px 0}.shop-cart.is-open .shop-cart-panel{display:flex}.shop-cart.is-open .shop-cart-apply{display:none}.shop-cart.is-open{border-radius:18px 18px 0 0}.shop-cart-close{display:none}.shop-cart-collapse{flex:1;font-size:12px;font-weight:800;color:var(--muted)}.shop-cart.is-open .upgrade-basket-list{max-height:min(52dvh,440px)}.shop-cart-foot{display:flex;flex-direction:column;gap:10px}.shop-scrim{position:fixed;inset:0;z-index:4;border:0;background:color-mix(in srgb,#000 45%,transparent)}.shop-cart-bar{display:flex;align-items:center;gap:8px;padding:10px 18px max(16px,env(safe-area-inset-bottom))}.shop-cart-toggle{display:flex;align-items:center;gap:11px;flex:1;min-width:0;padding:7px 11px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);text-align:left;transition:scale .48s var(--ease-spring);-webkit-tap-highlight-color:transparent}.shop-cart-toggle:active{scale:.98;transition:scale 70ms var(--ease-out-quick)}.shop-cart-badge{position:relative;display:grid;place-items:center;flex-shrink:0}.shop-cart-badge em{position:absolute;top:-7px;right:-9px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-style:normal;font-size:12px;font-weight:900;line-height:18px;text-align:center;font-variant-numeric:tabular-nums}.shop-cart-copy{min-width:0;flex:1}.shop-cart-copy strong{display:block;font-size:13px;font-weight:800}.shop-cart-copy small{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-cart-warn{color:var(--danger)}.shop-cart-caret{flex-shrink:0;color:var(--muted);transition:transform .15s}.shop-cart.is-open .shop-cart-caret{transform:rotate(180deg)}.shop-cart-apply{flex-shrink:0;padding:12px 14px}@media (min-width:1024px){.app-sheet:has(.upgrade-shop){max-width:1120px;height:min(920px,86dvh);max-height:86dvh;overflow:hidden}.upgrade-shop{display:grid;grid-template-columns:minmax(0,1fr) 392px;gap:18px;flex:1;min-height:0}.shop-catalog{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:6px;min-height:0}.shop-catalog-head{padding-block:2px 8px}.upgrade-nav{flex-wrap:wrap;overflow:visible}.shop-cart{position:static;margin:0;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface-2);box-shadow:none}.shop-cart.has-issue{border-color:var(--danger)}.shop-cart-bar,.shop-close,.shop-scrim{display:none}.shop-cart-close{display:block}.shop-cart-panel{display:flex;flex:1;min-height:0;padding:16px}.shop-cart.is-open .upgrade-basket-list,.upgrade-basket-list{flex:1;min-height:0;max-height:none}.upgrade-basket-row{background:var(--surface);grid-template-columns:34px minmax(0,1fr) auto;gap:9px;padding:10px}.upgrade-basket-copy strong{overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.upgrade-basket-heading{padding-bottom:12px;border-bottom:1px solid var(--line)}.shop-cart-foot{padding-top:12px;border-top:1px solid var(--line)}}@media (prefers-reduced-motion:reduce){.shop-cart-caret{transition:none}}.upgrade-sorts{display:flex;flex-basis:100%;gap:10px;min-width:0}.upgrade-sorts .upgrade-sort{flex:1;height:40px;padding:0 11px;gap:7px;font-size:12px}.upgrade-sorts .upgrade-sort>span:first-child:not(.cc-select-icon,.cc-select-value),.upgrade-sorts .upgrade-sort>svg:first-child{color:var(--muted)}