:root{--brand: #2F7D62;--brand-dark: #256550;--brand-light: #e8f3ee;--surface: #f6f8f7;--card: #ffffff;--text: #1f2a24;--muted: #6b7a72;--danger: #c0392b;--radius: 20px;--shadow: 0 8px 24px rgba(31, 42, 36, .08);--header-height: 64px;--bottom-bar-height: 72px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased}#app{min-height:100dvh}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.portal-layout{min-height:100dvh;display:flex;flex-direction:column}.portal-header{position:sticky;top:0;z-index:20;background:var(--card);border-bottom:1px solid #e4ebe7;padding:12px 16px 10px}.portal-header__inner{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:8px}.portal-header__title{font-size:1.1rem;font-weight:700}.portal-header__subtitle{margin:6px 0 0;color:var(--muted);font-size:.9rem}.portal-back{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;background:var(--brand-light);color:var(--brand);font-weight:700}.portal-main{flex:1;padding:16px;padding-bottom:calc(var(--bottom-bar-height) + 24px)}.portal-page{padding:24px 16px 32px;max-width:480px;margin:0 auto}.portal-page--centered{display:flex;flex-direction:column;gap:16px;min-height:100dvh;justify-content:center}.portal-muted{color:var(--muted);margin:0}.portal-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:.9rem;color:var(--muted)}.field input,.field textarea,.search-input{width:100%;border:1px solid #d7e2dc;border-radius:14px;padding:12px 14px;background:#f9fbfa}.field-inline{flex:1;min-width:120px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:14px;padding:12px 18px;cursor:pointer;font-weight:600;transition:transform .15s ease,opacity .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:not(:disabled):active{transform:scale(.98)}.btn-outline{background:#fff;color:var(--brand);border:1px solid #cfe0d8}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--brand)}.btn-sm{padding:8px 12px;font-size:.9rem}.btn-block{width:100%}.form-error{color:var(--danger);margin:0;font-size:.92rem}.brand-logo{display:block;object-fit:contain}.account-menu{display:flex;align-items:center;gap:8px;font-size:.85rem}.orders-toolbar{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.tab-chips,.category-chips,.day-chips{display:flex;gap:8px;flex-wrap:wrap}.tab-chip,.category-filter,.day-chip{border:1px solid #d7e2dc;background:#fff;border-radius:999px;padding:8px 14px;cursor:pointer}.tab-chip.active,.category-filter.active,.day-chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.category-filter.active{background:var(--chip-color, var(--brand));border-color:var(--chip-color, var(--brand))}.filters-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.orders-list{display:flex;flex-direction:column;gap:12px}.order-card{display:block;background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.order-card__top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.order-card p{margin:4px 0;color:var(--muted)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700}.badge-success{background:var(--brand-light);color:var(--brand)}.badge-muted{background:#eceff1;color:#60716a}.badge-count{display:inline-flex;min-width:22px;height:22px;align-items:center;justify-content:center;border-radius:999px;background:rgba(255,255,255,.25);font-size:.8rem}.fab{position:fixed;right:20px;bottom:20px;width:56px;height:56px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;line-height:1;box-shadow:0 12px 28px #2f7d6259;z-index:30}.load-more{margin-top:12px}.empty-state{text-align:center;padding:32px 16px;color:var(--muted)}.shop-toolbar{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.packaging-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.packaging-card{background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;min-height:180px}.packaging-card__name{margin:0;font-size:.98rem;line-height:1.3}.packaging-card__meta{margin:0;color:var(--muted);font-size:.88rem}.packaging-card__stepper{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}.stepper-btn{width:36px;height:36px;border-radius:12px;border:none;background:var(--brand-light);color:var(--brand);font-size:1.2rem;cursor:pointer}.stepper-btn:disabled{opacity:.4;cursor:not-allowed}.stepper-value{min-width:24px;text-align:center;font-weight:700}.category-chip{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:700;color:#fff;background:var(--chip-color, var(--brand))}.shop-bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid #e4ebe7;min-height:var(--bottom-bar-height)}.cart-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(20,30,25,.45);z-index:40;display:flex;align-items:flex-end}.cart-sheet{width:100%;max-height:90dvh;overflow:auto;background:var(--card);border-radius:24px 24px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom))}.cart-sheet__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cart-sheet__header h2{margin:0}.icon-btn{border:none;background:transparent;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--muted)}.cart-sheet__lines{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.cart-line{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #edf2ef}.cart-line p{margin:4px 0 0;color:var(--muted);font-size:.88rem}.cart-sheet__delivery{margin-bottom:12px}.cart-sheet__delivery h3{margin:0 0 8px;font-size:1rem}.cart-sheet__footer{margin-top:16px}.cart-total{margin:0 0 12px}.status-banner{border-radius:16px;padding:14px 16px;margin-bottom:16px}.status-banner strong{display:block;margin-bottom:4px}.status-banner p{margin:0;font-size:.92rem}.status-banner.info{background:#eef5ff;color:#1f4f8a}.status-banner.success{background:var(--brand-light);color:var(--brand-dark)}.status-banner.warning{background:#fff6e8;color:#8a5a12}.status-banner.muted{background:#eef1f0;color:#5f6d66}.detail-card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:16px}.detail-card h2{margin:0 0 12px;font-size:1rem}.detail-list{margin:0}.detail-list>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #edf2ef}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;text-align:right}.detail-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #edf2ef}.detail-actions{display:flex;flex-direction:column;gap:10px}.portal-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 16px;color:var(--muted)}.portal-spinner{width:36px;height:36px;border-radius:50%;border:3px solid #d7e2dc;border-top-color:var(--brand);animation:spin .8s linear infinite}.success-icon{width:72px;height:72px;border-radius:50%;background:var(--brand-light);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width: 768px){.portal-main,.portal-page{max-width:720px;margin-left:auto;margin-right:auto;width:100%}.packaging-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cart-sheet-overlay{align-items:center;justify-content:center;padding:24px}.cart-sheet{max-width:520px;border-radius:24px}}
