:root{--paper:#fff9e8;--paper-soft:#fffcf0d9;--ink-strong:#223227;--ink-soft:#5b695c;--leaf-deep:#355b3d;--leaf-soft:#5e8a5c;--lemon:#f6d84a;--citrus:#ffb84d;--coral-deep:#c4572c;--border-soft:#355b3d24;--shadow-soft:0 24px 40px #2c452f1a;color:var(--ink-soft);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#f6d84a38,#0000 30%),linear-gradient(#fff8df 0%,#fffef4 42%,#f8f4dd 100%);font-family:Avenir Next,Trebuchet MS,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0}body:before{content:"";pointer-events:none;background-image:linear-gradient(#355b3d0a 1px,#0000 1px),linear-gradient(90deg,#355b3d0a 1px,#0000 1px);background-size:42px 42px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000008c,#0000 85%);mask-image:linear-gradient(#0000008c,#0000 85%)}#root{max-width:1440px;margin:0 auto;padding:1.5rem}h1,h2,h3{color:var(--ink-strong);margin:0;font-family:Iowan Old Style,Palatino Linotype,serif;font-weight:700;line-height:1.05}h1{font-size:clamp(2.5rem,5vw,4.5rem)}h2{font-size:clamp(1.7rem,3vw,2.5rem)}h3{font-size:1.25rem}p{margin:0}button,input{font:inherit}strong{color:var(--ink-strong)}@media (width<=640px){#root{padding:1rem}}.app-shell{gap:1.5rem;width:min(1200px,100%);margin:0 auto;display:grid}.topbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar-title{color:#1d4a4f;font-size:1.9rem}.topbar-metrics{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.app-stage{gap:1.25rem;display:grid}.panel-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.panel-grid>*{min-width:0}.panel{background:linear-gradient(#fffaecf5,#fff4d6f0);border:1px solid #1d4a4f1f;border-radius:24px;padding:1.35rem;box-shadow:0 20px 45px #1d4a4f1f}.hero-panel{background:radial-gradient(circle at 100% 0,#f3b63f47,#0000 35%),linear-gradient(#fff7e0fa,#ffeec2f0)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#2a8da8;margin:0 0 .35rem;font-size:.72rem}.muted{color:#1d4a4fb8;line-height:1.5}.field-grid{gap:.85rem;display:grid}.buy-field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.5rem;display:grid}.planning-buy-field-grid{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:.9rem 1.1rem;display:flex}.planning-buy-field-grid .field{justify-items:start}.planning-buy-field-grid .field-input{width:min(100%,6.5rem)}.buy-field-column{flex:0 10rem;gap:.25rem;min-width:0;display:grid}.planning-market-panel{container-type:inline-size}.buy-field-grid .field-input{padding:.5rem .6rem;font-size:.88rem}.capacity-hint{color:#1d4a4f9e;font-size:.78rem}.bottleneck-indicator{color:#b4582f;font-weight:700}.shopping-summary{color:#1d4a4f;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;font-size:.88rem;display:flex}.overspend-warning{color:#ad3f23;font-weight:700}.price-row{flex-wrap:wrap;align-items:flex-end;gap:1.25rem;margin-top:.5rem;display:flex}.price-row .field{flex-shrink:0}.price-row .field-input{width:5rem}.price-context{color:#1d4a4fb8;white-space:nowrap;margin-bottom:.6rem;font-size:.85rem}.margin-negative{color:#ad3f23;font-weight:700}.field{gap:.35rem;display:grid}.field-heading{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.field-label{color:#1d4a4f;font-size:.88rem}.field-value{color:#2a8da8;font-size:.88rem;font-weight:700}.field-input{font:inherit;color:#12363b;background:#ffffffdb;border:1px solid #1d4a4f2e;border-radius:14px;padding:.75rem .9rem}.range-field{gap:.55rem}.field-range-input{appearance:none;cursor:pointer;background:linear-gradient(90deg,#2a8da8f2,#f3b63ff2);border:none;border-radius:999px;width:100%;height:.55rem;box-shadow:inset 0 1px 3px #12363b33}.field-range-input::-webkit-slider-thumb{appearance:none;background:#14363b;border:2px solid #fffaecf2;border-radius:50%;width:1.15rem;height:1.15rem;box-shadow:0 4px 10px #14363b38}.field-range-input::-moz-range-thumb{background:#14363b;border:2px solid #fffaecf2;border-radius:50%;width:1.15rem;height:1.15rem;box-shadow:0 4px 10px #14363b38}.field-range-input::-moz-range-track{background:linear-gradient(90deg,#2a8da8f2,#f3b63ff2);border:none;border-radius:999px;height:.55rem}.range-scale{color:#1d4a4f9e;justify-content:space-between;font-size:.75rem;display:flex}.action-row{flex-wrap:wrap;align-items:center;gap:.85rem;margin-top:1rem;display:flex}.action-button{font:inherit;cursor:pointer;border:none;border-radius:999px;padding:.8rem 1.2rem;font-weight:700;transition:transform .12s,box-shadow .12s}.action-button:hover{transform:translateY(-1px)}.action-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.action-button-primary{color:#14363b;background:linear-gradient(135deg,#f3b63f,#f1893f);box-shadow:0 12px 24px #f3b63f47}.action-button-secondary{color:#f7fbfc;background:linear-gradient(135deg,#2a8da8,#307183);box-shadow:0 12px 24px #2a8da833}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;display:grid}.compact-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.metric-card{background:#ffffffc2;border-radius:20px;gap:.2rem;padding:.9rem 1rem;display:grid}.panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.metric-label{color:#1d4a4fb8;font-size:.8rem}.metric-value{color:#14363b;font-size:1.15rem}.summary-chip{color:#1d4a4f;background:#fffc;border-radius:999px;align-items:center;padding:.45rem .8rem;display:inline-flex}.summary-chip-row{flex-wrap:wrap;gap:.65rem;display:flex}.sales-forecast-panel{background:radial-gradient(circle at 100% 0,#f3b63f3d,#0000 30%),linear-gradient(135deg,#fff8d4f5,#ffffffeb);position:relative;overflow:hidden}.sales-forecast-panel:after{content:"";pointer-events:none;background:#f1893f1a;border-radius:999px;width:10rem;height:10rem;position:absolute;inset:auto -3rem -4rem auto}.upgrade-panel{background:radial-gradient(circle at 0 0,#2a8da82e,#0000 32%),linear-gradient(135deg,#fffaecfa,#fff1cdf0)}.upgrade-list{gap:.85rem;display:grid}.upgrade-item{background:#ffffffb8;border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1rem;display:flex}.upgrade-copy{gap:.25rem;display:grid}.upgrade-name{color:#14363b;margin:0;font-weight:700}.upgrade-description{margin:0}.upgrade-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem;display:flex}.upgrade-cost,.upgrade-status{color:#14363b;white-space:nowrap;background:#ffffffe0;border-radius:999px;padding:.3rem .7rem;font-weight:700}.feedback-summary-panel{gap:.9rem;display:grid}.feedback-summary-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;display:grid}.feedback-summary-card{background:#ffffffb8;border-radius:18px;gap:.7rem;padding:.9rem 1rem;display:grid}.feedback-summary-name{color:#14363b;margin:0;font-weight:700}.feedback-count-pill{color:#14363b;background:#ffffffe0;border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .7rem;font-weight:700;display:inline-flex}.feedback-count-symbol{letter-spacing:.04em}.forecast-grid{z-index:1;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.85rem;margin-top:1rem;display:grid;position:relative}.forecast-copy{z-index:1;color:#14363b;margin:1rem 0 0;position:relative}.inventory-grid{z-index:1;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem;display:grid;position:relative}.inventory-grid-single{grid-template-columns:minmax(0,1fr)}.inventory-group{gap:.75rem;min-width:0;display:grid}.inventory-metric-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.planning-inventory-grid .inventory-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crowd-panel{overflow:hidden}.crowd-scene-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.crowd-clock{color:#14363b;font-size:clamp(2rem,3vw,2.6rem)}.crowd-scene{isolation:isolate;background:radial-gradient(circle at var(--scene-sun-x,12%) var(--scene-sun-y,14%), #ffec9a2e, transparent 18%), linear-gradient(180deg, var(--scene-sky-top,#dff5ff) 0%, var(--scene-sky-bottom,#f8efc0) 60%, var(--scene-ground-top,#add978) 60%, var(--scene-ground-bottom,#85b75e) 100%);min-height:26rem;filter:saturate(var(--scene-saturation,1));border:1px solid #1d4a4f1f;border-radius:22px;transition:background .18s linear,filter .18s linear;position:relative;overflow:hidden}.crowd-scene:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 50% -5%,#ffffff47,#0000 30%),linear-gradient(#ffffff14,#0000 45%,#1024341f);position:absolute;inset:0}.crowd-scene[data-weather=sunny] .crowd-haze{opacity:.12}.crowd-scene[data-weather=hot] .crowd-haze{opacity:.3}.crowd-scene[data-weather=cloudy] .crowd-cloud,.crowd-scene[data-weather=raining] .crowd-cloud{opacity:.92}.crowd-scene[data-weather=raining] .crowd-rain{opacity:1}.crowd-scene[data-weather=raining] .crowd-sun{opacity:.08}.crowd-scene[data-weather=hot] .crowd-sun{transform:scale(1.1);box-shadow:0 0 0 1rem #ffd05d1f,0 0 3rem #ffcb53a6}.crowd-scene[data-weather=hot] .crowd-cloud{opacity:.16}.crowd-scene[data-weather=cloudy]:before,.crowd-scene[data-weather=raining]:before{background:linear-gradient(#d5e1ed5c,#63799529 45%,#10243429)}.crowd-sun,.crowd-cloud,.crowd-haze,.crowd-rain,.crowd-sidewalk,.crowd-road{position:absolute}.crowd-sun{opacity:.95;z-index:1;background:radial-gradient(circle at 35% 35%,#fff6bc 0%,#ffd469 58%,#f5a33a 100%);border-radius:50%;width:4.75rem;height:4.75rem;top:1.8rem;left:1.9rem;box-shadow:0 0 0 .85rem #ffe08229,0 0 2.5rem #ffd55c73}.crowd-cloud{top:var(--cloud-top,9%);left:var(--cloud-left,26%);width:var(--cloud-width,8rem);height:2.8rem;opacity:var(--cloud-opacity,.38);transform:scale(var(--cloud-scale,1));z-index:1;background:radial-gradient(circle at 20% 70%,#fffffff2 0 28%,#0000 29%),radial-gradient(circle at 40% 38%,#fffffff5 0 30%,#0000 31%),radial-gradient(circle at 68% 52%,#ffffffeb 0 26%,#0000 27%),linear-gradient(#ffffffe6,#deebf6c2);border-radius:999px}.crowd-haze{opacity:0;z-index:1;background:radial-gradient(circle at 82% 24%,#ffe18c66,#0000 24%),linear-gradient(#ffc6701a,#0000 34%);inset:0}.crowd-rain{opacity:0;pointer-events:none;z-index:1;inset:0;overflow:hidden}.crowd-rain-drop{top:-24%;left:var(--rain-left);width:.28rem;height:var(--rain-length);opacity:var(--rain-opacity);animation:rainfall var(--rain-duration) linear infinite;animation-delay:var(--rain-delay);will-change:top, transform, opacity;background:linear-gradient(#ffffff73,#69b5ef);border-radius:999px;position:absolute;transform:translate(0)rotate(14deg);box-shadow:0 0 14px #a7d2f299,0 0 3px #ffffff59}.crowd-sidewalk{z-index:2;background:linear-gradient(#ffffff1f,#0000 25%),linear-gradient(90deg,#1d4a4f14 0 14%,#0000 14% 20%,#1d4a4f14 20% 34%,#0000 34% 40%,#1d4a4f14 40% 54%,#0000 54% 60%,#1d4a4f14 60% 74%,#0000 74% 80%,#1d4a4f14 80% 94%,#0000 94% 100%),linear-gradient(#d8cfc6,#b8aea4);height:12%;inset:auto 0 28%}.crowd-road{z-index:2;background:linear-gradient(#ffffff2e,#0000 18%),linear-gradient(#8b817a,#584e49);height:30%;inset:auto 0 0}.crowd-road:after{content:"";background:repeating-linear-gradient(90deg,#fcea9ff2 0 1rem,#0000 1rem 1.45rem);height:.35rem;position:absolute;inset:48% 8% auto}.stand-column{z-index:3;justify-items:center;gap:.5rem;width:18rem;display:grid;position:absolute;bottom:8%}.stand-column-left{left:3%}.stand-column-right{right:3%}.stand-column-solo{left:50%;transform:translate(-50%)}.stand-name{color:#14363b;margin:0;font-size:1.25rem;font-weight:700}.sold-out-sign{color:#fff7f5;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(#ff847c,#d7263d);border-radius:999px;padding:.35rem .9rem;font-size:.85rem;font-weight:800;box-shadow:0 10px 18px #d7263d3d}.stand-sprite{filter:drop-shadow(0 12px 20px #11363b40);width:11rem}.stand-score{color:#14363b;background:#ffffffd1;border-radius:999px;padding:.45rem .8rem}.crowd-customer{z-index:4;justify-items:center;gap:.25rem;display:grid;position:absolute;transform:translate(-50%,50%)}.customer-sprite{filter:drop-shadow(0 8px 14px #11363b2e);width:3rem}.reaction-badge{background:#ffffffe0;border-radius:999px;margin-bottom:-.1rem;padding:.25rem .6rem;font-size:.75rem;font-weight:700;box-shadow:0 8px 18px #11363b26}.reaction-badge-positive{color:#198754}.reaction-badge-negative{color:#b6452f}.reaction-badge-hint{color:#8a5a00;letter-spacing:.04em;background:#fff6d6f0}.sale-tag{color:#198754;background:#ffffffd1;border-radius:999px;padding:.2rem .5rem;font-size:.8rem}.crowd-soldOut .sale-tag{color:#b4582f}@keyframes rainfall{0%{opacity:0;top:-24%;transform:translate(0)rotate(14deg)}8%{opacity:var(--rain-opacity);top:-10%}to{opacity:.1;transform:translateX(var(--rain-drift)) rotate(14deg);top:112%}}.results-chart-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.results-filter-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filter-chip{color:#1d4a4f;cursor:pointer;font:inherit;background:#ffffffd1;border:1px solid #1d4a4f24;border-radius:999px;padding:.45rem .8rem;font-weight:700}.filter-chip-active{color:#fffaf0;background:linear-gradient(135deg,#2a8da8,#f3b63f);border-color:#0000}.results-chart-shell{width:100%;height:18rem}.results-chart-stack{gap:.65rem;display:grid}.chart-legend-row{align-items:center}.results-chart-shell-performance,.results-chart-shell-recipe{height:21rem}.results-chart-shell .recharts-legend-wrapper{padding-top:.15rem}.results-chart-shell .recharts-legend-item-text{font-weight:700;color:#1d4a4f!important}.chart-empty-state{margin:0;padding-top:.25rem}.error-text{color:#ad3f23;margin:0;font-weight:700}@media (width<=720px){.topbar,.upgrade-item{flex-direction:column;align-items:flex-start}.upgrade-actions{justify-content:flex-start}.buy-field-grid{grid-template-columns:1fr}.price-row{flex-direction:column;align-items:flex-start}.price-row .field{width:100%}.crowd-scene{min-height:22rem}.crowd-scene-header{flex-direction:column;align-items:flex-start}.crowd-sun{width:3.7rem;height:3.7rem}.crowd-cloud-left{width:6rem;left:16%}.crowd-cloud-right{width:5.5rem;right:8%}.crowd-cloud{width:min(var(--cloud-width,8rem), 5rem)}.stand-column{width:10rem}.stand-sprite{width:8rem}.results-chart-header{flex-direction:column}}@container (width<=31rem){.planning-buy-field-grid{justify-content:stretch}.planning-buy-field-grid .buy-field-column{flex-basis:100%}}
