:root {
    --tea: #8a4b24;
    --tea-dark: #2a1b14;
    --tea-soft: #f6eee8;
    --leaf: #2f7d54;
    --gold: #d79a2b;
    --ink: #1f2428;
    --muted: #69717a;
    --line: #e8ddd4;
    --bg: #fbf8f5;
    --card: #ffffff;
    --shadow: 0 18px 40px rgba(48, 32, 20, .10);
}

* { box-sizing: border-box; }
body {
    margin: 0;
    background:
        radial-gradient(circle at top left, rgba(246, 238, 232, .95), transparent 34rem),
        radial-gradient(circle at 92% 12%, rgba(47, 125, 84, .10), transparent 28rem),
        linear-gradient(180deg, #fffaf3 0%, var(--bg) 42%, #f7efe6 100%);
    color: var(--ink);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
.btn-tea {
    --bs-btn-bg: #9b4d18;
    --bs-btn-border-color: #9b4d18;
    --bs-btn-hover-bg: #7c3a11;
    --bs-btn-hover-border-color: #7c3a11;
    color: #fff;
    box-shadow: 0 14px 26px rgba(122, 53, 18, .20);
}
.btn-soft {
    background: #fff8ef;
    color: var(--tea-dark);
    border: 1px solid rgba(138, 75, 36, .18);
    box-shadow: 0 10px 20px rgba(48, 32, 20, .06);
}
.pill { border-radius: 999px; }
.card-lite {
    position: relative;
    background:
        radial-gradient(circle at 100% 0, rgba(215, 154, 43, .10), transparent 16rem),
        linear-gradient(180deg, #fffdf8, #fff8ef);
    border: 1px solid rgba(138, 75, 36, .14);
    border-radius: 24px;
    box-shadow: 0 22px 50px rgba(48, 32, 20, .11);
}
.table > :not(caption) > * > * { padding: .85rem; }

.toast-stack {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 1100;
    display: grid;
    gap: 10px;
}
.app-toast {
    background: #fff;
    border-left: 5px solid var(--tea);
    box-shadow: var(--shadow);
    border-radius: 12px;
    padding: 12px 16px;
    min-width: 260px;
    animation: fadeToast 5s both;
}
.app-toast.success { border-color: var(--leaf); }
.app-toast.danger { border-color: #c0392b; }
@keyframes fadeToast {
    0%, 80% { opacity: 1; transform: translateY(0); }
    100% { opacity: 0; transform: translateY(-10px); }
}

.store-top {
    position: sticky;
    top: 0;
    z-index: 100;
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 12px clamp(16px, 4vw, 56px);
    background:
        linear-gradient(90deg, rgba(255, 250, 243, .95), rgba(255, 248, 239, .88)),
        radial-gradient(circle at 14% 0, rgba(215, 154, 43, .16), transparent 18rem);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(138, 75, 36, .14);
    box-shadow: 0 12px 30px rgba(48, 32, 20, .07);
}
.store-brand, .brand-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 900;
    color: var(--tea-dark);
    letter-spacing: 0;
}
.store-brand span {
    display: grid;
    line-height: 1.05;
}
.store-brand small {
    margin-top: 2px;
    color: var(--leaf);
    font-size: .66rem;
    font-weight: 850;
}
.store-brand i, .brand-pill i {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: linear-gradient(135deg, #b7661d, #d79a2b);
    box-shadow: 0 12px 24px rgba(138, 75, 36, .18);
}
.store-search {
    height: 50px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 16px;
    background: rgba(255, 255, 255, .86);
    border: 1px solid rgba(138, 75, 36, .13);
    border-radius: 999px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.58), 0 14px 28px rgba(48, 32, 20, .07);
}
.store-search i {
    color: var(--tea);
}
.store-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
}
.top-actions { display: flex; gap: 10px; }
.icon-btn {
    position: relative;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: rgba(255,255,255,.90);
    border: 1px solid rgba(138, 75, 36, .13);
    box-shadow: 0 12px 24px rgba(48, 32, 20, .08);
    color: var(--tea-dark);
    transition: .2s ease;
}
.icon-btn:hover {
    transform: translateY(-1px);
    color: var(--tea);
    background: #fff8ef;
}
.icon-btn span {
    position: absolute;
    top: -7px;
    right: -7px;
    min-width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    color: #fff;
    background: var(--leaf);
    font-size: 11px;
    font-weight: 800;
}
.store-main { padding: 24px clamp(16px, 4vw, 56px) 94px; }
.page-head {
    position: relative;
    overflow: hidden;
    min-height: 126px;
    padding: 26px clamp(18px, 3.5vw, 42px);
    margin: 0 0 24px;
    border-radius: 26px;
    background:
        linear-gradient(110deg, rgba(255,248,237,.96) 0 54%, rgba(31,72,24,.92) 54% 100%),
        url("https://images.unsplash.com/photo-1544787219-7f47ccb76574?auto=format&fit=crop&w=1100&q=80") center right/cover;
    border: 1px solid rgba(138, 75, 36, .16);
    box-shadow: 0 22px 54px rgba(48, 32, 20, .12);
}
.page-head::before {
    content: "";
    position: absolute;
    right: 28px;
    top: 18px;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.28);
}
.page-head > * {
    position: relative;
    z-index: 1;
}
.page-head h1 {
    margin: 0;
    max-width: 620px;
    color: #173c18;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.3rem);
    font-weight: 900;
    letter-spacing: 0;
}
.page-head .btn {
    background: #fff;
    border-color: rgba(138,75,36,.14);
}
.form-control,
.form-select {
    border-color: rgba(138, 75, 36, .18);
    border-radius: 16px;
    background-color: rgba(255,255,255,.88);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.70);
}
.form-control:focus,
.form-select:focus {
    border-color: rgba(47, 125, 84, .55);
    box-shadow: 0 0 0 .22rem rgba(47, 125, 84, .13);
}
.form-label {
    color: var(--tea-dark);
    font-weight: 800;
}
.table {
    vertical-align: middle;
}
.public-page-grid {
    align-items: flex-start;
}
.cart-panel {
    padding-block: 6px !important;
}
.cart-item {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) 96px auto;
    align-items: center;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(138,75,36,.14);
}
.cart-item:last-child {
    border-bottom: 0;
}
.cart-item img {
    width: 92px;
    height: 92px;
    object-fit: cover;
    border-radius: 22px;
    border: 3px solid #fff;
    box-shadow: 0 14px 28px rgba(48,32,20,.12);
}
.cart-item strong {
    color: var(--tea-dark);
    font-size: 1.05rem;
}
.cart-qty {
    width: 96px;
    text-align: center;
}
.cart-line-total {
    color: #173c18;
    font-size: 1.05rem;
}
.summary-card {
    position: sticky;
    top: 92px;
}
.summary-card h2,
.section-card-title {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #173c18;
}
.section-card-title i {
    width: 34px;
    height: 34px;
    display: inline-grid;
    place-items: center;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(135deg, var(--leaf), #173c18);
}
.choice-card {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    margin-bottom: 10px;
    padding: 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(138,75,36,.16);
    box-shadow: 0 10px 24px rgba(48,32,20,.06);
    cursor: pointer;
}
.choice-card:has(input:checked) {
    border-color: rgba(47,125,84,.55);
    background: rgba(47,125,84,.08);
}
.profile-card {
    overflow: hidden;
}
.profile-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 110px;
    background:
        linear-gradient(135deg, rgba(31,72,24,.92), rgba(138,75,36,.68)),
        url("https://images.unsplash.com/photo-1544787219-7f47ccb76574?auto=format&fit=crop&w=900&q=80") center/cover;
}
.profile-card > * {
    position: relative;
    z-index: 1;
}
.profile-photo {
    width: 128px;
    height: 128px;
    object-fit: cover;
    border-radius: 50%;
    border: 6px solid #fffaf3;
    box-shadow: 0 18px 34px rgba(48,32,20,.18);
}
.order-card-public {
    overflow: hidden;
}
.order-card-head {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
}
.order-card-head > div:first-child strong {
    color: #173c18;
    font-size: 1.08rem;
}
.order-total strong {
    display: block;
    color: var(--tea);
    font-size: 1.15rem;
}
.status-pill {
    display: inline-flex;
    align-items: center;
    margin-top: 5px;
    padding: 5px 10px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, var(--leaf), #173c18);
    font-size: .76rem;
    font-weight: 850;
    text-transform: capitalize;
}
.order-progress {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}
.order-progress span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 11px;
    border-radius: 999px;
    color: #6f6258;
    background: rgba(255,255,255,.70);
    border: 1px solid rgba(138,75,36,.13);
    font-size: .86rem;
    font-weight: 800;
}
.order-progress span.done {
    color: #1f6c33;
    background: rgba(47,125,84,.10);
    border-color: rgba(47,125,84,.24);
}
.address-form,
.address-card {
    overflow: hidden;
}
.address-card strong {
    color: #173c18;
}
.product-detail-media {
    overflow: hidden;
    border-radius: 32px;
    border: 1px solid rgba(138, 75, 36, .14);
    background: #2a1b14;
    box-shadow: 0 26px 64px rgba(48,32,20,.16);
}
.product-detail-media img {
    width: 100%;
    aspect-ratio: 1.05;
    object-fit: cover;
    display: block;
}
.product-detail-card {
    min-height: 100%;
}
.product-ribbon-static {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 14px;
    padding: 10px 18px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, #a85d25, #7f3d13);
    font-weight: 900;
    text-transform: uppercase;
}
.product-ribbon-static .food-mark {
    width: 20px;
    height: 20px;
    margin-left: 4px;
    background: #fff;
}
.product-detail-card h1 {
    color: #173c18;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 5vw, 4rem);
    line-height: .95;
}
.product-detail-price {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.product-detail-price strong {
    color: var(--tea);
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1;
    font-weight: 950;
}
.product-detail-price del {
    color: var(--muted);
    font-size: 1.05rem;
    font-weight: 800;
}
.product-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}
.auth-shell {
    min-height: 72vh;
    align-items: center;
}
.auth-card {
    overflow: hidden;
}
.auth-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 7px;
    background: linear-gradient(90deg, var(--leaf), var(--gold), var(--tea));
}
.hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(320px, .9fr) minmax(380px, 1.1fr);
    min-height: 560px;
    border-radius: 26px;
    overflow: hidden;
    background: #fff8ed;
    border: 1px solid rgba(138, 75, 36, .16);
    color: var(--tea-dark);
    box-shadow: 0 28px 70px rgba(48, 32, 20, .18);
    isolation: isolate;
}
.hero::before {
    content: "";
    position: absolute;
    inset: 0 44% 96px 0;
    z-index: 1;
    background:
        radial-gradient(circle at 88% 66%, rgba(138,75,36,.08), transparent 22%),
        linear-gradient(100deg, #fff7eb 0%, #fffaf3 72%, rgba(255,248,237,.82) 100%);
    border-right: 2px solid rgba(215,154,43,.20);
    border-radius: 0 48% 50% 0 / 0 56% 44% 0;
}
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(90deg, rgba(255,248,237,.78) 0 40%, rgba(37,24,16,.06) 40% 100%),
        url("https://images.unsplash.com/photo-1544787219-7f47ccb76574?auto=format&fit=crop&w=1600&q=85") center right/cover;
}
.hero-copy,
.hero-visual,
.hero-bottom-bar {
    position: relative;
    z-index: 2;
}
.hero-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: clamp(28px, 4.5vw, 58px) clamp(20px, 4vw, 64px) 156px;
}
.hero-kicker {
    max-width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 18px 9px 8px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, #2f5e22, #173c18);
    border: 1px solid rgba(23,60,24,.36);
    box-shadow: 0 10px 22px rgba(20, 54, 19, .20);
    font-size: clamp(.86rem, 1vw, 1rem);
    font-weight: 850;
    white-space: nowrap;
}
.hero-kicker span {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: #1f5f20;
    border: 3px solid #173c18;
    font-size: 1.55rem;
}
.hero h1 {
    margin: 22px 0 8px;
    max-width: 520px;
    color: #173c18;
    font-size: clamp(4rem, 7vw, 7.1rem);
    line-height: .86;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 900;
    letter-spacing: 0;
    text-shadow: 0 1px 0 rgba(255,255,255,.70);
}
.hero h1 span {
    display: block;
    color: #a3480f;
    font-size: .7em;
    font-style: italic;
}
.hero-rule {
    display: flex;
    align-items: center;
    gap: 10px;
    width: min(410px, 100%);
    margin: 6px 0 22px;
    color: #a85518;
}
.hero-rule span {
    height: 2px;
    flex: 1;
    background: linear-gradient(90deg, transparent, #b7601f, transparent);
}
.hero p {
    max-width: 470px;
    margin: 0;
    color: #172119;
    font-size: clamp(1.05rem, 1.6vw, 1.45rem);
    line-height: 1.38;
    font-weight: 500;
}
.hero-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(84px, 1fr));
    gap: clamp(12px, 2.2vw, 26px);
    width: min(470px, 100%);
    margin-top: 28px;
}
.hero-mini-grid span {
    display: grid;
    justify-items: center;
    gap: 10px;
    color: #173c18;
    font-weight: 900;
    text-align: center;
}
.hero-mini-grid i {
    width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,250,241,.86);
    border: 2px solid rgba(185,111,35,.45);
    color: #a84a10;
    font-size: 1.9rem;
    box-shadow: 0 10px 24px rgba(48,32,20,.08);
}
.hero-visual {
    min-height: 464px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 38px 48px 130px 18px;
}
.hero-visual img {
    width: min(520px, 90%);
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
    border: 8px solid rgba(255,248,237,.75);
    box-shadow: 0 30px 64px rgba(20, 12, 8, .34);
}
.hero-snack-card {
    position: absolute;
    right: clamp(18px, 4vw, 54px);
    bottom: 124px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    border-radius: 22px;
    color: #fff;
    background: rgba(34, 21, 12, .66);
    border: 1px solid rgba(255, 248, 237, .72);
    box-shadow: 0 18px 42px rgba(20, 12, 8, .32);
    backdrop-filter: blur(8px);
    font-weight: 900;
}
.hero-snack-card i {
    color: #f4c575;
}
.hero-bottom-bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(230px, .9fr);
    gap: 0;
    align-items: center;
    min-height: 104px;
    padding: 18px 34px;
    color: #fff;
    background: linear-gradient(135deg, #254719, #173912);
    border-top: 2px solid rgba(227, 166, 75, .70);
}
.hero-benefit {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 0 24px;
    border-right: 1px dashed rgba(238, 210, 142, .38);
}
.hero-benefit:first-child {
    padding-left: 0;
}
.hero-benefit i {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #fff7eb;
    color: #2d5d21;
    font-size: 1.6rem;
}
.hero-benefit strong,
.hero-benefit span {
    display: block;
}
.hero-benefit strong {
    font-size: 1rem;
    font-weight: 900;
}
.hero-benefit span {
    color: rgba(255,255,255,.82);
    font-size: .92rem;
    line-height: 1.25;
}
.hero-order-btn {
    justify-self: end;
    display: inline-grid;
    grid-template-columns: 1fr 50px;
    align-items: center;
    gap: 12px;
    width: min(260px, 100%);
    min-height: 64px;
    padding: 7px 8px 7px 28px;
    border-radius: 999px;
    background: linear-gradient(135deg, #c56712, #98430d);
    color: #fff;
    border: 2px solid rgba(244, 211, 163, .72);
    box-shadow: 0 15px 30px rgba(0,0,0,.24);
    font-size: 1.18rem;
    font-weight: 950;
    text-transform: uppercase;
}
.hero-order-btn i {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: #9e460f;
}
.quick-app-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 18px 0 8px;
}
.quick-app-row a {
    display: grid;
    place-items: center;
    gap: 8px;
    min-height: 86px;
    background: #fff;
    border: 1px solid rgba(138,75,36,.10);
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(48,32,20,.07);
    font-weight: 850;
}
.quick-app-row i {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, var(--leaf), var(--tea));
    border-radius: 14px;
}
.section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 28px 0 14px;
}
.section-title h2 { font-size: 1.35rem; font-weight: 900; margin: 0; }
.category-strip {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 8px;
}
.category-chip {
    min-width: max-content;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--line);
    font-weight: 700;
}
.category-chip.active-chip {
    background: var(--tea);
    color: #fff;
    border-color: var(--tea);
}
.category-browse-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 18px;
}
.category-tile {
    position: relative;
    min-height: 190px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    border-radius: 24px;
    color: #fff;
    background: #2a1b14;
    border: 1px solid rgba(138,75,36,.16);
    box-shadow: 0 18px 42px rgba(48,32,20,.14);
}
.category-tile img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: .25s ease;
}
.category-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(20,12,8,.82));
}
.category-tile span,
.category-tile small {
    position: relative;
    z-index: 1;
    margin-inline: 16px;
}
.category-tile span {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 1.08rem;
    font-weight: 950;
}
.category-tile small {
    width: max-content;
    margin-top: 7px;
    margin-bottom: 16px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.24);
    font-weight: 800;
}
.category-tile:hover img {
    transform: scale(1.04);
}
.product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.product-card {
    position: relative;
    background: #fff7ee;
    border: 1px solid rgba(138, 75, 36, .14);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 18px 42px rgba(48, 32, 20, .13);
    transition: .22s ease;
}
.product-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.product-media {
    position: relative;
    display: block;
    overflow: hidden;
    background: #2a1b14;
}
.product-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.02) 45%, rgba(42,27,20,.18));
    pointer-events: none;
}
.product-card img {
    width: 100%;
    aspect-ratio: .98;
    object-fit: cover;
    display: block;
    transition: .35s ease;
}
.product-card:hover img {
    transform: scale(1.035);
}
.product-ribbon {
    position: absolute;
    left: 14px;
    top: 14px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    max-width: calc(100% - 36px);
    padding: 8px 14px;
    border-radius: 999px;
    background: linear-gradient(135deg, #a85d25, #7f3d13);
    color: #fff;
    box-shadow: 0 14px 28px rgba(52, 27, 10, .30);
    font-size: .76rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .02em;
}
.product-ribbon i {
    font-size: 1rem;
}
.product-body {
    position: relative;
    margin-top: -28px;
    padding: 42px 16px 16px;
    background:
        radial-gradient(circle at 92% 58%, rgba(216,154,43,.09) 0 2px, transparent 3px) 0 0 / 16px 16px,
        linear-gradient(180deg, #fff9f2, #fffdf9);
    border-radius: 42% 42% 0 0 / 38px 38px 0 0;
}
.product-body::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -16px;
    height: 44px;
    background: #fff9f2;
    border-radius: 55% 45% 0 0 / 100% 100% 0 0;
    transform: skewY(-3deg);
    transform-origin: left bottom;
}
.product-body > * {
    position: relative;
    z-index: 1;
}
.product-type {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--tea);
    font-weight: 900;
    margin-bottom: 8px;
    font-size: .86rem;
}
.product-type span {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--tea-soft);
}
.food-mark {
    width: 18px;
    height: 18px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    margin-left: 2px;
    border: 2px solid currentColor;
    border-radius: 4px;
    background: #fffdf8;
    font-style: normal;
}
.food-mark b {
    width: 8px;
    height: 8px;
    display: block;
    border-radius: 50%;
    background: currentColor;
}
.food-mark.veg {
    color: #198754;
}
.food-mark.nonveg {
    color: #d12b2b;
}
.product-body h3 {
    font-size: 1.42rem;
    line-height: 1.05;
    font-weight: 950;
    margin: 0 0 8px;
    color: #131b2c;
    letter-spacing: 0;
}
.product-body p {
    min-height: 42px;
    color: var(--muted);
    line-height: 1.38;
    margin: 0 0 12px;
    font-size: .86rem;
}
.product-meta-row {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 9px;
    margin-bottom: 14px;
}
.product-meta-row::before {
    display: none;
}
.price-box {
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-height: 50px;
    padding: 8px 12px;
    border: 1px solid rgba(138,75,36,.22);
    border-radius: 14px;
    background: rgba(255,255,255,.70);
    color: #7b3b12;
}
.price-box small {
    font-size: .9rem;
    font-weight: 900;
}
.price-box strong {
    font-size: 1.5rem;
    line-height: 1;
    font-weight: 950;
}
.price-box del {
    color: var(--muted);
    font-size: .82rem;
}
.discount-badge {
    display: inline-flex;
    align-items: center;
    width: max-content;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(47,125,84,.12);
    color: #1f6c33;
    font-size: .74rem;
    font-weight: 900;
}
.admin-discount-note {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 750;
}
.price { font-weight: 900; color: var(--tea); }
.old-price { color: var(--muted); text-decoration: line-through; font-size: .88rem; }
.stock-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: max-content;
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(47, 125, 84, .12);
    color: #1e7d3b;
    font-size: .82rem;
    font-weight: 900;
}
.stock-badge.low {
    background: rgba(192,57,43,.10);
    color: #c0392b;
}
.product-action-row {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
}
.wish-btn {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    border: 1px solid rgba(138,75,36,.22);
    background: rgba(255,255,255,.72);
    color: var(--tea);
    font-size: 1.15rem;
}
.wish-btn.active {
    color: #fff;
    background: linear-gradient(135deg, #c0392b, #8a1e18);
    border-color: rgba(192,57,43,.36);
    box-shadow: 0 14px 26px rgba(192,57,43,.20);
}
.wish-btn.active i {
    color: #fff;
}
.add-order-btn {
    width: 100%;
    min-height: 50px;
    display: grid;
    grid-template-columns: 1fr 36px;
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, #9b4d18, #7a3512);
    color: #fff;
    padding: 7px 8px 7px 13px;
    font-size: .82rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .02em;
    box-shadow: 0 16px 28px rgba(122,53,18,.22);
    transition: .2s ease;
}
.add-order-btn i {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: var(--tea);
    font-size: 1.45rem;
}
.add-order-btn:hover {
    transform: translateY(-1px);
    filter: brightness(1.04);
}
.add-order-btn:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.mobile-tabbar {
    position: fixed;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    z-index: 120;
    width: min(640px, calc(100% - 36px));
    display: flex;
    justify-content: space-around;
    padding: 8px;
    background: rgba(255,255,255,.92);
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: var(--shadow);
    backdrop-filter: blur(14px);
}
.mobile-tabbar a,
.mobile-tabbar button {
    position: relative;
    min-width: 58px;
    display: grid;
    place-items: center;
    gap: 3px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    border: 0;
    background: transparent;
    padding: 0;
}
.mobile-tabbar i { font-size: 18px; color: var(--tea); }
.wishlist-section {
    margin-top: 28px;
}
.empty-wishlist {
    display: flex;
    align-items: center;
    gap: 14px;
}
.empty-wishlist > i {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: var(--tea-soft);
    color: var(--tea);
    font-size: 1.3rem;
}
.public-credit {
    display: flex;
    align-items: center;
    gap: 6px;
    justify-content: flex-start;
    padding: 8px clamp(16px, 4vw, 56px) 18px;
    color: var(--muted);
    font-size: .82rem;
}
.public-credit a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 11px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(138,75,36,.16);
    box-shadow: 0 10px 24px rgba(48,32,20,.08);
    color: var(--tea);
    font-weight: 850;
    transition: .2s ease;
}
.public-credit a:hover {
    transform: translateY(-1px);
    background: var(--tea-soft);
    color: var(--tea-dark);
}
.public-credit i {
    color: var(--gold);
}
.admin-mobile-menu {
    height: auto !important;
    max-height: 78vh;
    border-radius: 24px 24px 0 0;
    border-top: 1px solid var(--line);
}
.admin-mobile-menu .offcanvas-header {
    padding: 18px 18px 10px;
}
.admin-mobile-menu .offcanvas-title {
    font-weight: 900;
}
.admin-mobile-menu .offcanvas-body {
    padding: 10px 18px 96px;
}
.admin-more-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.admin-more-grid a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 58px;
    padding: 12px;
    border-radius: 16px;
    background: var(--tea-soft);
    border: 1px solid rgba(138,75,36,.12);
    font-weight: 850;
}
.admin-more-grid i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #fff;
    color: var(--tea);
}
.tab-cart-count {
    position: absolute;
    top: 2px;
    right: 12px;
    min-width: 19px;
    height: 19px;
    display: grid;
    place-items: center;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--leaf);
    color: #fff;
    border: 2px solid #fff;
    font-size: 10px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
}
.tab-cart-count:empty,
.tab-cart-count[hidden] {
    display: none;
}
.mobile-panel-head {
    display: none;
    position: sticky;
    top: 0;
    z-index: 130;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: rgba(251,248,245,.94);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(14px);
}

