:root{
  --bg:#ffffff;
  --text:#0b0b0b;
  --muted:#6b7280;
  --border: rgb(226,232,240);
  --card:#ffffff;
  --shadow: 0 10px 30px rgba(0,0,0,.06);

  --activeBg:#CDEEC6; /* aktif kategori highlight */
  --activeText:#0b0b0b;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  background: var(--bg);
  color: var(--text);
  font-family: "Galano Grotesque", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height:24px;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  user-select:none;
}

a{ color:inherit; text-decoration:none; }

.app-shell{
  width:100%;
  min-height:100vh;
  display:flex;
  justify-content:center;
}

.container{
  width:100%;
  max-width:430px; /* 430px mobil referans (KİLİTLİ) */
  min-height:932px;
  display:flex;
  flex-direction:column;
  row-gap:24px;
  background:#fff;
  padding:16px;
}

.topbar{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-top:8px;
  /* Sticky YOK (KİLİTLİ) */
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
}

.brand-logo{
  width:40px;
  height:40px;
  border-radius:10px;
  object-fit:cover;
}

.brand-name{
  font-size:20px;
  font-weight:700;
  letter-spacing:.2px;
}

.welcome{
  color:var(--muted);
  font-size:14px;
}

/* ---------- NORMAL MOD: ÜST KATEGORİ GÖRSEL STRIP ---------- */
.category-strip{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.category-strip-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.category-strip-title{
  font-weight:900;
  font-size:14px;
}

.category-strip-all{
  font-weight:800;
  font-size:13px;
  color:#111;
  opacity:.85;
}

.category-strip-scroll{
  display:flex;
  gap:14px;
  overflow-x:auto;
  padding:2px 0 6px 0;
  scrollbar-width:none;
}
.category-strip-scroll::-webkit-scrollbar{ display:none; }

.cat-avatar{
  flex:0 0 auto;
  width:92px;
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:center;
}

.cat-avatar-img{
  width:62px;
  height:62px;
  border-radius:999px;
  overflow:hidden;
  background:#f3f4f6;
  border:1px solid var(--border);
}
.cat-avatar-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.cat-avatar-name{
  font-size:11px;
  font-weight:900;
  text-align:center;
  line-height:14px;
  max-width:92px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ---------- STICKY MOD: YAZILI KATEGORİ MENÜ (KİLİTLİ) ---------- */
/*
  KİLİTLİ şart: position: sticky; top:0
  Ayrıca: Normal modda GÖRÜNMEZ, sticky modda GÖRÜNÜR.
  "İki menü aynı anda görünmesin" için sticky menü sadece aktifken görünür.
*/
.category-sticky{
  position: sticky; /* KİLİTLİ */
  top:0;            /* KİLİTLİ */
  z-index:50;
  background:#fff;

  /* Normal modda gizli (boşluk/CLS olmasın diye kendisi overlay gibi davranır) */
  height:65px;
  margin-top:-65px;     /* boşluk oluşturmasın */
  padding:0;
  opacity:0;
  pointer-events:none;
  transform: translateY(-6px);
  transition: opacity 160ms ease-out, transform 160ms ease-out;
}

/* Sticky mod aktifken görünür */
.category-sticky.is-active{
  opacity:1;
  pointer-events:auto;
  transform: translateY(0);
  padding:10px 0;
}

.category-sticky-scroll{
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding:0 0 4px 0;
  scrollbar-width:none;
}
.category-sticky-scroll::-webkit-scrollbar{ display:none; }

.cat-pill{
  flex:0 0 auto;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid var(--border);
  background:#fff;
  font-size:14px;
  white-space:nowrap;
  transition: background 160ms ease-out, border-color 160ms ease-out, transform 160ms ease-out;
}

/* AKTİF KATEGORİ (scroll ile) */
.cat-pill.is-active{
  background: var(--activeBg);
  border-color: transparent;
  color: var(--activeText);
}

/* ---------- CONTENT ---------- */
.content{
  display:flex;
  flex-direction:column;
  gap:24px;
}

/* Sticky menü üstten bindirdiği için scroll-margin-top biraz daha geniş */
.category-section{
  display:flex;
  flex-direction:column;
  gap:12px;
  scroll-margin-top: 90px;
}

.category-head{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.category-title{
  font-size:18px;
  font-weight:800;
}

.category-desc{
  font-size:14px;
  color:var(--muted);
}

/* ---------- ÜRÜN LİSTESİ (yatay kart) ---------- */
.products-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.product-row{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:18px;
  padding:10px;
  box-shadow: var(--shadow);
}

.product-row-img{
  width:72px;
  height:72px;
  border-radius:14px;
  overflow:hidden;
  background:#f3f4f6;
  flex:0 0 auto;
}
.product-row-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.product-row-body{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.product-row-name{
  font-weight:900;
  font-size:14px;
  line-height:18px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.product-row-price{
  font-weight:900;
  font-size:14px;
  opacity:.9;
}

.product-row-badge{
  position:absolute;
  right:10px;
  top:10px;
  background: rgba(205,238,198,.9);
  color:#0b0b0b;
  border:1px solid rgba(0,0,0,.08);
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
}

.product-row-soldout{
  position:absolute;
  right:10px;
  bottom:10px;
  background: rgba(220,38,38,.92);
  color:#fff;
  border:1px solid rgba(220,38,38,1);
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
}

.empty-note{
  color:var(--muted);
  font-size:14px;
  padding:10px 0;
}

/* ---------- EN ALT KATEGORİ GRID ---------- */
.bottom-cats{
  padding-top:6px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.bottom-cats-title{
  font-weight:800;
}
.bottom-cats-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.bottom-cat{
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px;
  text-align:center;
  font-size:14px;
  background:#fff;
}

.footer-text{
  color:var(--muted);
  font-size:13px;
  padding:10px 0 20px 0;
}

/* ---------- PRODUCT PAGE (KİLİTLİ) ---------- */
.product-page{
  width:100%;
  max-width:600px;
  margin:0 auto;
  min-height:100vh;
  position:relative;
  background:#fff;
}

.back-btn{
  position:absolute;
  top:24px;
  left:16px;
  z-index:99999;
  width:44px;
  height:44px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#00000080;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color:#fff;
  font-weight:800;
}

.product-hero{
  position:relative;
  height:350px;
  overflow:hidden;
  background:#111;
}
.hero-img{
  width:100%;
  height:350px;
  object-fit:cover;
  display:block;
}
.hero-gradient{
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,0) 40%, rgba(0,0,0,0) 70%, rgba(0,0,0,.08) 100%);
  pointer-events:none;
}

.product-card-detail{
  background:#fff;
  border-top-left-radius:24px;
  border-top-right-radius:24px;
  margin-top:-18px;
  padding-top:24px;
  padding-left:16px;
  padding-right:16px;
  padding-bottom:110px;
  position:relative;
  z-index:2;
}

.product-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}

.product-title{
  font-size:24px;
  font-weight:900;
  line-height:30px;
  max-width:55%;
  word-break:break-word;
}

.product-price-big{
  font-weight:900;
  white-space:nowrap;
  font-size:18px;
}

.product-sub{
  margin-top:12px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid var(--border);
  border-radius:999px;
  padding:8px 10px;
  font-size:13px;
  background:#fff;
}
.pill-dark{
  background:rgba(0,0,0,.75);
  color:#fff;
  border-color:transparent;
}
.pill-soldout{
  background:rgba(220,38,38,.9);
  color:#fff;
  border-color:transparent;
  font-weight:800;
}

.product-desc{
  margin-top:16px;
  color:#111;
  font-size:15px;
  line-height:24px;
}
.product-desc p{ margin:0 0 12px 0; }
.product-desc ul{ margin:0 0 12px 18px; }

.bottom-fixed{
  position:fixed;
  bottom:0;
  width:100%;
  max-width:600px;
  left:50%;
  transform:translateX(-50%);
  background:#fff;
  border-top:1px solid var(--border);
}
.bottom-fixed-inner{
  padding:12px 16px;
}
.bottom-fixed-note{
  color:var(--muted);
  font-size:13px;
}

/* Ürün sayfasında kategori etiketi tıklanmasın */
.product-page .pill,
.product-page .pill-dark {
  pointer-events: none;
}
/* Tek görsel olduğu için ürün görseli sabit */
.product-hero {
  touch-action: pan-y;
}

.product-hero * {
  pointer-events: none;
}



/* ---------- ADMIN (dokunulmadı) ---------- */
.admin-shell{
  width:100%;
  min-height:100vh;
  background:#f8fafc;
}

.admin-topbar{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px;
  background:#fff;
  border-bottom:1px solid var(--border);
}

.admin-brand{
  font-weight:900;
}

.admin-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.admin-container{
  max-width:980px;
  margin:0 auto;
  padding:16px;
}

.admin-card{
  max-width:420px;
  margin:40px auto;
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:18px;
  box-shadow: var(--shadow);
}

.admin-title{
  font-size:18px;
  font-weight:900;
  margin-bottom:12px;
}

.h1{
  margin:10px 0 16px 0;
  font-size:22px;
  font-weight:900;
}
.h2{
  margin:18px 0 10px 0;
  font-size:16px;
  font-weight:900;
}

.form{ display:flex; flex-direction:column; gap:10px; }
.label{ font-size:13px; color:#111; font-weight:700; }
.input, .textarea, select.input{
  width:100%;
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px;
  font-size:14px;
  background:#fff;
  outline:none;
}
.textarea{ resize:vertical; }
.hint{ color:var(--muted); font-size:12px; }

.row{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.row-between{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }

.check{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 0;
  font-size:14px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--border);
  background:#111;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.btn-full{ width:100%; }
.btn-ghost{
  background:#fff;
  color:#111;
}
.btn-danger{
  background:#dc2626;
  border-color:#dc2626;
  color:#fff;
}

.link{
  color:#111;
  text-decoration:underline;
  font-weight:700;
}

.alert{
  border-radius:12px;
  padding:10px 12px;
  font-size:14px;
}
.alert-error{ background:#fee2e2; color:#7f1d1d; border:1px solid #fecaca; }
.alert-ok{ background:#dcfce7; color:#14532d; border:1px solid #bbf7d0; }

.grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
@media (max-width: 720px){
  .grid-2{ grid-template-columns:1fr; }
}
.stat{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:14px;
}
.stat-label{ color:var(--muted); font-size:13px; }
.stat-value{ font-size:20px; font-weight:900; margin-top:6px; }

.quick-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
}

.table-wrap{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
}
.table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.table th, .table td{
  padding:12px;
  border-bottom:1px solid var(--border);
  text-align:left;
  vertical-align:top;
}
.td-actions{
  display:flex;
  gap:10px;
  align-items:center;
}


/* ===== FLOATING ACTION BUTTONS (MENU PAGE) ===== */

.fab-container {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Ortak buton stili */
.fab-btn {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 10px 25px rgba(0,0,0,.25);
}

/* Yukarı çıkma */
.fab-up {
  font-size: 24px;
  color: #000;
}

/* Nargile */
.fab-nargile {
  font-size: 20px;
}

.fab-nargile img{
  width:40px;
  height:40px;
  object-fit:contain;
  display:block;
}




/* İşletme adını ortala */
.brand {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;   /* yatay ortalama */
  text-align: center;
}

/* Yazı ayarı (opsiyonel) */
.brand-name {
  text-align: center;
}



