:root{--terracotta: #c1552e;--terracotta-dark: #a44523;--cream: #f5f0ea;--cream-deep: #ece4d9;--charcoal: #1c1c1c;--ink-soft: #55504a;--line: rgba(28, 28, 28, .12);--panel-w: 460px;--radius: 14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,system-ui,sans-serif;background:var(--cream);color:var(--charcoal);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,.wordmark,.stat-value,.reserve-total{font-family:Fraunces,Georgia,serif;font-weight:500;margin:0}button{font:inherit;cursor:pointer}button:disabled{cursor:default}.app{height:100%;display:flex;flex-direction:column}.masthead{display:flex;align-items:baseline;gap:14px;padding:18px 28px;border-bottom:1px solid var(--line);background:var(--cream)}.wordmark{font-size:22px;letter-spacing:.01em}.masthead-sub{color:var(--ink-soft);font-size:14px}.layout{flex:1;display:flex;min-height:0}.viewer{flex:1;position:relative;min-width:0}.viewer canvas{display:block;width:100%;height:100%;outline:none}.panel{width:var(--panel-w);flex:none;display:flex;flex-direction:column;border-left:1px solid var(--line);background:var(--cream);min-height:0}.step-nav{display:flex;padding:14px 26px 0;gap:4px}.step-tab{flex:1;padding:9px 4px;border:none;background:none;color:var(--ink-soft);border-bottom:2px solid transparent;font-size:13.5px;font-weight:500;letter-spacing:.02em;transition:color .2s,border-color .2s}.step-tab:hover{color:var(--charcoal)}.step-tab.is-active{color:var(--charcoal);border-bottom-color:var(--terracotta)}.stat-bar{display:flex;padding:18px 26px 16px;gap:20px;border-bottom:1px solid var(--line)}.stat{display:flex;flex-direction:column;gap:2px;flex:1}.stat-value{font-size:24px;font-variant-numeric:tabular-nums;white-space:nowrap}.stat-unit{font-size:15px;color:var(--ink-soft)}.stat-label{font-size:12px;color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase}.stat-price .stat-value{color:var(--terracotta)}.panel-body{flex:1;overflow-y:auto;padding:26px;min-height:0}.panel-footer{padding:16px 26px 22px;border-top:1px solid var(--line)}.step-section h2{font-size:26px;margin-bottom:8px}.step-lead{color:var(--ink-soft);margin:0 0 26px}.option-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 0;border-top:1px solid var(--line)}.option-row h3{font-size:17px}.option-note{color:var(--ink-soft);font-size:13px;margin:3px 0 0}.stepper{display:flex;align-items:center;gap:4px}.stepper-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:19px;line-height:1;transition:border-color .15s,transform .1s}.stepper-btn:hover:not(:disabled){border-color:var(--terracotta)}.stepper-btn:active:not(:disabled){transform:scale(.94)}.stepper-btn:disabled{opacity:.35}.stepper-value{min-width:52px;text-align:center;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.rack-block{margin-bottom:34px}.rack-block-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:16px}.rack-block-head h3{font-size:19px}.u-meter{position:relative;flex:1;max-width:190px;height:22px;background:var(--cream-deep);border-radius:11px;overflow:hidden}.u-meter-fill{height:100%;background:var(--terracotta);opacity:.85;border-radius:11px;transition:width .35s cubic-bezier(.25,1,.4,1)}.u-meter-text{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:11.5px;font-weight:600;letter-spacing:.03em;color:var(--charcoal);mix-blend-mode:multiply}.installed-list{list-style:none;margin:0 0 14px;padding:0}.installed-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:8px}.installed-item.is-included{background:var(--cream-deep);border-style:dashed}.installed-text{display:flex;flex-direction:column;flex:1;min-width:0}.installed-text span:first-child{font-weight:500}.installed-meta{font-size:12px;color:var(--ink-soft)}.installed-actions{display:flex;gap:6px}.installed-actions button{border:1px solid var(--line);background:none;border-radius:8px;padding:5px 9px;font-size:13px;transition:border-color .15s}.installed-actions button:hover:not(:disabled){border-color:var(--terracotta)}.installed-actions button:disabled{opacity:.3}.installed-actions .remove{color:var(--ink-soft)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.option-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:16px;background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);transition:border-color .18s,box-shadow .18s,transform .18s}.option-card:hover:not(:disabled){border-color:var(--terracotta);box-shadow:0 6px 22px #1c1c1c12;transform:translateY(-1px)}.option-card.is-selected{border-color:var(--terracotta);box-shadow:0 0 0 1px var(--terracotta)}.option-card.is-disabled{opacity:.55}.station-icon{width:42px;height:42px;margin-bottom:4px}.card-title{font-weight:600;font-size:15.5px}.card-meta{font-size:12.5px;color:var(--terracotta);font-weight:600}.card-blurb{font-size:12.5px;color:var(--ink-soft)}.card-reason{font-size:12px;color:var(--terracotta-dark);font-weight:500;margin-top:4px}.card-check{margin-top:6px;font-size:13px;font-weight:600;color:var(--terracotta)}.addon-grid{grid-template-columns:1fr}.needs-subhead{margin:26px 0 4px;font-size:17px}.rec-panel{margin-top:26px;padding:18px;border:1.5px solid var(--terracotta);border-radius:var(--radius);background:#c1552e0d}.rec-panel.is-short{border-color:var(--terracotta-dark);background:#a4452314}.rec-panel h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--terracotta-dark)}.rec-headline{font-size:18px;font-weight:600;margin:8px 0 4px}.rec-detail{font-size:13.5px;color:var(--ink-soft);margin:0 0 14px}.rec-footnote{margin-top:10px}.review-breakdown{border-top:1px solid var(--line)}.review-rack{padding:16px 0;border-bottom:1px solid var(--line)}.review-rack h3{font-size:16px;margin-bottom:8px}.review-line{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:14px;font-variant-numeric:tabular-nums}.review-line-muted{color:var(--ink-soft);font-size:13px}.review-total{display:flex;justify-content:space-between;padding:18px 0 4px;font-family:Fraunces,Georgia,serif;font-size:20px;color:var(--terracotta)}.review-throughput{padding-bottom:14px}.link-button{margin:18px 0 6px;border:none;background:none;padding:0;color:var(--terracotta);font-weight:500;text-decoration:underline;text-underline-offset:3px}.reserve-form{margin-top:22px;display:flex;flex-direction:column;gap:14px}.reserve-form h3{font-size:19px}.reserve-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:500}.reserve-form input,.reserve-form textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--charcoal)}.reserve-form input:focus,.reserve-form textarea:focus{outline:none;border-color:var(--terracotta)}.form-error{color:#a33a1c;font-size:13.5px;margin:0}.reserve-done .reserve-total{font-size:30px;color:var(--terracotta);margin-top:18px}.reserve-done .reserve-total span{font-size:17px;color:var(--ink-soft)}.cta{width:100%;padding:14px 18px;border:none;border-radius:11px;background:var(--terracotta);color:#fff;font-size:15.5px;font-weight:600;letter-spacing:.01em;transition:background .18s,transform .12s}.cta:hover:not(:disabled){background:var(--terracotta-dark)}.cta:active:not(:disabled){transform:scale(.99)}.cta:disabled{opacity:.6}.mobile-bar{display:none}@media (max-width: 900px){.layout{flex-direction:column}.viewer{flex:none;height:44vh}.panel{width:100%;flex:1;border-left:none;border-top:1px solid var(--line);padding-bottom:68px}.stat-bar{display:none}.mobile-bar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:20;padding:14px 20px calc(14px + env(safe-area-inset-bottom));border:none;border-top:1px solid var(--line);background:var(--cream);box-shadow:0 -8px 26px #1c1c1c17;text-align:left}.mobile-bar-price{font-family:Fraunces,Georgia,serif;font-size:19px;color:var(--terracotta);font-variant-numeric:tabular-nums}.mobile-bar-meta{font-size:12.5px;color:var(--ink-soft)}.app:not(.mobile-open) .panel-body,.app:not(.mobile-open) .panel-footer{display:none}.app:not(.mobile-open) .viewer{flex:1;height:auto}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