.app-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 270px;
    padding: 20px;
    background: #fff;
    border-right: 1px solid var(--line);
    overflow-y: auto;
}
.app-sidebar nav { display: grid; gap: 6px; margin-top: 22px; }
.app-sidebar a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 12px;
    border-radius: 14px;
    color: #51483f;
    font-weight: 750;
}
.app-sidebar a.active, .app-sidebar a:hover { background: var(--tea-soft); color: var(--tea-dark); }
.app-sidebar i { width: 20px; text-align: center; }
.app-main {
    margin-left: 270px;
    min-height: 100vh;
    padding: 28px;
}
.page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}
.page-head h1 { margin: 0; font-weight: 900; letter-spacing: 0; }
.page-date-chip {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-width: max-content;
    padding: 12px 16px;
    border-radius: 999px;
    color: #173c18;
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(255, 255, 255, .55);
    box-shadow: 0 14px 30px rgba(20, 12, 8, .18);
    font-weight: 900;
}
.page-date-chip i {
    color: var(--tea);
}
.admin-action-stack {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.admin-action-stack form {
    margin: 0;
}
.admin-action-stack .btn {
    white-space: nowrap;
}
.admin-product-thumb {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid rgba(138,75,36,.16);
}
.admin-data-table th:last-child,
.admin-data-table td:last-child {
    min-width: 190px;
}
.stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 16px;
}
.stat-card {
    padding: 18px;
    background: #fff;
    border: 1px solid rgba(138,75,36,.10);
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(48,32,20,.07);
}
.stat-card i {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--tea-soft);
    color: var(--tea);
    margin-bottom: 12px;
}
.stat-card span { color: var(--muted); font-size: .9rem; }
.stat-card strong { display: block; font-size: 1.5rem; font-weight: 900; }

