/* ---------- Mobile App Demo shell ---------- */
.mobile-demo-page{
  min-height:100vh;
  background:radial-gradient(circle at 50% 0%, rgba(79,70,229,0.07), transparent 55%), var(--bg,#f6f7fb);
  padding:18px 16px 28px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
.mobile-demo-back{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:600;
  color:var(--text-muted,#6b7280);
  text-decoration:none;
  align-self:center;
}
.mobile-demo-back:hover{ color:var(--text,#111827); }
.mobile-demo-title{
  text-align:center;
  max-width:520px;
}
.mobile-demo-title h1{
  font-family:'Sora',sans-serif;
  font-size:18px;
  margin:0 0 4px;
  letter-spacing:-0.01em;
  color:var(--text,#111827);
}
.mobile-demo-title p{
  margin:0;
  color:var(--text-muted,#6b7280);
  font-size:12.5px;
  line-height:1.45;
}

/* Phone hardware frame */
.phone-shell{
  width:100%;
  max-width:1020px;
  display:flex;
  justify-content:center;
}
.phone-frame{
  width:100%;
  max-width:240px;
  background:#0b0f19;
  border-radius:32px;
  padding:10px;
  box-shadow:0 20px 40px rgba(15,23,42,0.32), 0 2px 0 rgba(255,255,255,0.04) inset;
  position:relative;
}
.phone-frame::before{
  content:"";
  position:absolute;
  top:16px; left:50%;
  transform:translateX(-50%);
  width:76px; height:14px;
  background:#0b0f19;
  border-radius:10px;
  z-index:5;
}
.phone-screen{
  position:relative;
  background:var(--surface,#fff);
  border-radius:22px;
  overflow:hidden;
  height:480px;
  display:flex;
  flex-direction:column;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
}
.phone-statusbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 18px 4px;
  font-size:11px;
  font-weight:700;
  color:#fff;
  z-index:2;
}
.phone-statusbar .dots{ display:flex; gap:4px; align-items:center; }
.phone-statusbar .dots span{ width:3px;height:3px;border-radius:50%; background:#fff; opacity:.9; }

/* App header inside the screen (colored per-app) */
.app-header{
  padding:4px 16px 12px;
  color:#fff;
  position:relative;
}
.app-header .app-eyebrow{
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.85;
  display:block;
  margin-bottom:3px;
}
.app-header h2{
  margin:0;
  font-family:'Sora',sans-serif;
  font-size:16px;
  letter-spacing:-0.01em;
}
.app-header .app-sub{
  margin:3px 0 0;
  font-size:10.5px;
  opacity:.9;
}

/* Scrollable app body with screens */
.app-body{
  flex:1;
  overflow-y:auto;
  background:var(--bg,#f6f7fb);
  padding:10px 10px 58px;
}
.app-screen{ display:none; flex-direction:column; gap:9px; animation:screenIn .25s ease; }
.app-screen.active{ display:flex; }
@keyframes screenIn{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);} }

/* Generic card used inside app screens */
.app-card{
  background:var(--surface,#fff);
  border:1px solid var(--border,#e5e7eb);
  border-radius:13px;
  padding:10px 12px;
  box-shadow:0 1px 6px rgba(0,0,0,.04);
}
.app-card h3{ margin:0 0 3px; font-size:12px; font-family:'Sora',sans-serif; color:var(--text,#111827); }
.app-card p{ margin:0; font-size:10.5px; color:var(--text-muted,#6b7280); line-height:1.45; }
.app-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.app-row > .meta{ flex:1; min-width:0; }
.app-pill{
  font-size:9px;
  font-weight:700;
  padding:3px 8px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
  flex-shrink:0;
}
.app-kpi-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.app-kpi{ background:var(--surface,#fff); border:1px solid var(--border,#e5e7eb); border-radius:12px; padding:9px 11px; }
.app-kpi .label{ font-size:9px; color:var(--text-muted,#6b7280); font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.app-kpi .value{ font-family:'Sora',sans-serif; font-size:16px; font-weight:700; margin-top:2px; color:var(--text,#111827); }
.app-list-item{ display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--border,#e5e7eb); }
.app-list-item:last-child{ border-bottom:none; }
.app-avatar{ width:30px;height:30px;border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; flex-shrink:0; color:#fff; font-weight:700; }
.app-list-item .meta{ flex:1; min-width:0; }
.app-list-item .meta .t{ font-size:11.5px; font-weight:600; color:var(--text,#111827); }
.app-list-item .meta .s{ font-size:10px; color:var(--text-muted,#6b7280); }
.app-btn{
  border:none; border-radius:10px; padding:8px 13px; font-size:11.5px; font-weight:700;
  cursor:pointer; color:#fff; display:flex; align-items:center; justify-content:center; gap:6px;
  transition:transform .12s ease, filter .12s ease;
}
.app-btn:hover{ filter:brightness(1.06); transform:translateY(-1px); }
.app-btn.ghost{ background:var(--bg,#f6f7fb); color:var(--text,#111827); border:1px solid var(--border,#e5e7eb); }
.app-progress{ height:5px; border-radius:999px; background:var(--border,#e5e7eb); overflow:hidden; }
.app-progress > span{ display:block; height:100%; border-radius:999px; }

/* Category tile grid (multi-category super-app home, styled after the UAQ Deals app) */
.app-cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-bottom:2px; }
.app-cat-tile{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-decoration:none; padding:9px 2px; border-radius:12px; }
.app-cat-tile .ic{ width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; background:rgba(255,255,255,.22); }
.app-cat-tile .lb{ font-size:8.5px; font-weight:700; color:#fff; text-align:center; }

/* Bottom tab bar */
.tab-bar{
  position:absolute; left:0; right:0; bottom:0;
  display:flex;
  background:var(--surface,#fff);
  border-top:1px solid var(--border,#e5e7eb);
  padding:6px 4px 10px;
}
.tab-bar button{
  flex:1; background:none; border:none; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:2px;
  font-size:9px; font-weight:600; color:var(--text-muted,#6b7280);
  padding:4px 2px; border-radius:10px;
}
.tab-bar button .ic{ font-size:15px; line-height:1; }
.tab-bar button.active{ color:var(--tab-active,#4f46e5); }

/* OCR scan visual */
.scan-frame{
  border:2px dashed rgba(255,255,255,.55);
  border-radius:14px;
  height:110px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:11px;
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,0.08);
}
.scan-line{
  position:absolute; left:6%; right:6%; height:2px;
  background:#22d3ee; box-shadow:0 0 8px 2px rgba(34,211,238,.7);
  animation:scanmove 1.8s ease-in-out infinite;
}
@keyframes scanmove{ 0%{top:8%;} 50%{top:88%;} 100%{top:8%;} }

@media (max-width:420px){
  .phone-frame{ max-width:100%; border-radius:34px; padding:14px; }
  .phone-frame::before{ width:120px; height:22px; top:26px; }
  .phone-screen{ height:70vh; min-height:520px; border-radius:24px; }
  .phone-statusbar{ padding:16px 26px 6px; font-size:13px; }
  .app-header{ padding:6px 22px 20px; }
  .app-header h2{ font-size:21px; }
  .app-body{ padding:16px 16px 90px; }
  .mobile-demo-title h1{ font-size:24px; }
  .mobile-demo-title p{ font-size:14px; }
}
