:root {
    --bg: #f7f7f8;
    --card: #ffffff;
    --text: #171717;
    --muted: #6b7280;
    --primary: #ef4444;
    --primary-dark: #dc2626;
    --line: #e5e7eb;
    --success: #16a34a;
    --warning: #f59e0b;
    --danger: #b91c1c;
    --shadow: 0 12px 30px rgba(0,0,0,.08);
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; background: var(--bg); color: var(--text); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.container { width: min(1120px, calc(100% - 28px)); margin: 0 auto; }
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.95); border-bottom: 1px solid var(--line); backdrop-filter: blur(10px); }
.nav-row, .footer-row { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { font-size: 1.45rem; font-weight: 900; letter-spacing: -.04em; }
.brand span { display: inline-block; margin-left: 6px; color: var(--primary); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.top-nav { display: flex; align-items: center; gap: 16px; font-weight: 700; }
.badge { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--primary); color: #fff; font-size: .78rem; }
.hero { padding: 64px 0 34px; }
.hero-box { background: linear-gradient(135deg, #111827, #2b3342); color: #fff; padding: clamp(28px, 6vw, 64px); border-radius: 28px; box-shadow: var(--shadow); overflow: hidden; position: relative; }
.hero-box::after { content: '📍'; position: absolute; right: 4%; bottom: -18px; font-size: clamp(90px, 18vw, 190px); opacity: .12; }
.hero h1 { margin: 0 0 14px; font-size: clamp(2.2rem, 7vw, 5rem); line-height: .95; letter-spacing: -.06em; max-width: 760px; }
.hero p { margin: 0; max-width: 690px; font-size: 1.1rem; color: #d1d5db; line-height: 1.7; }
.section { padding: 28px 0 54px; }
.section-title { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.section-title h2 { margin: 0; font-size: 1.8rem; }
.muted { color: var(--muted); }
.grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 6px 18px rgba(0,0,0,.04); overflow: hidden; }
.restaurant-card img, .restaurant-hero img { width: 100%; display: block; object-fit: cover; background: #e5e7eb; }
.restaurant-card img { height: 190px; }
.card-body { padding: 18px; }
.card h3 { margin: 0 0 8px; font-size: 1.25rem; }
.card p { margin: 0; color: var(--muted); line-height: 1.55; }
.card-meta { margin-top: 14px; display: flex; gap: 9px; flex-wrap: wrap; }
.chip { display: inline-flex; align-items: center; gap: 5px; padding: 7px 10px; background: #f3f4f6; border-radius: 999px; font-size: .85rem; font-weight: 700; }
.status-open { color: var(--success); }
.btn { border: 0; border-radius: 12px; padding: 12px 17px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; font-weight: 800; transition: .18s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-dark); }
.btn-dark { background: #111827; color: #fff; }
.btn-light { background: #f3f4f6; color: #111827; }
.btn-success { background: var(--success); color: #fff; }
.btn-danger { background: var(--danger); color: #fff; }
.btn-block { width: 100%; }
.restaurant-hero { margin-top: 28px; position: relative; border-radius: 24px; overflow: hidden; background: #111827; color: #fff; }
.restaurant-hero img { height: 310px; opacity: .45; }
.restaurant-hero-content { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px; background: linear-gradient(transparent, rgba(0,0,0,.9)); }
.restaurant-hero h1 { margin: 0 0 8px; font-size: clamp(2rem, 5vw, 3.5rem); }
.menu-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 24px; align-items: start; }
.category-block { margin-bottom: 26px; }
.category-block h2 { margin: 0 0 12px; }
.menu-item { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 16px; margin-bottom: 10px; }
.menu-item h3 { margin: 0 0 5px; }
.menu-item p { margin: 0; color: var(--muted); line-height: 1.5; }
.menu-item-actions { text-align: right; min-width: 112px; }
.price { display: block; margin-bottom: 10px; font-weight: 900; font-size: 1.08rem; }
.sticky-cart { position: sticky; top: 90px; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); }
.sticky-cart h3 { margin-top: 0; }
.cart-lines { display: grid; gap: 12px; }
.cart-line { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: start; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.qty-controls { display: flex; align-items: center; gap: 7px; margin-top: 7px; }
.qty-btn { width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.summary-row { display: flex; justify-content: space-between; gap: 12px; margin: 10px 0; }
.summary-row.total { padding-top: 12px; border-top: 2px solid #111827; font-size: 1.15rem; font-weight: 900; }
.form-card { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 22px; box-shadow: 0 8px 24px rgba(0,0,0,.04); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1 / -1; }
label { font-weight: 800; }
input, select, textarea { width: 100%; border: 1px solid #d1d5db; border-radius: 11px; padding: 12px 13px; background: #fff; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(239,68,68,.14); border-color: var(--primary); }
.notice { padding: 14px 16px; border-radius: 12px; background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; }
.notice.success { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.notice.error { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.location-box { border: 1px dashed #9ca3af; border-radius: 14px; padding: 15px; background: #f9fafb; }
.location-status { margin-top: 10px; font-size: .92rem; color: var(--muted); }
.two-col { display: grid; grid-template-columns: 1fr 360px; gap: 22px; align-items: start; }
.site-footer { margin-top: 50px; border-top: 1px solid var(--line); color: var(--muted); background: #fff; }
.auth-wrap { min-height: calc(100vh - 150px); display: grid; place-items: center; padding: 30px 0; }
.auth-card { width: min(440px, 100%); }
.dashboard { padding: 32px 0; }
.dashboard-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 20px; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 22px; }
.stat { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 17px; }
.stat strong { display: block; margin-top: 6px; font-size: 1.6rem; }
.table-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
table { border-collapse: collapse; width: 100%; min-width: 780px; }
th, td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { background: #f9fafb; font-size: .86rem; text-transform: uppercase; letter-spacing: .04em; }
.status-pill { display: inline-flex; padding: 6px 9px; border-radius: 999px; font-size: .8rem; font-weight: 900; background: #eef2ff; color: #3730a3; }
.order-items { margin: 8px 0 0; padding-left: 18px; color: var(--muted); }
.empty { text-align: center; padding: 45px 20px; color: var(--muted); }
.hidden { display: none !important; }
@media (max-width: 900px) {
    .grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .menu-layout, .two-col { grid-template-columns: 1fr; }
    .sticky-cart { position: static; }
    .stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
    .nav-row { align-items: flex-start; padding: 14px 0; }
    .top-nav { gap: 10px; font-size: .9rem; flex-wrap: wrap; justify-content: flex-end; }
    .grid, .form-grid, .stats { grid-template-columns: 1fr; }
    .restaurant-card img { height: 160px; }
    .restaurant-hero img { height: 260px; }
    .menu-item { grid-template-columns: 1fr; }
    .menu-item-actions { display: flex; align-items: center; justify-content: space-between; }
    .dashboard-header { align-items: flex-start; flex-direction: column; }
}


/* v2: φωτογραφίες προϊόντων, modal επιλογών και merchant editors */
.category-nav { position: sticky; top: 69px; z-index: 10; display: flex; gap: 8px; overflow-x: auto; padding: 10px 0 14px; margin-bottom: 12px; background: var(--bg); }
.category-nav a { white-space: nowrap; background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 9px 13px; font-weight: 800; }
.category-block { scroll-margin-top: 130px; }
.product-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.product-card { grid-template-columns: 150px minmax(0,1fr); grid-template-rows: 1fr auto; padding: 0; overflow: hidden; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease; }
.product-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.product-photo { width: 150px; height: 100%; min-height: 180px; object-fit: cover; grid-row: 1 / 3; background: #f3f4f6; }
.product-info { padding: 16px 16px 6px 0; }
.product-customizable { margin-top: 9px; font-size: .85rem; font-weight: 700; }
.product-card .menu-item-actions { padding: 8px 16px 16px 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; }
.product-card .price { margin: 0; }
.modal { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center; padding: 18px; }
.modal.is-open { display: flex; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(17,24,39,.68); backdrop-filter: blur(4px); }
.modal-dialog { position: relative; width: min(720px,100%); max-height: calc(100vh - 36px); overflow-y: auto; background: #fff; border-radius: 24px; box-shadow: 0 30px 80px rgba(0,0,0,.28); padding: 22px; }
.modal-close { position: absolute; right: 12px; top: 12px; z-index: 2; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(17,24,39,.86); color:#fff; font-size: 1.6rem; cursor:pointer; }
.modal-product-head { display: grid; grid-template-columns: 190px 1fr; gap: 20px; align-items: center; margin-bottom: 20px; }
.modal-product-image { width: 190px; height: 170px; object-fit: cover; border-radius: 18px; background:#f3f4f6; }
.modal-product-head h2 { margin: 0 0 8px; font-size: 1.7rem; }
.modal-base-price { font-size: 1.2rem; }
.modifier-group { border: 0; padding: 0; margin: 0 0 20px; }
.modifier-group legend { width:100%; display:flex; justify-content:space-between; gap:12px; padding: 0 0 9px; font-weight:900; }
.modifier-group legend small { color:var(--muted); font-weight:700; }
.modifier-options { display:grid; gap:8px; }
.modifier-option { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:12px 13px; border:1px solid var(--line); border-radius:12px; cursor:pointer; }
.modifier-option:has(input:checked) { border-color:var(--primary); background:#fff5f5; }
.modifier-option input { width:auto; }
.modal-footer { position: sticky; bottom: -22px; margin: 20px -22px -22px; padding:14px 22px; background:#fff; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:14px; }
.modal-qty { display:flex; align-items:center; gap:10px; }
.modal-add-button { min-width:220px; }
.modal-open { overflow:hidden; }
.cart-line-main { display:flex; gap:12px; min-width:0; }
.cart-thumb { width:76px; height:76px; border-radius:12px; object-fit:cover; flex:0 0 auto; }
.cart-modifiers { margin:5px 0; color:var(--muted); font-size:.86rem; line-height:1.45; }
.cart-line.compact .cart-modifiers { font-size:.78rem; }
.mini-empty { padding:20px 8px; }
.sticky-summary { position:sticky; top:90px; }
.checkout-items { display:grid; gap:10px; margin-bottom:16px; }
.checkout-line { display:flex; justify-content:space-between; gap:12px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.checkout-line .cart-modifiers { margin-left:10px; }
.current-image img { width:180px; height:130px; object-fit:cover; border-radius:14px; margin:16px 0; }
.checkbox-row { display:flex; gap:20px; flex-wrap:wrap; }
.checkbox-row input,.availability-toggle input,.product-check-list input,.option-row input[type=checkbox] { width:auto; }
.product-admin-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:22px; }
.admin-product-card { background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.admin-product-card>img { width:100%; height:190px; object-fit:cover; background:#f3f4f6; }
.admin-product-body { padding:15px; }
.admin-product-body h3 { margin:5px 0 8px; }
.admin-product-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:14px; }
.admin-product-actions .btn { padding:9px 11px; font-size:.85rem; }
.admin-product-actions form { margin:0; }
details.form-card summary { cursor:pointer; font-size:1.15rem; margin-bottom:16px; }
.extras-card { margin-top:18px; }
.product-check-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px 14px; padding:14px; background:#f9fafb; border:1px solid var(--line); border-radius:12px; margin:14px 0; max-height:220px; overflow:auto; }
.option-editor-list { margin:20px 0; display:grid; gap:8px; }
.option-row { display:grid; grid-template-columns:1.2fr 1.2fr 130px 100px auto; gap:8px; align-items:center; padding:8px; background:#f9fafb; border-radius:12px; }
.option-row+.inline-delete { margin-top:-54px; margin-left:calc(100% - 44px); position:relative; width:40px; }
.option-row:not(.new-option) { padding-right:52px; }
.order-modifier { color:var(--muted); font-size:.86rem; margin-left:9px; }
.order-note { color:#9a3412; font-size:.86rem; font-weight:700; margin-left:9px; }
.status-order-items { list-style:none; padding:0; display:grid; gap:12px; }
.status-order-items>li { display:flex; justify-content:space-between; gap:12px; padding-bottom:12px; border-bottom:1px solid var(--line); }
@media(max-width:1100px){.product-grid{grid-template-columns:1fr}.product-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .product-card{grid-template-columns:115px minmax(0,1fr)} .product-photo{width:115px;min-height:160px}.product-card .btn{padding:9px 11px}.modal-product-head{grid-template-columns:1fr}.modal-product-image{width:100%;height:210px}.modal-footer{flex-direction:column}.modal-add-button{width:100%;min-width:0}.product-admin-grid{grid-template-columns:1fr}.product-check-list{grid-template-columns:1fr 1fr}.option-row{grid-template-columns:1fr}.option-row+.inline-delete{margin:0}.option-row:not(.new-option){padding-right:8px}.category-nav{top:82px}
}
@media(max-width:460px){.product-card{grid-template-columns:100px minmax(0,1fr)}.product-photo{width:100px}.product-info{padding:12px 10px 4px 0}.product-card .menu-item-actions{padding:6px 10px 12px 0}.product-card h3{font-size:1rem}.product-card p{font-size:.85rem}.product-check-list{grid-template-columns:1fr}}

/* v3: live merchant orders, audible alerts and dispatch controls */
.dashboard-actions,.merchant-live-buttons{display:flex;gap:8px;flex-wrap:wrap}
.merchant-live-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#111827;color:#fff;border-radius:18px;padding:17px 19px;margin-bottom:12px;box-shadow:var(--shadow)}
.merchant-live-toolbar .muted{color:#d1d5db;margin-top:4px}
.merchant-live-toolbar .live-error{color:#fecaca}
.merchant-live-toolbar .btn-light{background:#fff;color:#111827}
.merchant-live-toolbar .alerts-enabled{background:#16a34a;border-color:#16a34a;color:#fff}
.merchant-alert-hint{margin-bottom:18px}
.live-pending-section{margin:18px 0 22px}
.live-pending-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.live-pending-title h2{margin:0}
.live-count{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:999px;background:#dc2626;color:#fff;font-weight:900}
.live-pending-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.live-empty{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;text-align:center;color:var(--muted)}
.live-empty.success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.live-order-card{position:relative;background:#fff;border:3px solid #ef4444;border-radius:20px;padding:18px;box-shadow:0 18px 40px rgba(239,68,68,.15);animation:liveOrderPulse 1.3s ease-in-out infinite alternate}
.live-order-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}
.live-order-card h3{margin:5px 0 2px;font-size:1.35rem}
.live-new-label{display:inline-flex;background:#dc2626;color:#fff;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:900;letter-spacing:.06em}
.live-order-total{font-size:1.35rem;white-space:nowrap}
.live-order-customer{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.live-order-customer a{font-weight:800}
.live-order-items{margin:0 0 12px;padding-left:20px;display:grid;gap:9px}
.live-order-modifier{font-size:.88rem;color:var(--muted);margin-left:9px}
.live-order-note{font-size:.88rem;color:#9a3412;font-weight:800;margin-left:9px}
.live-delivery-notes{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:11px;padding:10px 12px;margin-bottom:12px;font-weight:700}
.live-order-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.88rem;margin-bottom:12px}
.btn-success{background:#16a34a;color:#fff;border-color:#16a34a}
.btn-success:hover{background:#15803d}
.live-accept-button{font-size:1.05rem;padding:14px}
.status-form{margin-top:7px}
.new-order-row{background:#fff7f7}
.has-pending-orders .site-header{box-shadow:0 0 0 3px rgba(239,68,68,.3)}
@keyframes liveOrderPulse{from{box-shadow:0 12px 28px rgba(239,68,68,.10)}to{box-shadow:0 18px 46px rgba(239,68,68,.28)}}
@media(max-width:900px){.live-pending-grid{grid-template-columns:1fr}}
@media(max-width:620px){.merchant-live-toolbar{align-items:flex-start;flex-direction:column}.merchant-live-buttons{width:100%}.merchant-live-buttons .btn{flex:1}.live-order-card-head{flex-direction:column}.live-order-total{font-size:1.2rem}}

/* v10 Loyalty backoffice */
.loyalty-rule-box{padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:#fffbeb;margin-top:14px}
.loyalty-points-positive{font-weight:800;color:#15803d}.loyalty-points-negative{font-weight:800;color:#b91c1c}
.loyalty-adjust-form{display:flex;gap:6px;align-items:center;min-width:260px}.loyalty-adjust-form input[type=number]{width:85px}.loyalty-adjust-form input[type=text]{min-width:120px}
.loyalty-customer-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px}.loyalty-customer-meta span{font-size:12px;padding:3px 7px;border-radius:999px;background:#f3f4f6}
@media(max-width:720px){.loyalty-adjust-form{flex-wrap:wrap;min-width:0}.loyalty-adjust-form input[type=text]{width:100%}}


/* v11 - Merchant own-page sharing */
.merchant-share-card {
    margin: 0 0 22px;
    padding: 22px;
    border: 1px solid #dbe4ef;
    border-radius: 20px;
    background: linear-gradient(135deg,#ffffff 0%,#f7f9fc 100%);
    box-shadow: 0 14px 40px rgba(15,23,42,.07);
}
.merchant-share-main { display: flex; gap: 14px; align-items: flex-start; }
.merchant-share-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: #111827;
    color: #fff;
    font-size: 1.35rem;
    font-weight: 900;
}
.merchant-share-kicker {
    display: block;
    margin-bottom: 3px;
    color: #d15324;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.merchant-share-main h2 { margin: 0 0 5px; font-size: 1.35rem; }
.merchant-share-main p { margin: 0; color: #64748b; }
.merchant-share-url { display: flex; gap: 8px; margin-top: 17px; }
.merchant-share-url input {
    width: 100%;
    min-width: 0;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    padding: 11px 13px;
    background: #fff;
    color: #334155;
    font: inherit;
}
.merchant-share-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 12px; }
.merchant-facebook { background: #1877f2; color: #fff; }
.merchant-facebook:hover { color: #fff; filter: brightness(1.05); }
.merchant-instagram { background: linear-gradient(120deg,#f9ce34,#ee2a7b,#6228d7); color: #fff; border: 0; }
.merchant-instagram:hover { color: #fff; filter: brightness(1.05); }
.merchant-share-feedback { color: #047857; }
.merchant-share-feedback.is-error { color: #b91c1c; }
@media (max-width: 720px) {
    .merchant-share-card { padding: 17px; }
    .merchant-share-url { align-items: stretch; }
    .merchant-share-url input { font-size: .82rem; }
    .merchant-share-actions .btn { flex: 1 1 145px; }
}
@media (max-width: 480px) {
    .merchant-share-main { align-items: center; }
    .merchant-share-url { display: grid; }
    .merchant-share-url .btn { width: 100%; }
}

/* v13 – ειδοποίηση άφιξης οδηγού στο κατάστημα */
.driver-arrival-banner {
    position: fixed;
    left: 50%;
    top: 18px;
    z-index: 10000;
    transform: translate(-50%, -150%);
    width: min(760px, calc(100% - 24px));
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    border: 3px solid #facc15;
    border-radius: 18px;
    background: #111827;
    color: #fff;
    box-shadow: 0 18px 50px rgba(0,0,0,.42);
    transition: transform .25s ease;
}
.driver-arrival-banner.is-visible { transform: translate(-50%, 0); }
.driver-arrival-banner > span { font-size: 42px; }
.driver-arrival-banner strong { display:block; color:#facc15; font-size:20px; letter-spacing:.04em; }
.driver-arrival-banner small { display:block; margin-top:5px; font-size:15px; color:#fff; }
.driver-arrival-banner button { border:0; background:transparent; color:#fff; font-size:32px; cursor:pointer; }
@media (max-width: 600px) {
    .driver-arrival-banner { top:8px; padding:14px; gap:10px; }
    .driver-arrival-banner > span { font-size:32px; }
    .driver-arrival-banner strong { font-size:16px; }
}

/* v14 — Προσφορές και γρήγορη διαθεσιμότητα */
.offer-stock-page { padding-bottom: 70px; }
.offer-stock-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 0 18px; }
.offer-stock-stats>div { background:#fff; border:1px solid var(--line); border-radius:18px; padding:16px 18px; box-shadow:0 10px 28px rgba(15,23,42,.06); }
.offer-stock-stats span { display:block; color:var(--muted); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.offer-stock-stats strong { display:block; margin-top:4px; font-size:1.75rem; color:#111827; }
.offer-stock-stats .is-sold-out strong { color:#dc2626; }
.offer-stock-stats .is-offer strong { color:#ea580c; }
.offer-stock-toolbar { display:flex; gap:10px; flex-wrap:wrap; align-items:center; padding:14px; margin-bottom:12px; background:#fff; border:1px solid var(--line); border-radius:18px; }
.offer-stock-search { flex:1 1 300px; display:flex; align-items:center; gap:8px; min-width:220px; padding:0 12px; border:1px solid var(--line); border-radius:12px; background:#f8fafc; }
.offer-stock-search input { border:0; background:transparent; padding:11px 0; width:100%; outline:none; }
.offer-stock-toolbar select { width:auto; min-width:190px; }
.offer-filter-button.is-active { background:#111827; color:#fff; border-color:#111827; }
.bulk-stock-actions { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.bulk-stock-actions form { margin:0; }
.offer-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.offer-product-card { overflow:hidden; background:#fff; border:2px solid #d1fae5; border-radius:22px; box-shadow:0 12px 32px rgba(15,23,42,.08); transition:.2s ease; }
.offer-product-card.is-sold-out { border-color:#fecaca; background:#fffafa; }
.offer-product-card.has-active-offer { box-shadow:0 14px 36px rgba(234,88,12,.14); }
.offer-product-card[hidden] { display:none !important; }
.offer-product-media { position:relative; height:180px; background:#f3f4f6; }
.offer-product-media img { width:100%; height:100%; object-fit:cover; display:block; }
.offer-product-card.is-sold-out .offer-product-media img { filter:grayscale(.9); opacity:.58; }
.stock-state-badge,.merchant-offer-badge { position:absolute; top:10px; z-index:2; border-radius:999px; padding:7px 10px; font-size:.72rem; font-weight:950; letter-spacing:.03em; box-shadow:0 6px 16px rgba(0,0,0,.15); }
.stock-state-badge { right:10px; color:#fff; background:#16a34a; }
.offer-product-card.is-sold-out .stock-state-badge { background:#dc2626; }
.merchant-offer-badge { left:10px; color:#fff; background:#ea580c; }
.offer-product-content { padding:16px; }
.offer-product-content h2 { margin:3px 0 8px; font-size:1.12rem; }
.offer-price-line { min-height:34px; display:flex; align-items:center; gap:9px; margin-bottom:12px; }
.offer-price-line del { color:#9ca3af; font-weight:700; }
.offer-price-line strong { font-size:1.28rem; color:#111827; }
.has-active-offer .offer-price-line strong { color:#ea580c; }
.quick-stock-form { display:grid; gap:6px; margin:0 0 12px; }
.stock-toggle-button { width:100%; border:0; border-radius:13px; padding:13px 14px; color:#fff; font-size:1rem; font-weight:950; cursor:pointer; transition:.15s ease; }
.stock-toggle-button:hover { transform:translateY(-1px); }
.stock-toggle-button:disabled { opacity:.65; cursor:wait; transform:none; }
.stock-toggle-button.mark-sold-out { background:#dc2626; }
.stock-toggle-button.mark-available { background:#16a34a; }
.quick-stock-form small { text-align:center; color:var(--muted); }
.offer-editor { border-top:1px solid var(--line); padding-top:11px; }
.offer-editor summary { cursor:pointer; font-weight:900; color:#c2410c; padding:4px 0 10px; }
.offer-editor-form { display:grid; gap:10px; }
.offer-editor-form .field { margin:0; }
.quick-discount-buttons { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.quick-discount-buttons button { border:1px solid #fed7aa; background:#fff7ed; color:#c2410c; border-radius:10px; padding:8px 4px; font-weight:900; cursor:pointer; }
.quick-discount-buttons button:hover { background:#ffedd5; }
.offer-date-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.clear-offer-form { margin-top:8px; }
.admin-offer-price { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.admin-offer-price del { color:#9ca3af; }
.admin-offer-price strong { color:#ea580c; font-size:1.05rem; }
.admin-offer-price span { padding:3px 7px; border-radius:999px; background:#fff7ed; color:#c2410c; font-size:.72rem; font-weight:900; }

@media (max-width:1050px) {
  .offer-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .offer-stock-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .offer-product-grid { grid-template-columns:1fr; }
  .offer-stock-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .offer-stock-stats>div { padding:12px; }
  .offer-stock-stats strong { font-size:1.4rem; }
  .offer-stock-toolbar { align-items:stretch; }
  .offer-stock-toolbar select,.offer-stock-search { width:100%; min-width:0; flex-basis:100%; }
  .offer-filter-button { flex:1 1 40%; }
  .offer-product-media { height:160px; }
  .offer-date-grid { grid-template-columns:1fr; }
}

/* v15: combo offers */
.combo-editor { margin-bottom: 28px; }
.combo-products-title { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:26px 0 12px; }
.combo-products-title h3 { margin:0; }
.combo-products-title span { font-weight:800; color:#ea580c; }
.combo-product-search { display:flex; align-items:center; gap:10px; border:1px solid #d7dce4; background:#fff; border-radius:14px; padding:0 14px; margin-bottom:16px; }
.combo-product-search input { border:0; background:transparent; width:100%; padding:13px 0; outline:0; }
.combo-product-picker { max-height:560px; overflow:auto; border:1px solid #e5e7eb; border-radius:18px; padding:16px; background:#f8fafc; margin-bottom:18px; }
.combo-picker-category + .combo-picker-category { margin-top:18px; }
.combo-picker-category h4 { margin:0 0 10px; font-size:15px; color:#475569; }
.combo-picker-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:10px; }
.combo-product-option { display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:10px; padding:12px; border:2px solid transparent; border-radius:14px; background:#fff; cursor:pointer; box-shadow:0 3px 12px rgba(15,23,42,.05); }
.combo-product-option input[type="checkbox"] { position:absolute; opacity:0; pointer-events:none; }
.combo-product-option .combo-checkmark { width:26px; height:26px; border-radius:8px; display:grid; place-items:center; background:#e2e8f0; color:transparent; font-weight:900; }
.combo-product-option.is-selected { border-color:#f97316; background:#fff7ed; }
.combo-product-option.is-selected .combo-checkmark { background:#f97316; color:#fff; }
.combo-product-name { min-width:0; display:flex; flex-direction:column; }
.combo-product-name strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.combo-product-name small { color:#64748b; }
.combo-quantity-wrap { display:flex; align-items:center; gap:4px; font-weight:800; }
.combo-quantity-wrap input { width:58px; padding:8px; border:1px solid #cbd5e1; border-radius:10px; }
.combo-product-option.is-sold-out { opacity:.68; }
.combo-admin-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:18px; }
.combo-admin-card { overflow:hidden; border:1px solid #e2e8f0; border-radius:20px; background:#fff; box-shadow:0 10px 28px rgba(15,23,42,.08); }
.combo-admin-card > img { width:100%; height:180px; object-fit:cover; background:#e2e8f0; }
.combo-admin-content { padding:18px; }
.combo-admin-content h3 { margin:6px 0; }
.combo-admin-content p { color:#475569; min-height:44px; }
.combo-admin-state { display:inline-flex; border-radius:999px; padding:5px 10px; font-size:11px; font-weight:900; letter-spacing:.05em; background:#dcfce7; color:#166534; }
.combo-admin-card.is-hidden .combo-admin-state { background:#fee2e2; color:#991b1b; }
.combo-admin-price { display:block; font-size:24px; color:#ea580c; margin:10px 0 14px; }
.combo-admin-actions { display:flex; flex-wrap:wrap; gap:8px; }
.combo-admin-actions form { margin:0; }
.notice.compact { padding:9px 11px; margin:10px 0; font-size:13px; }
.combo-list-title { margin-top:30px; }
@media (max-width:700px) {
  .combo-product-picker { max-height:none; }
  .combo-picker-grid { grid-template-columns:1fr; }
  .combo-product-option { grid-template-columns:28px 1fr; }
  .combo-quantity-wrap { grid-column:2; justify-content:flex-start; }
}


/* v21 - preparation ETA */
.order-preparation-eta { display:inline-block; margin-top:5px; font-weight:800; color:#0369a1; }

/* v29 — Product Photo Finder */
.photo-finder-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 16px;margin-bottom:18px}.photo-filter-check{display:flex;align-items:center;gap:7px;font-weight:800}.photo-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.photo-product-card{display:grid;grid-template-columns:105px 1fr;gap:14px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:0 8px 24px rgba(15,23,42,.06)}.photo-product-card[hidden]{display:none!important}.photo-product-card.missing-photo{border-style:dashed}.photo-current{width:105px;height:105px;object-fit:cover;border-radius:14px;background:#f1f5f9}.photo-product-info h3{margin:2px 0 5px;font-size:1.05rem}.photo-product-info>small{color:var(--muted)}.photo-state{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:900}.photo-state.ok{background:#dcfce7;color:#166534}.photo-state.missing{background:#fef3c7;color:#92400e}.photo-source-meta{font-size:.72rem;margin-top:5px}.photo-search-row{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:10px}.photo-search-row input{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:10px}.photo-suggestion-slot{grid-column:1/-1}.photo-inline-suggestion{display:flex;gap:8px;margin-top:9px;padding:8px;background:#f8fafc;border-radius:12px}.photo-inline-suggestion img{width:74px;height:74px;object-fit:cover;border-radius:9px}.photo-inline-suggestion>div{display:flex;flex-direction:column;gap:7px;justify-content:center}.photo-inline-empty,.photo-inline-success{margin-top:7px;font-size:.8rem}.photo-inline-success{color:#166534;font-weight:900}.photo-modal[hidden]{display:none}.photo-modal{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:18px}.photo-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.72)}.photo-modal-card{position:relative;width:min(1100px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:18px;box-shadow:0 28px 80px rgba(0,0,0,.35)}.photo-modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.photo-modal-head strong{display:block;font-size:1.2rem}.photo-modal-head small{display:block;color:var(--muted);margin-top:3px}.photo-modal-close{border:0;background:#f1f5f9;border-radius:999px;width:38px;height:38px;font-size:26px;cursor:pointer}.photo-results-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:14px}.photo-result-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}.photo-result-card>img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#f1f5f9}.photo-result-body{padding:10px}.photo-result-body strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-result-body small{display:block;color:var(--muted);min-height:34px;margin-top:4px}.photo-result-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}.photo-result-actions a{font-size:.75rem}.photo-modal-open{overflow:hidden}@media(max-width:900px){.photo-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.photo-product-grid{grid-template-columns:1fr}.photo-product-card{grid-template-columns:84px 1fr}.photo-current{width:84px;height:84px}.photo-search-row{grid-column:1/-1}.photo-results-grid{grid-template-columns:1fr 1fr;gap:8px}.photo-modal{padding:5px}.photo-modal-card{width:100%;max-height:98vh;border-radius:16px;padding:11px}.photo-result-actions{align-items:stretch;flex-direction:column}.photo-result-actions .btn{width:100%}}

/* v30 — Smart Photo Search + Admin store menu mode */
.photo-search-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}
.photo-attribution{font-size:.72rem!important;line-height:1.25;min-height:0!important;color:#475569!important}
.admin-store-nav{flex-wrap:wrap}
@media(max-width:760px){
  .photo-search-row{grid-template-columns:1fr 1fr}
  .photo-search-row .photo-query{grid-column:1/-1}
  .photo-search-row .btn{width:100%}
  .admin-store-nav{gap:6px}
  .admin-store-nav a{font-size:.78rem}
}