.pos-shell { min-height: 100vh; padding: 18px; }
.pos-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.pos-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 410px;
    gap: 16px;
}
.pos-products, .bill-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 16px;
    box-shadow: var(--shadow);
}
.bill-panel {
    align-self: start;
    position: sticky;
    top: 18px;
    max-height: calc(100vh - 36px);
    overflow: auto;
}
.pos-customer-box {
    position: relative;
    z-index: 8;
}
.customer-suggestions {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 8px);
    z-index: 30;
    display: grid;
    gap: 8px;
    max-height: 285px;
    overflow-y: auto;
    padding: 10px;
    border-radius: 18px;
    border: 1px solid rgba(138,75,36,.18);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 22px 50px rgba(35, 22, 13, .18);
}
.customer-suggestions[hidden],
.selected-customer-hint[hidden] {
    display: none;
}
.customer-suggestion {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 11px 12px;
    border: 1px solid rgba(138,75,36,.13);
    border-radius: 14px;
    background: #fffaf5;
    text-align: left;
    color: var(--ink);
}
.customer-suggestion:hover {
    border-color: rgba(138,75,36,.34);
    background: var(--tea-soft);
}
.customer-suggestion span,
.customer-suggestion small,
.customer-suggestion em {
    display: block;
}
.customer-suggestion small {
    margin-top: 2px;
    color: var(--muted);
    font-weight: 700;
}
.customer-suggestion em {
    flex: 0 0 auto;
    color: var(--tea-dark);
    font-style: normal;
    font-size: .78rem;
    font-weight: 800;
    text-align: right;
}
.customer-suggestion-empty {
    padding: 12px;
    border-radius: 14px;
    background: #fff7ed;
    color: var(--muted);
    font-weight: 750;
}
.selected-customer-hint {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
    color: #1d5b2a;
    font-size: .86rem;
    font-weight: 800;
}
.selected-customer-hint button {
    border: 0;
    background: transparent;
    color: var(--tea);
    font-weight: 900;
    padding: 0 2px;
}
.pos-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}
.pos-card {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    cursor: pointer;
    transition: .2s ease;
}
.pos-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.pos-card img { width: 100%; aspect-ratio: 1.4; object-fit: cover; }
.pos-card div { padding: 10px; }
.cart-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    border-bottom: 1px solid var(--line);
    padding: 10px 0;
}
.qty-control { display: inline-flex; align-items: center; gap: 8px; }
.qty-control button {
    width: 30px;
    height: 30px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: var(--tea-soft);
    color: var(--tea-dark);
}
.invoice-box {
    width: 302px;
    background: #fff;
    color: #000;
    padding: 8px;
    font: 12px/1.35 "Courier New", monospace;
}
.invoice-box h2 { font-size: 18px; text-align: center; margin: 0 0 6px; }
.invoice-box table { width: 100%; border-collapse: collapse; }
.invoice-box td, .invoice-box th { padding: 3px 0; border-bottom: 1px dashed #999; }
.upload-panel {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 12px;
    border-radius: 16px;
    background: var(--tea-soft);
    border: 1px dashed rgba(138,75,36,.38);
}
.upload-panel img {
    width: 92px;
    height: 92px;
    object-fit: cover;
    border-radius: 14px;
    background: #fff;
}
.upload-panel small {
    display: block;
    color: var(--muted);
    margin-top: 2px;
}
.order-filter-row {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 10px;
    margin-bottom: 12px;
}
.order-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
    gap: 16px;
    padding-bottom: 86px;
}
.order-manage-card {
    background: #fff;
    border: 1px solid rgba(138,75,36,.12);
    border-radius: 18px;
    padding: 16px;
    box-shadow: 0 12px 30px rgba(48,32,20,.07);
}
.order-card-head, .order-total-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}
.order-card-head span {
    display: block;
    color: var(--muted);
    font-size: .84rem;
}
.order-status-badge {
    min-width: max-content;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--tea-dark) !important;
    background: var(--tea-soft);
    text-transform: capitalize;
    font-weight: 850;
}
.order-customer {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 12px 0;
}
.order-customer i, .order-address i {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(47,125,84,.10);
    color: var(--leaf);
}
.order-customer span {
    display: block;
    color: var(--muted);
    font-size: .88rem;
}
.order-address {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: var(--muted);
    padding-bottom: 10px;
}
.order-items-mini {
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 8px 0;
    display: grid;
    gap: 5px;
}
.order-items-mini div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: .92rem;
}
.order-total-row {
    padding: 10px 0;
    font-size: 1.08rem;
}
.order-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

