:root {
  color-scheme: dark;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #081019;
  color: #f5f8fb;
}
* { box-sizing: border-box; }
body {
  min-height: 100vh;
  margin: 0;
  background: radial-gradient(circle at 80% 12%, #0d4166 0, transparent 35%), #081019;
}
.shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}
.card {
  width: min(100%, 520px);
  padding: clamp(28px, 6vw, 48px);
  border: 1px solid #24455e;
  border-radius: 20px;
  background: #101d29;
  box-shadow: 0 24px 80px #0008;
}
.brand { font-size: 24px; font-weight: 900; letter-spacing: .18em; }
.brand-dot { color: #14a9ee; }
.eyebrow { margin-top: 40px; color: #74caff; font-size: 12px; font-weight: 700; letter-spacing: .16em; }
h1 { font-size: clamp(30px, 6vw, 42px); line-height: 1.12; }
#status { line-height: 1.6; color: #d5e2eb; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
button {
  appearance: none;
  border: 0;
  border-radius: 10px;
  padding: 14px 18px;
  background: #14a9ee;
  color: #05111a;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
button.secondary { background: transparent; color: #cbeafa; border: 1px solid #4986a8; }
button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.help { margin-top: 28px; color: #9aafbd; font-size: 13px; line-height: 1.55; }

.account { margin-top: 28px; padding: 20px; border: 1px solid #24455e; border-radius: 12px; }
.account h2 { margin: 0 0 12px; font-size: 18px; }
.account p { margin: 0; line-height: 1.55; color: #d5e2eb; }

.profiles-list { display: grid; gap: 12px; margin: 16px 0; }
.profile-row, .profiles-form { display: grid; gap: 10px; padding: 16px 0; border-top: 1px solid #24455e; }
.profile-row input[type="text"], .profiles-form input[type="text"],
.profile-row select, .profiles-form select {
  width: 100%; min-width: 0; padding: 12px; border: 1px solid #4986a8;
  border-radius: 8px; background: #081019; color: #f5f8fb; font: inherit;
}
.profile-row button, .profiles-form button { justify-self: start; }
.profile-note { margin-top: 12px !important; color: #9aafbd !important; font-size: 13px; }

#progress-check .profiles-form { margin: 16px 0; }
#progress-check select, #progress-check input[type="number"] {
  width: 100%; min-width: 0; padding: 12px; border: 1px solid #4986a8;
  border-radius: 8px; background: #081019; color: #f5f8fb; font: inherit;
}
#progress-check .progress-title { margin-top: 14px; font-weight: 700; }
button:disabled { opacity: .55; cursor: not-allowed; }

.playback-video { display: block; width: 100%; margin: 18px 0; border-radius: 10px; background: #000; }
.playback-video[hidden] { display: none; }
#playback-status { margin-top: 14px; }

.pairing { background: linear-gradient(145deg, #121d32, #0c1524); border-color: #39577b; }
.pairing .pairing-label { color: #85b6ff; font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.pairing h2 { font-size: 24px; }
.pairing-form { display: grid; gap: 12px; margin-top: 20px; }
.pairing-form > label:first-child { font-weight: 700; }
.pairing-form input[type="text"] {
  width: 100%; min-width: 0; padding: 14px; border: 1px solid #7795be; border-radius: 10px;
  background: #081019; color: #fff; font: inherit; font-size: 22px; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
}
.pairing-form input:focus-visible { outline: 3px solid #85b6ff; outline-offset: 2px; }
.pairing-form .pairing-note { font-size: 13px; color: #bdcce0; }
.pairing-confirm { display: flex; gap: 12px; align-items: flex-start; line-height: 1.4; }
.pairing-confirm input { width: 20px; height: 20px; margin: 0; accent-color: #14a9ee; flex: none; }
.pairing-form button { justify-self: start; }
.pairing .pairing-result { margin-top: 18px; min-height: 2.5em; }

.notifications-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.notifications-header h2 { margin: 0; }
.notifications-header button { width: auto; }
.notifications-list { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: .75rem; }
.notification-row { border: 1px solid #303849; border-radius: 8px; background: #101216; }
.notification-unread { border-color: #1537e8; background: #1b2030; }
.notification-action { width: 100%; display: grid; gap: .4rem; text-align: left; background: transparent; color: #fff; border: 0; padding: 1rem; cursor: pointer; }
.notification-action span, .notification-action small { color: #a8adb7; }
.notification-action:focus-visible { outline: 3px solid #7290ff; outline-offset: 2px; }
.customer-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.notification-bell { display: inline-flex; align-items: center; gap: .4rem; padding: 9px 12px; min-height: 44px; }
#notifications-badge { min-width: 1.4rem; padding: 2px 5px; border-radius: 1rem; background: #14a9ee; color: #05111a; font-size: 12px; }
.google-signin-dialog { width: min(420px, calc(100vw - 40px)); box-sizing: border-box; padding: 28px; border: 1px solid #3b404b; border-radius: 16px; background: #13171e; color: #fff; font-family: inherit; }
.google-signin-dialog::backdrop { background: rgba(0, 0, 0, .78); }
.google-signin-dialog h2 { margin-top: 0; }
.google-signin-dialog p { color: #c1c6cf; line-height: 1.5; }
.google-signin-dialog button { margin-top: 16px; padding: 12px 20px; border-radius: 8px; cursor: pointer; }
.google-signin-dialog label { display: grid; gap: 8px; }
.google-signin-dialog input { width: 100%; box-sizing: border-box; padding: 12px; border: 1px solid #626974; border-radius: 8px; font: inherit; }
.notification-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.notification-filters [aria-pressed="true"] { background: #14a9ee; color: #05111a; border-color: #14a9ee; }


.experience-local-banner { display: block; margin: 24px 0; border-radius: 8px; overflow: hidden; }
.experience-local-banner picture, .experience-local-banner img { display: block; width: 100%; }
.experience-local-banner img { height: auto; aspect-ratio: 8 / 1; object-fit: contain; }
.experience-local-banner:focus-visible { outline: 2px solid #29b6f6; outline-offset: 4px; }
.local-location-form { display: grid; gap: 12px; border: 0; padding: 0; margin: 16px 0; min-width: 0; }
.local-location-form label { display: grid; gap: 8px; }
.local-location-form input, .local-location-form select { width: 100%; padding: 12px; color: #fff; background: #20242b; border: 1px solid #525964; border-radius: 6px; }
.local-device-controls { margin: 16px 0; }
@media (max-width: 640px) { .experience-local-banner img { aspect-ratio: 4 / 1; } }


/* Artwork-led inbox; read/unread filters and destinations keep their existing behavior. */
.notification-row { position:relative; border:0; border-radius:0; background:transparent; }
.notification-unread { background:transparent; }
.notification-unread::before { content:''; position:absolute; left:0; top:50%; width:6px; height:6px; border-radius:50%; background:#e63248; }
.notification-action { display:flex; align-items:center; gap:16px; padding:10px 0 10px 16px; min-height:80px; }
.notification-artwork { flex:none; display:flex; align-items:center; justify-content:center; width:150px; aspect-ratio:16/9; border-radius:5px; overflow:hidden; background:#1b2030; font:12px 'Lemon Milk',sans-serif; }
.notification-artwork img { width:100%; height:100%; object-fit:cover; }
.notification-copy { display:grid; gap:5px; min-width:0; }
.notification-copy strong { font:400 15px 'Lemon Milk',sans-serif; color:#fff; }
.notification-copy span { color:#fff; }
.notification-copy small { color:#a8adb7; }
@media (max-width:480px) { .notification-artwork { width:112px; } .notification-action { gap:10px; } .notification-copy strong { font-size:13px; } }
