/* Last-loaded Online repair: isolated from the historic design cascade. */
.location-page md-list.usernavigation.location-online-view {
  --online-accent:#8fc8ff;
  --online-accent-glow:rgba(101,180,255,.18);
  min-height:100%;
  padding:16px 14px 18px;
  background:
    radial-gradient(ellipse 86% 40% at 13% 0%,rgba(71,151,223,.14),transparent 70%),
    radial-gradient(ellipse 56% 42% at 92% 26%,rgba(123,83,207,.11),transparent 74%),
    linear-gradient(155deg,#121b2d 0%,#0c1220 76%);
}
.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-country { --online-accent:#a897e8; --online-accent-glow:rgba(168,151,232,.18); }
.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-city { --online-accent:#8fc8ff; --online-accent-glow:rgba(101,180,255,.19); }
.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-bar { --online-accent:#f2aa72; --online-accent-glow:rgba(238,132,83,.20); }
.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-cafe { --online-accent:#e2b87f; --online-accent-glow:rgba(207,151,95,.19); }
.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-club { --online-accent:#ec8de3; --online-accent-glow:rgba(213,83,211,.20); }
.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-culture { --online-accent:#8cc7ee; --online-accent-glow:rgba(90,172,229,.19); }
.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-sport,.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-outdoors { --online-accent:#83d2a2; --online-accent-glow:rgba(75,192,135,.19); }
.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-education { --online-accent:#88d6e6; --online-accent-glow:rgba(85,189,209,.19); }
.location-page md-list.usernavigation.location-online-view .online-room-header.location-category-health { --online-accent:#f49ab2; --online-accent-glow:rgba(228,103,144,.19); }
@media (max-width:480px) {
  .lup-top-bar .md-toolbar-tools { min-width:0; padding-right:5px; padding-left:5px; }
  .lup-top-bar .location-top-identity,.lup-top-bar .location-top-copy { width:auto; min-width:0; }
  .lup-top-bar .location-top-copy .room-name { display:block; width:100%; min-width:0; overflow:hidden; font-size:12px; line-height:15px; letter-spacing:0; text-overflow:ellipsis; white-space:nowrap; word-break:normal; }
  .lup-top-bar .location-top-icon { flex-basis:29px; width:29px; height:29px; margin-right:6px; }
  .lup-top-bar .location-top-icon .material-icons { font-size:16px; }
  .lup-top-bar .location-top-copy > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}

.location-page md-list.usernavigation.location-online-view .online-room-header { display:grid; grid-template-columns:37px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:59px; margin:0 0 13px; padding:0 2px 12px; border:0; border-bottom:1px solid rgba(183,216,248,.16); background:transparent; }
.location-page md-list.usernavigation.location-online-view .online-room-header .presence-live-mark { position:static; display:grid; place-items:center; width:37px; height:37px; margin:0; border:1px solid color-mix(in srgb,var(--online-accent) 60%,rgba(255,255,255,.32)); border-radius:13px 13px 13px 5px; background:linear-gradient(145deg,color-mix(in srgb,var(--online-accent) 28%,rgba(70,80,150,.28)),rgba(83,79,181,.16)); box-shadow:inset 0 1px 0 rgba(255,255,255,.17),0 0 18px var(--online-accent-glow); color:color-mix(in srgb,var(--online-accent) 58%,#fff); }
.location-page md-list.usernavigation.location-online-view .online-room-header .presence-live-mark .material-icons { font-size:20px; }
.location-page md-list.usernavigation.location-online-view .online-room-header .presence-header-copy { min-width:0; }
.location-page md-list.usernavigation.location-online-view .online-room-header .presence-header-copy strong { display:block; overflow:hidden; color:#f2f7ff; font-size:14px; font-weight:760; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.location-page md-list.usernavigation.location-online-view .online-room-header .presence-header-copy span { display:block; overflow:hidden; margin-top:3px; color:#9daec4; font-size:10px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.location-page md-list.usernavigation.location-online-view .online-room-header .presence-total { position:static; display:grid; min-width:44px; min-height:38px; padding:4px 5px; border:1px solid rgba(130,223,178,.26); border-radius:12px; background:rgba(76,179,137,.09); text-align:right; }
.location-page md-list.usernavigation.location-online-view .online-room-header .presence-total strong { color:#f5fffa; font-size:18px; line-height:1; }
.location-page md-list.usernavigation.location-online-view .online-room-header .presence-total small { margin-top:3px; color:#8ce5b5; font-size:7px; font-weight:850; letter-spacing:.09em; }
.location-page md-list.usernavigation.location-online-view .visitors-list {
  max-height:calc(100dvh - 202px);
  padding:1px 0 12px;
  overflow-y:auto;
  background:transparent;
  scrollbar-color:rgba(141,197,255,.32) transparent;
}
.location-page md-list.usernavigation.location-online-view .presence-person {
  background:linear-gradient(105deg,rgba(87,104,158,.17),rgba(24,29,45,.34) 70%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 7px 16px rgba(0,0,0,.07);
}
@media (max-width:360px) { .location-page md-list.usernavigation.location-online-view .online-room-header { grid-template-columns:32px minmax(0,1fr) auto; gap:7px; min-height:53px; }.location-page md-list.usernavigation.location-online-view .online-room-header .presence-live-mark { width:32px; height:32px; }.location-page md-list.usernavigation.location-online-view .online-room-header .presence-live-mark .material-icons { font-size:18px; } }

/* The avatar image owns the full circle in the live roster.  Do not let the
   legacy gender-colour fallback peek through at the upper-left edge. */
.location-page md-list.usernavigation.location-online-view .presence-person .presence-avatar {
  background:transparent;
}

/* Chat and Online are one room: the message stream lives on the same quiet
 * surface, while text and the composer supply the hierarchy. */
.location-page .location-chat-surface {
  min-height:100%;
  background:
    radial-gradient(ellipse 86% 40% at 13% 0%,var(--chat-glow),transparent 70%),
    radial-gradient(ellipse 56% 42% at 92% 26%,rgba(123,83,207,.11),transparent 74%),
    linear-gradient(155deg,#121b2d 0%,#0c1220 76%);
}
.location-page .location-chat-surface .chat-msgs {
  padding:16px 14px;
  background:transparent;
}
.location-page .location-chat-surface .lup-msg { margin-bottom:11px; }
.location-page .location-chat-surface .lup-msg .msg { max-width:min(84%,460px); }
.location-page .location-chat-surface .chat-msgs .msg .message {
  border:1px solid rgba(190,214,246,.10);
  background:rgba(255,255,255,.048);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055);
}
.location-page .location-chat-surface .lup-own-msg .message {
  border-color:color-mix(in srgb,var(--chat-accent) 32%,rgba(255,255,255,.12));
  background:color-mix(in srgb,var(--chat-accent) 14%,rgba(255,255,255,.042));
}
.location-page .location-chat-surface .chatbottom {
  min-height:58px;
  height:auto;
  padding:9px 12px;
  border-top:1px solid color-mix(in srgb,var(--chat-accent) 18%,rgba(183,216,248,.16));
  background:rgba(12,18,31,.54);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.location-page .location-chat-surface .chatbottom input {
  height:38px;
  border:1px solid rgba(190,214,246,.12);
  border-radius:12px;
  background:rgba(255,255,255,.045);
  color:#f4f7ff;
}
.location-page .location-chat-surface .chatbottom input:focus {
  border-color:color-mix(in srgb,var(--chat-accent) 56%,rgba(255,255,255,.25));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--chat-accent) 12%,transparent);
}
.location-page .location-chat-surface .chatbottom .chat-compose-send {
  flex-basis:38px;
  width:38px;
  height:38px;
  border-radius:12px;
  background:color-mix(in srgb,var(--chat-accent) 19%,rgba(255,255,255,.05));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 5px 13px var(--chat-glow);
}
.location-page .location-chat-surface .chatbottom .chat-compose-send button { color:color-mix(in srgb,var(--chat-accent) 74%,#fff); }

/* iPhone keyboard safety. The app follows visualViewport via
   --lup-viewport-height; keep the complete tab/flex chain inside it so the
   composer never asks Safari to scroll the whole page. 16px prevents iOS
   focus-zoom on the actual text field. */
@media (max-width:600px) {
  /* The outer route must shrink too. Otherwise only the composer follows the
   * software keyboard while the chat header and message stream stay in the
   * old layout viewport. */
  .location-page.lup-place {
    height:var(--lup-viewport-height,100dvh);
    min-height:0;
    max-height:var(--lup-viewport-height,100dvh);
    overflow:hidden;
  }
  .location-page > md-content {
    display:flex;
    height:var(--lup-viewport-height,100dvh);
    min-height:0;
    overflow:hidden;
  }
  .location-page > md-content > md-tabs {
    display:flex;
    flex:1 1 0;
    min-height:0;
    height:auto;
    flex-direction:column;
  }
  .location-page > md-content > md-tabs .md-tabs-content-wrapper,
  .location-page > md-content > md-tabs .md-tab-content,
  .location-page > md-content > md-tabs .md-tab-content > div {
    min-height:0;
    height:100%;
  }
  .location-page .location-chat-surface {
    display:flex;
    flex:1 1 auto;
    height:100%;
    min-height:0;
    overflow:hidden;
  }
  .location-page .location-chat-surface .chat-msgs {
    flex:1 1 0;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .location-page .location-chat-surface .chatbottom {
    flex:0 0 auto;
    padding-bottom:max(8px,env(safe-area-inset-bottom));
  }
  .location-page .location-chat-surface .chatbottom input {
    font-size:16px;
  }
  html.lup-soft-keyboard-open .location-page > md-content {
    overscroll-behavior:none;
  }
  /* lup-place-room owns height and VisualViewport offset together. */
}

/* Profile relationship menu: visibility and relationship actions are separate
   decisions. The list's real ACL result is shown before its button can be used. */
.lup-profile-friends-dialog {
  width:min(420px,calc(100vw - 30px));
  border:1px solid rgba(158,204,243,.18);
  border-radius:18px;
  overflow:hidden;
  color:#edf6ff;
  background:linear-gradient(145deg,rgba(20,37,58,.98),rgba(7,13,24,.99));
  box-shadow:0 26px 68px rgba(0,0,0,.46),inset 0 1px 0 rgba(255,255,255,.08);
}
.lup-profile-friends-dialog md-toolbar {
  min-height:58px;
  color:#f4f9ff;
  background:linear-gradient(100deg,rgba(87,179,238,.18),rgba(117,86,206,.16));
  border-bottom:1px solid rgba(173,215,247,.12);
}
.lup-profile-friends-dialog md-dialog-actions { gap:7px; padding:12px; }
.lup-profile-friends-dialog md-dialog-actions .md-button { width:100%; min-height:46px; margin:0; border:1px solid rgba(168,208,242,.14); border-radius:12px; color:#d9eaff; background:rgba(255,255,255,.04); text-align:left; }
.lup-profile-friends-dialog md-dialog-actions .md-button .material-icons { margin-right:9px; vertical-align:middle; font-size:19px; color:#92d9ff; }
.lup-profile-friends-dialog md-dialog-actions .md-button small { float:right; margin:3px 2px 0 0; color:#91a1b2; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.lup-profile-friends-dialog md-dialog-actions .lup-friend-menu-view { border-color:rgba(105,205,246,.34); background:linear-gradient(100deg,rgba(66,179,232,.18),rgba(115,93,210,.12)); }
.lup-profile-friends-dialog md-dialog-actions .lup-friend-menu-view:not([disabled]):hover { background:linear-gradient(100deg,rgba(66,179,232,.26),rgba(115,93,210,.19)); }
.lup-profile-friends-dialog md-dialog-actions .lup-friend-menu-view[disabled] { opacity:.44; color:#8390a0; background:rgba(255,255,255,.018); }
.lup-profile-friends-dialog md-dialog-actions .lup-friend-menu-view.is-private .material-icons { color:#9daabd; }
.lup-profile-friends-dialog md-dialog-actions .lup-friend-menu-remove { margin-top:5px; color:#f0c3cc; border-color:rgba(225,125,145,.22); background:rgba(159,55,78,.08); }
.lup-profile-friends-dialog md-dialog-actions .lup-friend-menu-remove .material-icons { color:#ff9cae; }

/* The profile switch is a lit line inside the page, never a second boxed card.
   This final rule deliberately wins over legacy profile theme layers. */
.profile-page .profile-section-nav {
  margin:0 0 8px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
.profile-page .profile-section-nav button,
.profile-page .profile-section-nav button.active,
.profile-page .profile-section-nav button:hover {
  min-height:48px;
  border:0;
  border-radius:0;
  color:#9eaec0;
  background:transparent;
  box-shadow:none;
}
.profile-page .profile-section-nav button + button::before { display:none; }
.profile-page .profile-section-nav button.active { color:#f4fbff; }
.profile-page .profile-section-nav button.active::after {
  height:2px;
  opacity:1;
  transform:scaleX(.78);
  background:linear-gradient(90deg,transparent,#68d9ff 26%,#d4d3ff 50%,#8d7dff 74%,transparent);
  box-shadow:0 0 12px rgba(108,205,255,.55);
}
.profile-page .profile-section-nav button.active .material-icons {
  color:#c8eeff;
  text-shadow:0 0 12px rgba(105,212,255,.62);
}
.profile-page .profile-section-nav button.active span { color:#f4fbff; text-shadow:0 0 9px rgba(133,180,255,.42); }
@media (prefers-reduced-motion:reduce) {
  .profile-page .profile-section-nav button,
  .lup-profile-friends-dialog md-dialog-actions .md-button { transition:none; }
}

/* Friends: a connection list, not a stack of generic system rows. Each person
   gets one quiet surface; the cyan thread is the only recurring landmark. */
.friends-page .friends-list {
  overflow:visible;
  border:0;
  background:transparent;
}
.friends-page .lup-user-list {
  display:grid;
  gap:7px;
}
.friends-page .lup-user-list md-list-item.friend-card {
  position:relative;
  min-height:70px;
  margin:0;
  padding:9px 8px;
  overflow:hidden;
  border:1px solid transparent;
  border-radius:15px;
  background:transparent;
  box-shadow:none;
  transition:transform .2s ease,border-color .2s ease,background .2s ease;
}
.friends-page .lup-user-list md-list-item.friend-card::before {
  position:absolute;
  top:17px;
  bottom:17px;
  left:0;
  width:2px;
  content:'';
  border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,transparent,rgba(111,210,255,.82),transparent);
  box-shadow:0 0 10px rgba(96,199,255,.38);
  opacity:.58;
}
.friends-page .lup-user-list md-list-item.friend-card:hover,
.friends-page .lup-user-list md-list-item.friend-card:focus-within {
  transform:translateX(2px);
  border-color:rgba(130,208,255,.18);
  background:linear-gradient(90deg,rgba(67,147,207,.08),transparent 72%);
}
.friends-page .lup-user-list md-list-item.friend-card .md-list-item-inner { background:transparent; }
.friends-page .lup-user-list md-list-item.friend-card .lup-avatar {
  margin-left:4px;
  border-color:rgba(167,223,255,.34);
  box-shadow:0 0 0 3px rgba(98,201,255,.055),0 6px 17px rgba(0,0,0,.20);
}
.friends-page .lup-user-list .username { letter-spacing:-.012em; }
.friends-page .lup-user-list .lup-user-status { color:#aebfd2; }
.friends-page .lup-user-actions {
  gap:4px;
  margin-left:5px;
  padding-left:5px;
  border-left:0;
}
.friends-page .lup-user-action {
  width:36px;
  height:36px;
  border:1px solid transparent;
  border-radius:50%;
  transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease;
}
.friends-page .lup-user-action-message {
  border-color:rgba(139,181,255,.18);
  background:rgba(119,144,239,.09);
  color:#cbd5ff;
}
.friends-page .lup-user-action-remove { color:#c9a9b4; }
.friends-page .lup-user-action-message:hover,
.friends-page .lup-user-action-message:focus-visible {
  transform:translateY(-1px);
  border-color:rgba(159,198,255,.45);
  background:rgba(116,164,244,.19);
  color:#f0f4ff;
  outline:0;
}
.friends-page .lup-user-action-remove:hover,
.friends-page .lup-user-action-remove:focus-visible {
  transform:translateY(-1px);
  background:rgba(205,110,143,.13);
  color:#ffd5e0;
  outline:0;
}
@media (max-width:380px) {
  .friends-page .lup-user-list md-list-item.friend-card { padding-right:5px; padding-left:5px; }
  .friends-page .lup-user-action { width:33px; height:33px; }
}
@media (prefers-reduced-motion:reduce) {
  .friends-page .lup-user-list md-list-item.friend-card,
  .friends-page .lup-user-action { transition:none; }
}

/* Gallery deletion is deliberate but should not feel like a generic system
   warning. The preview anchors the decision; the safe action gets priority. */
.lup-gallery-delete-dialog {
  width:min(390px,calc(100vw - 28px));
  overflow:hidden;
  border:1px solid rgba(169,210,246,.18);
  border-radius:19px;
  color:#eef6ff;
  background:linear-gradient(150deg,#16273e,#090f1b);
  box-shadow:0 26px 70px rgba(0,0,0,.50),inset 0 1px 0 rgba(255,255,255,.08);
}
.lup-gallery-delete-dialog md-toolbar {
  min-height:56px;
  color:#f4f9ff;
  background:linear-gradient(100deg,rgba(100,181,234,.15),rgba(121,92,201,.13));
  border-bottom:1px solid rgba(183,219,247,.11);
}
.lup-gallery-delete-dialog .md-toolbar-tools h2 { font-size:17px; font-weight:760; }
.lup-gallery-delete-dialog .md-icon-button { width:34px; height:34px; min-height:34px; margin:0; border:1px solid rgba(220,237,255,.11); border-radius:10px; color:#d8e6f5; background:rgba(255,255,255,.035); }
.lup-gallery-delete-dialog .md-dialog-content { padding:15px 16px 12px; }
.lup-gallery-delete-dialog .md-dialog-content > p { margin:0 0 12px; color:#c1d0e0; font-size:13px; line-height:1.45; }
.lup-gallery-delete-dialog .gallery-delete-preview { overflow:hidden; display:grid; place-items:center; min-height:118px; border:1px solid rgba(177,213,245,.13); border-radius:13px; background:rgba(4,8,15,.38); }
.lup-gallery-delete-dialog .gallery-delete-preview img { display:block; width:100%; max-height:min(42vh,250px); object-fit:contain; }
.lup-gallery-delete-dialog .gallery-delete-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:11px 16px 16px; border-top:1px solid rgba(183,219,247,.09); }
.lup-gallery-delete-dialog .gallery-delete-actions .md-button { min-height:42px; margin:0; border-radius:12px; font-size:12px; font-weight:760; letter-spacing:.01em; text-transform:none; }
.lup-gallery-delete-dialog .gallery-delete-cancel { border:1px solid rgba(177,213,245,.21); color:#edf7ff; background:linear-gradient(135deg,rgba(76,143,206,.25),rgba(81,91,161,.21)); box-shadow:inset 0 1px 0 rgba(255,255,255,.15); }
.lup-gallery-delete-dialog .gallery-delete-confirm { display:inline-flex; align-items:center; justify-content:center; gap:6px; border:1px solid rgba(236,151,173,.20); color:#d5aeba; background:rgba(171,72,98,.065); }
.lup-gallery-delete-dialog .gallery-delete-confirm .material-icons { font-size:17px; }
.lup-gallery-delete-dialog .gallery-delete-cancel:hover,.lup-gallery-delete-dialog .gallery-delete-cancel:focus-visible { background:linear-gradient(135deg,rgba(89,162,230,.35),rgba(92,105,184,.29)); outline:0; }
.lup-gallery-delete-dialog .gallery-delete-confirm:hover,.lup-gallery-delete-dialog .gallery-delete-confirm:focus-visible { border-color:rgba(246,179,198,.42); color:#ffe0e8; background:rgba(200,91,124,.15); outline:0; }

/* Ups: one glass heart connects a profile to the people behind its real Ups. */
.ups-view {min-width:0;min-height:0;color:#eff7ff;font-family:Roboto,Arial,sans-serif;}
.ups-view > md-content {min-width:0;min-height:0;overflow:hidden;}
.ups-view > md-content::before {display:none;}
.ups-view > md-content > ng-include {flex:none;}
.ups-view .ups-scroll {flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9bcfff30 transparent;}
.ups-view .ups-content {box-sizing:border-box;width:min(100%,680px);margin:0 auto;padding:22px 22px calc(32px + env(safe-area-inset-bottom,0px));}
.ups-view .ups-heading {text-align:center;}
.ups-view .ups-eyebrow {color:#9cb8cc;font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;}
.ups-view h1 {max-width:100%;margin:8px 0 0;color:#eff7ff;font:500 clamp(26px,7vw,34px)/1.18 Ubuntu,Roboto,sans-serif;letter-spacing:-.035em;overflow-wrap:anywhere;}
.ups-view .ups-caption {max-width:300px;margin:10px auto 0;color:#acc1d3;font-size:13px;line-height:1.6;}
.ups-view .ups-signal {position:relative;isolation:isolate;width:280px;max-width:100%;height:200px;margin:6px auto 0;}
.ups-view .ups-signal svg {position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.ups-view .ups-heart {transform-origin:140px 98px;animation:lup-ups-heart 6s ease-in-out infinite;}
.ups-view .ups-heart-echo {fill:none;stroke:#a9dcf6;stroke-width:1;transform-origin:140px 98px;animation:lup-ups-echo 6s ease-out infinite;}
.ups-view .ups-signal-core {position:absolute;top:68px;left:calc(50% - 28px);width:56px;height:56px;}
.ups-view .ups-signal-dot {position:absolute;width:32px;height:32px;border-radius:50%;box-shadow:0 0 0 5px #addfff07;}
.ups-view .ups-signal-dot:nth-of-type(2) {top:29px;left:5px;}
.ups-view .ups-signal-dot:nth-of-type(3) {top:146px;left:calc(50% - 16px);}
.ups-view .ups-signal-dot:nth-of-type(4) {top:37px;right:5px;}
.ups-view :is(.ups-signal-core,.ups-signal-dot,.ups-person-avatar) .lup-avatar {box-sizing:border-box;display:block;position:relative;inset:auto;float:none;width:100%;min-width:0;height:100%;margin:0;padding:0;border:1px solid #c7e9ff55;border-radius:50%;background:#203c55;box-shadow:0 6px 18px #010d2233;}
.ups-view :is(.ups-signal-core,.ups-signal-dot,.ups-person-avatar) .lup-avatar :is(.img,span) {box-sizing:border-box;inset:0;width:100%;height:100%;margin:0;border-radius:inherit;background-position:center;}
.ups-view .ups-signal-core .lup-avatar {border:2px solid #def5ff90;}
.ups-view .ups-totals {display:flex;align-items:center;justify-content:center;gap:8px;margin:-12px 0 28px;}
.ups-view .ups-totals strong {color:#e4f5ff;font:500 18px/1 Ubuntu,Roboto,sans-serif;font-variant-numeric:tabular-nums;}
.ups-view .ups-totals span {color:#a9c0d3;font-size:12px;}
.ups-view .ups-totals i {font-size:14px;color:#dab7d0;}
.ups-view .ups-connections {margin:0;padding:0;list-style:none;}
.ups-view .ups-connections-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 12px;}
.ups-view .ups-connections-heading h2 {margin:0;color:#c2d6e6;font-size:11px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;}
.ups-view .ups-connections-heading small {color:#849eb5;font-size:11px;}
.ups-view .ups-person {position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;min-height:84px;border-top:1px solid #afdfff15;}
.ups-view .ups-person:first-child::before {content:'';position:absolute;top:-1px;left:0;right:30%;height:1px;background:linear-gradient(90deg,#aedffe85,#b9cae820,transparent);}
.ups-view .ups-person-open {display:flex;align-items:center;gap:14px;min-width:0;min-height:76px;padding:12px 0;border:0;border-radius:12px;background:none;color:inherit;text-align:left;cursor:pointer;}
.ups-view .ups-person-avatar {display:block;flex:0 0 48px;width:48px;height:48px;}
.ups-view .ups-person-copy {display:flex;flex-direction:column;gap:5px;min-width:0;}
.ups-view .ups-person-copy strong {overflow-wrap:anywhere;font-size:14px;font-weight:500;line-height:1.35;color:#e7f2fb;}
.ups-view .ups-person-copy small {display:flex;align-items:center;gap:5px;color:#a4bdcf;font-size:11px;line-height:1.3;}
.ups-view .ups-person-copy small i {font-size:12px;color:#e4b7ca;}
.ups-view .ups-person-message {display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #d4ecff23;border-radius:15px;background:linear-gradient(135deg,#dff4ff09,#9dcfff02);box-shadow:inset 0 1px 0 #ffffff12;color:#abd9ee;cursor:pointer;}
.ups-view .ups-person-message i {font-size:20px;}
.ups-view button {font-family:inherit;-webkit-tap-highlight-color:transparent;}
.ups-view button:focus-visible {outline:2px solid #a9ddff;outline-offset:3px;}
.ups-view .ups-state {padding:18px 12px 24px;text-align:center;}
.ups-view .ups-state h2 {margin:0 0 8px;color:#ddecf7;font:500 18px/1.3 Ubuntu,Roboto,sans-serif;}
.ups-view .ups-state p {max-width:285px;margin:0 auto;color:#a4bbce;font-size:13px;line-height:1.65;}
.ups-view .ups-state button {display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin:18px 0 0;padding:0 14px;border:1px solid #bddfff25;border-radius:14px;background:#bddfff08;color:#d2eaff;cursor:pointer;}
.ups-view .ups-state button i {font-size:18px;}
@keyframes lup-ups-heart {0%,55%,100%{transform:scale(1);}60%{transform:scale(1.045);}66%{transform:scale(1);}71%{transform:scale(1.025);}78%{transform:scale(1);}}
@keyframes lup-ups-echo {0%,50%{transform:scale(.94);opacity:0;}59%{opacity:.28;}85%,100%{transform:scale(1.25);opacity:0;}}
@media(hover:hover){.ups-view .ups-person-open:hover strong{color:#fff;}.ups-view .ups-person-message:hover{background:#b7e4ff12;}}
@media(max-width:360px){.ups-view .ups-content{padding-inline:18px;}.ups-view .ups-person-open{gap:10px;}}
@media(prefers-reduced-motion:reduce){.ups-view .ups-heart,.ups-view .ups-heart-echo{animation:none;}.ups-view .ups-heart-echo{opacity:0;}}

/* Location categories: one navigation rail, not six unrelated mini-cards.
   Category hue stays useful as orientation while the common light track makes
   the current filter immediately legible on a phone and at desktop width. */
.nearby .location-categories {
  position:relative;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:0;
  min-height:69px;
  padding:5px 8px 7px;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  isolation:isolate;
}
.nearby .location-categories::before { content:none; display:none; }
.nearby .location-categories button {
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:57px;
  padding:3px 1px 5px;
  border:0;
  border-radius:0;
  color:color-mix(in srgb,var(--lup-category-ink,#b8d9ee) 55%,#8997aa);
  background:transparent;
  box-shadow:none;
  transition:color .2s ease,transform .2s ease,filter .2s ease;
}
.nearby .location-categories button .material-icons {
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  margin:0;
  border:1px solid transparent;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.065),transparent 68%);
  box-shadow:none;
  color:var(--lup-category-ink,#b8d9ee);
  font-size:18px;
  line-height:1;
  opacity:.72;
  text-shadow:0 0 8px color-mix(in srgb,var(--lup-category-ink,#b8d9ee) 28%,transparent);
  transition:transform .2s ease,opacity .2s ease,filter .2s ease,background .2s ease,border-color .2s ease;
}
.nearby .location-categories button span {
  display:grid;
  min-height:16px;
  margin-top:4px;
  overflow:visible;
  color:inherit;
  font-size:7px;
  font-weight:760;
  line-height:1.1;
  letter-spacing:.01em;
  text-align:center;
  white-space:normal;
}
.nearby .location-categories button::after {
  position:absolute;
  top:auto;
  right:calc(50% - 13px);
  bottom:0;
  left:calc(50% - 13px);
  z-index:2;
  display:block;
  width:auto;
  height:2px;
  content:'';
  border:0;
  border-radius:3px;
  background:var(--lup-category-ink,#b8d9ee);
  box-shadow:0 0 11px color-mix(in srgb,var(--lup-category-ink,#b8d9ee) 68%,transparent);
  opacity:0;
  transform:scaleX(.3);
  transition:transform .23s cubic-bezier(.2,.8,.25,1),opacity .2s ease;
  pointer-events:none;
}
.nearby .location-categories button.active {
  color:#f6fbff;
  filter:brightness(1.08);
  transform:translateY(-1px);
}
.nearby .location-categories button.active .material-icons {
  border-color:transparent;
  background:transparent;
  box-shadow:0 0 15px color-mix(in srgb,var(--lup-category-ink,#b8d9ee) 34%,transparent);
  opacity:1;
  transform:translateY(-1px);
}
.nearby .location-categories button.active::after { opacity:1; transform:scaleX(1); }
.nearby .location-categories button:hover:not(.active) .material-icons,
.nearby .location-categories button:focus-visible .material-icons { opacity:1; transform:translateY(-1px); }
.nearby .location-categories button:focus-visible { outline:0; }
.nearby .location-categories button:focus-visible::after { opacity:.72; transform:scaleX(.72); }
@media (max-width:380px) {
  .nearby .location-categories { padding-right:4px; padding-left:4px; }
  .nearby .location-categories button span { font-size:6.5px; letter-spacing:0; }
  .nearby .location-categories button .material-icons { width:26px; height:26px; font-size:17px; }
}
@media (prefers-reduced-motion:reduce) {
  .nearby .location-categories button,
  .nearby .location-categories button .material-icons,
  .nearby .location-categories button::after { transition:none; }
}

/* Sidebar: one continuous night surface, shared with Locations and profiles.
 * The navigation remains the same; only the older, isolated sidebar material
 * is replaced by the current midnight / cyan / violet visual language. */
.md-sidenav-left {
  border-right:1px solid rgba(138,209,242,.15);
  background:
    radial-gradient(80% 34% at 100% 0%,rgba(72,157,219,.12),transparent 72%),
    radial-gradient(66% 36% at 0% 100%,rgba(113,75,214,.11),transparent 74%),
    linear-gradient(160deg,#101b2b 0%,#0c1523 44%,#080e18 100%);
  box-shadow:20px 0 58px rgba(0,0,0,.52),1px 0 0 rgba(255,255,255,.025) inset;
}
.md-sidenav-left .sidenav-brand {
  min-height:96px;
  border-bottom:1px solid rgba(158,219,247,.11);
  background:
    radial-gradient(54% 100% at 94% 18%,rgba(74,181,232,.18),transparent 73%),
    linear-gradient(128deg,rgba(22,43,70,.98),rgba(11,20,34,.92) 70%,rgba(9,15,26,.98));
}
.md-sidenav-left .sidenav-brand::before {
  top:25px;
  right:22px;
  width:5px;
  height:5px;
  border:0;
  background:#8fe8ff;
  box-shadow:-23px 19px 0 -1px rgba(143,232,255,.46),-45px -7px 0 -2px rgba(167,128,255,.32),0 0 18px rgba(104,213,255,.62);
}
.md-sidenav-left .sidenav-brand .md-toolbar-tools { height:96px; padding:0 19px; }
.md-sidenav-left .sidenav-brand h1 { color:#f4faff; font-size:23px; font-weight:730; letter-spacing:-.045em; }
.md-sidenav-left .sidenav-brand span { color:#87a9c4; font-size:8px; letter-spacing:.19em; }
.md-sidenav-left .nav-close {
  border-color:rgba(160,220,246,.14);
  background:rgba(117,192,231,.055);
  color:#bce8fa;
}
.md-sidenav-left md-content {
  overflow-x:hidden;
  background:
    radial-gradient(95% 38% at 100% 0%,rgba(63,158,215,.07),transparent 74%),
    linear-gradient(180deg,rgba(13,25,40,.42),rgba(7,13,23,.16));
}
.md-sidenav-left md-list { padding:14px 13px calc(28px + env(safe-area-inset-bottom,0px)); }
.sidebar-user-card {
  margin:14px 14px 13px;
  padding:13px 2px 16px;
  border:0;
  border-bottom:1px solid rgba(151,216,243,.14);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.sidebar-user-card:hover { background:transparent; box-shadow:none; }
.sidebar-user-card .lup-avatar { outline-color:rgba(122,220,250,.62); }
.sidebar-user-card strong { color:#edf8ff; }
.sidebar-user-card span { color:#7f9bb5; }
.sidebar-user-card > .material-icons { color:#84d8f4; }
.md-sidenav-left .sidebar-section-title,
.md-sidenav-left .md-subheader {
  margin:23px 6px 7px;
  color:#68839e;
  font-size:8px;
  font-weight:820;
  letter-spacing:.19em;
}
.md-sidenav-left .sidebar-legal-title {
  margin-top:30px;
  padding-top:15px;
  border-top-color:rgba(151,216,243,.10);
}
.md-sidenav-left md-list-item {
  min-height:50px;
  margin:1px 0;
  border:0;
  border-radius:9px;
  background:transparent;
  transition:background .18s ease,filter .18s ease;
}
.md-sidenav-left md-list-item::before {
  top:14px;
  bottom:14px;
  width:1px;
  background:transparent;
}
.md-sidenav-left md-list-item:hover {
  border:0;
  background:linear-gradient(90deg,rgba(96,196,237,.105),rgba(114,82,209,.05) 68%,transparent);
}
.md-sidenav-left md-list-item:hover::before {
  background:#8ce6ff;
  box-shadow:0 0 12px rgba(106,212,250,.72);
}
.md-sidenav-left md-list-item p { color:#d6e5f1; font-size:13px; font-weight:620; }
.md-sidenav-left md-list-item .nav-icon,
.md-sidenav-left md-list-item.nav-discover .nav-icon,
.md-sidenav-left md-list-item.nav-settings .nav-icon,
.md-sidenav-left md-list-item.nav-account .nav-icon,
.md-sidenav-left md-list-item.nav-friends .nav-icon {
  border:0;
  border-radius:0;
  background:transparent;
  color:#8ea9c0;
  box-shadow:none;
}
.md-sidenav-left md-list-item:hover .nav-icon {
  background:transparent;
  color:#c8f3ff;
  transform:translateX(1px);
}
.md-sidenav-left md-list-item.nav-discover .nav-icon { color:#8fdbf5; }
.md-sidenav-left md-list-item.nav-settings .nav-icon { color:#b9a6f2; }
.md-sidenav-left md-list-item.nav-account .nav-icon { color:#94e0dc; }
.md-sidenav-left md-list-item.nav-friends .nav-icon { color:#e7a6cd; }
.md-sidenav-left md-list-item.nav-logout { margin-top:14px; border:0; background:transparent; }
.md-sidenav-left md-list-item.nav-logout .nav-icon { color:#9e7788; }
.md-sidenav-left md-list-item.nav-logout p { color:#c3a7b1; }
.md-sidenav-left md-list-item.nav-logout:hover { background:rgba(218,124,151,.07); }
.md-sidenav-left md-list-item:has(.impressum) .nav-icon,
.md-sidenav-left md-list-item:has(.tos) .nav-icon,
.md-sidenav-left md-list-item:has(.privacy) .nav-icon { color:#66829d; }
.md-sidenav-left md-list-item:has(.impressum) p,
.md-sidenav-left md-list-item:has(.tos) p,
.md-sidenav-left md-list-item:has(.privacy) p { color:#8ea4b8; }
@media (max-width:599px) {
  .md-sidenav-left .sidenav-brand,
  .md-sidenav-left .sidenav-brand .md-toolbar-tools { min-height:86px; height:86px; }
  .md-sidenav-left .sidenav-brand .md-toolbar-tools { padding:0 15px; }
}

/* Settings: reduce the stacked legacy surfaces to one calm, readable form.
 * Settings are decisions, not a second dashboard. */
.settings-page > md-content {
  background:
    radial-gradient(70% 29% at 100% 0%,rgba(70,167,221,.10),transparent 74%),
    radial-gradient(58% 24% at 0% 72%,rgba(118,82,204,.08),transparent 74%),
    linear-gradient(160deg,#101a2b 0%,#0d1523 55%,#0a101b 100%);
}
.settings-page > md-content::before,
.settings-page > md-content::after { display:none; }
.settings-page .lup-settings-list {
  width:min(100%,680px);
  max-width:680px;
  margin:0 auto;
  padding:14px 16px 34px;
  background:transparent;
}
.settings-page .settings-hero {
  display:block;
  min-height:0;
  margin:0 0 21px;
  padding:5px 1px 16px;
  overflow:visible;
  border:0;
  border-bottom:1px solid rgba(150,215,243,.15);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.settings-page .settings-hero::before,
.settings-page .settings-hero::after,
.settings-page .settings-hero-route { display:none; }
.settings-page .settings-hero small {
  color:#86cbe8;
  font-size:8px;
  font-weight:850;
  letter-spacing:.18em;
}
.settings-page .settings-hero h1 {
  margin:6px 0 5px;
  color:#f0f8ff;
  font-size:23px;
  font-weight:750;
  letter-spacing:-.04em;
}
.settings-page .settings-hero p {
  max-width:470px;
  color:#91a9c0;
  font-size:12px;
  line-height:1.45;
}
.settings-page .lup-settings-profile-visibility {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  margin:0 0 24px;
  padding:11px 1px;
  border:0;
  border-top:1px solid rgba(151,216,243,.10);
  border-bottom:1px solid rgba(151,216,243,.10);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.settings-page .lup-settings-profile-visibility::before { display:none; }
.settings-page .settings-visibility-heading { min-width:0; }
.settings-page .settings-visibility-heading > .material-icons {
  display:none;
}
.settings-page .settings-visibility-heading strong { color:#e5f3fc; font-size:12px; }
.settings-page .settings-visibility-heading small { color:#839cb4; font-size:10px; }
.settings-page .lup-profile-visibility-choice { justify-self:end; }
.settings-page .lup-settings-group {
  margin:0 0 25px;
  padding:0;
}
.settings-page .lup-settings-group::before { display:none; }
.settings-page .lup-settings-group-heading {
  min-height:0;
  margin:0 0 8px;
  padding:0 0 7px;
  border-bottom:1px solid rgba(151,216,243,.10);
  border-left:0;
}
.settings-page .lup-settings-group-heading::before { display:none; }
.settings-page .lup-settings-group-heading small {
  color:#9ed9f2;
  font-size:8px;
  font-weight:840;
  letter-spacing:.16em;
}
.settings-page .lup-settings-group-heading p {
  margin:4px 0 0;
  color:#718aa3;
  font-size:10px;
  line-height:1.35;
}
.settings-page .lup-setting-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(118px,auto);
  gap:10px 14px;
  align-items:center;
  min-height:64px;
  margin:0;
  padding:10px 1px;
  border:0;
  border-bottom:1px solid rgba(151,216,243,.085);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.settings-page .lup-setting-card:last-child { border-bottom:0; }
.settings-page .lup-setting-card:hover,
.settings-page .lup-setting-card:focus-within {
  border-color:rgba(151,216,243,.18);
  background:linear-gradient(90deg,rgba(94,184,226,.055),transparent 72%);
  box-shadow:none;
}
.settings-page .lup-setting-card-heading { min-width:0; }
.settings-page .lup-setting-icon { display:none; }
.settings-page .lup-setting-card-heading h3 {
  color:#e8f2fa;
  font-size:12px;
  font-weight:680;
  letter-spacing:0;
}
.settings-page .lup-setting-card-heading p { color:#7891a9; font-size:10px; }
.settings-page .lup-setting-value {
  min-width:118px;
  justify-content:flex-end;
}
.settings-page .lup-setting-value md-select,
.settings-page .lup-setting-value .lup-setting-input input,
.settings-page .lup-setting-value .lup-setting-input textarea,
.settings-page .lup-visibility-trigger {
  border-color:rgba(153,215,244,.18);
  border-radius:8px;
  background:rgba(7,15,27,.44);
  box-shadow:none;
}
.settings-page .lup-setting-visibility {
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:27px;
  padding-top:2px;
}
.settings-page .lup-setting-visibility > span { color:#718ca5; font-size:9px; }
.settings-page .lup-setting-card--textarea { grid-template-columns:1fr; }
.settings-page .lup-setting-card--textarea .lup-setting-value { justify-content:stretch; }
.settings-page .lup-setting-card--textarea .lup-setting-input { width:100%; }
.settings-page .lup-setting-card--textarea textarea { min-height:90px; }
@media (max-width:420px) {
  .settings-page .lup-settings-list { padding-right:12px; padding-left:12px; }
  .settings-page .lup-settings-profile-visibility,
  .settings-page .lup-setting-card { grid-template-columns:1fr; }
  .settings-page .lup-profile-visibility-choice,
  .settings-page .lup-setting-value { justify-self:stretch; justify-content:stretch; }
  .settings-page .lup-profile-visibility-choice .lup-visibility-trigger,
  .settings-page .lup-setting-value md-select,
  .settings-page .lup-setting-value .lup-setting-input { width:100%; }
}
