/* Rassiamall Points – Light UI (modern, mobile-first, animations) */
:root{
  color-scheme: light;
  --bg:#f7f8fb;
  --bg-2:#eef1f6;
  --surface:#ffffff;
  --surface-2:#fafbff;
  --txt:#0f172a;
  --muted:#61708a;
  --accent:#111827;      /* Brand-Primary */
  --accent-2:#ffd400;    /* Brand-Secondary (Highlight) */
  --ok:#16a34a;
  --err:#ef4444;
  --warn:#f59e0b;
  --radius:16px;
  --shadow:0 10px 24px rgba(15,23,42,.08);
  --shadow-2:0 8px 16px rgba(15,23,42,.06);
  --gap:14px;
  --maxw:860px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,"Apple Color Emoji","Segoe UI Emoji";}
img{max-width:100%;display:block}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:16px;}
h1,h2,h3{margin:8px 0 6px;line-height:1.2}
p{margin:8px 0;color:var(--muted)}

.card{
  background:var(--surface);
  border-radius:var(--radius);
  padding:16px;
  box-shadow:var(--shadow);
  margin:12px 0;
  animation:fadeIn .3s ease both;
}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.grid{display:grid;gap:var(--gap);grid-template-columns:1fr}
@media (min-width:620px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:920px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.row{display:flex;gap:var(--gap);flex-wrap:wrap;align-items:center}

.btn,button,input[type=submit]{
  appearance:none;border:0;border-radius:12px;background:var(--accent);color:#fff;
  padding:12px 14px;font-weight:700;letter-spacing:.2px;cursor:pointer;box-shadow:var(--shadow);
  display:inline-flex;align-items:center;gap:8px;transition:transform .06s ease,filter .2s ease,background .2s ease;
  touch-action:manipulation
}
.btn:active,button:active{transform:translateY(1px) scale(.99)}
.btn--ghost{background:#fff;color:var(--txt);border:1px solid #e5e7eb}
.btn--ok{background:var(--ok)}
.btn--err{background:var(--err)}
.icon{width:18px;height:18px;display:inline-block;vertical-align:middle}

.input, select, textarea, input[type=text], input[type=email], input[type=password], input[type=number], input[type=tel]{
  width:100%;background:#fff;color:var(--txt);border:1px solid #e5e7eb;border-radius:12px;
  padding:12px 12px;outline:none;transition:border-color .2s ease, box-shadow .2s ease; font-size:16px;
}
input:focus,select:focus,textarea:focus{border-color:#cbd5e1;box-shadow:0 0 0 3px rgba(17,24,39,.08)}

.notice{border-radius:var(--radius);padding:12px 14px}
.notice--ok{background:#ecfdf5;border:1px solid #bbf7d0;color:#065f46}
.notice--err{background:#fef2f2;border:1px solid #fecaca;color:#7f1d1d}

.table-wrap{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow-2)}
.table{width:100%;border-collapse:collapse;min-width:620px;background:#fff}
.table th,.table td{padding:12px;border-bottom:1px solid #eef1f6;text-align:left}
.table th{color:#6b7280;font-weight:600;font-size:13px}

.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;background:#eef1f6;color:#111}
.badge--ok{background:#e8f8ee;color:#0a7a3d}
.badge--no{background:#feecec;color:#c62828}

.shop-card img{width:100%;height:auto;border-radius:12px;margin-bottom:8px}

.skeleton{position:relative;overflow:hidden;background:#eef1f6;border-radius:12px}
.skeleton::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:translateX(-100%);animation:shimmer 1.25s infinite}
@keyframes shimmer{to{transform:translateX(100%)}}

.tabbar{
  position:sticky;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;
  display:flex;gap:6px;justify-content:space-between;padding:8px 6px;z-index:50
}
.tabbar button{
  flex:1;background:#fff;color:#111;border:1px solid transparent;border-radius:12px;padding:10px 8px;
  display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:600;box-shadow:none
}
.tabbar button.active{border-color:#111827;background:#111827;color:#fff}

.section{display:none;animation:fadeSlide .25s ease both}
.section.active{display:block}
@keyframes fadeSlide{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.header{display:flex;align-items:center;justify-content:space-between;margin:6px 0 14px}
.brand{display:flex;align-items:center;gap:10px}
.brand .logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#111827,var(--accent-2))}
.brand .name{font-weight:800;letter-spacing:.3px}

/* Loyalty Card */
.loyalty-card{
  position:relative;
  background: radial-gradient(120% 120% at 0% 0%, #fff 0%, #f1f5ff 60%, #e9f0ff 100%);
  border-radius:20px;
  /* Rechts extra Innenabstand für die Punkte-Badge */
  padding:18px 138px 24px 18px;
  box-shadow: var(--shadow);
  overflow:hidden;
  margin:16px 0;
  animation:fadeIn .35s ease both;
}
@media (max-width:420px){
  .loyalty-card{ padding-right:124px; }
}
.lc-top{display:flex;align-items:center;justify-content:space-between}
.lc-brand{display:flex;align-items:center;gap:12px}
.lc-chip{
  width:32px;height:24px;border-radius:6px;
  background: linear-gradient(180deg,#ffd400,#ffec85);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}
.lc-title{font-weight:800;letter-spacing:.3px}
.lc-logo{
  font-weight:900;font-size:18px;
  background:#111827;color:#fff;border-radius:10px;padding:6px 10px;letter-spacing:.5px
}
.lc-number{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:20px;font-weight:800;letter-spacing:2px;margin:14px 0 8px;
}
.lc-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}
.lc-name{font-weight:700}

/* Punkte-Badge auf der Karte */
.lc-points{
  position:absolute; right:14px; bottom:14px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:96px; height:96px; border-radius:999px;
  background: radial-gradient(90% 90% at 30% 20%, #ffffff 0%, #f7fbff 40%, #dfe9ff 100%);
  box-shadow: 0 8px 20px rgba(17,24,39,.12), inset 0 0 0 1px rgba(17,24,39,.06);
  animation: popIn .35s ease both .1s;
  pointer-events: none; /* überdeckt keine Klicks */
  z-index: 1;
}
@keyframes popIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.lc-points-value{
  font-size:28px; font-weight:900; line-height:1;
  color:#111827;
}
.lc-points-label{
  margin-top:4px; font-size:12px; color:#6b7280; letter-spacing:.2px;
}
@media (max-width:420px){
  .lc-points{ width:84px; height:84px; }
  .lc-points-value{ font-size:24px; }
}

/* News Grid (Images-only, fixed ratio) */
.news-grid{
  display:grid; gap:14px;
  grid-template-columns: repeat(2, minmax(0,1fr));
  margin: 8px 0 16px;
}
@media (min-width:680px){
  .news-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
.news-item{
  border-radius:16px; overflow:hidden; background:#fff; box-shadow: var(--shadow);
  cursor:pointer; transform:translateZ(0);
  transition: transform .12s ease, box-shadow .12s ease;
}
.news-item:active{ transform: scale(.98); }
.news-thumb{
  width:100%; aspect-ratio: 16 / 9; object-fit: cover; display:block;
}
.news-caption{
  padding:10px 12px; font-weight:700; font-size:14px; color:#0f172a;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* Modal for News Detail */
.modal{
  position:fixed; inset:0; display:none; align-items:flex-end; justify-content:center;
  background: rgba(15,23,42,.38); z-index:1000;
}
.modal.open{ display:flex; animation: modalFade .2s ease both; }
@keyframes modalFade{ from{opacity:0} to{opacity:1} }
.modal-sheet{
  width:100%; max-width:720px; background:#fff; border-top-left-radius:20px; border-top-right-radius:20px;
  box-shadow: 0 -10px 24px rgba(15,23,42,.12); overflow:auto; max-height:94vh;
  transform: translateY(14px); animation: sheetIn .25s ease both;
}
@keyframes sheetIn{ from{transform:translateY(40px)} to{transform:translateY(0)} }
.modal-header img{
  width:100%; aspect-ratio: 16 / 9; object-fit: cover; display:block;
  border-top-left-radius:20px; border-top-right-radius:20px;
}
.modal-body{ padding:16px; }
.modal-title{ font-size:18px; font-weight:800; margin:4px 0 8px; }
.modal-meta{ color:#61708a; font-size:12px; margin-bottom:8px; }
.modal-close{
  position:absolute; right:14px; top:10px; background:#111827; color:#fff; border-radius:10px;
  padding:6px 10px; font-weight:700; border:0; cursor:pointer;
}
