:root {
  color-scheme: light;
  --blue: #1976ea;
  --blue-2: #0d64cc;
  --blue-soft: #e9f3ff;
  --ink: #17191d;
  --muted: #6d737c;
  --canvas: #f4f5f8;
  --surface: #ffffff;
  --surface-2: #f9fafc;
  --line: #e5e7ec;
  --red: #e13d44;
  --green: #27835a;
  --shadow: 0 10px 32px rgba(31, 49, 80, .08);
  --card-radius: 22px;
}

.resend-test-card{margin-top:18px}.resend-test-card h3{margin:0 0 8px}.resend-recipient-preview{margin:12px 0;color:var(--muted);font-size:.92rem}.resend-recipient-preview strong{color:var(--ink)}.resend-status{margin:14px 0 0;padding:12px 14px;border-radius:12px;font-size:.92rem}.resend-success{background:rgba(44,160,93,.12);color:#19733d}.resend-error{background:rgba(210,66,66,.12);color:#a32929}

html[data-theme="dark"] {
  color-scheme: dark;
  --blue: #55a6ff;
  --blue-2: #78b7ff;
  --blue-soft: #14385e;
  --ink: #f4f5f7;
  --muted: #a0a8b4;
  --canvas: #101216;
  --surface: #1a1d22;
  --surface-2: #20242a;
  --line: #30353e;
  --red: #ff767d;
  --green: #55c68d;
  --shadow: 0 10px 32px rgba(0, 0, 0, .24);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;
  letter-spacing: -.018em;
  -webkit-font-smoothing: antialiased;
}
button, input { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible { outline: 3px solid rgba(25, 118, 234, .35); outline-offset: 2px; }

.app-shell { max-width: 1120px; min-height: 100dvh; margin: auto; padding: max(18px, env(safe-area-inset-top)) 18px calc(90px + env(safe-area-inset-bottom)); }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 2px 2px 18px; }
.brand { color: var(--blue); font-weight: 800; font-size: 26px; letter-spacing: -.08em; text-decoration: none; }
.brand-dot { color: var(--ink); }
.top-actions { display: flex; gap: 9px; }
.icon-button, .avatar-button {
  display: inline-grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); color: var(--ink); background: var(--surface); border-radius: 50%; box-shadow: 0 2px 7px rgba(0,0,0,.03);
}
.avatar-button { background: linear-gradient(135deg, #f6b480, #d66f82); border: 2px solid var(--surface); color: white; font-size: 13px; font-weight: 750; }
.page { animation: enter .22s ease both; }
@keyframes enter { from { opacity: .2; transform: translateY(5px); } to { opacity: 1; transform: none; } }

.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin: 7px 2px 18px; }
.page-title { margin: 0; font-size: 34px; line-height: 1; letter-spacing: -.06em; }
.eyebrow { margin: 0 0 7px; color: var(--muted); font-size: 13px; font-weight: 650; letter-spacing: .005em; }
.subtext { margin: 6px 0 0; color: var(--muted); font-size: 15px; }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--card-radius); box-shadow: var(--shadow); }
.card-pad { padding: 18px; }
.card-title-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.card-title { margin: 0; font-size: 17px; letter-spacing: -.035em; }
.text-button { padding: 0; border: 0; color: var(--blue); background: none; font-size: 13px; font-weight: 720; }
.primary-button, .secondary-button, .ghost-button, .mini-button {
  min-height: 39px; padding: 0 15px; border-radius: 13px; border: 0; font-size: 14px; font-weight: 720; letter-spacing: -.018em;
}
.primary-button { color: #fff; background: var(--blue); box-shadow: 0 5px 14px rgba(25, 118, 234, .22); }
.primary-button:hover { background: var(--blue-2); }
.secondary-button { color: var(--blue); background: var(--blue-soft); }
.ghost-button { color: var(--ink); background: var(--surface-2); border: 1px solid var(--line); }
.mini-button { min-height: 31px; padding: 0 10px; color: var(--blue); background: var(--blue-soft); font-size: 12px; }
.button-row { display: flex; flex-wrap: wrap; gap: 8px; }

.dashboard-grid { display: grid; gap: 14px; }
.hero { position: relative; overflow: hidden; padding: 21px; color: #fff; background: linear-gradient(135deg, #147be9, #4a9eff); border: 0; box-shadow: 0 13px 29px rgba(36, 126, 224, .28); }
.hero::after { content: ""; position: absolute; width: 215px; height: 215px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; right: -82px; top: -90px; box-shadow: 0 0 0 32px rgba(255,255,255,.07), 0 0 0 65px rgba(255,255,255,.05); }
.hero > * { position: relative; z-index: 1; }
.hero .eyebrow { color: rgba(255,255,255,.79); }
.hero h1 { max-width: 300px; margin: 0; font-size: 28px; line-height: 1.07; letter-spacing: -.057em; }
.hero p { max-width: 280px; margin: 9px 0 18px; color: rgba(255,255,255,.85); font-size: 15px; }
.hero .secondary-button { color: var(--blue-2); background: #fff; }

.notice { padding: 15px 16px; display: flex; align-items: flex-start; gap: 12px; }
.notice-icon { flex: 0 0 auto; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; color: var(--blue); background: var(--blue-soft); }
.notice strong, .request-copy strong { display: block; font-size: 14px; }
.notice p, .request-copy p { margin: 3px 0 0; color: var(--muted); font-size: 13px; line-height: 1.33; }

.event-list, .task-list, .setting-list, .feed-list, .house-list { display: grid; gap: 0; }
.event, .task, .setting, .feed-row, .house-row { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 11px 0; border-top: 1px solid var(--line); }
.event:first-child, .task:first-child, .setting:first-child, .feed-row:first-child, .house-row:first-child { border-top: 0; padding-top: 0; }
.event:last-child, .task:last-child, .setting:last-child, .feed-row:last-child, .house-row:last-child { padding-bottom: 0; }
.date-block { flex: 0 0 38px; text-align: center; font-size: 10px; font-weight: 750; line-height: 1.1; color: var(--muted); text-transform: uppercase; }
.date-block b { display: block; margin-top: 2px; color: var(--ink); font-size: 19px; letter-spacing: -.07em; }
.row-copy { min-width: 0; flex: 1; }
.row-copy strong { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 14px; }
.row-copy span { display: block; overflow: hidden; margin-top: 3px; color: var(--muted); white-space: nowrap; text-overflow: ellipsis; font-size: 12px; }
.dot { width: 9px; height: 9px; border-radius: 50%; background: var(--blue); }
.dot.orange { background: #ee962c; }.dot.green { background: #32a46f; }.dot.purple { background: #9074dc; }

.profile-stack { display: flex; padding-left: 5px; }
.tiny-avatar, .person-avatar { display: grid; place-items: center; border-radius: 50%; color: #fff; font-weight: 760; overflow: hidden; }
.tiny-avatar { width: 28px; height: 28px; margin-left: -5px; border: 2px solid var(--surface); font-size: 9px; }
.person-avatar { flex: 0 0 auto; width: 50px; height: 50px; font-size: 16px; }
.person-avatar.large { width: 82px; height: 82px; font-size: 25px; }
.av-tj { background: linear-gradient(135deg, #f7b685, #d37284); }.av-mo { background: linear-gradient(135deg, #85c9e9, #4278b4); }.av-ja { background: linear-gradient(135deg, #f1a9b4, #a26dca); }.av-el { background: linear-gradient(135deg, #96ceae, #2e7560); }.av-ro { background: linear-gradient(135deg, #efbd70, #c36a47); }.av-nora { background: linear-gradient(135deg, #c6a2f3, #7a62bc); }
.task-check { display: grid; place-items: center; flex: 0 0 auto; width: 24px; height: 24px; border: 1.5px solid #b2bac5; border-radius: 50%; color: #fff; background: transparent; }
.task-check.done { border-color: var(--green); background: var(--green); }
.task-meta { color: var(--muted); font-size: 12px; }
.split-grid { display: grid; gap: 14px; }

.request-card { padding: 17px; border: 1px solid rgba(25, 118, 234, .25); background: linear-gradient(135deg, var(--surface), var(--blue-soft)); }
.request-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.pill { display: inline-flex; align-items: center; width: fit-content; gap: 5px; padding: 5px 8px; border-radius: 20px; color: var(--blue); background: var(--blue-soft); font-size: 11px; font-weight: 750; }
.pill.urgent { color: #bd343b; background: #fce9ea; }.pill.muted { color: var(--muted); background: var(--surface-2); }
html[data-theme="dark"] .pill.urgent { color: #ffadb1; background: #54272a; }
.request-card .request-copy { margin: 12px 0 15px; }

.segmented { display: flex; gap: 4px; overflow-x: auto; padding: 4px; border: 1px solid var(--line); background: var(--surface); border-radius: 13px; scrollbar-width: none; }
.segmented button { flex: 1 0 auto; padding: 8px 12px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; font-size: 12px; font-weight: 700; white-space: nowrap; }
.segmented button.active { color: var(--ink); background: var(--canvas); box-shadow: 0 1px 2px rgba(0,0,0,.06); }

.calendar-card { padding: 15px; }
.month-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.month-nav h2 { margin: 0; font-size: 18px; letter-spacing: -.04em; }
.month-nav button { width: 32px; height: 32px; border: 0; border-radius: 50%; color: var(--ink); background: var(--surface-2); }
.calendar-week, .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }
.calendar-week { margin-bottom: 6px; color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.calendar-days { gap: 5px; }
.day { position: relative; display: grid; place-items: center; aspect-ratio: 1; border-radius: 50%; font-size: 13px; }
.day.muted { color: var(--muted); opacity: .4; }.day.today { color: #fff; background: var(--blue); font-weight: 750; }.day.has-dot::after { position: absolute; content: ""; bottom: 3px; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }.day.today::after { background: #fff; }
.agenda-day { display: grid; grid-template-columns: 55px 1fr; gap: 12px; padding: 0 0 15px; }
.agenda-date { color: var(--muted); font-size: 11px; font-weight: 750; text-transform: uppercase; }.agenda-date b { display: block; margin-top: 2px; color: var(--ink); font-size: 24px; letter-spacing: -.07em; }
.agenda-item { padding: 12px; border-left: 3px solid var(--blue); border-radius: 0 12px 12px 0; background: var(--surface-2); }.agenda-item + .agenda-item { margin-top: 7px; }.agenda-item.orange { border-color: #ee962c; }.agenda-item.purple { border-color: #9074dc; }
.agenda-item strong { display:block; font-size: 14px; }.agenda-item span { display:block; margin-top: 3px; color: var(--muted); font-size: 12px; }

.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.profile-card { position: relative; padding: 15px; min-height: 159px; overflow: hidden; text-align: left; border: 1px solid var(--line); border-radius: 20px; color: var(--ink); background: var(--surface); box-shadow: var(--shadow); }
.profile-card::after { content:""; position:absolute; width: 85px; height: 85px; right:-30px; bottom:-35px; border-radius:50%; background: var(--blue-soft); }
.profile-card .person-avatar { position: relative; z-index: 1; width: 47px; height: 47px; }.profile-card strong { position: relative; z-index:1; display:block; margin-top:14px; font-size:16px; }.profile-card span { position:relative; z-index:1; display:block; margin-top:3px; color:var(--muted); font-size:12px; }
.house-card { padding: 17px; }.house-heading { display: flex; align-items: center; gap: 11px; }.house-icon { display:grid; place-items:center; flex:0 0 auto; width:43px; height:43px; border-radius:14px; color:var(--blue); background:var(--blue-soft); }.house-card h3 { margin:0; font-size:17px; letter-spacing:-.035em; }.house-card p { margin: 4px 0 0; color:var(--muted); font-size: 12px; }
.profile-hero { padding: 19px; text-align: center; }.profile-hero .person-avatar { margin: 0 auto 11px; }.profile-hero h2 { margin: 0; font-size: 25px; letter-spacing: -.06em; }.profile-hero p { margin: 5px 0 14px; color:var(--muted); font-size: 14px; }

.photos-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.photo { position:relative; min-height: 162px; overflow:hidden; border:0; border-radius:18px; background-size:cover; background-position:center; }.photo.large { grid-row: span 2; min-height: 332px; }.photo::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.38), transparent 46%); }.photo b, .photo span { position:absolute; z-index:1; color:#fff; left:12px; }.photo b { bottom:29px; font-size:13px; }.photo span { bottom:12px; font-size:11px; opacity:.86; }
.photo-one { background-image: linear-gradient(155deg,#183a73 0%,#83bed5 45%,#f2ad78 46%,#436235 100%); }.photo-two { background-image: linear-gradient(160deg,#f4c96f,#e78e5e 41%,#497a83 42%,#1c3c50); }.photo-three { background-image: linear-gradient(140deg,#d1848f 0%,#f4c0a0 40%,#e5dfc3 41%,#8bac81); }.photo-four { background-image: linear-gradient(150deg,#2b5770,#85a8be 50%,#eac383 51%,#c86d60); }.photo-five { background-image: linear-gradient(135deg,#755064,#dc93a4 45%,#f6c775 46%,#82906b); }
.filter-row { display:flex; gap:8px; overflow:auto; padding-bottom:2px; scrollbar-width:none; }.filter-chip { flex:0 0 auto; padding:8px 12px; border:1px solid var(--line); border-radius:30px; color:var(--muted); background:var(--surface); font-size:12px; font-weight:700; }.filter-chip.active { border-color:var(--blue); color:var(--blue); background:var(--blue-soft); }

.menu-card { padding: 5px 17px; }.menu-row { display:flex; align-items:center; gap:12px; width:100%; padding:13px 0; border:0; border-top:1px solid var(--line); color:var(--ink); background:transparent; text-align:left; }.menu-row:first-child { border-top:0; }.menu-row i { display:grid; place-items:center; flex:0 0 auto; width:34px; height:34px; border-radius:11px; color:var(--blue); background:var(--blue-soft); font-style:normal; }.menu-row strong { display:block; font-size:14px; }.menu-row span { display:block; margin-top:2px; color:var(--muted); font-size:12px; }.chevron { margin-left:auto; color:var(--muted); font-size:20px; }
.danger-card { padding:18px; border-color:rgba(225,61,68,.25); background:linear-gradient(135deg, var(--surface), rgba(225,61,68,.06)); }.danger-card h3 { margin:0; font-size:16px; }.danger-card p { margin:5px 0 13px; color:var(--muted); font-size:13px; }.danger-card .ghost-button { color:var(--red); }

.sheet-backdrop { position:fixed; z-index:10; inset:0; display:flex; align-items:flex-end; background:rgba(9, 12, 18, .42); backdrop-filter: blur(3px); }.sheet { width:100%; max-width:720px; max-height:86dvh; overflow:auto; margin:0 auto; padding:10px 18px calc(25px + env(safe-area-inset-bottom)); border-radius:25px 25px 0 0; background:var(--surface); box-shadow:0 -12px 45px rgba(0,0,0,.18); animation: sheet-in .24s ease; }.sheet-handle { width:36px; height:4px; margin:0 auto 16px; border-radius:9px; background:var(--line); }@keyframes sheet-in { from { transform: translateY(100%); } }
.sheet-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }.sheet-title h2 { margin:0; font-size:23px; letter-spacing:-.055em; }.close { border:0; color:var(--muted); background:transparent; font-size:25px; line-height:1; }.form-field { display:grid; gap:6px; margin-bottom:14px; color:var(--muted); font-size:12px; font-weight:700; }.form-field input { width:100%; min-height:43px; padding:0 12px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:var(--surface-2); }
.drawer-list { display:grid; gap:10px; }.toggle-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:13px 0; border-top:1px solid var(--line); }.toggle-row:first-child { border-top:0; }.toggle-row strong { display:block; font-size:14px; }.toggle-row span { display:block; margin-top:3px; color:var(--muted); font-size:12px; }.switch { position:relative; width:42px; height:25px; padding:0; border:0; border-radius:30px; background:#c5cad2; }.switch::after { content:""; position:absolute; top:3px; left:3px; width:19px; height:19px; border-radius:50%; background:#fff; transition:.18s; }.switch.on { background:var(--blue); }.switch.on::after { transform:translateX(17px); }
.sort-row { display:flex; align-items:center; gap:10px; padding:11px 0; border-top:1px solid var(--line); }.sort-row:first-child { border-top:0; }.grip { color:var(--muted); letter-spacing:-2px; }.sort-row strong { flex:1; font-size:14px; }.sort-row button { width:27px; height:27px; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:var(--surface-2); }

.tabbar { position:fixed; z-index:7; bottom:0; left:0; right:0; display:flex; justify-content:center; padding: 8px 10px max(8px, env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:color-mix(in srgb, var(--surface) 90%, transparent); backdrop-filter:blur(18px); }.tabbar-inner { display:flex; width:min(530px, 100%); justify-content:space-around; }.tab { display:grid; justify-items:center; gap:3px; min-width:57px; padding:5px 4px; border:0; color:var(--muted); background:transparent; font-size:10px; font-weight:650; }.tab svg { width:22px; height:22px; stroke-width:1.9; }.tab.active { color:var(--blue); font-weight:760; }
.toast { position:fixed; z-index:20; left:50%; bottom:91px; max-width:calc(100vw - 38px); padding:11px 15px; border-radius:13px; color:#fff; background:#22262d; box-shadow:0 8px 20px rgba(0,0,0,.18); font-size:13px; font-weight:650; transform:translateX(-50%) translateY(14px); opacity:0; pointer-events:none; transition:.2s; }.toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
.empty { padding:23px 12px; text-align:center; }.empty i { display:grid; place-items:center; width:43px; height:43px; margin:0 auto 10px; border-radius:14px; color:var(--blue); background:var(--blue-soft); font-style:normal; }.empty h3 { margin:0; font-size:16px; }.empty p { max-width:240px; margin:6px auto 0; color:var(--muted); font-size:13px; line-height:1.35; }
.hide-card { display:none!important; }

@media (min-width: 660px) {
  .app-shell { padding-left:28px; padding-right:28px; }
  .login-picker { padding: 31px; }.login-profile-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 18px; }.login-avatar { width: 78px; height: 78px; }
  .page-head { margin-top:12px; }.dashboard-grid { grid-template-columns: repeat(2, 1fr); }.hero, .full { grid-column:1 / -1; }.split-grid { grid-template-columns: repeat(2,1fr); }.profile-grid { grid-template-columns: repeat(3,1fr); }.photos-grid { grid-template-columns: repeat(3, 1fr); }.photo.large { grid-row:span 2; }.page-title { font-size:39px; }.tabbar { padding-left:calc((100vw - min(1120px, 100vw))/2 + 18px); padding-right:calc((100vw - min(1120px, 100vw))/2 + 18px); }
}
@media (min-width: 920px) { .dashboard-grid { grid-template-columns: repeat(3, 1fr); }.hero { grid-column:span 2; }.request-card { grid-column:span 1; }.profile-grid { grid-template-columns: repeat(4,1fr); }.login-picker { width: min(100%, 760px); }.login-profile-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 24px; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Product feature pass */
button.plain-row { width: 100%; border: 0; color: var(--ink); background: transparent; text-align: left; }
.space-top { margin-top: 14px; }
.centered { justify-content: center; margin-top: 12px; }
.stack { display: grid; gap: 12px; }
.section-row { display: flex; align-items: center; justify-content: space-between; margin: 22px 2px 12px; }
.section-row h2, .detail-section h3 { margin: 0; font-size: 17px; letter-spacing: -.035em; }
.calendar-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.calendar-summary span { color: var(--muted); font-size: 12px; text-align: right; }
.mini-photo-row { display: flex; gap: 8px; overflow: auto; padding: 1px; }
.mini-photo { flex: 0 0 auto; width: 67px; height: 67px; padding: 0; overflow: hidden; border: 0; border-radius: 15px; background: var(--surface-2); }
.mini-photo img, .person-avatar img, .live-photo img, .photo-detail img { width: 100%; height: 100%; object-fit: cover; }
.live-photo { padding: 0; background: #d9dde5; }
.live-photo img { position: absolute; inset: 0; }
.album-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.album-card { display: grid; gap: 5px; min-height: 122px; padding: 17px; border: 1px solid var(--line); border-radius: 18px; text-align: left; color: var(--ink); background: var(--surface-2); }
.album-card span, .album-card small { color: var(--muted); font-size: 12px; }
.album-card strong { font-size: 16px; }
.hero h2 { max-width: 330px; margin: 0; font-size: 28px; line-height: 1.07; letter-spacing: -.057em; }
.hero-ghost { color: #fff; border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.14); }
.detail-card { padding: 16px; border: 1px solid var(--line); border-radius: 17px; background: var(--surface-2); }
.detail-card h3 { margin: 10px 0 5px; font-size: 18px; }
.detail-card p { margin: 7px 0; color: var(--muted); font-size: 14px; line-height: 1.4; }
.announcement-detail { margin-top: 14px; }
.announcement-detail p:first-child { color: var(--ink); font-size: 16px; white-space: pre-wrap; }
.household-image { overflow: hidden; margin: -16px -16px 14px; border-radius: 16px 16px 0 0; background: var(--surface-2); }
.household-image img { display: block; width: 100%; max-height: 180px; object-fit: cover; }
.detail-section { margin-top: 22px; }
.detail-section > h3 { margin-bottom: 9px; }
.detail-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 11px 0; border: 0; border-top: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; font-size: 14px; }
.detail-row span, .detail-row b { color: var(--muted); font-size: 12px; }
.profile-bio { max-width: 380px; margin-right: auto!important; margin-left: auto!important; line-height: 1.4; }
.member-list { display: flex; flex-wrap: wrap; gap: 8px; }
.member-chip { display: inline-flex; align-items: center; gap: 7px; padding: 5px 10px 5px 5px; border: 1px solid var(--line); border-radius: 24px; color: var(--ink); background: var(--surface-2); font-size: 13px; font-weight: 700; }
.member-chip .person-avatar { width: 27px; height: 27px; font-size: 9px; }
.emergency-card { margin-top: 22px; padding: 16px; border: 1px solid rgba(225,61,68,.3); border-radius: 17px; background: color-mix(in srgb, var(--surface) 94%, #f23c48); }
.emergency-card > span { color: var(--red); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.emergency-card h3 { margin: 7px 0; font-size: 16px; }
.emergency-card p { margin: 8px 0 0; font-size: 13px; line-height: 1.4; }
.form-field textarea, .form-field select { width: 100%; min-height: 43px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: var(--surface-2); resize: vertical; }
.form-field select[multiple] { min-height: 104px; }
.form-field small, .check-field small { color: var(--muted); font-size: 11px; font-weight: 500; }
.check-field { display: flex; align-items: flex-start; gap: 10px; margin: 12px 0; color: var(--ink); font-size: 13px; }
.check-field input { width: 19px; height: 19px; accent-color: var(--blue); }
.check-field strong, .check-field small { display: block; }
.form-divider { margin: 22px 0 13px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--red); font-size: 12px; font-weight: 800; }
.tree-list { display: grid; gap: 8px; margin-top: 15px; }
.tree-link { display: grid; grid-template-columns: 1fr auto 1fr auto; align-items: center; gap: 7px; padding: 11px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-2); }
.tree-link button { overflow: hidden; border: 0; color: var(--blue); background: transparent; text-overflow: ellipsis; white-space: nowrap; font-weight: 750; }
.tree-link span { max-width: 86px; color: var(--muted); font-size: 11px; text-align: center; }
.tree-link .tree-edit { color: var(--muted); font-size: 11px; }
.admin-summary { margin: 12px 0; padding: 11px 13px; border-radius: 13px; color: var(--blue); background: var(--blue-soft); font-size: 13px; font-weight: 750; }
.moderation-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); }
.moderation-row strong, .moderation-row span span { display: block; }
.moderation-row span span { margin-top: 3px; color: var(--muted); font-size: 12px; }
.danger-mini { color: var(--red); background: color-mix(in srgb, var(--red) 12%, var(--surface)); }
.activity-list { display: grid; gap: 0; }
.activity-row { display: flex; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); }
.activity-row:first-child { border-top: 0; }
.activity-dot { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--blue); }
.activity-row strong { display: block; font-size: 13px; text-transform: capitalize; }
.activity-row p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.photo-detail { max-height: 56dvh; overflow: hidden; border-radius: 16px; background: var(--surface-2); }
.photo-detail img { display: block; height: auto; max-height: 56dvh; object-fit: contain; }
.chat-placeholder { padding: 22px 15px; margin-bottom: 17px; border: 1px solid var(--line); border-radius: 19px; text-align: center; background: var(--surface-2); }
.chat-orb { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 11px; border-radius: 17px; color: var(--blue); background: var(--blue-soft); font-size: 25px; }
.chat-placeholder h3 { margin: 0; font-size: 17px; }
.chat-placeholder p { max-width: 390px; margin: 7px auto 14px; color: var(--muted); font-size: 13px; line-height: 1.4; }
.talk-button { min-height: 52px; padding: 0 22px; border: 0; border-radius: 17px; color: #fff; background: #ef7a54; font-size: 16px; font-weight: 800; }
.login-shell { display: grid; min-height: 100dvh; padding: max(22px, env(safe-area-inset-top)) 22px max(22px, env(safe-area-inset-bottom)); place-items: center; }
.login-card { width: min(100%, 410px); padding: 27px; border: 1px solid var(--line); border-radius: 26px; background: var(--surface); box-shadow: var(--shadow); }
.login-card h1 { margin: 15px 0 5px; font-size: 28px; letter-spacing: -.06em; }
.login-card p { margin: 0 0 20px; color: var(--muted); }
.login-mark { color: var(--blue); font-size: 26px; font-weight: 800; letter-spacing: -.08em; }
.login-mark span { color: var(--ink); }
.login-submit { width: 100%; margin-top: 4px; }
.login-picker { width: min(100%, 620px); padding: 25px; }
.login-intro { margin-bottom: 22px!important; }
.login-household { animation: login-section-in .5s ease both; }
.login-household:nth-of-type(2) { animation-delay: .06s; }.login-household:nth-of-type(3) { animation-delay: .12s; }.login-household:nth-of-type(4) { animation-delay: .18s; }
.login-household + .login-household { margin-top: 26px; }
.login-household-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 11px; }
.login-household-heading .eyebrow { margin: 0 0 2px; }
.login-household-heading h2 { margin: 0; font-size: 18px; letter-spacing: -.045em; }
.login-house-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 13px; color: var(--blue); background: var(--blue-soft); font-size: 18px; }
.login-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
.login-profile { position: relative; min-width: 0; padding: 10px 6px 12px; border: 1px solid transparent; border-radius: 19px; color: var(--ink); background: transparent; text-align: center; transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease; animation: login-tile-in .45s ease both; }
.login-profile:nth-child(2) { animation-delay: .04s; }.login-profile:nth-child(3) { animation-delay: .08s; }.login-profile:nth-child(4) { animation-delay: .12s; }.login-profile:nth-child(5) { animation-delay: .16s; }.login-profile:nth-child(6) { animation-delay: .2s; }
.login-profile:hover, .login-profile:focus-visible { border-color: color-mix(in srgb, var(--blue) 35%, transparent); background: var(--surface-2); box-shadow: 0 8px 22px rgba(25, 118, 234, .1); transform: translateY(-2px); outline: none; }
.login-profile:active { transform: scale(.95); }
.login-profile-top { position: relative; display: block; min-height: 70px; }
.login-avatar { position: relative; display: grid; place-items: center; width: 70px; height: 70px; margin: 0 auto; overflow: hidden; border: 2px solid var(--surface); border-radius: 50%; color: #fff; background: linear-gradient(135deg, #5e9fe8, #315f9f); box-shadow: 0 3px 10px rgba(19, 39, 69, .14); font-size: 17px; font-weight: 800; }
.login-avatar img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; }
.login-lock { position: absolute; top: 0; right: 2px; padding: 5px 7px; border-radius: 20px; color: var(--muted); background: var(--surface); font-size: 10px; font-weight: 750; white-space: nowrap; box-shadow: 0 2px 7px rgba(0,0,0,.06); }
.login-profile strong { display: block; overflow: hidden; margin-top: 11px; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.login-profile > span:last-child { display: block; overflow: hidden; margin-top: 3px; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.login-card-locked { width: min(100%, 410px); animation: login-card-in .34s ease both; }
.login-back { padding: 0; border: 0; color: var(--blue); background: none; font-size: 13px; font-weight: 750; }
.login-selected { padding: 24px 0 15px; text-align: center; }
.login-selected .login-avatar { width: 86px; height: 86px; margin: 0 auto 14px; font-size: 24px; }
.login-selected .login-mark { display: block; margin-bottom: 14px; }
.login-selected h1 { margin: 0 0 6px; }
.login-selected p { margin-bottom: 0; }
.login-error { margin: -5px 0 13px!important; padding: 10px 12px; border-radius: 12px; color: #a62632!important; background: #fce9ea; font-size: 12px!important; line-height: 1.35; }
html[data-theme="dark"] .login-error { color: #ffb7bb!important; background: #4b262a; }
.login-empty { display: grid; gap: 5px; padding: 24px 10px 8px; text-align: center; color: var(--muted); }
.login-empty strong { color: var(--ink); }
.welcome-screen { animation: welcome-in .45s ease both; }
.welcome-screen.exiting { animation: welcome-out .32s ease both; }
.welcome-card { display: grid; justify-items: center; width: min(100%, 410px); padding: 45px 26px; border: 1px solid var(--line); border-radius: 28px; color: var(--ink); background: var(--surface); box-shadow: var(--shadow); text-align: center; }
.welcome-screen.young .welcome-card { border-color: color-mix(in srgb, var(--blue) 28%, var(--line)); }.welcome-screen.young .welcome-spark { transform: scale(1.08); }.welcome-screen.senior .welcome-card h1 { font-size: 34px; }
.welcome-card .login-mark { margin-top: 12px; }
.welcome-card h1 { margin: 17px 0 6px; font-size: 31px; letter-spacing: -.065em; }
.welcome-card p { margin: 0; color: var(--muted); }
.welcome-spark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 16px; color: var(--blue); background: var(--blue-soft); font-size: 24px; animation: welcome-spark .7s ease both; }
.app-enter { animation: home-in .52s ease both; }
@keyframes login-section-in { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: none; } }
@keyframes login-tile-in { from { opacity: 0; transform: translateY(8px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes login-card-in { from { opacity: 0; transform: translateY(9px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes welcome-in { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: scale(1); } }
@keyframes welcome-out { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(1.025); } }
@keyframes welcome-spark { from { opacity: 0; transform: rotate(-16deg) scale(.6); } to { opacity: 1; transform: rotate(0) scale(1); } }
@keyframes home-in { from { opacity: 0; transform: translateY(6px) scale(.99); } to { opacity: 1; transform: none; } }
html[data-ui-mode="young"] .app-shell { padding-left: 20px; padding-right: 20px; }
html[data-ui-mode="young"] .primary-button, html[data-ui-mode="young"] .secondary-button, html[data-ui-mode="young"] .ghost-button { min-height: 47px; border-radius: 16px; font-size: 15px; }
html[data-ui-mode="young"] .person-avatar { width: 58px; height: 58px; }
html[data-ui-mode="young"] .profile-card { min-height: 175px; }
html[data-ui-mode="young"] .hero { background: #337fd7; }
html[data-ui-mode="senior"] { font-size: 18px; }
html[data-ui-mode="senior"] .app-shell { padding-left: 22px; padding-right: 22px; }
html[data-ui-mode="senior"] .page-title { font-size: 39px; }
html[data-ui-mode="senior"] .primary-button, html[data-ui-mode="senior"] .secondary-button, html[data-ui-mode="senior"] .ghost-button, html[data-ui-mode="senior"] .menu-row { min-height: 50px; font-size: 16px; }
html[data-ui-mode="senior"] .subtext, html[data-ui-mode="senior"] .row-copy span { font-size: 14px; }
@media (max-width: 380px) { .tree-link { grid-template-columns: 1fr auto 1fr; }.tree-link .tree-edit { grid-column: 1 / -1; }.calendar-summary { align-items: flex-start; flex-direction: column; }.calendar-summary span { text-align: left; } }

/* Family Chat */
.chat-sheet { width:min(100%,1120px); max-width:1120px; height:min(82dvh,790px); max-height:82dvh; padding:0; overflow:hidden; border-radius:25px; }
.chat-app { display:grid; grid-template-columns:300px minmax(0,1fr); height:100%; min-height:0; background:var(--surface); }
.chat-list-pane { display:flex; min-height:0; flex-direction:column; border-right:1px solid var(--line); background:color-mix(in srgb,var(--surface-2) 70%,var(--surface)); }
.chat-list-head { display:flex; align-items:center; justify-content:space-between; padding:20px 16px 13px; }.chat-list-head .eyebrow { margin:0 0 3px; }.chat-list-head h2 { margin:0; font-size:25px; letter-spacing:-.055em; }
.chat-new-button { display:grid; width:36px; height:36px; place-items:center; border:0; border-radius:12px; color:#fff; background:var(--blue); font-size:23px; line-height:1; }
.chat-new-panel { padding:0 12px 13px; border-bottom:1px solid var(--line); }.chat-new-panel > strong { display:block; margin:0 3px 9px; font-size:12px; }.quick-contacts { display:flex; gap:8px; overflow:auto; padding:1px 2px 9px; }.quick-contacts button { display:grid; justify-items:center; flex:0 0 65px; gap:4px; overflow:hidden; padding:3px; border:0; color:var(--ink); background:transparent; font-size:10px; font-weight:700; text-overflow:ellipsis; }.quick-contacts button span { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.chat-group-actions { display:grid; gap:6px; }.chat-group-actions .secondary-button { min-height:34px; padding:0 10px; border-radius:11px; font-size:12px; }
.chat-conversation-list { min-height:0; overflow:auto; padding:7px; }.chat-conversation { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:9px; width:100%; padding:10px 8px; border:0; border-radius:14px; color:var(--ink); background:transparent; text-align:left; }.chat-conversation:hover,.chat-conversation.active { background:var(--blue-soft); }.chat-list-copy { min-width:0; }.chat-list-copy strong,.chat-list-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.chat-list-copy strong { font-size:13px; }.chat-list-copy small { margin-top:3px; color:var(--muted); font-size:11px; }.chat-list-meta { display:grid; justify-items:end; gap:4px; }.chat-list-meta small { color:var(--muted); font-size:10px; }.chat-list-meta b { min-width:17px; padding:2px 5px; border-radius:99px; color:#fff; background:var(--blue); font-size:10px; text-align:center; }
.chat-faces { display:flex; align-items:center; min-width:34px; }.chat-faces .chat-avatar + .chat-avatar { margin-left:-9px; border-color:var(--surface-2); }.chat-avatar { display:grid; flex:0 0 auto; width:33px; height:33px; overflow:hidden; place-items:center; border:2px solid var(--surface); border-radius:50%; color:#fff; background:linear-gradient(135deg,#64a6ed,#32659d); font-size:10px; font-weight:800; }.chat-avatar img { width:100%; height:100%; object-fit:cover; }
.chat-thread { display:grid; min-width:0; min-height:0; grid-template-rows:auto minmax(0,1fr) auto; }.chat-thread-head { display:flex; align-items:center; min-height:65px; gap:10px; padding:10px 18px; border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--surface) 88%,transparent); backdrop-filter:blur(14px); }.chat-thread-head > div { display:flex; align-items:center; gap:9px; min-width:0; }.chat-thread-head .chat-faces { min-width:auto; }.chat-thread-head strong,.chat-thread-head small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.chat-thread-head strong { font-size:14px; }.chat-thread-head small { margin-top:2px; color:var(--muted); font-size:11px; }.chat-back { display:none; padding:0; border:0; color:var(--blue); background:transparent; font-size:31px; line-height:1; }
.chat-messages { display:flex; min-height:0; flex-direction:column; gap:11px; overflow:auto; padding:18px; background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 35%,transparent),transparent 48%); }.chat-message { display:flex; max-width:78%; flex-direction:column; align-items:flex-start; }.chat-message.mine { align-self:flex-end; align-items:flex-end; }.message-sender { display:flex; align-items:center; gap:6px; margin:0 0 3px 3px; color:var(--muted); font-size:11px; font-weight:750; }.message-sender .chat-avatar { width:22px; height:22px; border-width:1px; font-size:8px; }.message-stack { display:flex; flex-direction:column; align-items:flex-start; }.chat-message.mine .message-stack { align-items:flex-end; }.message-bubble { max-width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:17px 17px 17px 5px; color:var(--ink); background:var(--surface-2); box-shadow:0 1px 2px rgba(20,35,55,.03); }.chat-message.mine .message-bubble { border-color:var(--blue); border-radius:17px 17px 5px 17px; color:#fff; background:var(--blue); }.message-bubble.important { box-shadow:inset 3px 0 #f5bc3c; }.message-bubble p { margin:0; font-size:14px; line-height:1.36; white-space:normal; word-break:break-word; }.deleted-message { color:var(--muted)!important; font-style:italic; }.message-meta { display:flex; gap:5px; margin:4px 4px 0; color:var(--muted); font-size:10px; }.message-tools { display:flex; gap:3px; margin:3px 0 0; opacity:0; transition:opacity .18s; }.chat-message:hover .message-tools,.chat-message:focus-within .message-tools { opacity:1; }.message-tools button { padding:3px 5px; border:0; border-radius:7px; color:var(--muted); background:transparent; font-size:10px; }.message-tools .message-delete { color:var(--red); }.message-reactions { display:flex; flex-wrap:wrap; gap:4px; margin-top:3px; }.message-reaction { padding:2px 6px; border:1px solid var(--line); border-radius:99px; color:var(--ink); background:var(--surface); font-size:11px; }.message-reaction.active { border-color:var(--blue); background:var(--blue-soft); }.reply-context { display:grid; max-width:210px; gap:1px; margin-bottom:4px; padding:5px 8px; border:0; border-left:3px solid var(--blue); border-radius:7px; color:var(--muted); background:color-mix(in srgb,var(--surface-2) 86%,transparent); text-align:left; }.reply-context strong,.reply-context span { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.voice-message { display:grid; min-width:185px; gap:5px; }.voice-message audio { width:100%; height:34px; }.voice-message details { color:inherit; font-size:11px; }.voice-message details p { margin-top:6px; font-size:12px; }.voice-message small { font-size:10px; }
.chat-compose { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; align-items:center; gap:7px; padding:9px 12px max(12px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:color-mix(in srgb,var(--surface) 92%,transparent); backdrop-filter:blur(16px); }.chat-compose textarea { width:100%; min-height:40px; max-height:96px; padding:10px 12px; border:1px solid var(--line); border-radius:15px; color:var(--ink); background:var(--surface-2); font:inherit; font-size:13px; resize:none; }.chat-compose select { width:88px; height:38px; border:1px solid var(--line); border-radius:11px; color:var(--muted); background:var(--surface-2); font-size:11px; }.chat-mic-button,.chat-send-button { display:grid; width:38px; height:38px; place-items:center; padding:0; border:0; border-radius:50%; color:#fff; background:var(--blue); font-size:17px; }.chat-mic-button { color:var(--blue); background:var(--blue-soft); }.chat-replying { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; padding:0 3px; color:var(--muted); font-size:11px; }.chat-replying button { border:0; color:var(--muted); background:transparent; font-size:19px; }.voice-recording,.voice-preview { grid-column:1 / -1; display:flex; align-items:center; gap:9px; }.voice-preview { display:grid; }.voice-preview audio { width:100%; }.voice-preview > div { display:flex; gap:8px; }.recording-dot { width:9px; height:9px; border-radius:50%; background:var(--red); animation:chat-pulse 1s ease-in-out infinite; }.voice-recording .chat-record-seconds { margin-right:auto; color:var(--muted); font-variant-numeric:tabular-nums; }.chat-disabled,.chat-loading,.chat-empty-pane { display:grid; place-items:center; align-content:center; gap:8px; min-height:170px; padding:28px; color:var(--muted); text-align:center; }.chat-empty-pane h2 { max-width:320px; margin:0; color:var(--ink); font-size:23px; letter-spacing:-.05em; }.chat-empty-pane p { max-width:280px; margin:0; font-size:13px; line-height:1.4; }.chat-talk-primary { display:grid; width:48px; height:43px; place-items:center; padding:0; border:0; border-radius:15px; color:#fff; background:#ef7a54; font-weight:800; }.young-chat .chat-compose textarea { min-height:50px; font-size:16px; }.young-chat .chat-send-button { width:45px; height:45px; }.young-chat .chat-talk-primary { width:auto; min-width:82px; padding:0 11px; font-size:13px; }
.chat-admin-row { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:11px 0; border-top:1px solid var(--line); }.chat-admin-row:first-child { border-top:0; }.chat-admin-row strong,.chat-admin-row small { display:block; }.chat-admin-row small { max-width:355px; margin-top:3px; overflow:hidden; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
html[data-ui-mode="senior"] .chat-conversation { min-height:64px; }.senior .chat-compose textarea,html[data-ui-mode="senior"] .chat-compose textarea { min-height:52px; font-size:16px; }.senior .chat-thread-head,html[data-ui-mode="senior"] .chat-thread-head { min-height:73px; }.senior .chat-message,html[data-ui-mode="senior"] .chat-message { max-width:88%; }.senior .message-bubble p,html[data-ui-mode="senior"] .message-bubble p { font-size:16px; }.senior .message-tools,html[data-ui-mode="senior"] .message-tools { opacity:1; }.senior .message-tools button,html[data-ui-mode="senior"] .message-tools button { font-size:12px; }
@keyframes chat-pulse { 50% { transform:scale(.68); opacity:.5; } }
.chat-avatar.is-active { box-shadow:0 0 0 2px var(--surface),0 0 0 4px #39c978; }
.message-read-receipt { margin:4px 4px 0; color:var(--muted); font-size:10px; }
.compact-widget { padding:0!important; }
.compact-widget-toggle { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:62px; padding:13px 16px; border:0; color:var(--ink); background:transparent; text-align:left; }
.compact-widget-toggle strong,.compact-widget-toggle small { display:block; }
.compact-widget-toggle small { margin-top:3px; color:var(--muted); font-size:12px; }
.compact-widget-toggle b { color:var(--muted); font-size:20px; transition:transform .18s; }
.compact-widget.expanded .compact-widget-toggle b { transform:rotate(180deg); }
.offline-banner { position:fixed; z-index:19; top:10px; left:50%; display:flex; gap:8px; align-items:center; max-width:calc(100vw - 24px); padding:8px 12px; border:1px solid rgba(225,61,68,.25); border-radius:999px; color:var(--ink); background:var(--surface); box-shadow:var(--shadow); transform:translateX(-50%); font-size:12px; }
.offline-banner span { color:var(--muted); }
.signout-backdrop { align-items:center; }
.signout-sheet { max-width:440px; max-height:none; padding:28px; border-radius:26px; text-align:center; }
.signout-confirm,.signout-transition { display:grid; justify-items:center; gap:12px; min-height:260px; place-content:center; }
.signout-confirm h2 { margin:0; font-size:24px; letter-spacing:-.05em; }
.signout-confirm p,.signout-transition p { margin:0; color:var(--muted); font-size:14px; }
.signout-confirm .login-mark,.signout-transition .login-mark { font-size:28px; }
.loading-dots { display:flex; gap:6px; margin-top:8px; }
.loading-dots i { width:8px; height:8px; border-radius:50%; background:var(--blue); animation:chat-pulse 1s ease-in-out infinite; }
.loading-dots i:nth-child(2) { animation-delay:.12s; }
.loading-dots i:nth-child(3) { animation-delay:.24s; }
.locked-setting { display:flex; align-items:center; gap:14px; min-height:72px; padding:14px 16px; border-bottom:1px solid var(--line); color:var(--muted); }
.locked-setting:last-child { border-bottom:0; }
.locked-setting > span { display:grid; width:36px; height:36px; place-items:center; border-radius:12px; color:var(--blue); background:var(--blue-soft); }
.locked-setting > div { flex:1; }
.locked-setting strong,.locked-setting small { display:block; }
.locked-setting small { margin-top:3px; font-size:12px; }
.top-actions .icon-button svg { width:24px; height:24px; display:block; }
.wishlist-hero { position:relative; overflow:hidden; margin-bottom:16px; padding:28px; border:1.5px solid #2995ff; border-radius:28px; color:#fff; background:radial-gradient(circle at 100% 0%,rgba(43,133,255,.38),transparent 42%),linear-gradient(135deg,#10264d,#0d1b38); box-shadow:0 12px 30px rgba(0,80,190,.15); }
.wishlist-hero:after { position:absolute; top:-120px; right:-80px; width:360px; height:360px; border:1px solid rgba(74,151,255,.2); border-radius:50%; box-shadow:0 0 0 42px rgba(74,151,255,.08),0 0 0 84px rgba(74,151,255,.05); content:''; }
.wishlist-hero > * { position:relative; z-index:1; }
.wishlist-gift { display:block; margin-bottom:14px; color:#61aaff; font-size:40px; }
.wishlist-hero h2 { margin:0 0 6px; font-size:34px; letter-spacing:-.05em; }
.wishlist-hero p { margin:0 0 22px; color:#a8caff; font-size:17px; }
.wishlist-hero .primary-button { background:#268cf4; }
.wishlist-hero .secondary-button { border-color:#8dc5ff; color:#e5f1ff; background:transparent; }
.wishlist-add-form { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; padding:14px; border:1px solid var(--line); border-radius:18px; background:var(--surface-2); }
.wishlist-add-form .form-field:first-child,.wishlist-add-form select,.wishlist-add-form button { grid-column:1 / -1; }
.wishlist-category { margin-top:18px; }
.wishlist-category h4 { margin:0; font-size:16px; }
.wishlist-item { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 0; border-top:1px solid var(--line); }
.wishlist-item strong,.wishlist-item small { display:block; }
.wishlist-item small { margin-top:2px; color:var(--muted); }
.wishlist-family { margin-top:10px; padding:14px; border:1px solid var(--line); border-radius:16px; }
@media (max-width:659px) { .wishlist-hero { padding:23px 20px; border-radius:24px; }.wishlist-hero h2 { font-size:31px; }.wishlist-add-form { grid-template-columns:1fr; }.wishlist-add-form .form-field:first-child,.wishlist-add-form select,.wishlist-add-form button { grid-column:auto; } }
.wishlist-page { min-height:100dvh; padding:28px clamp(18px,4vw,56px) 56px; color:var(--ink); background:var(--bg); }
.wishlist-header { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:18px; max-width:1180px; margin:0 auto 22px; }
.wishlist-header > div { text-align:center; }.wishlist-header h1 { margin:0; font-size:clamp(28px,4vw,42px); letter-spacing:-.06em; }.wishlist-header .eyebrow { margin:0 0 5px; }
.wishlist-back { justify-self:start; padding:10px 0; border:0; color:var(--blue); background:transparent; font:inherit; font-weight:750; }.wishlist-header .avatar-button { justify-self:end; }
.wishlist-switcher { display:flex; justify-content:center; gap:8px; max-width:1180px; margin:0 auto 26px; padding:5px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }.wishlist-switcher button { min-height:44px; padding:0 20px; border:0; border-radius:12px; color:var(--muted); background:transparent; font:inherit; font-weight:750; }.wishlist-switcher button.active { color:var(--ink); background:var(--blue-soft); }
.wishlist-main-column,.wishlist-family-grid { max-width:900px; margin:0 auto; }.wishlist-family-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; max-width:1180px; }.wishlist-family-card,.wishlist-editor { padding:20px; border:1px solid var(--line); border-radius:22px; background:var(--surface); box-shadow:var(--shadow); }.wishlist-family-card h2 { margin:0 0 10px; }.wishlist-editor { margin-bottom:18px; }.wishlist-add-button { display:block; margin:0 0 20px; }.wishlist-category-tools { margin-bottom:16px; padding:14px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }.wishlist-category { margin-top:18px; padding:16px 18px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }.wishlist-category h3 { margin:0; font-size:18px; }
@media (max-width:659px) { .wishlist-page { padding:18px 14px 32px; }.wishlist-header { grid-template-columns:1fr auto; }.wishlist-header > div { grid-column:1 / -1; grid-row:1; text-align:left; padding-left:4px; }.wishlist-back { grid-row:2; }.wishlist-header .avatar-button { grid-row:2; }.wishlist-switcher { margin-bottom:18px; }.wishlist-switcher button { flex:1; padding:0 8px; font-size:13px; } }
@media (max-width: 659px) { .chat-sheet { position:fixed; inset:0; width:100%; height:100dvh; max-height:none; border-radius:0; }.chat-app { display:block; }.chat-list-pane { height:100%; border:0; }.chat-list-hidden { display:none; }.chat-thread { height:100%; }.chat-thread-head { padding-right:12px; }.chat-back { display:block; }.chat-message { max-width:88%; }.chat-conversation-list { padding-bottom:calc(14px + env(safe-area-inset-bottom)); }.message-tools { opacity:1; }.chat-compose { grid-template-columns:minmax(0,1fr) auto auto; }.chat-compose select { display:none; }.chat-mic-button,.chat-send-button { width:42px; height:42px; }.chat-empty-pane { display:none; } }
.wishlist-product-card{display:flex;flex-direction:column;min-width:0;padding:0;overflow:hidden;text-align:left;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.wishlist-product-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.16)}.wishlist-category:has(.wishlist-product-card){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.wishlist-category:has(.wishlist-product-card)>h3{grid-column:1/-1}.wishlist-product-image{display:grid;place-items:center;aspect-ratio:1/1;background:var(--surface-2);overflow:hidden;color:var(--muted);font-size:36px}.wishlist-product-image img{width:100%;height:100%;object-fit:contain}.wishlist-product-copy{display:flex;flex-direction:column;gap:5px;padding:13px 14px 15px}.wishlist-product-copy strong{font-size:15px;line-height:1.22;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wishlist-product-copy small{color:var(--muted);font-size:13px}.wishlist-detail-card{max-width:760px;margin:0 auto;padding:18px;border:1px solid var(--line);border-radius:28px;background:var(--surface);box-shadow:var(--shadow)}.wishlist-detail-image{display:grid;place-items:center;min-height:min(62vh,620px);border-radius:20px;background:var(--surface-2);overflow:hidden;color:var(--muted);font-size:54px}.wishlist-detail-image img{width:100%;height:100%;max-height:620px;object-fit:contain}.wishlist-detail-card h2{margin:24px 8px 8px;font-size:clamp(24px,4vw,38px);letter-spacing:-.04em}.wishlist-detail-card .subtext,.wishlist-detail-price,.wishlist-detail-card .pill{margin-left:8px}.wishlist-detail-price{font-size:22px;font-weight:800;margin-top:0}.wishlist-detail-card .button-row{margin:24px 8px 8px}.wishlist-admin-label{max-width:900px;margin:-8px auto 18px}.wishlist-admin-label .inline-form{justify-content:flex-end}.wishlist-admin-label input{max-width:260px}@media(max-width:659px){.wishlist-category:has(.wishlist-product-card){gap:10px}.wishlist-product-copy{padding:11px 11px 13px}.wishlist-detail-card{padding:12px;border-radius:22px}.wishlist-detail-image{min-height:48vh}}
.wishlist-import-note{margin:0 0 14px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--blue) 45%,var(--line));border-radius:14px;background:var(--blue-soft);color:var(--muted);font-size:14px;line-height:1.45}.wishlist-add-form button:disabled{opacity:.65;cursor:wait}

/* Wishlist Pass 1 */
.wishlist-page{min-height:100dvh;padding:24px clamp(14px,4vw,56px) 56px;background:var(--canvas);color:var(--ink)}
.wishlist-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;max-width:1180px;margin:0 auto 22px}.wishlist-header>div{text-align:center}.wishlist-header h1{margin:0;font-size:clamp(28px,4vw,42px);letter-spacing:-.065em}.wishlist-header .eyebrow{margin-bottom:4px}.wishlist-back{justify-self:start;border:0;color:var(--blue);background:none;font-weight:750;font-size:14px}.wishlist-header .avatar-button{justify-self:end}
.wishlist-switcher{display:flex;gap:5px;max-width:620px;margin:0 auto 24px;padding:4px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.wishlist-switcher button{flex:1;min-height:42px;border:0;border-radius:12px;color:var(--muted);background:transparent;font-weight:760}.wishlist-switcher button.active{color:var(--ink);background:var(--blue-soft);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.wl-main-column{max-width:1180px;margin:0 auto}.wl-list-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:4px 0 15px}.wl-list-heading h2{margin:0;font-size:20px;letter-spacing:-.04em}.wl-list-heading .eyebrow{margin:0 0 3px}.wl-controls{display:grid;gap:10px;margin-bottom:18px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 88%,transparent)}.wl-control-line,.wl-filter-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.wl-control-line label,.wl-filter-line label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.wl-controls select,.wl-controls input{min-height:34px;padding:0 9px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:var(--surface-2);font-size:12px}.wl-controls input{width:80px}.wl-view-toggle{display:flex;gap:3px;margin-left:auto;padding:3px;border:1px solid var(--line);border-radius:10px}.wl-view-toggle button{width:31px;height:28px;border:0;border-radius:7px;color:var(--muted);background:transparent}.wl-view-toggle button.active{color:var(--blue);background:var(--blue-soft)}.wl-check{padding:6px 0}.wl-check input{width:auto}.wl-clear-filters,.wl-compact-link{border:0;color:var(--blue);background:none;font-size:12px;font-weight:760}.wl-filter-note{margin:0;color:var(--muted);font-size:12px}.wl-items-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wl-product-card{position:relative;min-width:0;overflow:visible;border:1px solid var(--line);border-radius:17px;background:var(--surface);color:var(--ink);box-shadow:0 7px 20px rgba(0,0,0,.10);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.wl-product-card:hover,.wl-product-card:focus-visible{transform:translateY(-2px);box-shadow:0 12px 27px rgba(0,0,0,.18)}.wl-product-image{display:grid;place-items:center;aspect-ratio:1/1;max-height:240px;overflow:hidden;border-radius:16px 16px 0 0;background:var(--surface-2);color:var(--muted);font-size:31px}.wl-product-image img{width:100%;height:100%;object-fit:contain}.wl-product-copy{padding:9px 10px 11px}.wl-product-top{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:25px;margin-bottom:4px}.wl-product-copy>strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:14px;line-height:1.2}.wl-product-meta{display:flex;align-items:center;gap:6px;margin-top:6px;color:var(--muted);font-size:12px}.wl-product-meta span:first-child{color:var(--ink);font-weight:760}.wl-product-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-no-price{font-weight:500!important}.wl-priority-badge{display:inline-flex;align-items:center;gap:3px;width:max-content;padding:3px 6px;border-radius:7px;color:#ffc857;background:rgba(193,135,18,.16);font-size:10px;font-weight:800;white-space:nowrap}.wl-item-menu{position:relative;margin-left:auto;z-index:3}.wl-item-menu summary{display:grid;place-items:center;width:28px;height:27px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface-2);font-size:14px;line-height:1;list-style:none;cursor:pointer}.wl-item-menu summary::-webkit-details-marker{display:none}.wl-item-menu-pop{position:absolute;right:0;top:32px;display:grid;min-width:142px;padding:5px;border:1px solid var(--line);border-radius:11px;background:var(--surface);box-shadow:0 12px 28px rgba(0,0,0,.22)}.wl-item-menu-pop button,.wl-item-menu-pop span{padding:8px 9px;border:0;border-radius:7px;color:var(--ink);background:transparent;text-align:left;font-size:12px}.wl-item-menu-pop button:hover{background:var(--surface-2)}.wl-item-menu-pop .danger-mini{color:var(--red)}
.wl-items-list{display:grid;gap:8px}.wl-list-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:64px;padding:7px 9px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);cursor:pointer;transition:background .16s ease,transform .16s ease}.wl-list-row:hover,.wl-list-row:focus-visible{background:var(--surface-2);transform:translateY(-1px)}.wl-list-thumb{display:grid;place-items:center;width:48px;height:48px;overflow:hidden;border-radius:10px;background:var(--surface-2);color:var(--muted)}.wl-list-thumb img{width:100%;height:100%;object-fit:contain}.wl-list-copy{min-width:0}.wl-list-copy strong,.wl-list-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-list-copy strong{font-size:14px}.wl-list-copy span{margin-top:3px;color:var(--muted);font-size:12px}.wl-category-toolbar{display:flex;justify-content:flex-end;margin:-3px 0 12px}.wl-category-manage{padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.wl-category-manage-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:8px;font-size:12px}.wl-category-chips{display:flex;flex-wrap:wrap;gap:6px}.wl-category-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:8px;color:var(--muted);background:var(--surface-2);font-size:12px}.wl-category-chip button{padding:0;border:0;color:var(--muted);background:none;font-size:15px}.wl-empty{padding:48px 16px;text-align:center}.wl-empty>span{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 10px;border-radius:14px;color:var(--blue);background:var(--blue-soft);font-size:21px}.wl-empty h3{margin:0;font-size:17px}.wl-empty p{max-width:280px;margin:6px auto;color:var(--muted);font-size:13px}.wl-family-overview{max-width:920px;margin:0 auto}.wl-family-intro{margin-bottom:18px}.wl-family-intro h2{margin:0;font-size:24px;letter-spacing:-.05em}.wl-family-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.wl-family-card{display:flex;align-items:center;gap:11px;width:100%;padding:13px;border:1px solid var(--line);border-radius:15px;color:var(--ink);background:var(--surface);text-align:left;box-shadow:0 5px 16px rgba(0,0,0,.08)}.wl-family-card .person-avatar{flex:0 0 auto}.wl-family-card span{min-width:0;display:grid;gap:3px}.wl-family-card strong,.wl-family-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-family-card small{color:var(--muted);font-size:12px}.wl-family-card>b{margin-left:auto;color:var(--muted);font-size:22px}
.wl-welcome-page{display:grid;align-content:start}.wl-welcome-card{max-width:640px;margin:7vh auto 0;padding:clamp(26px,6vw,56px);border:1px solid color-mix(in srgb,var(--blue) 55%,var(--line));border-radius:28px;background:radial-gradient(circle at 90% 0%,var(--blue-soft),transparent 42%),var(--surface);text-align:center;box-shadow:0 16px 44px rgba(0,0,0,.17);animation:wl-welcome-in .22s ease both}.wl-welcome-icon{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 18px;border-radius:20px;color:var(--blue);background:var(--blue-soft);font-size:30px}.wl-welcome-card h2{margin:0;font-size:clamp(28px,5vw,44px);letter-spacing:-.065em}.wl-welcome-card p:not(.eyebrow){max-width:440px;margin:12px auto 22px;color:var(--muted);line-height:1.45}.wl-welcome-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px}.wl-loading{display:grid;place-items:center;min-height:60vh;color:var(--muted)}.wl-loading-dot{font-size:27px;color:var(--blue);animation:wl-pulse .9s ease-in-out infinite alternate}.wl-inline-error{margin:0 0 12px;padding:9px 11px;border-radius:10px;color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent);font-size:13px}.wl-editor{max-width:760px;margin:0 auto 20px;padding:clamp(16px,3vw,25px);border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 9px 25px rgba(0,0,0,.12)}.wl-editor-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:15px}.wl-editor-head h2{margin:0;font-size:24px;letter-spacing:-.05em}.wl-editor-form{display:grid;gap:12px}.wl-field{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.wl-field input,.wl-field textarea,.wl-field select{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:var(--surface-2);font-size:14px}.wl-field textarea{resize:vertical;min-height:64px;line-height:1.3}.wl-price-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wl-photo-editor{display:grid;grid-template-columns:112px 1fr;gap:12px;align-items:center}.wl-photo-preview{display:grid;place-items:center;aspect-ratio:1;border:1px solid var(--line);border-radius:13px;overflow:hidden;color:var(--muted);background:var(--surface-2);font-size:25px}.wl-photo-preview img{width:100%;height:100%;object-fit:contain}.wl-photo-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wl-image-link{grid-column:1/-1}.wl-priority-toggle{display:flex;align-items:center;gap:9px;padding:10px 0}.wl-priority-toggle input{width:18px;height:18px;accent-color:var(--blue)}.wl-priority-toggle span{display:grid;gap:2px}.wl-priority-toggle small{color:var(--muted);font-size:12px}.wl-inline-category{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wl-inline-category input{flex:1;min-width:180px;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--surface-2)}.wl-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.wl-detail-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(270px,.85fr);gap:clamp(18px,4vw,38px);max-width:1000px;margin:0 auto;padding:clamp(14px,3vw,26px);border:1px solid var(--line);border-radius:23px;background:var(--surface);box-shadow:var(--shadow)}.wl-detail-image{display:grid;place-items:center;min-height:min(65vh,650px);border-radius:17px;overflow:hidden;color:var(--muted);background:var(--surface-2);font-size:48px}.wl-detail-image img{width:100%;height:100%;max-height:650px;object-fit:contain}.wl-detail-copy{align-self:center}.wl-detail-copy h2{margin:12px 0 9px;font-size:clamp(24px,4vw,38px);line-height:1.08;letter-spacing:-.06em}.wl-detail-price{margin:0 0 5px;font-size:24px;font-weight:800}.wl-detail-copy .button-row{margin-top:22px}.wl-detail-copy .wl-category-chip{margin-top:10px}
@keyframes wl-welcome-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes wl-pulse{from{opacity:.45;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@media(min-width:700px){.wl-items-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.wl-product-card{max-width:290px}.wl-items-grid .wl-product-card{width:100%}}@media(min-width:1080px){.wl-items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:659px){.wishlist-page{padding:18px 13px 34px}.wishlist-header{grid-template-columns:1fr auto}.wishlist-header>div{grid-column:1/-1;grid-row:1;text-align:left;padding-left:3px}.wishlist-header .wishlist-back{grid-row:2}.wishlist-header .avatar-button{grid-row:2}.wl-list-heading{align-items:start}.wl-list-heading .primary-button{min-height:36px;padding:0 11px;font-size:12px}.wl-filter-line{display:grid;grid-template-columns:1fr 1fr}.wl-filter-line label{justify-content:space-between}.wl-filter-line .wl-check{grid-column:1/-1;justify-content:start}.wl-clear-filters{justify-self:start}.wl-photo-editor{grid-template-columns:88px 1fr}.wl-detail-card{grid-template-columns:1fr}.wl-detail-image{min-height:43vh;max-height:55vh}.wl-detail-copy{padding:0 3px}.wl-welcome-card{margin-top:4vh;padding:29px 20px}.wl-items-list .wl-list-row{grid-template-columns:43px minmax(0,1fr) auto}.wl-list-thumb{width:43px;height:43px}.wl-list-row .wl-item-menu{grid-column:3;grid-row:1}.wl-list-row .wl-priority-badge{grid-column:2;grid-row:2;justify-self:start}.wl-list-copy{grid-column:2;grid-row:1}.wl-list-row{row-gap:3px}}
@media(prefers-reduced-motion:reduce){.wl-welcome-card,.wl-loading-dot{animation:none}.wl-product-card,.wl-list-row{transition:none}}
.wl-import-quick{margin:0 0 16px;padding:12px;border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--blue-soft) 35%,var(--surface))}.wl-import-row{display:flex;gap:8px;align-items:stretch}.wl-import-row input{flex:1;min-width:0}.wl-import-row button{flex:0 0 auto;white-space:nowrap}@media(max-width:520px){.wl-import-row{display:grid}.wl-import-row button{min-height:40px}}
.app-update-notice{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px auto 0;max-width:1120px;padding:14px 16px;border:1px solid rgba(76,158,255,.48);border-radius:16px;background:linear-gradient(135deg,rgba(20,70,130,.92),rgba(26,39,65,.96));box-shadow:0 10px 28px rgba(0,0,0,.22);animation:update-notice-in .2s ease-out}.app-update-notice>div:first-child{display:grid;gap:3px}.app-update-notice strong{font-size:15px}.app-update-notice span{color:var(--muted);font-size:13px}.app-update-notice .button-row{margin:0;flex-wrap:wrap;justify-content:flex-end}.app-update-notice .primary-button,.app-update-notice .ghost-button{min-height:38px;padding:8px 13px}.app-update-notice.updating{justify-content:flex-start}.update-settings{padding:20px}.update-build{display:block;font-variant-numeric:tabular-nums;letter-spacing:.04em}.update-state{margin:8px 0 16px}.stale-banner{display:flex;align-items:center;gap:12px}.stale-banner .text-button{margin-left:auto}@keyframes update-notice-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.app-update-notice{align-items:flex-start;flex-direction:column}.app-update-notice .button-row{width:100%;justify-content:flex-start}.stale-banner{align-items:flex-start;flex-wrap:wrap}.stale-banner .text-button{margin-left:0}}@media(prefers-reduced-motion:reduce){.app-update-notice{animation:none}}
.wl-options-fieldset{display:grid;gap:11px;margin:3px 0;padding:12px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface-2) 55%,transparent)}.wl-options-fieldset legend{padding:0 5px;color:var(--ink);font-size:13px;font-weight:800}.wl-option-badge{display:inline-flex;align-items:center;max-width:100%;padding:4px 7px;border-radius:7px;color:var(--muted);background:var(--surface-2);font-size:11px;font-weight:750}.wl-size-chips{display:flex;flex-wrap:wrap;gap:6px}.wl-sizes-card{margin:0 0 14px;padding:14px;border:1px solid color-mix(in srgb,var(--blue) 35%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--blue-soft) 28%,var(--surface))}.wl-sizes-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.wl-sizes-head h3{margin:0;font-size:17px}.wl-sizes-form{display:grid;gap:10px;margin-top:12px}.wl-collection-checks{display:flex;flex-wrap:wrap;gap:9px;color:var(--muted);font-size:12px}.wl-collection-checks label{display:flex;align-items:center;gap:5px}.wl-mobile-filter-button{display:none;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:var(--surface-2);font-size:12px;font-weight:750}.wl-detail-options{margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}.wl-detail-options h3{margin:0 0 9px;font-size:15px}.wl-detail-options .subtext{margin:10px 0 0}.wl-controls select,.wl-controls input{max-width:100%}@media(max-width:659px){.wl-mobile-filter-button{display:inline-flex;align-items:center;justify-content:center;margin-left:auto}.wl-filter-line:not(.filters-open){display:none}.wl-filter-line.filters-open{display:grid}.wl-filter-line{padding-top:3px}.wl-sizes-card{margin-top:3px}.wishlist-page{padding-top:max(18px,calc(18px + env(safe-area-inset-top)));padding-bottom:max(34px,calc(34px + env(safe-area-inset-bottom)))} }
.wl-occasion-menu{position:relative;display:inline-block;margin-top:8px;color:var(--muted)}.wl-occasion-menu summary{cursor:pointer;list-style:none;border:1px solid color-mix(in srgb,var(--blue) 40%,var(--line));border-radius:999px;padding:8px 12px;color:var(--blue);background:var(--blue-soft);font-weight:750}.wl-occasion-menu summary::-webkit-details-marker{display:none}.wl-occasion-options{position:absolute;z-index:20;right:0;top:calc(100% + 6px);min-width:230px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 12px 30px rgba(0,0,0,.35)}.wl-occasion-options button{display:block;width:100%;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:inherit;text-align:left;cursor:pointer}.wl-occasion-options button.active,.wl-occasion-options button:hover{background:var(--blue-soft);color:var(--ink)}.wl-occasion-options small{display:block;color:var(--muted);font-size:.8em;margin-top:2px}.wl-reserved-section,.wl-past-gifts,.wl-reservations-page{margin-top:20px}.wl-reserved-note{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(245,180,56,.15);color:#f5c45b;font-weight:700}.wl-reservation-list{display:grid;gap:12px;margin-top:14px}.wl-reservation-card{display:grid;grid-template-columns:76px 1fr auto;gap:14px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.wl-reservation-image{width:76px;height:76px;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden}.wl-reservation-image img{width:100%;height:100%;object-fit:contain}.wl-reservation-copy{display:grid;gap:5px}.wl-reservation-copy strong{font-size:1rem}.wl-reservation-copy small,.wl-reservation-copy span,.wl-reservation-copy em{color:var(--muted)}.wl-reservation-copy em{font-style:normal;color:#f5c45b}.wl-reservation-status{font-size:.78rem;padding:5px 8px;border-radius:999px;background:var(--blue-soft);color:var(--blue);white-space:nowrap}.wl-notification-list{margin-top:16px;padding:12px 14px;border:1px solid rgba(245,180,56,.28);border-radius:14px;background:rgba(245,180,56,.08)}.wl-notification-list p{margin:6px 0;color:#f6d58c}@media(max-width:640px){.wl-reservation-card{grid-template-columns:58px 1fr}.wl-reservation-image{width:58px;height:58px}.wl-reservation-status{grid-column:2;justify-self:start}.wl-reservation-copy .button-row{flex-wrap:wrap}.wl-occasion-options{right:auto;left:0}}
.wl-review-card,.wl-carryover-card{margin:1rem 0;padding:1rem 1.1rem;border:1px solid rgba(92,160,255,.32);border-radius:1.1rem;background:linear-gradient(145deg,rgba(24,52,92,.72),rgba(24,28,38,.9));box-shadow:0 10px 28px rgba(0,0,0,.12)}
.wl-review-card h3,.wl-carryover-card h3{margin:.2rem 0 .35rem}
.wl-review-list,.wl-carryover-card{display:grid;gap:.7rem}
.wl-review-row,.wl-carryover-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.7rem 0;border-top:1px solid rgba(255,255,255,.1)}
.wl-review-row:first-child,.wl-carryover-row:first-of-type{border-top:0}
.wl-review-row>span,.wl-carryover-row>div:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wl-carryover-row small{display:block;color:var(--muted);margin-top:.2rem}
@media (max-width:640px){.wl-review-row,.wl-carryover-row{align-items:flex-start;flex-direction:column}.wl-review-row .button-row,.wl-carryover-row .button-row{width:100%}.wl-review-row button,.wl-carryover-row button{flex:1}}
.wl-cart-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--blue) 40%,var(--line));border-radius:13px;color:var(--blue);background:var(--blue-soft);font-size:18px;cursor:pointer}.wl-name-disclosure{display:inline;max-width:100%}.wl-name-disclosure summary{display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;list-style:none}.wl-name-disclosure summary::-webkit-details-marker{display:none}.wl-name-disclosure[open] summary{display:block;white-space:normal;color:var(--blue)}.wl-name-disclosure>span{display:block;margin-top:5px;color:var(--muted);font-size:.92em;font-weight:500;line-height:1.35}.wl-review-page{max-width:920px;margin:0 auto}.wl-review-page .wl-review-card{max-width:860px;margin:0 auto}.wl-review-bulk{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px}.wl-review-row .wl-name-disclosure{flex:1;min-width:0}.wl-review-row .wl-name-disclosure summary{display:block}.wl-review-row .button-row{flex-shrink:0}
.home-update-gate{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:rgba(7,10,16,.97);color:#f7f9ff;animation:home-update-gate-in .2s ease-out}.home-update-card{width:min(100%,430px);padding:clamp(28px,8vw,52px) clamp(22px,7vw,42px);border:1px solid rgba(87,161,255,.42);border-radius:28px;background:linear-gradient(145deg,rgba(20,44,79,.95),rgba(20,24,34,.98));box-shadow:0 22px 70px rgba(0,0,0,.42);text-align:center}.home-update-brand{margin-bottom:24px;color:#62a9ff;font-size:34px;font-weight:800;letter-spacing:-.08em}.home-update-brand span{color:#f7f9ff}.home-update-mark{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 20px;border:1px solid rgba(96,170,255,.4);border-radius:19px;color:#6bb0ff;background:rgba(53,123,218,.18);font-size:30px}.home-update-card h1{margin:0;font-size:clamp(25px,6vw,34px);line-height:1.08;letter-spacing:-.06em}.home-update-card>p:not(.home-update-status){max-width:300px;margin:13px auto 10px;color:#bdc8d9;font-size:15px;line-height:1.45}.home-update-status{min-height:22px;margin:0 auto 22px;color:#dbe5f4;font-size:13px;line-height:1.4}.home-update-action{width:100%;min-height:48px;font-size:15px}.home-update-action:disabled{cursor:wait;opacity:.72}.home-update-locked{overflow:hidden!important;overscroll-behavior:none}.home-update-locked body{touch-action:none}@keyframes home-update-gate-in{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.home-update-gate{animation:none}}
.guest-portal-body{margin:0;min-height:100vh;background:#0c1017;color:#f7f9ff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.guest-portal{width:min(100%,980px);margin:0 auto;padding:max(22px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(38px,calc(38px + env(safe-area-inset-bottom)))}.guest-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}.guest-brand{color:#62aaff;font-weight:850;font-size:27px;letter-spacing:-.08em}.guest-brand span{color:#f7f9ff}.guest-brand-link{text-decoration:none}.guest-header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.guest-card{width:min(100%,440px);margin:12vh auto 0;padding:32px 24px;border:1px solid rgba(93,157,241,.34);border-radius:25px;background:linear-gradient(145deg,#172d4e,#171c26);box-shadow:0 24px 70px rgba(0,0,0,.35);text-align:center}.guest-card h1{margin:5px 0 10px;font-size:clamp(26px,7vw,38px);letter-spacing:-.06em}.guest-card p{color:#bac7d8;line-height:1.5}.guest-card form{display:grid;gap:12px;margin-top:20px}.guest-card input{width:100%;box-sizing:border-box;min-height:48px;padding:0 14px;border:1px solid #3a4557;border-radius:13px;background:#202630;color:inherit;font-size:16px}.guest-code input{text-align:center;font-size:28px;letter-spacing:.34em}.guest-error{color:#ffacb6!important}.guest-intro{padding:22px 0 18px}.guest-eyebrow{margin:0;color:#8ebff6;font-weight:750}.guest-intro h1{margin:3px 0;font-size:clamp(31px,7vw,48px);letter-spacing:-.07em}.guest-intro p{color:#b7c3d4}.guest-occasion-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.guest-occasion{padding:9px 13px;border:1px solid #3b4a60;border-radius:999px;background:#171e2a;color:#c5cfdd;cursor:pointer}.guest-occasion.active{border-color:#5da5ff;background:#16477d;color:#fff}.guest-profile{margin:18px 0;padding:18px;border:1px solid #2e3949;border-radius:20px;background:#171c25}.guest-profile-head{display:flex;align-items:center;gap:11px;margin-bottom:14px}.guest-profile-head h2{margin:0;font-size:20px}.guest-profile-head span:not(.guest-avatar){color:#9eabbc;font-size:13px}.guest-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,#5a9cff,#e58e9c);font-weight:800}.guest-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:11px}.guest-item{overflow:hidden;border:1px solid #344052;border-radius:16px;background:#202630}.guest-item img,.guest-item-placeholder{display:block;width:100%;height:160px;object-fit:contain;background:#eef1f5}.guest-item-placeholder{display:grid;place-items:center;color:#768397;background:#171c25;font-size:35px}.guest-item-copy{display:grid;gap:6px;padding:11px}.guest-item-copy h3,.guest-reservation h2{margin:0;font-size:15px;line-height:1.25}.guest-item-copy small,.guest-reservation p{color:#9eabbc}.guest-item-copy strong{font-size:15px}.guest-reserve{min-height:35px;padding:0 10px}.guest-reserved-badge{display:inline-flex;width:max-content;padding:4px 7px;border-radius:8px;background:rgba(245,194,90,.16);color:#f4c964;font-size:12px;font-weight:750}.guest-more{border:0;padding:0;background:none;color:#67afff;text-align:left;cursor:pointer;font-size:12px}.guest-reserved{margin-top:14px;padding-top:13px;border-top:1px solid #313b49}.guest-reserved summary{cursor:pointer;color:#f0c966;font-weight:750}.guest-privacy{color:#8997ab;text-align:center;font-size:13px}.guest-reservation-list{display:grid;gap:12px}.guest-reservation{padding:16px;border:1px solid #354154;border-radius:18px;background:#171d27}.guest-reservation-copy{display:grid;gap:7px}.guest-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px}.guest-actions button{min-height:36px}.guest-empty{padding:30px;text-align:center;color:#aab6c7}.guest-portal .primary-button{border:0;border-radius:12px;background:#2688ef;color:#fff;font-weight:800;cursor:pointer}.guest-portal .ghost-button{border:1px solid #3d4b5e;border-radius:12px;background:#171f2c;color:#d9e4f3;padding:9px 13px;font-weight:750;cursor:pointer}@media(max-width:560px){.guest-items{grid-template-columns:1fr 1fr}.guest-item img,.guest-item-placeholder{height:125px}.guest-item-copy h3{font-size:14px}.guest-portal{padding-left:13px;padding-right:13px}}@media(prefers-reduced-motion:reduce){.guest-portal *{scroll-behavior:auto!important;transition:none!important}}
/* Guest sharing admin controls */
.guest-admin-card{display:grid;gap:12px}.guest-admin-card h3{margin:0}.guest-admin-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}.guest-admin-row>span{display:grid;gap:2px;min-width:135px;flex:1}.guest-admin-row small{color:var(--muted)}.guest-admin-row input:not([type=checkbox]),.guest-admin-row select{min-height:36px;min-width:140px;max-width:100%;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:inherit}.guest-admin-row label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}
.guest-empty-profiles{border-top:1px solid var(--line);padding-top:10px}.guest-empty-profiles summary{color:var(--muted);cursor:pointer;font-size:13px;font-weight:700}.guest-empty-profiles .guest-admin-row:first-of-type{margin-top:4px}.guest-occasion-admin-row .ghost-button{min-height:34px;padding:0 10px;font-size:12px}.guest-upcoming-list{display:grid;gap:8px;margin-top:16px;text-align:left}.guest-upcoming-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid rgba(93,157,241,.28);border-radius:12px;background:rgba(34,67,111,.25)}.guest-upcoming-row span{color:#9fc4ed;font-size:12px;font-weight:700}
/* Wishlist animation pass */
#wl-theme-intro-host{position:fixed;inset:0;z-index:9000;pointer-events:auto}.wl-intro-locked{overflow:hidden!important;overscroll-behavior:none!important}.wl-intro-locked body{touch-action:none}.wl-theme-intro{position:fixed;inset:0;display:grid;place-items:center;overflow:hidden;padding:max(26px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(26px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));background:rgba(7,10,16,.985);color:#f7f9ff;isolation:isolate;animation:wl-intro-in .22s ease-out both}.wl-theme-intro-backdrop{position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 50% 42%,rgba(69,133,225,.18),transparent 48%),linear-gradient(145deg,#0b1019,#111522 62%,#0a0e15)}.wl-theme-intro-card{position:relative;width:min(100%,430px);padding:clamp(30px,8vw,54px) clamp(24px,7vw,44px);border:1px solid rgba(102,171,255,.35);border-radius:30px;background:linear-gradient(145deg,rgba(20,43,76,.9),rgba(18,22,32,.96));box-shadow:0 28px 90px rgba(0,0,0,.45);text-align:center;animation:wl-intro-card-in .55s cubic-bezier(.2,.8,.2,1) both}.wl-intro-brand{margin-bottom:20px;color:#63aaff;font-size:35px;font-weight:850;letter-spacing:-.09em}.wl-intro-brand span{color:#f7f9ff}.wl-intro-avatar{display:grid!important;place-items:center;width:74px!important;height:74px!important;margin:0 auto 18px;border:2px solid rgba(125,188,255,.55);border-radius:50%!important;color:#f8fbff;background:linear-gradient(145deg,#4e9aff,#e98b95);font-size:25px;font-weight:800;box-shadow:0 10px 26px rgba(0,0,0,.24)}.wl-intro-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:cover}.wl-intro-initials{font-size:27px}.wl-theme-intro .eyebrow{margin:0 0 8px;color:#a9c7ec;font-size:13px;letter-spacing:.02em}.wl-theme-intro h1{margin:0;font-size:clamp(26px,6vw,38px);line-height:1.08;letter-spacing:-.06em}.wl-intro-caption{max-width:300px;margin:13px auto 0;color:#bfcce0;font-size:15px;line-height:1.45}.wl-theme-decor{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.wl-theme-decor i{position:absolute;font-style:normal;opacity:.7}.wl-snow i{color:#dceeff;font-size:22px;animation:wl-snow-fall 3.4s linear infinite}.wl-snow i:nth-child(1){left:12%;top:-8%;animation-delay:-.8s}.wl-snow i:nth-child(2){left:27%;top:-12%;animation-delay:-2.1s;font-size:14px}.wl-snow i:nth-child(3){left:44%;top:-10%;animation-delay:-1.4s}.wl-snow i:nth-child(4){left:61%;top:-15%;animation-delay:-2.7s;font-size:13px}.wl-snow i:nth-child(5){left:79%;top:-6%;animation-delay:-.4s}.wl-snow i:nth-child(6){left:20%;top:-20%;animation-delay:-1.9s;font-size:12px}.wl-snow i:nth-child(7){left:70%;top:-18%;animation-delay:-2.9s}.wl-snow i:nth-child(8){left:89%;top:-15%;animation-delay:-1.1s;font-size:12px}.wl-snow i:nth-child(9){left:52%;top:-24%;animation-delay:-3.1s}.wl-theme-lights{position:absolute;left:8%;right:8%;top:10%;height:8px;display:flex;justify-content:space-between;opacity:.8}.wl-theme-lights i{width:7px;height:7px;border-radius:50%;background:#ffd37b;box-shadow:0 0 14px 3px rgba(255,197,108,.6);animation:wl-light-pulse 1.8s ease-in-out infinite alternate}.wl-theme-lights i:nth-child(2),.wl-theme-lights i:nth-child(4){background:#ff9a8f;box-shadow:0 0 14px 3px rgba(255,119,120,.52);animation-delay:-.7s}.wl-theme-lights i:nth-child(3),.wl-theme-lights i:nth-child(5){background:#9ac9ff;box-shadow:0 0 14px 3px rgba(95,157,255,.5);animation-delay:-1.1s}.wl-balloons i{position:absolute;width:54px;height:68px;border-radius:50% 50% 46% 46%;background:linear-gradient(145deg,#ff9ba6,#b36cf0);box-shadow:inset 9px 0 12px rgba(255,255,255,.18);animation:wl-balloon-float 2.8s ease-in-out infinite}.wl-balloons i:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:170px;background:rgba(204,222,251,.35)}.wl-balloons i:nth-child(1){left:9%;top:18%;transform:scale(.8);animation-delay:-.8s}.wl-balloons i:nth-child(2){right:8%;top:24%;background:linear-gradient(145deg,#75b6ff,#4d7cf4);animation-delay:-1.5s}.wl-balloons i:nth-child(3){left:78%;top:8%;transform:scale(.58);background:linear-gradient(145deg,#ffd77d,#ee8b7f);animation-delay:-.2s}.wl-theme-confetti i{position:absolute;width:8px;height:18px;border-radius:3px;background:#73b7ff;animation:wl-confetti-fall 2.4s linear infinite}.wl-theme-confetti i:nth-child(1){left:16%;top:8%;background:#ffb9c1;transform:rotate(20deg)}.wl-theme-confetti i:nth-child(2){left:32%;top:3%;background:#ffd66f;animation-delay:-.8s;transform:rotate(-25deg)}.wl-theme-confetti i:nth-child(3){left:71%;top:9%;background:#b49aff;animation-delay:-1.6s;transform:rotate(24deg)}.wl-theme-confetti i:nth-child(4){left:83%;top:3%;background:#8ee2c0;animation-delay:-.3s;transform:rotate(-18deg)}.wl-theme-confetti i:nth-child(5){left:8%;top:30%;background:#7fc4ff;animation-delay:-1.2s;transform:rotate(30deg)}.wl-theme-confetti i:nth-child(6){left:92%;top:36%;background:#ffb477;animation-delay:-2s;transform:rotate(-28deg)}.wl-spring i{position:absolute;color:#a6e7c1;font-size:35px;animation:wl-spring-drift 2.5s ease-in-out infinite}.wl-spring i:nth-child(1){left:13%;top:16%;animation-delay:-.6s}.wl-spring i:nth-child(2){left:83%;top:21%;color:#f5c7df;animation-delay:-1.4s;font-size:28px}.wl-spring i:nth-child(3){left:22%;top:73%;color:#f6db8e;animation-delay:-1.9s;font-size:24px}.wl-spring i:nth-child(4){left:77%;top:68%;color:#a7c9f9;animation-delay:-.2s}.wl-gifts i{position:absolute;color:#7ab9ff;font-size:40px;animation:wl-gift-drift 2.8s ease-in-out infinite}.wl-gifts i:nth-child(1){left:13%;top:19%;animation-delay:-.5s}.wl-gifts i:nth-child(2){right:12%;top:68%;color:#f2c27f;font-size:34px;animation-delay:-1.6s}.wl-gifts i:nth-child(3){right:18%;top:14%;color:#c39cff;font-size:22px;animation-delay:-2.1s}@keyframes wl-intro-in{from{opacity:0}to{opacity:1}}@keyframes wl-intro-card-in{from{opacity:0;transform:translateY(13px) scale(.98)}to{opacity:1;transform:none}}@keyframes wl-snow-fall{from{transform:translate3d(0,-8vh,0) rotate(0)}to{transform:translate3d(12vw,112vh,0) rotate(180deg)}}@keyframes wl-light-pulse{from{opacity:.45;transform:scale(.85)}to{opacity:1;transform:scale(1.18)}}@keyframes wl-balloon-float{0%,100%{margin-top:4px}50%{margin-top:-12px}}@keyframes wl-confetti-fall{from{transform:translate3d(0,-12vh,0) rotate(0);opacity:0}15%{opacity:.8}to{transform:translate3d(10vw,110vh,0) rotate(250deg);opacity:0}}@keyframes wl-spring-drift{0%,100%{transform:translateY(4px) rotate(-8deg);opacity:.55}50%{transform:translateY(-10px) rotate(8deg);opacity:.9}}@keyframes wl-gift-drift{0%,100%{transform:translateY(5px) rotate(-7deg);opacity:.5}50%{transform:translateY(-9px) rotate(7deg);opacity:.9}}.wl-editor-enter{animation:wl-editor-in .32s cubic-bezier(.2,.8,.2,1) both}.wl-editor-exit-clone{position:fixed;z-index:8990;margin:0;pointer-events:none;overflow:hidden;transform-origin:top center}.wl-editor-exit-running{animation:wl-editor-out .32s ease both}.wl-occasion-switch{animation:wl-occasion-switch .22s ease both}.wl-save-pulse{animation:wl-save-pulse .38s ease both}.wl-priority-pulse{animation:wl-priority-pulse .36s ease both}@keyframes wl-editor-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-8px) scale(.98)}}@keyframes wl-occasion-switch{from{opacity:.58;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes wl-save-pulse{0%{box-shadow:0 0 0 rgba(90,164,255,0)}45%{box-shadow:0 0 0 5px rgba(90,164,255,.14)}100%{box-shadow:0 0 0 rgba(90,164,255,0)}}@keyframes wl-priority-pulse{0%{transform:scale(1)}45%{transform:scale(1.012);box-shadow:0 0 0 4px rgba(255,200,87,.18)}100%{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.wl-theme-intro,.wl-theme-intro-card,.wl-theme-decor,.wl-theme-lights,.wl-editor-enter,.wl-editor-exit-clone,.wl-occasion-switch,.wl-save-pulse,.wl-priority-pulse{animation:none!important}.wl-theme-decor{display:none}}
