app-restaurant-detail{display:block}app-restaurant-detail .hero{position:relative;border-radius:var(--radius-card);padding:clamp(2rem,5vw,3.5rem);box-shadow:var(--shadow-soft);border:1px solid rgba(10,10,10,.06);display:flex;flex-direction:column;justify-content:flex-end;gap:1rem;margin-bottom:2.5rem;min-height:clamp(280px,45vw,420px);overflow:hidden;background-color:var(--surface);background-size:cover;background-position:center;transition:background-image .8s ease-in-out;color:#f6f6f6}app-restaurant-detail .hero:after{content:"";position:absolute;inset:0;background:linear-gradient(140deg,#041810bf,#04181059 55%,#04181099);pointer-events:none}app-restaurant-detail .hero-content{position:relative;z-index:1;display:flex;flex-direction:column;gap:.85rem;max-width:540px}app-restaurant-detail .hero-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;row-gap:.65rem}app-restaurant-detail .hero-identity{display:flex;align-items:center;gap:1rem;flex:1 1 auto;min-width:0}app-restaurant-detail .hero-logo{flex:0 0 auto;width:clamp(64px,10vw,96px);aspect-ratio:1;border-radius:22%;object-fit:cover;background:#ffffff2e;padding:.35rem;box-shadow:0 8px 20px #00000040;border:1px solid rgba(255,255,255,.24)}app-restaurant-detail .hero-title{font-size:clamp(2.25rem,4.8vw,3.6rem);font-weight:700;letter-spacing:-.045em;margin:0;flex:1 1 16rem;min-width:0;line-height:1.05;word-break:break-word}app-restaurant-detail .hero-info-button{border:1px solid rgba(255,255,255,.35);background:#ffffff2e;color:#ffffffeb;width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,transform .2s ease;position:absolute;top:1rem;right:1rem;z-index:2}app-restaurant-detail .hero-info-button:hover,app-restaurant-detail .hero-info-button:focus{background:#ffffff47;transform:translatey(-1px)}app-restaurant-detail .hero-info-button:focus-visible{outline:2px solid rgba(255,255,255,.9);outline-offset:2px}app-restaurant-detail .hero-info-button span{font-weight:700;font-size:1.25rem;line-height:1}app-restaurant-detail .hero-description{margin:0;line-height:1.6;color:#ffffffe0}app-restaurant-detail .hero-cuisines{display:flex;flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;color:#ffffffd9}app-restaurant-detail .hero-cuisines li{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:999px;background:#ffffff29;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-weight:500;letter-spacing:.01em}app-restaurant-detail .hero-meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;color:#ffffffc7}app-restaurant-detail .hero-meta span{display:inline-flex;align-items:center;gap:.4rem}app-restaurant-detail .hero-hours{margin-top:1.5rem;padding:1.25rem;background:#ffffff24;border-radius:clamp(14px,3vw,18px);border:1px solid rgba(255,255,255,.22);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;gap:1rem}app-restaurant-detail .hero-hours-status{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem}app-restaurant-detail .hero-hours-badge{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.45rem .85rem;border-radius:999px;font-weight:600;letter-spacing:.01em;background:#1fc9732e;border:1px solid rgba(31,201,115,.45);color:#eafff4;text-transform:uppercase;font-size:.8rem}app-restaurant-detail .hero-hours-badge.closed{background:#f149492e;border-color:#f1494980;color:#ffeaea}app-restaurant-detail .hero-hours-badge.opening-soon{background:#ffb74d33;border-color:#ffb74d8c;color:#fff4e3}app-restaurant-detail .hero-hours-badge.closing-soon{background:#ff8f6b38;border-color:#ff8f6b8c;color:#fff1eb}app-restaurant-detail .hero-hours-current-time{font-size:.9rem;opacity:.85}app-restaurant-detail .hero-hours-detail{font-size:.95rem;opacity:.92}app-restaurant-detail .hero-hours-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}app-restaurant-detail .hero-hours-day{padding:.75rem;border-radius:12px;background:#0000001f;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:.35rem;min-height:96px}app-restaurant-detail .hero-hours-day.today{background:#ffffff2e;border-color:#ffffff52}app-restaurant-detail .hero-hours-day-title{font-weight:600;letter-spacing:.01em;font-size:.9rem}app-restaurant-detail .hero-hours-day-interval{font-size:.95rem;opacity:.92}app-restaurant-detail .hero-hours-day-empty{font-size:.9rem;opacity:.7}app-restaurant-detail .hero-hours-day-exception{font-size:.85rem;opacity:.85}app-restaurant-detail .hero-hours-exceptions{margin-top:.5rem;display:flex;flex-direction:column;gap:.75rem}app-restaurant-detail .hero-hours-exceptions h4{margin:0;font-size:1rem;font-weight:600}app-restaurant-detail .hero-hours-exceptions-list{display:flex;flex-direction:column;gap:.6rem}app-restaurant-detail .hero-hours-exception{padding:.75rem .85rem;border-radius:12px;display:grid;gap:.3rem;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.35);background:linear-gradient(135deg,#ffffff2e,#ffffff14);box-shadow:inset 0 1px #ffffff1f}app-restaurant-detail .hero-hours-exception:before{content:"";position:absolute;inset:0;opacity:.92;pointer-events:none;mix-blend-mode:screen}app-restaurant-detail .hero-hours-exception.open:before{background:linear-gradient(135deg,#2ecc958c,#1b998b66)}app-restaurant-detail .hero-hours-exception.closed:before{background:linear-gradient(135deg,#f565658c,#cb434359)}app-restaurant-detail .hero-hours-exception strong{font-weight:600;position:relative;z-index:1}app-restaurant-detail .hero-hours-exception p{margin:0;font-size:.9rem;position:relative;z-index:1}app-restaurant-detail .hero-hours-exception p:last-child{font-size:.85rem;opacity:.9}app-restaurant-detail .hero-hours-empty{font-size:.95rem;opacity:.8}app-restaurant-detail .tag{background:#ffffff29;color:#fff;font-weight:600;padding:.35rem .85rem;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}app-restaurant-detail h3{margin-top:0;font-size:1.5rem}app-restaurant-detail .menu-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;width:100%}app-restaurant-detail .menu-search{position:relative;width:100%;display:inline-flex;align-items:center;flex:1 1 16rem;min-width:0}app-restaurant-detail .menu-search input{border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:.65rem 1rem .65rem 2.65rem;font:inherit;background:#ffffffc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;width:100%}app-restaurant-detail .menu-search input::placeholder{color:#10181273}app-restaurant-detail .menu-search input:focus{outline:none;border-color:color-mix(in srgb,var(--brand-green) 65%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-green) 30%,transparent);background:#ffffffeb}app-restaurant-detail .menu-search-icon{position:absolute;left:1.1rem;width:1.1rem;height:1.1rem;color:#101812b3;pointer-events:none}app-restaurant-detail .menu-filters{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}app-restaurant-detail .menu-filters-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-left:auto}app-restaurant-detail .menu-filters-toggle{display:inline-flex;align-items:center;gap:.5rem;border-radius:999px;border:1px solid rgba(16,24,18,.12);background:#ffffffd1;padding:.4rem .85rem;font-weight:600;font-size:.9rem;color:#101812bf;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease}app-restaurant-detail .menu-filters-toggle:hover,app-restaurant-detail .menu-filters-toggle:focus-visible{background:#fffffff5;border-color:color-mix(in srgb,var(--brand-green) 36%,rgba(16,24,18,.1));color:var(--brand-green);box-shadow:0 10px 24px #0c20161f}app-restaurant-detail .menu-filters-toggle:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px}app-restaurant-detail .menu-filters-toggle svg{display:block}app-restaurant-detail .menu-filters-icon,app-restaurant-detail .menu-filters-toggle-icon{width:1.1rem;height:1.1rem;flex-shrink:0;color:#1018128c}app-restaurant-detail .menu-filters-toggle:hover .menu-filters-icon,app-restaurant-detail .menu-filters-toggle:focus-visible .menu-filters-icon,app-restaurant-detail .menu-filters-toggle:hover .menu-filters-toggle-icon,app-restaurant-detail .menu-filters-toggle:focus-visible .menu-filters-toggle-icon{color:var(--brand-green)}app-restaurant-detail .menu-filters-title{font-weight:700;font-size:.95rem;color:currentColor}app-restaurant-detail .menu-filters-count{background:var(--brand-green);color:#fff;border-radius:999px;font-size:.75rem;padding:.15rem .5rem;min-width:1.5rem;text-align:center;line-height:1.1;font-weight:700}app-restaurant-detail .menu-filters-toggle-icon{transition:transform .2s ease;transform-box:fill-box;transform-origin:50% 50%}app-restaurant-detail .menu-filters-toggle-icon.expanded{transform:rotate(180deg)}app-restaurant-detail .menu-filters-toggle-icon path,app-restaurant-detail .menu-filters-icon path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}app-restaurant-detail .menu-filters-reset{border:none;background:none;color:var(--brand-green);font-weight:600;font-size:.9rem;cursor:pointer;padding:.25rem 0}app-restaurant-detail .menu-filters-reset:hover,app-restaurant-detail .menu-filters-reset:focus-visible{text-decoration:underline}app-restaurant-detail .menu-filters-active{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}app-restaurant-detail .menu-filters-chip{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--brand-green) 25%,rgba(16,24,18,.12));background:color-mix(in srgb,var(--brand-green) 8%,rgba(255,255,255,.92));color:var(--brand-green);padding:.3rem .65rem;font-weight:600;font-size:.85rem;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}app-restaurant-detail .menu-filters-chip span:last-child{font-size:.9rem}app-restaurant-detail .menu-filters-chip:hover,app-restaurant-detail .menu-filters-chip:focus-visible{background:color-mix(in srgb,var(--brand-green) 15%,rgba(255,255,255,.96));border-color:color-mix(in srgb,var(--brand-green) 45%,rgba(16,24,18,.12));box-shadow:0 8px 20px #0c20161f}app-restaurant-detail .menu-filters-chip:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px}app-restaurant-detail .menu-filters-panel{border:1px solid rgba(255,255,255,.75);background:#ffffffdb;border-radius:18px;padding:.75rem;box-shadow:0 18px 36px #0c20161f;display:flex;flex-direction:column;gap:.75rem}app-restaurant-detail .menu-filter-groups{display:flex;flex-direction:column;gap:.75rem}@media (min-width: 640px){app-restaurant-detail .menu-filter-groups{flex-direction:row;flex-wrap:wrap}}app-restaurant-detail .menu-filter-group{display:flex;flex-direction:column;gap:.5rem;min-width:min(240px,100%)}app-restaurant-detail .menu-filter-group-title{margin:0;font-weight:600;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:#10181280}app-restaurant-detail .menu-filter-options{display:flex;flex-wrap:wrap;gap:.4rem}app-restaurant-detail .menu-filter-option{border:1px solid color-mix(in srgb,var(--brand-green) 20%,rgba(16,24,18,.08));background:#ffffffe6;border-radius:999px;padding:.3rem .65rem;display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;font-weight:600;color:#101812b8;transition:color .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}app-restaurant-detail .menu-filter-option:hover,app-restaurant-detail .menu-filter-option:focus-within{border-color:color-mix(in srgb,var(--brand-green) 40%,rgba(255,255,255,.7));box-shadow:0 6px 16px #0c20161a}app-restaurant-detail .menu-filter-option.active{background:#fffffff5;border-color:color-mix(in srgb,var(--brand-green) 40%,rgba(255,255,255,.7));color:var(--brand-green)}app-restaurant-detail .menu-filter-option input{appearance:none;width:.95rem;height:.95rem;border-radius:.3rem;border:2px solid rgba(16,24,18,.35);background:#fff;position:relative}app-restaurant-detail .menu-filter-option input:checked{border-color:var(--brand-green);background:var(--brand-green)}app-restaurant-detail .menu-filter-option input:checked:after{content:"";position:absolute;width:.35rem;height:.6rem;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg);top:.05rem;left:.27rem}app-restaurant-detail .menu-filter-option input:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px}app-restaurant-detail .menu-filter-option span{font-size:.88rem}app-restaurant-detail .menu-empty{margin:2.5rem 0;padding:2rem;text-align:center;border-radius:var(--radius-card);background:#0418100a;color:#101812b3;font-weight:500}app-restaurant-detail .category-nav{display:flex;justify-content:center;margin-bottom:2rem;position:sticky;top:0;z-index:20;padding:clamp(.75rem,1vw,1.25rem) 0}app-restaurant-detail .category-nav-surface{width:min(980px,100%);-webkit-backdrop-filter:blur(18px) saturate(130%);backdrop-filter:blur(18px) saturate(130%);border-radius:22px;border:1px solid rgba(255,255,255,.75);box-shadow:0 12px 36px #0c20161f;padding:clamp(.85rem,1.6vw,1.25rem);display:flex;flex-direction:column;gap:clamp(.75rem,1.5vw,1rem)}app-restaurant-detail .category-nav-buttons{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:center}app-restaurant-detail .category-nav button{border:1px solid rgba(255,255,255,.6);background:#ffffffa8;border-radius:999px;padding:.45rem 1rem;cursor:pointer;font-weight:600;color:#101812b8;transition:color .2s ease,background .2s ease,border-color .2s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}app-restaurant-detail .category-nav button:hover,app-restaurant-detail .category-nav button:focus{color:var(--brand-green);background:#ffffffe6;border-color:color-mix(in srgb,var(--brand-green) 35%,rgba(255,255,255,.7))}app-restaurant-detail .category-nav button:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px}app-restaurant-detail .menu-section{display:flex;flex-direction:column;gap:1rem;margin-bottom:2.5rem;scroll-margin-top:clamp(4.5rem,10vh,7rem)}app-restaurant-detail .menu-section:last-child{margin-bottom:0}app-restaurant-detail .modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1200;padding:1.5rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}app-restaurant-detail .modal{background:var(--surface, #fff);border-radius:24px;max-width:480px;width:min(100%,480px);padding:clamp(1.75rem,4vw,2.5rem);text-align:center;display:flex;flex-direction:column;gap:1.25rem}@media (max-width: 720px){app-restaurant-detail .hero{padding:2rem 1.5rem;min-height:240px}app-restaurant-detail .hero-header{align-items:flex-start}app-restaurant-detail .hero-logo{width:56px}app-restaurant-detail .hero-info-button{width:40px;height:40px;top:1.5rem;right:1.5rem}app-restaurant-detail .hero-hours{padding:1rem;gap:.75rem}app-restaurant-detail .menu-grid{grid-template-columns:1fr}}app-restaurant-detail .menu-item-option-entry{display:flex;flex-direction:column;gap:.5rem}app-restaurant-detail .menu-item-option-nested{margin-top:.75rem;padding-left:1.25rem;border-left:2px solid rgba(6,193,103,.2)}app-restaurant-detail .menu-item-option-nested-groups{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}app-cart-sidebar{display:block;position:sticky;top:var(--cart-sticky-offset, 2rem);align-self:start}app-cart-sidebar aside{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:1.75rem 1.75rem 2rem;display:flex;flex-direction:column;gap:1.5rem;max-height:calc(100vh - var(--cart-sticky-offset, 2rem));overflow-y:auto;scrollbar-gutter:stable}app-cart-sidebar .cart-restaurant{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border-radius:12px;color:color-mix(in srgb,var(--brand-green) 65%,black);font-weight:600}app-cart-sidebar .cart-restaurant-label{font-size:.75rem;text-transform:uppercase}app-cart-sidebar .cart-restaurant-name{font-size:1rem}app-cart-sidebar .order-settings{display:flex;flex-direction:column;gap:1rem}app-cart-sidebar .group-order-field{border:1px solid var(--border-soft);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}app-cart-sidebar .group-order-hint{margin:0;font-size:.85rem;color:var(--text-secondary)}app-cart-sidebar .group-order-select label{display:block;margin-bottom:.4rem;font-size:.8rem;font-weight:600;text-transform:uppercase;color:var(--text-secondary)}app-cart-sidebar .group-order-select select{width:100%;padding:.6rem .75rem;border-radius:10px;border:1px solid var(--border-soft);font-size:.9rem;background:var(--surface)}app-cart-sidebar .group-order-details{display:flex;flex-direction:column;gap:.5rem}app-cart-sidebar .group-order-name{font-weight:600;font-size:1rem;color:var(--text-primary)}app-cart-sidebar .group-order-meta{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.35rem 1rem}app-cart-sidebar .group-order-meta dt{font-size:.75rem;text-transform:uppercase;color:var(--text-secondary);font-weight:600;margin:0}app-cart-sidebar .group-order-meta dd{margin:0;font-size:.9rem;color:var(--text-primary)}app-cart-sidebar .group-order-target-line{font-size:.9rem;color:var(--text-primary)}app-cart-sidebar .group-order-cutoff{margin-top:.5rem;padding:.65rem .75rem;border-left:4px solid #dc3545;background:#dc354524;color:#821621;font-weight:700}app-cart-sidebar .group-order-notice{margin:0;font-size:.8rem;color:#0a0a0ab3}app-cart-sidebar .group-order-missing{margin:0;font-size:.85rem;color:#b85c00;padding:.45rem .6rem;border-radius:10px}app-cart-sidebar .field{display:flex;flex-direction:column;gap:.5rem}app-cart-sidebar .field-label{font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase}app-cart-sidebar .option-group{display:flex;flex-wrap:wrap;gap:.5rem}app-cart-sidebar .option{border:1px solid var(--border-soft);background:transparent;border-radius:999px;padding:.35rem .9rem;font-size:.85rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease;display:inline-flex;align-items:center;gap:.45rem;line-height:1.1}app-cart-sidebar .option-icon{display:inline-flex;align-items:center;justify-content:center}app-cart-sidebar .option svg{width:18px;height:18px;flex-shrink:0}app-cart-sidebar .option-label{white-space:nowrap}app-cart-sidebar .option:hover{border-color:var(--brand-green);color:var(--brand-green)}app-cart-sidebar .option.active{color:color-mix(in srgb,var(--brand-green) 65%,black)}app-cart-sidebar .option[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}app-cart-sidebar .target-time-input{padding:.6rem .75rem;border-radius:12px;border:1px solid var(--border-soft);font-size:.9rem;transition:border-color .2s ease,box-shadow .2s ease}app-cart-sidebar .target-time-input:focus{border-color:var(--brand-green);outline:none}app-cart-sidebar .help-text{font-size:.8rem;color:#b85c00;padding:.4rem .6rem;border-radius:10px}app-cart-sidebar header{display:flex;align-items:center;justify-content:space-between}app-cart-sidebar h3{margin:0;font-size:1.25rem;font-weight:600}app-cart-sidebar .badge{padding:.25rem .75rem;border-radius:999px;color:var(--brand-green);font-size:.8rem;font-weight:600}app-cart-sidebar .cart-lines{display:flex;flex-direction:column;gap:1rem}app-cart-sidebar .line{display:flex;justify-content:space-between;gap:.75rem;padding-bottom:1rem;border-bottom:1px solid var(--border-soft)}app-cart-sidebar .line:last-child{border-bottom:0;padding-bottom:0}app-cart-sidebar .line-name{font-weight:600;color:var(--text-primary)}app-cart-sidebar .line-category{font-size:.75rem;color:var(--text-secondary);margin-top:.15rem}app-cart-sidebar .line-options{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}app-cart-sidebar .line-option-group{display:flex;flex-direction:column;gap:.35rem}app-cart-sidebar .line-option-title{font-size:.8rem;font-weight:600;color:var(--text-secondary)}app-cart-sidebar .line-option-items{display:flex;flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none}app-cart-sidebar .line-option-item{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-secondary)}app-cart-sidebar .line-option-item-row{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}app-cart-sidebar .line-option-item-price{white-space:nowrap;font-weight:500;color:#101812b3}app-cart-sidebar .line-option-nested{padding-left:1rem;border-left:2px solid rgba(6,193,103,.2);display:flex;flex-direction:column;gap:.35rem}app-cart-sidebar .line-option-group.nested .line-option-title{font-size:.75rem}app-cart-sidebar .line-option-items.nested{margin-top:.25rem;gap:.2rem}app-cart-sidebar .line-remark{margin-top:.65rem;display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:#0a0a0ab3}app-cart-sidebar .line-remark span{font-weight:500}app-cart-sidebar .line-remark textarea{width:100%;resize:vertical;min-height:2.5rem;padding:.55rem .75rem;border-radius:.65rem;border:1px solid var(--border-soft, rgba(10, 10, 10, .12));background:var(--surface, #fff);font:inherit;color:inherit;transition:border-color .16s ease,box-shadow .16s ease}app-cart-sidebar .line-remark textarea::placeholder{color:#0a0a0a66}app-cart-sidebar .line-remark textarea:focus{outline:none}app-cart-sidebar .line-price{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;font-size:.85rem;color:var(--text-secondary)}app-cart-sidebar .line-price .current{font-weight:700;color:var(--text-primary);font-size:.95rem}app-cart-sidebar .line-price .original{text-decoration:line-through;font-size:.75rem}app-cart-sidebar .line-price .discount-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:color-mix(in srgb,var(--brand-green) 65%,black);border-radius:999px;padding:.1rem .4rem}app-cart-sidebar .qty-controls{display:flex;align-items:center;gap:.4rem}app-cart-sidebar .qty-btn{border:0;color:var(--text-secondary);border-radius:10px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;transition:background .2s ease,color .2s ease}app-cart-sidebar .qty-btn:hover:not(:disabled){color:var(--brand-green)}app-cart-sidebar .qty-btn:disabled{opacity:.5;cursor:not-allowed}app-cart-sidebar .qty-display{min-width:1.5rem;text-align:center;font-weight:600;color:var(--text-primary)}app-cart-sidebar button.remove{border:0;color:var(--text-secondary);border-radius:10px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,color .2s ease}app-cart-sidebar .qty-controls button.remove{margin-left:.2rem}app-cart-sidebar button.remove:hover{color:var(--brand-green)}app-cart-sidebar .empty-state{background:var(--surface-elevated);border-radius:var(--radius-card);padding:1.5rem;text-align:center;color:var(--text-secondary);font-size:.9rem}app-cart-sidebar .summary{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:1.05rem}app-cart-sidebar .checkout{display:inline-flex;align-items:center;justify-content:center;background:var(--brand-green);color:var(--brand-on-primary);border:0;border-radius:14px;padding:.85rem 1rem;font-weight:700;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}app-cart-sidebar .checkout:hover{transform:translatey(-1px)}app-cart-sidebar .checkout.disabled{pointer-events:none;opacity:.5;box-shadow:none}@media (max-width: 980px){app-cart-sidebar{position:static}app-cart-sidebar aside{min-width:unset;max-height:none;overflow:visible}}app-admin-recent-orders section.card{background:var(--surface);border-radius:var(--radius-card);padding:2rem clamp(1.5rem,3vw,2.5rem);box-shadow:var(--shadow-soft);border:1px solid rgba(10,10,10,.05);display:flex;flex-direction:column;gap:clamp(1.25rem,3vw,1.75rem)}app-admin-recent-orders .layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(1.25rem,3vw,2rem);align-items:flex-start}app-admin-recent-orders .filters{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border-radius:.9rem;border:1px solid var(--border-soft);background:#0a0a0a0a}app-admin-recent-orders .filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem 1rem}app-admin-recent-orders .filters label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-secondary)}app-admin-recent-orders .filters label span{font-weight:600;color:var(--text-primary, inherit)}app-admin-recent-orders .filters input,app-admin-recent-orders .filters select{padding:.5rem .75rem;border-radius:.5rem;border:1px solid var(--border-soft);font:inherit;background:var(--surface);color:inherit}app-admin-recent-orders .filters input:focus,app-admin-recent-orders .filters select:focus{outline:none}app-admin-recent-orders .filters-actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}app-admin-recent-orders .filters button[type=button]{padding:.5rem .9rem;border-radius:999px;color:var(--brand-green, #06c167);cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}app-admin-recent-orders .filters button[type=button]:hover,app-admin-recent-orders .filters button[type=button]:focus-visible{outline:none}app-admin-recent-orders .orders-panel,app-admin-recent-orders .details-panel{display:flex;flex-direction:column;gap:1rem;position:sticky;top:clamp(1rem,4vw,2rem);align-self:flex-start;overflow-y:auto;padding-right:.25rem}app-admin-recent-orders .orders-list{display:flex;flex-direction:column;gap:.75rem}app-admin-recent-orders .empty-orders{display:grid;place-items:center;padding:1.5rem;border-radius:.9rem;border:1px dashed var(--border-soft);color:var(--text-secondary);background:#0a0a0a05;text-align:center}app-admin-recent-orders .group-orders-panel{display:flex;flex-direction:column;gap:clamp(1rem,2.5vw,1.5rem)}app-admin-recent-orders .group-order-card{width:100%}app-admin-recent-orders .order-card{appearance:none;border-radius:1rem;padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;text-align:left;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background-color .15s ease}app-admin-recent-orders .order-card:hover,app-admin-recent-orders .order-card:focus-visible{transform:translatey(-2px);outline:none}app-admin-recent-orders .order-card header{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;font-weight:600}app-admin-recent-orders .meta{color:var(--text-secondary);font-size:.9rem}app-admin-recent-orders .order-card .remark{border-radius:.75rem;padding:.5rem .75rem;font-size:.9rem;line-height:1.4;color:var(--text-primary)}app-admin-recent-orders .status-current{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.35rem .85rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-green, #06c167);align-self:flex-start}app-admin-recent-orders .status-timeline{list-style:none;margin:clamp(.75rem,2vw,1rem) 0 0;padding:0;display:flex;flex-direction:column;gap:clamp(.75rem,2vw,1rem)}app-admin-recent-orders .status-timeline-step{display:grid;grid-template-columns:auto 1fr;column-gap:.75rem;align-items:flex-start;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--text-secondary)}app-admin-recent-orders .status-marker{position:relative;display:flex;justify-content:center;width:1rem;min-height:1rem}app-admin-recent-orders .status-dot{width:.75rem;height:.75rem;border-radius:50%;border:2px solid var(--border-soft);background:var(--surface);box-sizing:border-box;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}app-admin-recent-orders .status-connector{position:absolute;left:50%;top:.75rem;width:2px;transform:translate(-50%);background:var(--border-soft);transition:background-color .15s ease}app-admin-recent-orders .status-label{display:block;line-height:1.2}app-admin-recent-orders .status-timeline-step.completed .status-label{color:var(--text-primary)}app-admin-recent-orders .status-timeline-step.current .status-dot{background:var(--brand-green, #06c167)}app-admin-recent-orders .status-timeline-step.current .status-label{color:var(--brand-green, #06c167)}app-admin-recent-orders .advance-status-button{align-self:flex-start;border:none;border-radius:999px;padding:.45rem .85rem;font-weight:600;background:var(--brand-green, #06c167);color:#fff;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease;display:inline-flex;align-items:center;gap:.4rem}app-admin-recent-orders .advance-status-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}app-admin-recent-orders .advance-status-button:not(:disabled):hover,app-admin-recent-orders .advance-status-button:not(:disabled):focus-visible{transform:translatey(-1px);outline:none}app-admin-recent-orders .advance-status-button small{font-weight:500;opacity:.85}app-admin-recent-orders .details-card{background:var(--surface);border-radius:var(--radius-card);padding:clamp(1.5rem,3vw,2.25rem);box-shadow:var(--shadow-soft);border:1px solid rgba(10,10,10,.05);display:flex;flex-direction:column;gap:clamp(1rem,2.5vw,1.5rem)}app-admin-recent-orders .details-card h2{font-size:clamp(1.75rem,3vw,2.4rem);font-weight:700;margin:0}app-admin-recent-orders .status-message-logs{margin-top:clamp(1rem,2.5vw,1.5rem);padding:clamp(1rem,2vw,1.25rem);border-radius:var(--radius-card);border:1px solid rgba(10,10,10,.06);background:#0a0a0a08;display:flex;flex-direction:column;gap:.75rem}app-admin-recent-orders .status-message-logs h3{margin:0;font-size:clamp(1.1rem,2.5vw,1.3rem);font-weight:600;color:var(--text-primary)}app-admin-recent-orders .status-message-logs-state{margin:0;font-size:.9rem;color:var(--text-secondary)}app-admin-recent-orders .status-message-logs-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}app-admin-recent-orders .status-message-log{border-radius:.85rem;border:1px solid rgba(10,10,10,.08);background:var(--surface);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.6rem}app-admin-recent-orders .status-message-log-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem}app-admin-recent-orders .status-message-log-status{font-weight:600;color:var(--text-primary)}app-admin-recent-orders .status-message-log-channel{font-size:.85rem;font-weight:600;color:var(--brand-green, #06c167)}app-admin-recent-orders .status-message-log-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.85rem;color:var(--text-secondary)}app-admin-recent-orders .status-message-log-meta strong{color:var(--text-primary);font-weight:600}app-admin-recent-orders .status-message-log-message{font-size:.95rem;line-height:1.45;color:var(--text-primary)}app-admin-recent-orders .status-message-log-error{background:#dc262614;border-radius:.6rem;padding:.6rem .75rem;font-size:.85rem;color:#b91c1cf2}app-admin-recent-orders .status-message-log-error strong{display:block;font-weight:700;margin-bottom:.25rem}app-admin-recent-orders .items-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}app-admin-recent-orders .items-list li{display:flex;flex-direction:column;gap:.45rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-soft)}app-admin-recent-orders .items-list li:last-child{border-bottom:0;padding-bottom:0}app-admin-recent-orders .items-list .item-line{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}app-admin-recent-orders .items-list .item-options{list-style:none;padding:0;margin:0;margin-left:1.25rem;display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-secondary)}app-admin-recent-orders .items-list .item-option{display:flex;align-items:baseline;gap:.35rem}app-admin-recent-orders .items-list .item-option-title{font-weight:600;color:var(--text-primary)}app-admin-recent-orders .items-list .item-remark{background:#0a0a0a0a;border-radius:.6rem;padding:.5rem .75rem;font-size:.85rem;color:var(--text-secondary);line-height:1.4}app-admin-recent-orders .order-remark{border-radius:1rem;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.45rem}app-admin-recent-orders .order-remark h3{margin:0;font-size:1rem}app-admin-recent-orders .order-remark p{margin:0;font-size:.95rem;line-height:1.45;color:var(--text-primary)}app-admin-recent-orders .total{display:flex;justify-content:space-between;font-weight:700;font-size:1.05rem}app-admin-recent-orders .empty-details{display:grid;place-items:center;text-align:center;color:var(--text-secondary);border:1px dashed var(--border-soft);border-radius:var(--radius-card);padding:clamp(2rem,4vw,3rem);background:#0a0a0a05}@media (max-width: 960px){app-admin-recent-orders .layout{grid-template-columns:1fr}app-admin-recent-orders .orders-panel{order:2}app-admin-recent-orders .details-panel{order:1;position:static;max-height:none;overflow:visible;padding-right:0}app-admin-recent-orders .advance-status-button{width:100%;justify-content:center}}:root{--brand-green: #06c167;--brand-green-rgb: 6, 193, 103;--brand-on-primary: #042f1a;--brand-black: #0a0a0a;--text-primary: #1f1f1f;--text-secondary: #5f5f5f;--surface: #ffffff;--surface-elevated: #f7f7f7;--border-soft: #e6e6e6;--radius-card: 18px;--shadow-soft: 0 18px 45px rgba(15, 23, 42, .08);--font-family: "Uber Move Text", "Uber Move", "Helvetica Neue", Arial, sans-serif;--navbar-height: 4.5rem;--cart-sticky-offset: calc(var(--navbar-height) + 1.5rem);font-family:var(--font-family)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#fefefe,#f6f6f6 40%,#f3f3f3);color:var(--text-primary);font-family:var(--font-family, "Uber Move Text", "Uber Move", "Helvetica Neue", Arial, sans-serif);letter-spacing:-.01em}.template-variable-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .55rem;border-radius:999px;font-size:.85rem;font-weight:600;background:rgba(var(--brand-green-rgb, 6, 193, 103),.16);color:color-mix(in srgb,var(--brand-green, #06c167) 70%,#0a0a0a 30%);border:1px solid rgba(var(--brand-green-rgb, 6, 193, 103),.38);white-space:nowrap;margin:0 .15rem}.template-variable-pill:first-child{margin-inline-start:0}.template-variable-pill:last-child{margin-inline-end:0}.template-variable-pill[contenteditable=false]{cursor:default;-webkit-user-select:none;user-select:none}h1,h2,h3{margin:.35rem 0 .65rem;font-weight:600;letter-spacing:-.03em}p{color:var(--text-secondary);line-height:1.55}a{color:inherit}button{font-family:inherit}.cart-flight-layer{position:fixed;inset:0;pointer-events:none;z-index:2000}.cart-flight{position:absolute;top:0;left:0;transform:translate(var(--start-x),var(--start-y)) scale(.85);animation:cart-flight 1.1s cubic-bezier(.28,.54,.29,.99) forwards;will-change:transform,opacity}.cart-flight-badge{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;background:var(--brand-green);color:#fff;font-weight:700;box-shadow:0 16px 30px #04181047;border:2px solid rgba(255,255,255,.7)}@keyframes cart-flight{0%{transform:translate(var(--start-x),var(--start-y)) scale(.85);opacity:.2}to{transform:translate(calc(var(--start-x) + var(--delta-x)),calc(var(--start-y) + var(--delta-y))) scale(.65);opacity:1}}.modal.info-modal{text-align:left;gap:1.5rem;width:min(90vw,720px);max-width:min(90vw,720px);max-height:75vh;overflow:hidden}.modal.info-modal .info-modal-body{display:grid;gap:1.5rem;overflow-y:auto;flex:1 1 auto;min-height:0;padding-right:.5rem;scrollbar-gutter:stable both-edges}.modal.info-modal .info-modal-description{margin:0;color:var(--text-secondary);line-height:1.65}.modal.info-modal .info-modal-section{display:grid;gap:.75rem}.modal.info-modal .info-modal-section h4{margin:0;font-size:1rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.modal.info-modal .info-location-name{margin:0;font-weight:600;color:var(--text-primary)}.modal.info-modal .info-location-details{margin:0;display:grid;gap:.85rem}.modal.info-modal .info-location-details dt{margin:0 0 .25rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--text-secondary)}.modal.info-modal .info-location-details dd{margin:0;line-height:1.5}.modal.info-modal .info-location-details a{color:var(--brand-green);font-weight:600;text-decoration:none}.modal.info-modal .info-location-details a:hover,.modal.info-modal .info-location-details a:focus{text-decoration:underline}.modal.info-modal .info-location-map{display:grid;gap:.5rem}.modal.info-modal .info-location-map iframe{width:100%;height:240px;border:0;border-radius:12px;filter:grayscale(1) contrast(1.05)}.modal.info-modal .info-location-map .map-link{font-weight:600;font-size:.9rem;width:fit-content;color:var(--brand-green);text-decoration:none}.modal.info-modal .info-location-map .map-link:hover,.modal.info-modal .info-location-map .map-link:focus{text-decoration:underline}.modal.info-modal .info-modal-empty{margin:0;color:var(--text-secondary)}.group-order-toggle{display:inline-flex;align-items:center;gap:.75rem;font-weight:600;font-size:.95rem;color:var(--text-primary);cursor:pointer}.group-order-toggle-label{display:inline-block}.group-order-switch{appearance:none;width:42px;height:24px;border-radius:999px;background:#0a0a0a2e;display:inline-flex;align-items:center;padding:3px;flex-shrink:0;position:relative;transition:background .2s ease;cursor:pointer}.group-order-switch:after{content:"";width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0f172a33;transform:translate(0);transition:transform .2s ease}.group-order-switch:checked{background:var(--brand-green)}.group-order-switch:checked:after{transform:translate(18px)}.group-order-switch:focus-visible{outline:2px solid rgba(var(--brand-green-rgb, 6, 193, 103),.4);outline-offset:2px}app-restaurant-detail .card-info-button{position:absolute;top:.85rem;right:.85rem;width:34px;height:34px;border-radius:50%;border:1px solid rgba(var(--brand-green-rgb, 6, 193, 103),.18);background:rgba(var(--brand-green-rgb, 6, 193, 103),.08);color:var(--brand-green);display:inline-flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;transition:background .2s ease,transform .2s ease,box-shadow .2s ease;z-index:1}app-restaurant-detail .card-info-button:hover,app-restaurant-detail .card-info-button:focus{background:rgba(var(--brand-green-rgb, 6, 193, 103),.16);transform:translateY(-1px);box-shadow:0 8px 16px rgba(var(--brand-green-rgb, 6, 193, 103),.2)}app-restaurant-detail .card-info-button:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px}app-restaurant-detail .card-media{border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:#0a0a0a0a}app-restaurant-detail .card-media img{width:100%;height:100%;display:block;object-fit:cover}app-restaurant-detail .card button:not(.card-info-button):not(.quantity-button){align-self:flex-start;background:var(--brand-green);color:var(--brand-on-primary);border:0;border-radius:12px;padding:.6rem 1.1rem;font-weight:600;cursor:pointer;box-shadow:0 12px 24px rgba(var(--brand-green-rgb, 6, 193, 103),.24);transition:transform .2s ease,box-shadow .2s ease}app-restaurant-detail .card button:not(.card-info-button):not(.quantity-button):hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(var(--brand-green-rgb, 6, 193, 103),.28)}app-restaurant-detail .card button:not(.card-info-button):not(.quantity-button):focus-visible{outline:2px solid var(--brand-green);outline-offset:3px}app-restaurant-detail .menu-item-modal{max-width:640px;text-align:left;position:relative;max-height:min(90vh,720px);overflow:hidden;display:flex;flex-direction:column;gap:0}app-restaurant-detail .menu-item-modal .menu-item-modal-content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable both-edges;padding-right:.25rem;padding-bottom:7.5rem}app-restaurant-detail .menu-item-modal .menu-item-modal-content:focus-visible{outline:none}app-restaurant-detail .menu-item-modal .modal-actions{position:absolute;left:clamp(1.75rem,4vw,2.5rem);right:clamp(1.75rem,4vw,2.5rem);bottom:clamp(1.75rem,4vw,2.5rem);border-radius:18px;padding:.85rem 1rem;flex-direction:row;align-items:center;gap:1rem;margin:0;background:color-mix(in srgb,rgba(255,255,255,.82) 70%,rgba(255,255,255,.96));-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);z-index:5}app-restaurant-detail .menu-item-modal .modal-actions .quantity-controls{flex-shrink:0}app-restaurant-detail .menu-item-modal .modal-actions .modal-button{flex:1 1 auto;justify-content:center}app-restaurant-detail .modal-tabs{margin-top:1.5rem;display:flex;gap:.5rem;border-bottom:1px solid var(--border-soft)}app-restaurant-detail .modal-tab{border:none;background:none;padding:.75rem 1rem;font-size:.95rem;font-weight:600;color:var(--text-secondary);cursor:pointer;border-bottom:3px solid transparent;transition:color .2s ease,border-color .2s ease}app-restaurant-detail .modal-tab.active{color:var(--text-primary);border-bottom-color:var(--brand-green)}app-restaurant-detail .modal-tab:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px}app-restaurant-detail .modal-tabpanel{padding-top:1.5rem}app-restaurant-detail .modal-close-button{position:absolute;top:1rem;right:1rem;border:none;background:#0000000d;color:var(--text-secondary);width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;font-weight:600;transition:background .2s ease,color .2s ease}app-restaurant-detail .modal-close-button:hover,app-restaurant-detail .modal-close-button:focus{background:#0000001f;color:var(--text-primary)}app-restaurant-detail .modal-close-button:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px}app-restaurant-detail .menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem}app-restaurant-detail .card{background:var(--surface);border-radius:var(--radius-card);padding:1.25rem 1.25rem 1.5rem;box-shadow:var(--shadow-soft);border:1px solid rgba(10,10,10,.05);display:flex;flex-direction:column;gap:.75rem;position:relative;overflow:hidden}app-restaurant-detail .card:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(var(--brand-green-rgb, 6, 193, 103),.12),transparent 60%);opacity:0;transition:opacity .2s ease;pointer-events:none}app-restaurant-detail .card.highlighted{border-color:rgba(var(--brand-green-rgb, 6, 193, 103),.4);box-shadow:0 0 0 3px rgba(var(--brand-green-rgb, 6, 193, 103),.14),var(--shadow-soft)}app-restaurant-detail .card.loyalty-redeemable,app-restaurant-detail .card.loyalty-almost{--loyalty-card-border: rgba(var(--brand-green-rgb, 6, 193, 103), .65);--loyalty-card-glow: rgba(var(--brand-green-rgb, 6, 193, 103), .12);border-color:var(--loyalty-card-border);box-shadow:0 0 0 3px var(--loyalty-card-glow)}app-restaurant-detail .card.loyalty-almost{--loyalty-card-border: rgba(255, 183, 77, .55);--loyalty-card-glow: rgba(255, 183, 77, .18)}app-restaurant-detail .loyalty-badge{--loyalty-badge-bg: rgba(var(--brand-green-rgb, 6, 193, 103), .12);--loyalty-badge-color: var(--brand-green, #045d35);--loyalty-badge-border: rgba(var(--brand-green-rgb, 6, 193, 103), .3);--loyalty-icon-bg: rgba(var(--brand-green-rgb, 6, 193, 103), .2);--loyalty-icon-color: var(--brand-green, #045d35);display:grid;grid-template-columns:auto 1fr;gap:.2rem .55rem;align-items:center;font-size:.75rem;font-weight:600;border-radius:999px;padding:.45rem .9rem;margin-bottom:.6rem;background:var(--loyalty-badge-bg);color:var(--loyalty-badge-color);border:1px solid var(--loyalty-badge-border)}app-restaurant-detail .loyalty-badge__icon{display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--loyalty-icon-bg);color:var(--loyalty-icon-color)}app-restaurant-detail .loyalty-badge__icon svg{width:1.05rem;height:1.05rem;display:block}app-restaurant-detail .loyalty-badge__content{display:grid;gap:.1rem;line-height:1.1}app-restaurant-detail .loyalty-badge__helper{font-size:.7rem;font-weight:500;opacity:.85}app-restaurant-detail .loyalty-badge.loyalty-almost{--loyalty-badge-bg: rgba(255, 183, 77, .18);--loyalty-badge-color: #925100;--loyalty-badge-border: rgba(255, 183, 77, .36);--loyalty-icon-bg: rgba(255, 183, 77, .26);--loyalty-icon-color: #8b4700}app-restaurant-detail .card:hover:after{opacity:1}app-restaurant-detail .price{font-weight:700;font-size:1.1rem}app-restaurant-detail .price-group{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}app-restaurant-detail .allergen-badges{display:flex;flex-wrap:wrap;gap:.35rem}app-restaurant-detail .allergen-badges .badge{background:#e53e3e1f;color:#8f1e1e;border-radius:999px;padding:.3rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex;align-items:center;gap:.4rem;line-height:1}app-restaurant-detail .allergen-badges .badge app-allergen-icon{--allergen-icon-bg: rgba(229, 62, 62, .2);--allergen-icon-border: rgba(143, 30, 30, .24)}app-restaurant-detail .price-group .price.discounted{color:var(--brand-green);font-size:1.25rem}app-restaurant-detail .price-group .price.original{text-decoration:line-through;font-weight:500;font-size:.95rem;color:var(--text-secondary)}app-restaurant-detail .discount-pill{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:color-mix(in srgb,var(--brand-green) 65%,black);background:rgba(var(--brand-green-rgb, 6, 193, 103),.14);padding:.3rem .6rem;border-radius:999px}app-restaurant-detail .quantity-controls{display:inline-flex;align-items:center;gap:.65rem;padding:.45rem .7rem;border:1px solid var(--border-soft);border-radius:999px;-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);color:var(--text-primary);font-weight:600;width:fit-content}app-restaurant-detail .quantity-controls .quantity-button{background:transparent;border:0;color:inherit;font-size:1.25rem;font-weight:600;cursor:pointer;width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease}app-restaurant-detail .quantity-controls .quantity-button:disabled{opacity:.4;cursor:not-allowed}app-restaurant-detail .quantity-controls .quantity-button:not(:disabled):hover,app-restaurant-detail .quantity-controls .quantity-button:not(:disabled):focus{background:rgba(var(--brand-green-rgb, 6, 193, 103),.18);outline:none}app-restaurant-detail .quantity-controls .quantity-button:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px}app-restaurant-detail .quantity-controls .quantity-display{min-width:1.5rem;text-align:center}app-restaurant-detail .hero-meta .hero-rating{display:inline-flex;align-items:baseline;gap:.35rem;font-weight:600}app-restaurant-detail .hero-meta .hero-rating .value{font-size:1.05rem}app-restaurant-detail .hero-meta .hero-rating .count{font-weight:500;opacity:.85;font-size:.9rem}app-restaurant-detail .hero-meta .hero-rating.muted{opacity:.75;font-weight:500}app-restaurant-detail .rating-chip{display:inline-flex;align-items:center;gap:.35rem;background:rgba(var(--brand-green-rgb, 6, 193, 103),.12);color:color-mix(in srgb,var(--brand-green, #06c167) 65%,#0a0a0a 35%);padding:.35rem .75rem;border-radius:999px;font-weight:600;font-size:.9rem;letter-spacing:.01em}app-restaurant-detail .rating-chip .count{font-weight:500;font-size:.85rem;opacity:.8}app-restaurant-detail .rating-chip-large{font-size:1rem;padding:.45rem 1rem}app-restaurant-detail .reviews{margin-top:2.5rem;display:flex;flex-direction:column;gap:1.5rem}app-restaurant-detail .reviews-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem}app-restaurant-detail .review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}app-restaurant-detail .review-card{padding:1rem 1.1rem;border-radius:16px;background:#ffffffd1;border:1px solid rgba(10,10,10,.06);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:.65rem}app-restaurant-detail .review-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem 1rem}app-restaurant-detail .review-rating{font-weight:600;color:color-mix(in srgb,var(--brand-green, #06c167) 70%,#0a0a0a 30%)}app-restaurant-detail .review-author{font-weight:600}app-restaurant-detail .review-date{font-size:.85rem;opacity:.75}app-restaurant-detail .review-comment,app-restaurant-detail .review-empty{margin:0;font-size:.95rem;line-height:1.6}app-restaurant-detail .review-empty{opacity:.75}app-restaurant-detail .review-form{margin-top:1.5rem;padding:1.5rem;border-radius:18px;background:#ffffffeb;border:1px solid rgba(10,10,10,.08);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:1rem}app-restaurant-detail .review-form h4{margin:0;font-size:1.1rem;text-align:left}app-restaurant-detail .review-form .form-field{display:flex;flex-direction:column;gap:.45rem;text-align:left}app-restaurant-detail .review-form label{font-weight:600;font-size:.95rem}app-restaurant-detail .review-form select,app-restaurant-detail .review-form textarea{width:100%;border-radius:12px;border:1px solid rgba(10,10,10,.12);padding:.75rem 1rem;font:inherit;color:inherit;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}app-restaurant-detail .review-form select:focus,app-restaurant-detail .review-form textarea:focus{outline:none;border-color:color-mix(in srgb,var(--brand-green, #06c167) 85%,#0a0a0a 15%);box-shadow:0 0 0 3px rgba(var(--brand-green-rgb, 6, 193, 103),.2)}app-restaurant-detail .review-form textarea{min-height:120px;resize:vertical}app-restaurant-detail .review-form .form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem}app-restaurant-detail .review-form button[type=submit]{align-self:flex-start;border-radius:999px;padding:.85rem 1.75rem;border:none;background:var(--brand-green);color:var(--brand-on-primary);font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}app-restaurant-detail .review-form button[type=submit]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 18px 36px rgba(var(--brand-green-rgb, 6, 193, 103),.28)}app-restaurant-detail .review-form button[type=submit]:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}app-restaurant-detail .review-form .form-error{margin:0;font-size:.85rem;color:color-mix(in srgb,#b00020 70%,#0a0a0a 30%)}app-restaurant-detail .review-form .form-status{margin:0;font-size:.9rem;font-weight:600}app-restaurant-detail .review-form .form-status.success{color:color-mix(in srgb,var(--brand-green, #06c167) 75%,#0a0a0a 25%)}app-restaurant-detail .review-form .form-status.error{color:color-mix(in srgb,#b00020 75%,#0a0a0a 25%)}app-restaurant-detail .modal h3{margin:0;font-size:1.5rem;font-weight:700}app-restaurant-detail .modal p{margin:0;color:var(--text-secondary);line-height:1.6}app-restaurant-detail .modal-actions{display:flex;flex-direction:column;gap:.75rem;flex-shrink:0}app-restaurant-detail .modal-button{border-radius:999px;padding:.85rem 1.25rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}app-restaurant-detail .modal-button.primary{background:var(--brand-green);color:var(--brand-on-primary);border:none;box-shadow:0 16px 32px rgba(var(--brand-green-rgb, 6, 193, 103),.28)}app-restaurant-detail .modal-button.primary:hover{transform:translateY(-1px);box-shadow:0 20px 40px rgba(var(--brand-green-rgb, 6, 193, 103),.32)}app-restaurant-detail .modal-button.secondary{background:transparent;color:var(--text-secondary);border:1px solid rgba(var(--brand-green-rgb, 6, 193, 103),.18)}app-restaurant-detail .modal-button.secondary:hover{background:rgba(var(--brand-green-rgb, 6, 193, 103),.1)}app-restaurant-detail .review-section{margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem}app-restaurant-detail .review-section h4{margin:0;font-size:1.1rem}@media (max-width: 720px){app-restaurant-detail .reviews{margin-top:2rem}app-restaurant-detail .reviews-header{align-items:flex-start}app-restaurant-detail .review-form{padding:1.25rem}}app-admin-restaurant-users .card-actions{display:flex;justify-content:flex-end;margin-top:.75rem}app-admin-restaurant-users .pill-button{display:inline-flex;align-items:center;justify-content:center;appearance:none;border:none;border-radius:999px;font-weight:600;cursor:pointer}app-admin-restaurant-users .card-actions .scan-trigger{padding:.6rem 1.2rem;background:var(--brand-green, #06c167);color:#fff;transition:background-color .2s ease}app-admin-restaurant-users .card-actions .scan-trigger:hover,app-admin-restaurant-users .card-actions .scan-trigger:focus-visible{background:color-mix(in srgb,var(--brand-green) 90%,black);outline:none}app-admin-restaurant-users .filters-actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}app-admin-restaurant-users .filters-button{border:1px solid rgba(var(--brand-green-rgb, 6, 193, 103),.4);background:rgba(var(--brand-green-rgb, 6, 193, 103),.12);color:var(--brand-green, #06c167);padding:.5rem 1rem}app-admin-restaurant-users .filters-button:hover,app-admin-restaurant-users .filters-button:focus-visible{background:rgba(var(--brand-green-rgb, 6, 193, 103),.18);outline:none}.menu-item-modal{text-align:left}.menu-item-modal .menu-item-modal-content{display:flex;flex-direction:column;gap:1.5rem}.menu-item-modal .menu-item-options{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.menu-item-modal .menu-item-options-heading{margin:0;font-size:1.05rem;font-weight:600}.menu-item-modal .menu-item-option-group{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border:1px solid rgba(16,24,18,.12);border-radius:16px;background:#fff9}.menu-item-modal .menu-item-option-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.menu-item-modal .menu-item-option-title{font-weight:600}.menu-item-modal .menu-item-option-hint{font-size:.85rem;color:#101812a6}.menu-item-modal .menu-item-option-items{display:flex;flex-wrap:wrap;gap:.6rem}.menu-item-modal .menu-item-option-button{border:1px solid rgba(16,24,18,.18);background:#fff;border-radius:12px;padding:.6rem .75rem;min-width:120px;display:flex;flex-direction:column;gap:.25rem;align-items:flex-start;cursor:pointer;text-align:left}.menu-item-modal .menu-item-option-button.selected{background:color-mix(in srgb,var(--brand-green) 80%,white 20%);border-color:var(--brand-green);color:#fff}.menu-item-modal .menu-item-option-button.selected .menu-item-option-item-price{color:inherit}.menu-item-modal .menu-item-option-button:disabled{opacity:.55;cursor:not-allowed}.menu-item-modal .menu-item-option-item-name{font-weight:600;font-size:.95rem}.menu-item-modal .menu-item-option-item-price{font-size:.85rem;color:#101812b3}.menu-item-modal .menu-item-option-error{margin:0;font-size:.85rem;color:#c0392b}.group-order-title{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-weight:700;font-size:1.05rem;color:var(--text-primary)}.group-order-status{display:inline-flex;align-items:center;border-radius:999px;padding:.3rem .75rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:rgba(var(--brand-green-rgb, 6, 193, 103),.14);color:var(--brand-green, #06c167)}.group-order-status.inactive{background:#0a0a0a14;color:var(--text-secondary)}.group-order-meta{display:flex;flex-wrap:wrap;gap:.6rem 1.1rem;color:var(--text-secondary);font-size:.9rem}.group-order-meta span strong{color:var(--text-primary)}.group-order-footer{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.85rem;color:var(--text-secondary)}.group-order-footer span{display:inline-flex;align-items:center;gap:.35rem}.group-order-orders-list .order-card{cursor:default}.group-order-orders-list .order-card:hover,.group-order-orders-list .order-card:focus-visible{transform:none;box-shadow:none}.tabs{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem;border-radius:999px;background:#0a0a0a0a;border:1px solid rgba(10,10,10,.06);width:fit-content}.tab-button{border:none;background:transparent;border-radius:999px;padding:.45rem 1.1rem;font:inherit;font-weight:600;cursor:pointer;color:var(--text-secondary);transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.tab-button:hover,.tab-button:focus-visible{background:#0a0a0a0f;color:var(--text-primary);outline:none}.tab-button.active{background:rgba(var(--brand-green-rgb, 6, 193, 103),.16);color:color-mix(in srgb,var(--brand-green) 65%,black);box-shadow:0 6px 16px rgba(var(--brand-green-rgb, 6, 193, 103),.18)}.tab-panels{display:flex;flex-direction:column;gap:clamp(1.25rem,3vw,1.75rem)}.tab-panel[aria-hidden=true]{display:none}