@media (max-width: 992px) {
    .store-top {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "brand actions"
            "search search";
    }
    .store-brand {
        grid-area: brand;
        min-width: 0;
    }
    .store-brand span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .top-actions {
        grid-area: actions;
        justify-content: flex-end;
    }
    .store-search {
        grid-area: search;
        grid-column: auto;
    }
    .app-sidebar {
        display: none;
    }
    .mobile-panel-head { display: flex; }
    .app-main { margin-left: 0; padding: 18px 14px 90px; }
    .pos-layout { grid-template-columns: 1fr; }
    .bill-panel { position: static; max-height: none; }
    .pos-shell { padding: 14px 12px 94px; }
    .pos-top { align-items: flex-start; flex-wrap: wrap; }
    .pos-top .d-flex { overflow-x: auto; max-width: 100%; padding-bottom: 3px; }
    .table-responsive { border-radius: 14px; }
    .table { min-width: 680px; }
    .card-lite {
        overflow: hidden;
    }
    .card-lite > .table,
    .card-lite > table {
        display: block;
        width: 100%;
        overflow-x: auto;
        white-space: nowrap;
    }
    .page-head > form {
        width: 100%;
        overflow-x: auto;
        padding-bottom: 4px;
    }
    .page-head > form .form-control,
    .page-head > form .form-select {
        min-width: 145px;
    }
    .row.g-4,
    .row.g-3 {
        --bs-gutter-x: .85rem;
        --bs-gutter-y: .85rem;
    }
    .category-browse-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }
    .product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
    }
}
@media (max-width: 720px) {
    html, body {
        max-width: 100%;
        overflow-x: hidden;
    }
    body {
        font-size: 15px;
    }
    .store-brand span { font-size: .9rem; }
    .store-brand small { font-size: .58rem; }
    .store-top {
        gap: 10px;
        padding: 12px;
    }
    .store-main { padding: 14px 12px 94px; }
    .page-head {
        min-height: 112px;
        padding: 20px;
        border-radius: 22px;
        background:
            linear-gradient(115deg, rgba(255,248,237,.97) 0 72%, rgba(31,72,24,.90) 72% 100%),
            url("https://images.unsplash.com/photo-1544787219-7f47ccb76574?auto=format&fit=crop&w=700&q=80") center right/cover;
    }
    .page-head::before {
        width: 70px;
        height: 70px;
        right: 14px;
    }
    .hero {
        grid-template-columns: 1fr;
        min-height: 0;
        border-radius: 24px;
    }
    .hero::before {
        inset: 0 0 45% 0;
        border-right: 0;
        border-bottom: 1px solid rgba(215,154,43,.18);
        border-radius: 0 0 44% 44% / 0 0 8% 8%;
    }
    .hero::after {
        background:
            linear-gradient(180deg, rgba(255,248,237,.96) 0 52%, rgba(30,18,10,.08) 52% 100%),
            url("https://images.unsplash.com/photo-1544787219-7f47ccb76574?auto=format&fit=crop&w=900&q=85") center/cover;
    }
    .hero-copy {
        padding: 18px 18px 14px;
    }
    .hero-kicker {
        padding: 7px 13px 7px 6px;
        font-size: .78rem;
        white-space: normal;
    }
    .hero-kicker span {
        width: 40px;
        height: 40px;
        border-width: 2px;
        font-size: 1.15rem;
    }
    .hero h1 {
        max-width: 300px;
        margin-top: 14px;
        font-size: 3.15rem;
        line-height: .88;
    }
    .hero-rule {
        width: 230px;
        margin: 4px 0 13px;
    }
    .hero p { font-size: .98rem; max-width: 310px; }
    .hero-mini-grid {
        width: 100%;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        margin-top: 18px;
    }
    .hero-mini-grid span {
        font-size: .82rem;
        gap: 7px;
    }
    .hero-mini-grid i {
        width: 54px;
        height: 54px;
        font-size: 1.35rem;
    }
    .hero-visual {
        min-height: 230px;
        padding: 8px 18px 176px;
        align-items: flex-start;
        justify-content: flex-end;
    }
    .hero-visual img {
        width: min(255px, 76%);
        border-width: 5px;
        box-shadow: 0 20px 44px rgba(20,12,8,.28);
    }
    .hero-snack-card {
        right: 18px;
        bottom: 128px;
        padding: 10px 12px;
        border-radius: 16px;
        font-size: .82rem;
    }
    .hero-bottom-bar {
        grid-template-columns: 1fr;
        gap: 12px;
        min-height: 0;
        padding: 16px;
    }
    .hero-benefit {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 10px;
        padding: 0 0 12px;
        border-right: 0;
        border-bottom: 1px dashed rgba(238,210,142,.38);
    }
    .hero-benefit i {
        width: 44px;
        height: 44px;
        border-radius: 13px;
        font-size: 1.15rem;
    }
    .hero-benefit strong {
        font-size: .92rem;
    }
    .hero-benefit span {
        font-size: .78rem;
    }
    .hero-order-btn {
        justify-self: stretch;
        width: 100%;
        min-height: 54px;
        grid-template-columns: 1fr 42px;
        padding: 6px 7px 6px 18px;
        font-size: 1rem;
    }
    .hero-order-btn i {
        width: 42px;
        height: 42px;
    }
    .quick-app-row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 8px;
    }
    .quick-app-row a {
        min-height: 72px;
        border-radius: 16px;
        font-size: .78rem;
    }
    .quick-app-row i {
        width: 34px;
        height: 34px;
        border-radius: 12px;
    }
    .section-title { margin: 22px 0 12px; }
    .section-title h2 { font-size: 1.08rem; }
    .category-browse-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin-top: 12px;
    }
    .category-tile {
        min-height: 142px;
        border-radius: 18px;
    }
    .category-tile span {
        margin-inline: 12px;
        font-size: .9rem;
        line-height: 1.15;
    }
    .category-tile small {
        margin-inline: 12px;
        margin-bottom: 12px;
        font-size: .72rem;
    }
    .cart-item {
        grid-template-columns: 72px minmax(0, 1fr) 76px;
        gap: 10px;
        padding: 14px 0;
    }
    .cart-item img {
        width: 72px;
        height: 72px;
        border-radius: 18px;
    }
    .cart-qty {
        width: 76px;
    }
    .cart-line-total {
        grid-column: 2 / 4;
        justify-self: end;
    }
    .summary-card {
        position: static;
    }
    .choice-card {
        grid-template-columns: 20px minmax(0, 1fr);
        padding: 14px;
        border-radius: 16px;
    }
    .profile-card::before {
        height: 96px;
    }
    .profile-photo {
        width: 112px;
        height: 112px;
    }
    .order-card-head {
        flex-direction: column;
    }
    .order-total {
        text-align: left !important;
    }
    .order-progress {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 4px;
    }
    .order-progress span {
        min-width: max-content;
        font-size: .78rem;
    }
    .product-detail-media {
        border-radius: 24px;
    }
    .product-detail-card h1 {
        font-size: 2.3rem;
    }
    .product-detail-actions .btn {
        width: 100%;
    }
    .auth-shell {
        min-height: 0;
    }
    .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .product-card { border-radius: 18px; }
    .product-card img { aspect-ratio: 1; }
    .product-ribbon {
        left: 9px;
        top: 9px;
        padding: 6px 9px;
        font-size: .62rem;
        gap: 5px;
    }
    .product-body {
        margin-top: -20px;
        padding: 30px 9px 10px;
        border-radius: 42% 42% 0 0 / 20px 20px 0 0;
    }
    .product-body::before {
        top: -10px;
        height: 30px;
    }
    .product-type {
        font-size: .7rem;
        gap: 5px;
        margin-bottom: 6px;
    }
    .product-type span {
        width: 28px;
        height: 28px;
    }
    .product-body h3 {
        font-size: 1rem;
        line-height: 1.12;
        min-height: 0;
    }
    .product-body p {
        display: none;
    }
    .product-meta-row {
        grid-template-columns: 1fr;
        align-items: stretch;
        gap: 6px;
        margin-bottom: 8px;
    }
    .product-meta-row::before {
        display: none;
    }
    .price-box {
        min-height: 38px;
        padding: 6px 8px;
        border-radius: 12px;
    }
    .price-box small { font-size: .72rem; }
    .price-box strong {
        font-size: 1.05rem;
    }
    .stock-badge {
        justify-content: center;
        padding: 6px 7px;
        font-size: .66rem;
        border-radius: 10px;
    }
    .add-order-btn {
        min-height: 38px;
        grid-template-columns: 1fr 28px;
        gap: 5px;
        border-radius: 12px;
        padding: 5px 5px 5px 8px;
        font-size: .62rem;
    }
    .add-order-btn i {
        width: 28px;
        height: 28px;
        font-size: .86rem;
    }
    .add-order-btn span {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .product-action-row {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 6px;
    }
    .wish-btn {
        width: 38px;
        height: 38px;
        border-radius: 12px;
        font-size: .95rem;
    }
    .mobile-tabbar { display: flex; }
    .mobile-tabbar {
        bottom: 8px;
        width: calc(100% - 14px);
        border-radius: 18px;
    }
    .mobile-tabbar a,
    .mobile-tabbar button {
        min-width: 0;
        width: 20%;
        font-size: 10px;
    }
    .page-head {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 14px;
    }
    .page-head h1 {
        font-size: 1.55rem;
        line-height: 1.15;
    }
    .page-date-chip {
        align-self: flex-start;
        padding: 10px 13px;
        font-size: .86rem;
    }
    .page-head .btn,
    .page-head form .btn {
        min-height: 42px;
    }
    .page-head > form {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: 8px !important;
        overflow: visible;
    }
    .page-head > form .form-control,
    .page-head > form .form-select,
    .page-head > form .btn {
        width: 100%;
        min-width: 0;
    }
    .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .stat-card { padding: 13px; border-radius: 16px; }
    .stat-card strong { font-size: 1.15rem; }
    .pos-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .pos-products, .bill-panel { border-radius: 18px; padding: 12px; }
    .customer-suggestions {
        position: static;
        margin-top: 8px;
        max-height: 240px;
    }
    .customer-suggestion {
        align-items: flex-start;
        flex-direction: column;
    }
    .customer-suggestion em {
        text-align: left;
    }
    .pos-top .brand-pill span {
        max-width: 180px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .pos-top .btn {
        min-height: 38px;
        padding-inline: 14px;
        white-space: nowrap;
    }
    .pos-card strong {
        display: block;
        min-height: 40px;
        font-size: .92rem;
        line-height: 1.2;
    }
    .pos-card div {
        padding: 9px;
    }
    .cart-line { grid-template-columns: 1fr; }
    .cart-line .text-end { text-align: left !important; }
    .qty-control button { width: 34px; height: 34px; }
    .order-card-grid { grid-template-columns: 1fr; gap: 12px; }
    .upload-panel { grid-template-columns: 1fr; }
    .upload-panel img { width: 100%; height: 160px; }
    .card-lite {
        border-radius: 16px;
    }
    .card-lite.p-4,
    .card-lite.p-md-5 {
        padding: 16px !important;
    }
    .form-control,
    .form-select {
        min-height: 46px;
        font-size: 16px;
        border-radius: 13px;
    }
    textarea.form-control {
        min-height: 96px;
    }
    .btn {
        min-height: 42px;
        border-radius: 999px;
    }
    .btn-sm {
        min-height: 34px;
    }
    .admin-action-stack {
        align-items: stretch;
    }
    .admin-action-stack .btn {
        width: 100%;
    }
    .table {
        min-width: 640px;
        font-size: .9rem;
    }
    .table > :not(caption) > * > * {
        padding: .65rem;
    }
    .table-responsive,
    .card-lite > .table,
    .card-lite > table {
        -webkit-overflow-scrolling: touch;
    }
    .modal-dialog {
        margin: 10px;
    }
    .modal-content {
        border-radius: 18px;
    }
    .admin-more-grid {
        grid-template-columns: 1fr;
    }
    .admin-more-grid a {
        min-height: 54px;
    }
    .order-actions {
        gap: 7px;
    }
    .order-card-head {
        flex-direction: column;
        align-items: flex-start;
    }
    .invoice-box {
        width: min(100%, 302px);
    }
    .toast-stack {
        left: 10px;
        right: 10px;
        top: 10px;
    }
    .app-toast {
        min-width: 0;
        width: 100%;
    }
    .store-main {
        padding-bottom: 28px;
    }
    .public-credit {
        position: static;
        padding: 12px 14px 104px;
        justify-content: flex-start;
        font-size: .78rem;
    }
    .public-credit span {
        display: inline;
    }
    .public-credit a {
        padding: 8px 10px;
        background: #fff;
        box-shadow: 0 10px 24px rgba(48,32,20,.08);
    }
}
@media (max-width: 420px) {
    .store-brand i,
    .brand-pill i {
        width: 34px;
        height: 34px;
        border-radius: 11px;
    }
    .store-brand span,
    .brand-pill span {
        font-size: .82rem;
    }
    .icon-btn {
        width: 40px;
        height: 40px;
        border-radius: 13px;
    }
    .hero {
        border-radius: 20px;
    }
    .hero h1 {
        font-size: 2.65rem;
    }
    .hero-mini-grid span {
        font-size: .72rem;
    }
    .hero-mini-grid i {
        width: 48px;
        height: 48px;
        font-size: 1.15rem;
    }
    .hero-visual {
        padding-bottom: 186px;
    }
    .hero-visual img {
        width: min(225px, 80%);
    }
    .quick-app-row span {
        font-size: .7rem;
    }
    .pos-product-grid,
    .stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }
    .product-ribbon { font-size: .56rem; }
    .product-body { padding-inline: 8px; }
    .product-body h3 { font-size: .92rem; }
    .product-type { font-size: .64rem; }
    .stat-card span {
        font-size: .78rem;
    }
    .stat-card strong {
        font-size: 1rem;
    }
    .page-head h1 {
        font-size: 1.35rem;
    }
    .mobile-panel-head {
        padding: 10px;
    }
}
.pos-mobile-switch,
.pos-mobile-total {
    display: none;
}

