:root{--bg:#fff;--surface:#fff;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--primary:#e76f51;--primary-dark:#cf553a;--accent:#e751ae;--brand-gradient:linear-gradient(135deg, #e751ae 0%, #e76f51 60%);--primary-tint:#fdf0ec;--danger:#b3261e;--topbar-h:64px;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.45}*{box-sizing:border-box}html,body{background:#fff;min-height:100%;margin:0}body{min-height:100dvh}h1,h2{margin:0}.app{background:#fff;min-height:100dvh}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;min-height:var(--topbar-h,64px);box-sizing:border-box;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.25rem;display:flex;position:sticky;top:0}.topbar-nav{flex:1;justify-content:center;gap:.35rem;display:flex}.nav-link{color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.95rem;text-decoration:none;display:inline-flex}.nav-icon{place-items:center;line-height:0;display:none}.nav-link:hover{background:#f1f5f9}.nav-link.active{color:var(--text);background:#f1f5f9;font-weight:600}.avatar-btn{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:999px;flex-shrink:0;place-items:center;width:36px;height:36px;padding:0;display:inline-grid;overflow:hidden}.avatar-btn.is-open{box-shadow:0 0 0 2px #e76f5140}.avatar-img{object-fit:cover;width:100%;height:100%;display:block}.avatar-fallback{background:var(--brand-gradient);color:#fff;place-items:center;width:100%;height:100%;font-size:.75rem;font-weight:700;display:grid}.avatar-menu{border:1px solid var(--border);z-index:40;background:#fff;border-radius:14px;min-width:220px;padding:.4rem;position:absolute;top:calc(100% + .45rem);right:0;box-shadow:0 12px 32px #0f172a1f}.topbar-right{position:relative}.avatar-menu-header{border-bottom:1px solid #f1f5f9;margin-bottom:.25rem;padding:.65rem .75rem .55rem}.avatar-menu-name{font-size:.92rem;font-weight:650}.avatar-menu-email{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar-menu-item{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--danger);background:0 0;border:none;border-radius:10px;padding:.65rem .75rem}.avatar-menu-item:hover{background:#fef2f2}.category-name-cell{align-items:center;gap:.75rem;display:flex}.category-thumb{object-fit:cover;border:1px solid var(--border);background:var(--surface-2,#f1f5f9);border-radius:10px;flex-shrink:0;width:40px;height:40px}.category-thumb-empty{border-style:dashed;display:inline-block}.sub-name{font-weight:500}.danger-switch{cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;align-items:flex-start;gap:.6rem;padding:.75rem;display:flex}.danger-switch input{opacity:0;width:0;height:0;position:absolute}.danger-switch input:checked+.switch-track{background:var(--danger)}.danger-switch input:checked+.switch-track .switch-thumb{transform:translate(16px)}.danger-switch .switch-track{margin-top:.1rem}.block{display:block}.topbar-right{align-items:center;gap:.65rem;min-width:0;display:flex}.topbar-email,.topbar-signout-desktop{display:none}.brand{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.brand-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:160px;height:26px;display:block}.brand-mark{object-fit:cover;border-radius:11px;flex-shrink:0;width:40px;height:40px;display:block;box-shadow:0 1px 2px #0f172a14}.brand-mark-lg{border-radius:16px;width:64px;height:64px}.brand-text strong{letter-spacing:-.02em;font-size:1rem;line-height:1.15;display:block}.login-card .brand-logo{width:auto;max-width:240px;height:44px}.content{width:100%;max-width:1100px;margin:0 auto;padding:1.5rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.header-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.header-actions select{width:auto;min-width:160px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:.5rem 1rem 1rem}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.85rem .5rem}th{color:var(--muted);font-size:.85rem;font-weight:600}.thumb{object-fit:cover;cursor:zoom-in;border-radius:8px;width:48px;height:48px;display:block}.image-cell{vertical-align:top;max-width:220px}.image-cell .thumb{margin-bottom:.35rem}.image-url{text-overflow:ellipsis;white-space:nowrap;word-break:break-all;max-width:100%;color:var(--muted);text-decoration:none;display:block;overflow:hidden}.image-url:hover{color:var(--primary-dark);text-decoration:underline}.image-picker .image-preview{cursor:zoom-in}.image-picker{gap:.6rem;display:grid}.image-preview{object-fit:cover;border:1px solid var(--border);border-radius:12px;width:120px;height:120px}.image-placeholder{border:1px dashed var(--border);text-align:center;border-radius:12px;place-items:center;width:120px;height:120px;padding:.5rem;font-size:.8rem;display:grid}.muted{color:var(--muted)}.unit-inline{display:none}.small{font-size:.85rem}.error{color:var(--danger)}.empty-row{text-align:center;padding:2rem .5rem!important}.tag{background:var(--primary-tint);color:var(--primary-dark);border-radius:999px;margin-left:.4rem;padding:.1rem .45rem;font-size:.72rem;font-weight:600;display:inline-block}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;max-width:100%;padding:.65rem .75rem}.btn{cursor:pointer;white-space:nowrap;background:#f1f5f9;border:none;border-radius:12px;padding:.65rem 1rem}.btn-primary{background:var(--brand-gradient);color:#fff}.btn-primary:hover{filter:brightness(.94)}.btn-ghost{border:1px solid var(--border);background:0 0}.btn-danger{color:var(--danger);background:0 0;border:1px solid #fecaca}.btn-danger-solid{background:var(--danger);color:#fff}.btn-danger-solid:hover{background:#8f1e17}.modal-confirm{gap:.75rem;width:min(400px,100%);display:grid}.modal-confirm p{margin:0}.confirm-actions{justify-content:flex-end}.row-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.45rem;display:inline-flex}.switch input{opacity:0;width:0;height:0;position:absolute}.switch-track{background:#cbd5e1;border-radius:999px;flex:none;width:38px;height:22px;padding:2px;transition:background .15s}.switch-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;display:block;box-shadow:0 1px 3px #0f172a40}.switch input:checked+.switch-track{background:var(--brand-gradient)}.switch input:checked+.switch-track .switch-thumb{transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--primary-dark);outline-offset:2px}.switch-text{color:var(--muted)}.row-hidden .thumb,.row-hidden .cell-name,.row-hidden .cell-category,.row-hidden .cell-price{opacity:.55}.product-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.product-card{border:1px solid var(--border);background:#fff;border-radius:16px;flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.product-card:hover{border-color:#f0c4b8;box-shadow:0 8px 24px #e76f5114}.product-card.is-hidden{opacity:.62}.product-card-media{aspect-ratio:1;background:#f8fafc;min-height:140px;position:relative;overflow:hidden}.product-card-media a{width:100%;height:100%;display:block}.product-card-media img{object-fit:cover;width:100%;height:100%;transition:transform .25s;display:block}.product-card:hover .product-card-media img{transform:scale(1.03)}.product-card-placeholder{width:100%;height:100%;color:var(--muted);background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);place-items:center;font-size:.9rem;display:grid}.product-card-badges{flex-wrap:wrap;gap:.3rem;display:flex;position:absolute;top:.6rem;left:.6rem}.product-card-badges .tag{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffeb;margin-left:0}.product-card-body{flex:1;gap:.35rem;padding:.9rem .95rem .55rem;display:grid}.product-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.98rem;font-weight:650;line-height:1.3;display:-webkit-box;overflow:hidden}.product-card-category{color:var(--text);flex-wrap:wrap;align-items:center;gap:.25rem;margin:0;font-size:.82rem;display:flex}.product-card-category .sep{color:var(--muted)}.product-card-price{letter-spacing:-.01em;margin:.15rem 0 0;font-size:1.05rem;font-weight:700}.product-card-price .currency{color:var(--primary);font-size:.85rem;font-weight:600}.product-card-actions{border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:.5rem;margin-top:auto;padding:.65rem .85rem .85rem;display:flex}.product-card-buttons{gap:.35rem;display:flex}.product-card-actions .btn{border-radius:10px;padding:.45rem .7rem;font-size:.85rem}.product-card-actions .switch{gap:.4rem}.empty-state{text-align:center;border:1px dashed var(--border);background:#fafbfc;border-radius:16px;padding:3rem 1rem}.search-sticky{top:var(--topbar-h,64px);z-index:15;border-bottom:1px solid var(--border);background:#fff;margin:0 -1.5rem 1.1rem;padding:.7rem 1.5rem;position:sticky;box-shadow:0 6px 16px #0f172a0a}.search-bar{border:1px solid var(--border);background:#fff;border-radius:999px;align-items:center;gap:.55rem;margin:0;padding:.7rem 1.1rem;transition:border-color .15s,box-shadow .15s;display:flex}.search-bar:focus-within{border-color:#f0b8a8;box-shadow:0 0 0 3px #e76f511f}.search-bar-icon{color:var(--muted);flex-shrink:0;place-items:center;display:grid}.search-bar-input{box-shadow:none;background:0 0;outline:none;width:100%;min-width:0;font-size:.98rem;border:none!important;border-radius:0!important;padding:0!important}.search-bar-input::-webkit-search-cancel-button{display:none}.search-bar-clear{color:var(--muted);cursor:pointer;background:#f1f5f9;border:none;border-radius:999px;flex-shrink:0;width:1.6rem;height:1.6rem;padding:0;font-size:1.1rem;line-height:1}.search-bar-clear:hover{color:var(--text);background:#e2e8f0}.scroll-sentinel{height:1px}.scroll-status{text-align:center;min-height:1.5rem;padding:1rem 0 .25rem;font-size:.9rem}.form-grid{gap:.85rem;display:grid}.form-grid label{gap:.35rem;font-size:.92rem;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.checkbox-row{flex-wrap:wrap;gap:1rem;display:flex}.checkbox{align-items:center;gap:.5rem;grid-template-columns:none!important;display:flex!important}.checkbox input{width:auto}.edit-subs{border:1px solid var(--border);background:#fafbfc;border-radius:14px;gap:.65rem;padding:.75rem;display:grid}.edit-subs-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.edit-subs-header .btn{padding:.4rem .7rem;font-size:.85rem}.edit-subs-list{gap:.4rem;max-height:min(360px,45dvh);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.edit-subs-item{border:1px solid var(--border);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem .65rem;display:flex}.edit-subs-meta{gap:.1rem;min-width:0;display:grid}.edit-subs-name{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:600;overflow:hidden}.edit-subs-actions{flex-shrink:0;gap:.3rem;display:flex}.edit-subs-actions .btn{padding:.35rem .55rem;font-size:.8rem}.edit-subs-empty{margin:0}.modal-backdrop{z-index:50;background:#0f172a59;place-items:start center;padding:1rem;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{border:1px solid var(--border);background:#fff;border-radius:18px;width:min(520px,100%);max-height:calc(100dvh - 2rem);margin:auto;padding:1.25rem;overflow-y:auto;box-shadow:0 20px 50px #0f172a1f}.login-page{background:#fff;place-items:center;min-height:100dvh;padding:1rem;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:.85rem;width:min(400px,100%);padding:1.5rem;display:flex}.login-brand{text-align:left;flex-direction:row;align-items:center;gap:.85rem;display:flex}.login-brand strong{letter-spacing:-.03em;font-size:1.35rem;line-height:1.1;display:block}.login-hint{margin:0}.btn.google{color:#fff;background:#111827;border:none;justify-content:center;align-items:center;gap:.65rem;width:100%;display:inline-flex}.btn.google:hover{background:#1f2937}.btn.google .google-icon{flex:none;width:18px;height:18px}@media (width<=800px){:root{--topbar-h:60px}.content{padding:1rem}.search-sticky{margin:0 -1rem .9rem;padding:.55rem 1rem}.page-header{flex-direction:column;align-items:stretch}.header-actions{width:100%}.header-actions select,.header-actions .btn{flex:auto;min-width:0}.header-actions select{flex-basis:100%;width:100%}.topbar{min-height:var(--topbar-h);gap:.5rem;padding:.75rem .85rem}.brand-text{display:none}.brand-logo{max-width:130px;height:20px}.brand-mark{border-radius:9px;width:34px;height:34px}.topbar-nav{flex:1;justify-content:center;gap:.25rem}.nav-link{border-radius:12px;padding:.55rem}.nav-icon{display:grid}.nav-label{display:none}.nav-link.active{color:var(--primary);background:var(--primary-tint)}.card{border:none;border-radius:0;padding:0}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.product-card{border-radius:14px}.product-card-body{padding:.7rem .75rem .4rem}.product-card-title{font-size:.9rem}.product-card-price{font-size:.95rem}.product-card-actions{flex-direction:column;align-items:stretch;gap:.45rem;padding:.55rem .7rem .7rem}.product-card-buttons{grid-template-columns:1fr 1fr;display:grid}.product-card-actions .btn{width:100%;padding:.5rem .4rem}.table-wrap{overflow:visible}table,thead,tbody,th,td,tr{width:100%;display:block}thead{display:none}tbody tr{border:1px solid var(--border);background:#fff;border-radius:14px;grid-template-columns:88px minmax(0,1fr) auto;grid-template-areas:"image name actions""image meta actions""image price actions""image visibility actions";align-items:start;column-gap:.9rem;margin-bottom:.75rem;padding:.85rem;display:grid}tbody tr:last-child{margin-bottom:0}td{border:none;min-width:0;padding:0;display:block}td:before{display:none}td.image-cell{grid-area:image;max-width:none}td.image-cell .thumb{border-radius:12px;width:88px;height:88px;margin-bottom:0}td.image-cell .image-url{display:none}td.cell-name{grid-area:name;font-size:1rem;line-height:1.3}td.cell-category{color:var(--muted);grid-area:meta;margin-top:.2rem;font-size:.85rem}td.cell-visibility{grid-area:visibility;margin-top:.45rem}td.cell-price{grid-area:price;margin-top:.35rem;font-weight:600}td.cell-unit{display:none}.unit-inline{font-size:.85rem;font-weight:400;display:inline}td.row-actions{flex-direction:column;grid-area:actions;align-self:center;gap:.4rem;display:flex}td.row-actions .btn{padding:.5rem .85rem;font-size:.9rem}td.empty-row{text-align:center;display:block}tbody tr:has(td.empty-row){display:block}.form-row{grid-template-columns:1fr}.modal-backdrop{align-items:stretch;padding:.75rem}.modal{border-radius:16px;width:100%;max-height:none;margin:0}}@media (width<=420px){.brand strong{font-size:.95rem}.btn{padding:.6rem .8rem}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.product-card-body{padding:.55rem .55rem .3rem}.product-card-title{-webkit-line-clamp:2;font-size:.82rem}.product-card-category{font-size:.72rem}.product-card-price{font-size:.88rem}.product-card-actions{gap:.35rem;padding:.45rem .5rem .55rem}.product-card-actions .btn{padding:.4rem .25rem;font-size:.78rem}.product-card-actions .switch-text{font-size:.72rem}}.orders-page{gap:1rem;display:grid}.orders-page .toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.85rem;display:flex}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.status-pill{text-transform:capitalize;color:#475569;background:#f1f5f9;border-radius:999px;align-items:center;padding:.2rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex}.status-placed,.status-pending{color:#c2410c;background:#fff7ed}.status-confirmed,.status-approved{color:#047857;background:#ecfdf5}.status-preparing{color:#b45309;background:#fef3c7}.status-out_for_delivery{color:#0369a1;background:#e0f2fe}.status-delivered,.status-fulfilled{color:#1d4ed8;background:#eff6ff}.status-cancelled,.status-rejected{color:#b91c1c;background:#fef2f2}.order-status-track{gap:.45rem;margin:.55rem 0 0;padding:0;list-style:none;display:grid}.order-status-track.cancelled{display:block}.order-status-step{color:#94a3b8;align-items:center;gap:.55rem;font-size:.86rem;display:flex}.order-status-dot{background:#e2e8f0;border-radius:999px;flex-shrink:0;width:10px;height:10px}.order-status-step.done{color:#047857}.order-status-step.done .order-status-dot{background:#10b981}.order-status-step.current{color:#0f172a;font-weight:700}.order-status-step.current .order-status-dot{background:#e76f51;box-shadow:0 0 0 3px #e76f5133}.drawer-backdrop{z-index:40;background:#0f172a59;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{border-left:1px solid var(--border);background:#fff;width:min(420px,100%);height:100%;padding:1.1rem 1.15rem 1.5rem;overflow:auto;box-shadow:-12px 0 40px #0f172a1f}.drawer-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.drawer-body{gap:1rem;margin-top:1rem;display:grid}.order-cell{align-items:center;gap:.7rem;display:flex}.order-thumbs{flex-shrink:0;align-items:center;display:flex}.order-thumb{object-fit:cover;width:36px;height:36px;box-shadow:0 0 0 1px var(--border);background:#f1f5f9;border:2px solid #fff;border-radius:10px}.order-thumb+.order-thumb,.order-thumb+.order-thumb-more{margin-left:-10px}.order-thumb-more{color:#64748b;width:36px;height:36px;box-shadow:0 0 0 1px var(--border);background:#f8fafc;border:2px solid #fff;border-radius:10px;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.order-lines{gap:.45rem;margin:.4rem 0 0;padding:0;list-style:none;display:grid}.order-line-main{align-items:center;gap:.65rem;min-width:0;display:flex}.order-line-thumb{object-fit:cover;background:#f1f5f9;border-radius:10px;flex-shrink:0;width:40px;height:40px}.order-line-thumb-empty{border:1px dashed var(--border)}.order-lines li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem 0;display:flex}.drawer-total{justify-content:space-between;gap:.75rem;padding-top:.25rem;display:flex}
