*,:before,:after{box-sizing:border-box}:root{--bg:#f6f3ee;--surface:#fffcf8;--text:#1c1917;--text-muted:#57534e;--border:#e7e0d6;--short:#b42318;--extra:#067647;--neutral:#1c1917;--btn-primary:#1c1917;--btn-primary-text:#fffcf8;--accent-warm:#c4a574;--tap-min:44px;--radius:10px;--font-body:"DM Sans", system-ui, sans-serif;--font-display:"DM Serif Display", Georgia, serif;font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.45}body{min-height:100dvh;margin:0}#root{min-height:100dvh}.app-shell{max-width:28rem;min-height:100dvh;padding:env(safe-area-inset-top) 1rem env(safe-area-inset-bottom);flex-direction:column;margin:0 auto;display:flex}.app-header{min-height:var(--tap-min);grid-template-columns:2.5rem 1fr 2.5rem;align-items:center;padding:.5rem 0;display:grid}.screen-title{font-family:var(--font-body);text-align:center;letter-spacing:-.02em;margin:0;font-size:1.125rem;font-weight:600}.screen-title--shop{font-family:var(--font-display);color:var(--text);font-size:1.25rem;font-weight:400}.back-link,.settings-link{color:var(--text);min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius);justify-content:center;align-items:center;font-size:1.25rem;text-decoration:none;display:flex}.back-link:focus-visible,.settings-link:focus-visible{outline:2px solid var(--text);outline-offset:2px}.back-spacer{width:2.5rem}.app-main{flex:1;padding-bottom:1.5rem}.tonight-stack,.form-stack,.gap-screen{flex-direction:column;gap:1rem;display:flex}.btn{min-height:var(--tap-min);border-radius:var(--radius);font-family:var(--font-body);cursor:pointer;text-align:center;border:none;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}.btn-full{width:100%}.btn-primary{background:var(--btn-primary);color:var(--btn-primary-text)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-ghost{color:var(--text-muted);border:1px dashed var(--border);background:0 0}.btn:disabled{opacity:.45;cursor:not-allowed}.history-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem}.history-heading{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .5rem;font-size:.75rem;font-weight:600}.history-list{margin:0;padding:0;list-style:none}.history-row{font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border);padding:.5rem 0;font-weight:500}.history-row:last-child{border-bottom:none}.history-empty{color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.5}.field{flex-direction:column;gap:.375rem;display:flex}.field-label{color:var(--text);font-size:.875rem;font-weight:500}.field-hint{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.45}.field-success{color:var(--extra);margin:0;font-size:.875rem}.field-error,.field-warn{color:var(--short);margin:0;font-size:.875rem}.numeric-input,.text-input{min-height:var(--tap-min);font-family:var(--font-body);font-variant-numeric:tabular-nums;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:.75rem 1rem;font-size:1.25rem}.numeric-input:focus-visible,.text-input:focus-visible,.note-input:focus-visible{outline:2px solid var(--text);outline-offset:0;border-color:var(--text)}.text-input{font-size:1rem}.staff-chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{min-height:var(--tap-min);border:1px solid var(--border);background:var(--surface);font-family:var(--font-body);cursor:pointer;border-radius:999px;padding:0 1rem;font-size:.9375rem}.chip:focus-visible{outline:2px solid var(--text);outline-offset:2px}.chip-active{background:var(--btn-primary);color:var(--btn-primary-text);border-color:var(--btn-primary)}.tally-thumb{object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);width:100%;max-height:12rem}.shelf-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.shelf-qty-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.gap-line{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;padding:.75rem 0;display:flex}.gap-line-large{border-bottom:none;padding:1.25rem 0}.gap-line-large .gap-amount{letter-spacing:-.02em;font-size:2rem;font-weight:700}.gap-label{color:var(--text-muted);font-size:.9375rem}.gap-amount{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600}.gap-short{color:var(--short)}.gap-extra{color:var(--extra)}.gap-neutral{color:var(--neutral)}.note-input{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:.9375rem;font-family:var(--font-body);resize:vertical;background:var(--surface);color:var(--text);padding:.75rem 1rem}.text-link{color:var(--text-muted);font-size:.875rem;font-family:var(--font-body);cursor:pointer;text-align:left;min-height:var(--tap-min);background:0 0;border:none;padding:.25rem 0;text-decoration:underline}.text-link:focus-visible{outline:2px solid var(--text);outline-offset:2px}.help-text{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.45}.trial-banner{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;font-size:.875rem}.trial-banner p{margin:0 0 .75rem;line-height:1.45}.offline-banner{color:#92400e;text-align:center;background:#fef3c7;padding:.5rem 1rem;font-size:.8125rem}.online-banner{color:#065f46;background:#ecfdf5}.install-banner{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:1rem;font-size:.875rem}.install-banner p{margin:0 0 .75rem}.install-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.checkout-toast{color:#065f46;text-align:center;background:#ecfdf5;padding:.5rem 1rem;font-size:.8125rem}.done-toast{background:var(--surface);color:var(--text);text-align:center;border-bottom:1px solid var(--border);padding:.625rem 1rem;font-size:.875rem}.billing-link{margin-top:.5rem;display:block}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.settings-form select{appearance:auto}.activation-readout{border-bottom:1px solid var(--border);padding:.75rem 0}.activation-readout-value{font-variant-numeric:tabular-nums;color:var(--text-muted);margin:.25rem 0 0;font-size:.9375rem}.shelf-badge{text-align:center}.close-progress{margin-bottom:.25rem}.close-progress-list{justify-content:center;gap:.5rem;margin:0;padding:.5rem 0;list-style:none;display:flex}.close-progress-step{align-items:center;display:flex}.close-progress-dot{background:var(--border);border-radius:999px;width:.5rem;height:.5rem}.close-progress-done .close-progress-dot{background:var(--accent-warm)}.close-progress-active .close-progress-dot{background:var(--text);transform:scale(1.35)}.close-progress-upcoming .close-progress-dot{background:var(--border);background:var(--border)}.orient-hero{padding:.25rem 0 0}.orient-headline{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.5rem;font-weight:400;line-height:1.25}.orient-benefit{color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.45}.orient-steps{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);counter-reset:orient-step;flex-direction:column;gap:.375rem;margin:0;padding:.75rem 1rem;list-style:none;display:flex}.orient-steps li{color:var(--text);align-items:center;gap:.625rem;font-size:.9375rem;display:flex}.orient-steps li:before{counter-increment:orient-step;content:counter(orient-step);background:var(--border);width:1.375rem;height:1.375rem;color:var(--text-muted);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.orient-cta-block{flex-direction:column;gap:.375rem;display:flex}.orient-cta-hint{text-align:center;color:var(--text-muted);margin:0;font-size:.875rem}.sample-week-label{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-warm);margin:0 0 .5rem;font-size:.75rem;font-weight:600}.history-list--sample .history-row{color:var(--text-muted)}.orient-secondary-link{min-height:var(--tap-min);color:var(--text-muted);text-underline-offset:2px;justify-content:center;align-items:center;font-size:.875rem;text-decoration:underline;display:flex}.orient-secondary-link:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:var(--radius)}@media (prefers-reduced-motion:reduce){.btn{transition:none}}
