/* App screens shown on the site. They copy the real apps' light, Apple-style
   look (system font, white cards, each app's own blue) and stay light in both
   site themes, like real screenshots. Sample data only: User 1, Project 1, Client 1. */

.media {
  --ui-accent:#2563eb; --ui-accent-tint:#e6eeff;
  --ui-bg:#f3f4f9; --ui-card:#fff; --ui-line:#e7e9f1; --ui-ink:#14161f; --ui-ink-2:#3a3d4d; --ui-ink-3:#6e7385;
  position:relative; overflow:hidden; border-radius:16px;
  background:var(--ui-bg); color:var(--ui-ink);
  border:1px solid rgba(15,22,38,0.10);
  box-shadow:0 1px 2px rgba(0,0,0,0.06), 0 24px 60px rgba(0,0,0,0.28);
  font-family:'Inter', -apple-system, sans-serif;
  font-size:12px; line-height:1.35; text-align:left; letter-spacing:0;
}
.ui-fs { --ui-accent:#0a5bd1; --ui-accent-tint:#e8f1fc; --ui-bg:#f2f2f7; --ui-line:#e5e5ea; --ui-ink:#1c1c1e; --ui-ink-2:#48484d; --ui-ink-3:#6c6c70; }
.ui-fl { --ui-accent:#0071e3; --ui-accent-tint:#e5f0fc; --ui-bg:#f5f5f7; --ui-line:#e3e3e8; --ui-ink:#1d1d1f; --ui-ink-2:#424245; --ui-ink-3:#6e6e73; }

/* Browser chrome */
.ui-bar { display:flex; align-items:center; gap:6px; padding:9px 12px; background:#fbfbfd; border-bottom:1px solid var(--ui-line); }
.ui-bar i { width:9px; height:9px; border-radius:50%; background:#ff5f57; }
.ui-bar i:nth-child(2) { background:#febc2e; } .ui-bar i:nth-child(3) { background:#28c840; }
.ui-url { margin:0 auto; font-size:10.5px; color:var(--ui-ink-3); background:#eef0f4; padding:3px 14px; border-radius:6px; display:flex; align-items:center; gap:5px; }
.ui-url::before { content:''; width:7px; height:8px; border:1.4px solid var(--ui-ink-3); border-radius:2px; border-top-width:3px; opacity:0.6; }

/* App header */
.ui-head { display:flex; align-items:center; gap:8px; padding:10px 14px; background:var(--ui-card); border-bottom:1px solid var(--ui-line); }
.ui-logo { width:22px; height:22px; border-radius:6px; background:var(--ui-accent); color:#fff; font-size:10px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ui-head b { font-size:12.5px; font-weight:700; }
.ui-nav { display:flex; gap:2px; margin-left:auto; }
.ui-nav span { font-size:11px; color:var(--ui-ink-3); padding:4px 9px; border-radius:999px; white-space:nowrap; }
.ui-nav span.on { background:var(--ui-accent-tint); color:var(--ui-accent); font-weight:600; }

.ui-body { padding:14px; }
.ui-h { font-size:15px; font-weight:700; letter-spacing:-0.01em; }
.ui-s { font-size:11px; color:var(--ui-ink-3); margin:2px 0 12px; }
.ui-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.ui-card { background:var(--ui-card); border:1px solid var(--ui-line); border-radius:12px; }
.ui-card + .ui-card { margin-top:10px; }
.ui-pad { padding:12px; }

/* Grouped list (iOS style) */
.ui-list { background:var(--ui-card); border:1px solid var(--ui-line); border-radius:12px; overflow:hidden; }
.ui-li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 12px; font-size:11.5px; }
.ui-li + .ui-li { border-top:1px solid var(--ui-line); }
.ui-li .k { color:var(--ui-ink-3); white-space:nowrap; }
.ui-li .v { font-weight:600; text-align:right; white-space:nowrap; }
.ui-li.warn { background:#fff6e8; }
.ui-li.warn .v { color:#94470a; }
.ui-li-main { display:flex; align-items:center; gap:9px; min-width:0; }
.ui-li-t { font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ui-li-d { font-size:10.5px; color:var(--ui-ink-3); margin-top:1px; white-space:nowrap; }

.ui-pill { font-size:10px; font-weight:600; padding:3px 8px; border-radius:999px; white-space:nowrap; background:#eef0f4; color:var(--ui-ink-2); }
.ui-pill.ok { background:#e1f5e8; color:#17663a; }
.ui-pill.warn { background:#fff0dc; color:#94470a; }
.ui-pill.bad { background:#fde8e6; color:#a8261b; }
.ui-pill.info { background:var(--ui-accent-tint); color:var(--ui-accent); }
.ui-pill.violet { background:#f1ecfb; color:#5b3fb5; }
.ui-btn { display:block; text-align:center; font-size:11.5px; font-weight:600; padding:9px; border-radius:999px; background:var(--ui-accent); color:#fff; margin-top:12px; }
.ui-btn.ghost { background:var(--ui-card); color:var(--ui-accent); border:1px solid var(--ui-line); }
.ui-av { width:24px; height:24px; border-radius:50%; flex-shrink:0; color:#fff; font-size:9.5px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.ui-ic { width:26px; height:26px; border-radius:8px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:var(--ui-accent-tint); color:var(--ui-accent); }
.ui-ic svg { width:14px; height:14px; }
.ui-check { width:16px; height:16px; border-radius:50%; background:#2e9e4f; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.ui-check::after { content:''; width:6px; height:3px; border:1.6px solid #fff; border-top:0; border-right:0; transform:rotate(-45deg) translate(1px,-1px); }

/* Drop zone + file progress */
.ui-drop { border:1.5px dashed #c9cfdd; border-radius:12px; padding:14px; text-align:center; background:var(--ui-card); color:var(--ui-ink-3); font-size:11px; }
.ui-drop b { display:block; color:var(--ui-ink); font-size:12px; margin:4px 0 1px; }
.ui-drop svg { width:20px; height:20px; color:var(--ui-accent); }
.ui-prog { height:4px; border-radius:999px; background:#eceef6; overflow:hidden; margin-top:5px; width:90px; }
.ui-prog span { display:block; height:100%; background:var(--ui-accent); border-radius:999px; }

/* Docket being read: real photo + extracted fields */
.ui-docket { display:grid; grid-template-columns:0.9fr 1.1fr; gap:10px; align-items:start; }
.ui-thumb { position:relative; border-radius:10px; overflow:hidden; aspect-ratio:3/4; background:#dde1ea; }
.ui-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.ui-thumb .box { position:absolute; border:1.5px solid var(--ui-accent); border-radius:4px; background:rgba(37,99,235,0.10); }
.ui-thumb .box.w { border-color:#f59e0b; background:rgba(245,158,11,0.14); }

/* KPIs + bars */
.ui-kpis { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-bottom:10px; }
.ui-kpi { background:var(--ui-card); border:1px solid var(--ui-line); border-radius:12px; padding:9px 11px; }
.ui-kpi small { display:block; font-size:10px; color:var(--ui-ink-3); margin-bottom:2px; }
.ui-kpi b { font-size:16px; font-weight:700; letter-spacing:-0.02em; }
.ui-kpi b.acc { color:var(--ui-accent); }
.ui-bars { display:flex; flex-direction:column; gap:7px; }
.ui-bars div { display:grid; grid-template-columns:52px 1fr 44px; align-items:center; gap:8px; font-size:10.5px; color:var(--ui-ink-2); }
.ui-bars i { height:8px; border-radius:999px; background:linear-gradient(90deg,#3b8bff,#7c4dff); display:block; }
.ui-bars em { font-style:normal; text-align:right; font-weight:600; color:var(--ui-ink); }

/* Messages */
.ui-msgs { display:flex; flex-direction:column; gap:6px; }
.ui-msg { max-width:82%; padding:8px 11px; border-radius:16px; font-size:11.5px; line-height:1.4; }
.ui-msg.in { background:#e9e9eb; color:#1d1d1f; border-bottom-left-radius:5px; }
.ui-msg.out { background:#0a84ff; color:#fff; margin-left:auto; border-bottom-right-radius:5px; }
.ui-msg u { color:var(--ui-accent); }
.ui-meta { font-size:9.5px; color:var(--ui-ink-3); text-align:center; }
.ui-sig { height:42px; border:1px dashed #c9cfdd; border-radius:10px; background:var(--ui-card); display:flex; align-items:center; justify-content:center; color:var(--ui-ink); }
.ui-sig svg { width:120px; height:30px; }

/* Phone frame (FieldStamp is an iPhone app) */
.media.ui-phone { width:230px; border-radius:34px; padding:7px; background:#1c1c1e; border:0; }
.ui-screen { border-radius:28px; overflow:hidden; background:var(--ui-bg); position:relative; }
.ui-status { display:flex; justify-content:space-between; align-items:center; padding:9px 20px 4px; font-size:11px; font-weight:600; }
.ui-status i { width:58px; height:16px; border-radius:999px; background:#1c1c1e; position:absolute; left:50%; top:6px; transform:translateX(-50%); }
.ui-status s { text-decoration:none; letter-spacing:1px; font-size:9px; }
.ui-nav-ios { display:flex; justify-content:space-between; align-items:center; padding:4px 14px 6px; }
.ui-nav-ios b { font-size:19px; font-weight:800; letter-spacing:-0.02em; }
.ui-nav-ios span { color:var(--ui-accent); font-size:11.5px; }
.ui-seg { display:flex; background:#e3e3e8; border-radius:8px; padding:2px; margin:0 14px 8px; }
.ui-seg span { flex:1; text-align:center; font-size:10.5px; padding:4px; border-radius:6px; color:var(--ui-ink-2); }
.ui-seg span.on { background:#fff; font-weight:600; color:var(--ui-ink); box-shadow:0 1px 2px rgba(0,0,0,0.12); }
.ui-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; padding:0 14px; }
.ui-grid figure { margin:0; position:relative; aspect-ratio:1; overflow:hidden; border-radius:3px; background:#d8dbe2; }
.ui-grid img { width:100%; height:100%; object-fit:cover; display:block; }
.ui-grid figcaption { position:absolute; left:3px; bottom:3px; font-size:7.5px; font-weight:700; color:#fff; background:rgba(0,0,0,0.6); padding:1px 5px; border-radius:999px; }
.ui-grid .dot { position:absolute; right:4px; top:4px; width:7px; height:7px; border-radius:50%; border:1.5px solid #fff; }
.ui-tabbar { display:flex; justify-content:space-around; padding:7px 6px 12px; margin-top:10px; background:rgba(249,249,251,0.92); border-top:1px solid var(--ui-line); }
.ui-tabbar span { display:flex; flex-direction:column; align-items:center; gap:2px; font-size:8.5px; color:#8e8e93; }
.ui-tabbar span::before { content:''; width:16px; height:14px; border-radius:4px; background:currentColor; opacity:0.55; }
.ui-tabbar span.on { color:var(--ui-accent); }
.ui-tabbar span.on::before { opacity:1; }
.ui-cam { position:relative; margin:0 0 0; aspect-ratio:3/4; background:#000; }
.ui-cam img { width:100%; height:100%; object-fit:cover; display:block; }
.ui-stamp { position:absolute; left:8px; bottom:8px; font-size:8.5px; line-height:1.45; color:#fff; background:rgba(0,0,0,0.55); padding:5px 8px; border-radius:7px; font-weight:600; }
.ui-shutter { display:flex; align-items:center; justify-content:center; gap:26px; padding:10px 0 12px; background:#000; }
.ui-shutter b { width:40px; height:40px; border-radius:50%; background:#fff; box-shadow:0 0 0 3px #000, 0 0 0 5px #fff; }
.ui-shutter span { width:26px; height:26px; border-radius:6px; overflow:hidden; }
.ui-shutter span img { width:100%; height:100%; object-fit:cover; }
.ui-tags { display:flex; gap:5px; flex-wrap:wrap; }
.ui-pdf { background:#fff; border-radius:8px; box-shadow:0 1px 4px rgba(0,0,0,0.15); padding:10px; margin:0 14px; }
.ui-pdf-h { display:flex; justify-content:space-between; font-size:8px; color:var(--ui-ink-3); border-bottom:1px solid var(--ui-line); padding-bottom:5px; margin-bottom:6px; }
.ui-pdf-h b { color:var(--ui-ink); font-size:9.5px; }
.ui-pdf .ui-grid { padding:0; grid-template-columns:repeat(2,1fr); gap:3px; }
.ui-pdf p { font-size:8px; color:var(--ui-ink-3); margin-top:6px; line-height:1.4; }

/* App accents (usable on any wrapper) */
.app-fielddoc   { --accent: #60a5fa; --mock-accent: #60a5fa; }
.app-fieldstamp { --accent: #a5b4fc; --mock-accent: #a5b4fc; }
.app-fieldlink  { --accent: #5eead4; --mock-accent: #5eead4; }

/* SHOT: a photo with the app screen floating over its corner.
   If the photo is missing, the img removes itself (onerror) and .no-photo
   shows the app screen on its own. */
.shot { position:relative; margin:0; }
.shot .photo-wrap {
  position:relative; border-radius:20px; overflow:hidden; aspect-ratio:4/3;
  border:1px solid rgba(255,255,255,0.08); background:#0d1220;
  box-shadow:0 30px 80px rgba(0,0,0,0.55);
}
.shot.wide .photo-wrap { aspect-ratio:16/10; }
.shot .photo-wrap img { width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.02); transition:transform 1.2s cubic-bezier(0.22,1,0.36,1); }
.shot:hover .photo-wrap img { transform:scale(1.06); }
.shot .photo-wrap::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(7,8,12,0) 45%, rgba(7,8,12,0.55) 100%);
}
.shot > .media { position:absolute; right:-22px; bottom:-30px; width:min(66%, 380px); z-index:2; }
.shot > .media.ui-phone { width:240px; right:-18px; bottom:auto; top:50%; transform:translateY(-50%); }
.shot.no-photo .photo-wrap { display:none; }
.shot.no-photo > .media { position:relative; right:auto; bottom:auto; width:100%; }
@media (max-width:640px) {
  .shot > .media { position:relative; right:auto; bottom:auto; width:92%; margin:-64px 0 0 auto; }
  .shot > .media.ui-phone { width:230px; transform:none; top:auto; margin:-150px 14px 0 auto; }
  .shot.no-photo > .media { width:100%; margin:0; }
}

/* Scan line over a mock, hints at "reading" */
.scan { position:relative; overflow:hidden; }
.scan::after {
  content:''; position:absolute; left:0; right:0; top:-30%; height:30%; pointer-events:none;
  background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--mock-accent, #ffc000) 22%, transparent), transparent);
  animation:scanMove 3.6s cubic-bezier(0.45,0,0.55,1) infinite;
}
@keyframes scanMove { 0% { top:-30%; } 60%,100% { top:110%; } }
@media (prefers-reduced-motion: reduce) { .scan::after { animation:none; display:none; } }

/* Full width photo band (missing photo: band hides itself) */
.band { position:relative; border-radius:22px; overflow:hidden; aspect-ratio:21/9; background:#0d1220; border:1px solid rgba(255,255,255,0.07); }
.band img { width:100%; height:100%; object-fit:cover; display:block; }
.band::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(7,8,12,0.85) 0%, rgba(7,8,12,0.35) 55%, rgba(7,8,12,0.1) 100%); pointer-events:none; }
.band-text { position:absolute; left:0; bottom:0; padding:clamp(20px,4vw,48px); z-index:1; max-width:640px; }
.band.no-photo { display:none; }
@media (max-width:640px) { .band { aspect-ratio:4/3; } }
.ui-nav { overflow:hidden; }
@media (max-width:420px) { .ui-nav span:nth-child(3) { display:none; } }

/* ── Phone (real iPhone proportions) ── */
.media.ui-phone {
  width:270px; aspect-ratio:9/19.3; padding:9px; border-radius:46px; background:#1c1c1e; border:0;
  display:flex; box-shadow:0 0 0 1.5px #3a3a3c, 0 30px 70px rgba(0,0,0,0.35);
}
.ui-screen { flex:1; display:flex; flex-direction:column; border-radius:38px; overflow:hidden; background:var(--ui-bg); position:relative; min-height:0; }
.ui-screen.dark { background:#000; color:#fff; }
.ui-status { display:grid; grid-template-columns:1fr 78px 1fr; align-items:center; padding:12px 18px 6px; font-size:12px; font-weight:600; position:relative; }
.ui-status i { position:static; transform:none; width:78px; height:22px; border-radius:999px; background:#000; justify-self:center; }
.ui-status > span:first-child { padding-left:8px; }
.ui-sys { display:flex; gap:5px; justify-content:flex-end; align-items:center; padding-right:4px; }
.ui-sys svg { height:10px; width:auto; fill:currentColor; }
.ui-content { flex:1; min-height:0; overflow:hidden; display:flex; flex-direction:column; }
.ui-nav-ios { padding:8px 16px 8px; }
.ui-nav-ios b { font-size:22px; }
.ui-seg { margin:0 16px 10px; }
.ui-phone-meta { padding:0 16px 8px; font-size:10.5px; color:var(--ui-ink-3); white-space:nowrap; }
.ui-phone-meta .ok { color:#2e7d46; font-weight:600; }
.ui-phone .ui-grid { padding:0 16px; gap:3px; }
.ui-tabbar { margin-top:auto; padding:8px 8px 22px; position:relative; }
.ui-tabbar::after { content:''; position:absolute; left:50%; bottom:7px; transform:translateX(-50%); width:96px; height:4px; border-radius:999px; background:#1c1c1e; }
.ui-screen.dark .ui-tabbar { background:#111; border-top-color:#222; }
.ui-screen.dark .ui-tabbar::after { background:#fff; }

/* Camera */
.ui-cam { flex:1; aspect-ratio:auto; min-height:0; position:relative; }
.ui-cam-top { position:absolute; top:8px; left:8px; right:8px; display:flex; justify-content:space-between; }
.ui-cam-top span { font-size:9.5px; font-weight:600; color:#fff; background:rgba(0,0,0,0.5); padding:3px 8px; border-radius:999px; }
.ui-stamp { font-size:9.5px; }
.ui-cam-tags { display:flex; gap:5px; justify-content:center; padding:9px 0 2px; background:#000; }
.ui-shutter { padding:10px 0 12px; }
.ui-shutter b { width:48px; height:48px; }
.ui-shutter span { width:30px; height:30px; border-radius:8px; }
.ui-shutter span.flip { border-radius:50%; background:#2c2c2e; }

/* Docket scan */
.ui-scan { position:relative; margin:0 16px 10px; border-radius:12px; overflow:hidden; aspect-ratio:16/10; }
.ui-scan img { width:100%; height:100%; object-fit:cover; display:block; }
.ui-scan .ui-pill { position:absolute; left:8px; bottom:8px; }

/* PDF report */
.ui-pdf { margin:0 16px; padding:12px; }
.ui-pdf-sub { font-size:9.5px; margin-bottom:8px; }
.ui-pdf .ui-grid { grid-template-columns:repeat(3,1fr); }
.ui-pdf-rows { margin-top:8px; border-top:1px solid var(--ui-line); }
.ui-pdf-rows div { display:flex; justify-content:space-between; font-size:9.5px; padding:5px 0; border-bottom:1px solid var(--ui-line); color:var(--ui-ink-3); }
.ui-pdf-rows b { color:var(--ui-ink); }