@media (max-width: 720px) {
    .app-main,
    .pos-shell {
        min-width: 0;
        max-width: 100%;
    }
    .app-main .row > *,
    .pos-shell .row > * {
        min-width: 0;
    }
    .app-main .card-lite {
        max-width: 100%;
        overflow-x: auto;
    }
    .app-main .card-lite > .table,
    .app-main .card-lite > table {
        display: table;
        width: max-content;
        min-width: 100%;
        overflow: visible;
        white-space: normal;
    }
    .app-main .table-responsive {
        max-width: 100%;
    }
    .pos-page .pos-shell {
        padding: 12px 10px 176px;
    }
    .pos-page .pos-top {
        margin-bottom: 10px;
    }
    .pos-mobile-switch {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 4px;
        position: sticky;
        top: 60px;
        z-index: 18;
        padding: 4px;
        margin-bottom: 10px;
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 12px;
        box-shadow: 0 6px 20px rgba(48,32,20,.08);
    }
    .pos-mobile-switch button {
        min-width: 0;
        min-height: 42px;
        border: 0;
        border-radius: 9px;
        background: transparent;
        color: var(--ink);
        font-weight: 800;
    }
    .pos-mobile-switch button.active {
        background: var(--tea);
        color: #fff;
    }
    .pos-mobile-switch i {
        margin-right: 6px;
    }
    .pos-count {
        display: inline-grid;
        place-items: center;
        min-width: 20px;
        height: 20px;
        padding: 0 4px;
        margin-left: 3px;
        border-radius: 50%;
        background: var(--leaf);
        color: #fff;
        font-size: 11px;
    }
    .pos-count[hidden] { display: none; }
    .pos-page .bill-panel { display: none; }
    .pos-page.pos-show-bill .pos-products { display: none; }
    .pos-page.pos-show-bill .bill-panel { display: block; }
    .pos-page .pos-layout { display: block; }
    .pos-page .pos-products,
    .pos-page .bill-panel {
        width: 100%;
        min-width: 0;
        box-shadow: none;
    }
    .pos-page .pos-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }
    .pos-page .pos-card img { aspect-ratio: 1.55; }
    .pos-page .pos-card strong {
        min-height: 0;
        overflow-wrap: anywhere;
    }
    .pos-page .category-strip {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .pos-page .category-chip { flex: 0 0 auto; }
    .pos-mobile-total {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        position: fixed;
        z-index: 95;
        left: 10px;
        right: 10px;
        bottom: 82px;
        width: calc(100% - 20px);
        min-height: 58px;
        padding: 9px 15px;
        border: 0;
        border-radius: 12px;
        background: var(--tea-dark);
        color: #fff;
        box-shadow: 0 8px 24px rgba(40,25,17,.24);
        text-align: left;
    }
    .pos-mobile-total small,
    .pos-mobile-total strong { display: block; }
    .pos-mobile-total small { opacity: .85; }
    .pos-mobile-total strong { font-size: 1.1rem; }
    .pos-mobile-total > span:last-child { white-space: nowrap; font-weight: 800; }
    .pos-page .cart-line {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }
    .pos-page .cart-line .text-end { text-align: right !important; }
    .pos-page .cart-line strong { overflow-wrap: anywhere; }
    .pos-page .qty-control { gap: 4px; }
    .pos-page .qty-control button { width: 32px; height: 36px; }
    .pos-page .qty-control span { min-width: 19px; text-align: center; }
}

@media (max-width: 380px) {
    .pos-page .cart-line { grid-template-columns: 1fr; }
    .pos-page .cart-line .text-end { text-align: left !important; }
}

@media print {
    body * { visibility: hidden !important; }
    #printArea, #printArea * { visibility: visible !important; }
    #printArea { position: absolute; left: 0; top: 0; width: 100%; }
    .no-print { display: none !important; }
    @page { margin: 2mm; size: 80mm auto; }
}
