:root {
  color-scheme: dark;
  --ink: #eef2f5;
  --muted: #aeb8c2;
  --line: #52606d;
  --canvas: #26313c;
  --surface: #34414e;
  --surface-raised: #3d4a57;
  --surface-deep: #152737;
  --accent: #6f96c4;
  --accent-soft: rgba(111, 150, 196, .18);
  --danger: #ef7d87;
  --success: #67c793;
  --warning: #e0aa59;
  --radius: 9px;
  --shadow: 0 16px 38px rgba(3, 8, 13, .28);
}

/* Open-Meteo Place Finder */
#app .place-finder-view {
  --place-finder-text-primary:#f4f7fa;
  --place-finder-text-secondary:#aebac6;
  --place-finder-text-muted:#8090a0;
  --place-finder-text-accent:#2f80ed;
  position:absolute;
  z-index:91;
  inset:0 0 var(--app-bottom-strip-height,33px);
  overflow:hidden;
  background:#111c28;
  color:var(--place-finder-text-primary);
  font-family:var(--app-font-family);
}
#app .place-finder-view[hidden] { display:none; }
#app .place-finder-shell { display:grid; grid-template-columns:var(--place-finder-sidebar-width,396px) minmax(0,1fr); height:100%; min-height:0; }
#app .place-finder-form {
  position:relative;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  min-width:0;
  min-height:0;
  border-right:1px solid #304457;
  background:#122131;
  box-shadow:14px 0 34px rgba(0,0,0,.16);
}
#app .place-finder-sidebar-resize-handle { position:absolute; z-index:20; top:0; right:-6px; bottom:0; width:12px; outline:0; cursor:col-resize; touch-action:none; }
#app .place-finder-sidebar-resize-handle::after { position:absolute; top:50%; left:5px; width:2px; height:42px; border-radius:2px; background:rgba(159,180,200,.38); content:""; transform:translateY(-50%); }
#app .place-finder-sidebar-resize-handle:hover::after,
#app .place-finder-sidebar-resize-handle:focus-visible::after,
#app .place-finder-sidebar-resize-handle.is-active::after { background:#4d9cff; box-shadow:0 0 0 3px rgba(77,156,255,.16); }
body.is-resizing-place-finder-sidebar { cursor:col-resize; user-select:none; }
#app .place-finder-sidebar-scroll { min-height:0; overflow:auto; padding:24px 18px 20px; scrollbar-color:#526c84 transparent; scrollbar-width:thin; }
#app .place-finder-sidebar-heading { margin:0 0 18px; }
#app .place-finder-sidebar-heading .place-finder-kicker,
#app .place-finder-results-header .place-finder-eyebrow { display:block; margin-bottom:4px; color:#6eafff; font-size:10px; font-weight:700; letter-spacing:.13em; }
#app .place-finder-sidebar-heading h1 { display:flex; align-items:center; gap:8px; margin:0; font-size:23px; line-height:1.15; }
#app .place-finder-sidebar-heading h1 > span:last-child { font-weight:600; }
#app .place-finder-heading-icon { display:grid; width:20px; height:20px; flex:0 0 20px; place-items:center; color:#6eafff; }
#app .place-finder-heading-icon svg { display:block; width:18px; height:18px; }
#app .place-finder-sidebar-heading p { margin:6px 0 0; color:#9db0c1; font-size:12px; }
#app .place-finder-search-wrap { position:relative; z-index:12; margin-bottom:20px; }
#app .place-finder-search { display:grid; grid-template-columns:31px minmax(0,1fr) 31px; align-items:center; box-sizing:border-box; height:34px; padding:0; border:1px solid #314354; border-radius:8px; background:#182634; color:#aebac6; }
#app .place-finder-search:focus-within { border-color:#2f80ed; }
#app .place-finder-search > [data-icon] { display:grid; width:14px; height:14px; justify-self:center; color:#aebac6; pointer-events:none; place-items:center; }
#app .place-finder-search > [data-icon] svg { display:block; width:14px; height:14px; }
#app .place-finder-search input { min-width:0; height:32px; padding:0; border:0; outline:0; background:transparent; color:#f4f7fa; font-family:inherit; font-size:calc(var(--app-font-size) * .9142857143); font-weight:400; line-height:1; }
#app .place-finder-city-selection { display:flex; min-width:0; align-items:center; gap:5px; overflow:hidden; color:#f4f7fa; font-size:calc(var(--app-font-size) * .9142857143); line-height:1; white-space:nowrap; }
#app .place-finder-city-selection[hidden] { display:none; }
#app .place-finder-city-selection img { width:12px; height:12px; flex:0 0 12px; object-fit:contain; }
#app .place-finder-city-selection strong { overflow:hidden; font:inherit; font-weight:600; text-overflow:ellipsis; }
#app .place-finder-city-selection small { overflow:hidden; color:#aebac6; font:inherit; font-size:inherit!important; line-height:inherit; text-overflow:ellipsis; }
#app .place-finder-search input::placeholder { color:#aebac6; }
#app .place-finder-search button { display:grid; width:30px; height:30px; padding:0; border:0; border-radius:4px; background:transparent; color:#aebac6; cursor:pointer; place-items:center; }
#app .place-finder-search button:hover,#app .place-finder-search button:focus-visible { background:#223241; color:#f4f7fa; outline:1px solid #4e6680; outline-offset:1px; }
#app .place-finder-search button[hidden] { display:none; }
#app .place-finder-search button img { display:block; width:14px; height:14px; object-fit:contain; }
#app .place-finder-city-suggestions { position:absolute; z-index:40; top:38px; right:0; left:0; overflow:hidden; padding:4px; border:1px solid #314354; border-radius:8px; background:#182634; box-shadow:0 12px 28px rgba(0,0,0,.32); }
#app .place-finder-city-suggestions[hidden] { display:none; }
#app .place-finder-city-suggestion { display:grid; grid-template-columns:12px minmax(0,1fr); align-items:center; gap:8px; width:100%; min-height:34px; padding:0 10px; border:0; border-radius:5px; background:transparent; color:#f4f7fa; font-family:inherit; font-size:calc(var(--app-font-size) * .9142857143); font-weight:400; line-height:1; text-align:left; cursor:pointer; }
#app .place-finder-city-suggestion:hover,#app .place-finder-city-suggestion:focus-visible { background:#223241; outline:0; }
#app .place-finder-city-suggestion img { display:block; width:12px; height:12px; object-fit:contain; }
#app .place-finder-city-suggestion span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .place-finder-city-suggestion strong { font:inherit; font-weight:600; }
#app .place-finder-city-suggestion small { color:#aebac6; font:inherit; }
#app .place-finder-form fieldset { position:relative; box-sizing:border-box; min-width:0; margin:0 0 18px; padding:28px 12px 13px; border:1px solid #2c4358; border-radius:9px; background:rgba(21,39,55,.78); }
#app .place-finder-advanced { margin:0 0 18px; border:1px solid #2c4358; border-radius:9px; background:rgba(21,39,55,.78); }
#app .place-finder-advanced summary { display:flex; align-items:center; justify-content:space-between; min-height:38px; padding:0 12px; color:#aebdcc; font-size:10px; font-weight:700; cursor:pointer; list-style:none; }
#app .place-finder-advanced summary::-webkit-details-marker { display:none; }
#app .place-finder-advanced summary::before { margin-right:7px; color:#6eafff; content:"+"; font-size:14px; }
#app .place-finder-advanced[open] summary::before { content:"−"; }
#app .place-finder-advanced summary span { margin-left:auto; color:#6f879c; font-size:9px; font-weight:500; }
#app .place-finder-advanced .place-finder-metric-grid { padding:2px 12px 14px; border-top:1px solid #2c4358; }
#app .place-finder-form legend { position:absolute; top:10px; left:12px; box-sizing:border-box; max-width:calc(100% - 24px); padding:0; overflow:hidden; background:transparent; color:#9fb4c8; font-size:10px; font-weight:700; letter-spacing:.08em; text-overflow:ellipsis; white-space:nowrap; }
#app .place-finder-field-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:end; gap:10px; }
#app .place-finder-field-grid label,
#app .place-finder-date-field,
#app .place-finder-metric-grid > label { display:grid; gap:6px; min-width:0; color:#aebdcc; font-size:10px; }
#app .place-finder-field-label { display:flex; align-items:center; min-width:0; min-height:12px; gap:4px; line-height:1.2; }
#app .place-finder-metric-grid > label > span:first-child { display:flex; min-width:0; flex-wrap:wrap; align-items:baseline; gap:3px; line-height:1.2; }
#app .place-finder-form label small { color:#6f879c; font-size:9px; font-weight:500; }
#app .place-finder-field-grid select,
#app .place-finder-field-grid input { box-sizing:border-box; width:100%; height:33px; padding:0 9px; border:1px solid #35516a; border-radius:6px; outline:0; background:#142638; color:#e8eff5; font:inherit; font-size:11px; color-scheme:dark; }
#app .place-finder-picker { position:relative; min-width:0; }
#app .place-finder-picker > input[type="hidden"] { display:none; }
#app .place-finder-picker-trigger { display:grid; grid-template-columns:15px minmax(0,1fr) 12px; align-items:center; gap:7px; box-sizing:border-box; width:100%; height:33px; padding:0 8px; border:1px solid #35516a; border-radius:6px; background:#142638; color:#e8eff5; font:500 11px/1 var(--font-family,inherit); text-align:left; cursor:pointer; }
#app .place-finder-picker-trigger:hover,#app .place-finder-picker-trigger:focus-visible,#app .place-finder-picker-trigger[aria-expanded="true"] { border-color:#4d9cff; outline:0; background:#172b3e; }
#app .place-finder-picker-trigger-icon,#app .place-finder-picker-option-icon { display:grid; width:15px; height:15px; place-items:center; color:#dce7ef; font-size:13px; }
#app .place-finder-picker-trigger-icon img,#app .place-finder-picker-option-icon img { display:block; width:15px; height:15px; border-radius:50%; object-fit:cover; }
#app .place-finder-country-picker .place-finder-picker-trigger-icon img { width:12.5px; height:12.5px; }
#app .place-finder-picker-trigger-icon svg,#app .place-finder-picker-option-icon svg { display:block; width:14px; height:14px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
#app .place-finder-picker-chevron { width:12px; height:12px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
#app .place-finder-picker-menu { position:absolute; z-index:80; top:calc(100% + 5px); left:0; box-sizing:border-box; min-width:100%; padding:5px; border:1px solid #3d5a73; border-radius:9px; background:#182a3b; box-shadow:0 16px 30px rgba(0,0,0,.38); }
#app .place-finder-picker[data-place-finder-picker="region"] .place-finder-picker-menu { width:176px; }
#app .place-finder-country-picker .place-finder-picker-menu { right:0; left:auto; width:292px; }
#app .place-finder-picker-search { display:grid; grid-template-columns:17px minmax(0,1fr); align-items:center; gap:8px; height:38px; margin:0 0 5px; padding:0 9px; border:1px solid #4d9cff; border-radius:8px; background:#102031; }
#app .place-finder-picker-search svg { width:17px; height:17px; fill:none; stroke:#aebdcc; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
#app .place-finder-picker-search input { width:100%; height:auto; padding:0; border:0; border-radius:0; outline:0; background:transparent; color:#f4f8fb; font:600 11px/1 var(--font-family,inherit); }
#app .place-finder-picker-search input::placeholder { color:#aebdcc; }
#app .place-finder-picker-options { display:grid; max-height:290px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#6b6a66 #24313b; }
#app .place-finder-picker-option { display:grid; grid-template-columns:15px minmax(0,1fr) auto; align-items:center; gap:9px; box-sizing:border-box; width:100%; min-height:34px; padding:0 9px; border:0; border-radius:0; background:transparent; color:#f4f7fa; font:400 12px/1 var(--font-family,inherit); text-align:left; cursor:pointer; }
#app .place-finder-picker-option:hover,#app .place-finder-picker-option:focus-visible,#app .place-finder-picker-option[aria-selected="true"] { outline:0; background:#22394c; }
#app .place-finder-picker-option small { color:#8fa1b0; font-size:10px; font-weight:400; }
#app .place-finder-country-picker .place-finder-picker-option small { margin-right:4px; }
#app .place-finder-picker-all { margin-bottom:0; border-bottom:1px solid #3b5062; font-weight:650; }
#app .place-finder-picker-option[hidden] { display:none; }
#app .place-finder-date-field { position:relative; }
#app .place-finder-date-range { position:relative; }
#app .place-finder-date-field > input[type="hidden"] { display:none; }
#app .place-finder-date-control { display:grid; grid-template-columns:minmax(0,1fr) 15px; align-items:center; box-sizing:border-box; width:100%; height:33px; padding:0 8px; overflow:hidden; border:1px solid #35516a; border-radius:6px; background:#142638; color:#e8eff5; font:inherit; font-size:11px; text-align:left; cursor:pointer; }
#app .place-finder-date-control:hover,#app .place-finder-date-control:focus-visible,#app .place-finder-date-control[aria-expanded="true"] { border-color:#4d9cff; outline:0; background:#172b3e; box-shadow:0 0 0 2px rgba(77,156,255,.12); }
#app .place-finder-date-control svg { width:14px; height:14px; fill:none; stroke:#9fb4c8; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
#app .place-finder-calendar-popover { position:absolute; z-index:100; top:calc(100% + 6px); left:0; box-sizing:border-box; width:238px; padding:10px 11px 11px; border:1px solid #3d5a73; border-radius:13px; background:#182a3b; color:#edf4fa; box-shadow:0 16px 30px rgba(0,0,0,.38); }
#app .place-finder-calendar-popover[hidden] { display:none; }
#app .place-finder-calendar-header { display:grid; grid-template-columns:29px minmax(0,1fr) 29px; align-items:center; margin-bottom:7px; text-align:center; }
#app .place-finder-calendar-header strong { font-size:11px; letter-spacing:-.01em; }
#app .place-finder-calendar-header button { display:grid; width:27px; height:27px; place-items:center; padding:0; border:1px solid #35516a; border-radius:50%; background:#142638; color:#6eafff; cursor:pointer; }
#app .place-finder-calendar-header button:last-child { justify-self:end; }
#app .place-finder-calendar-header button:hover,#app .place-finder-calendar-header button:focus-visible { border-color:#4d9cff; outline:0; background:#172b3e; }
#app .place-finder-calendar-header svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
#app .place-finder-calendar-weekdays,#app .place-finder-calendar-days { display:grid; grid-template-columns:repeat(7,1fr); text-align:center; }
#app .place-finder-calendar-weekdays { margin-bottom:2px; color:#7f93a5; font-size:9px; font-weight:700; }
#app .place-finder-calendar-weekdays span { display:grid; height:23px; place-items:center; }
#app .place-finder-calendar-days { gap:1px 2px; }
#app .place-finder-calendar-day { display:grid; width:27px; height:27px; place-items:center; justify-self:center; padding:0; border:1px solid transparent; border-radius:8px; background:transparent; color:#e8eff5; font:700 10px/1 var(--app-font-family); cursor:pointer; }
#app .place-finder-calendar-day:hover,#app .place-finder-calendar-day:focus-visible { border-color:#4d9cff; outline:0; background:#172b3e; }
#app .place-finder-calendar-day.is-muted { color:#667e93; }
#app .place-finder-calendar-day.is-selected { border-color:#4194f6; background:rgba(42,126,230,.22); color:#fff; }
#app .place-finder-calendar-day.is-in-range { border-radius:3px; background:rgba(42,126,230,.11); }
#app .place-finder-period-block { margin-top:12px; padding:9px 0 10px; border-top:1px solid #334b60; border-bottom:1px solid #334b60; }
#app .place-finder-period-title { display:block; margin-bottom:7px; color:#9fb4c8; font-size:9px; font-weight:700; letter-spacing:.06em; }
#app .place-finder-period { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; }
#app .place-finder-period input,
#app .place-finder-priorities input { position:absolute; opacity:0; pointer-events:none; }
#app .place-finder-period span { display:grid; place-items:center; height:28px; border:1px solid #35516a; border-radius:5px; background:#142638; color:#9eb2c4; font-size:10px; font-weight:700; cursor:pointer; }
#app .place-finder-period input:checked + span { border-color:#4194f6; background:rgba(42,126,230,.22); color:#fff; box-shadow:inset 0 -2px #4194f6; }
#app .place-finder-field-note { margin:8px 0 0; color:#748da3; font-size:9px; line-height:1.4; }
#app .place-finder-metric-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 10px; }
#app .place-finder-metric-grid-single { grid-template-columns:1fr; }
#app .place-finder-number { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; height:32px; overflow:hidden; border:1px solid #35516a; border-radius:6px; background:#142638; }
#app .place-finder-number input { min-width:0; height:30px; padding:0 8px; border:0; outline:0; background:transparent; color:#f3f7fa; font:inherit; font-size:12px; -moz-appearance:textfield; appearance:textfield; }
#app .place-finder-number input::-webkit-outer-spin-button,#app .place-finder-number input::-webkit-inner-spin-button { margin:0; -webkit-appearance:none; appearance:none; }
#app .place-finder-number b { padding-right:8px; color:#7f9ab0; font-size:9px; font-weight:600; }
#app .place-finder-priorities { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; }
#app .place-finder-priorities label { grid-column:span 2; min-width:0; }
#app .place-finder-priorities label:nth-child(4) { grid-column:2 / span 2; }
#app .place-finder-priorities label:nth-child(5) { grid-column:4 / span 2; }
#app .place-finder-priorities span { display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:100%; gap:6px; min-height:29px; padding:0 6px; border:1px solid #35516a; border-radius:6px; background:#142638; color:#aabccc; font-size:10px; white-space:nowrap; cursor:pointer; }
#app .place-finder-priorities i { color:#f8bd3c; font-size:13px; font-style:normal; }
#app .place-finder-priorities i img { display:block; width:13px; height:13px; object-fit:contain; filter:brightness(0) saturate(100%) invert(77%) sepia(80%) saturate(757%) hue-rotate(345deg) brightness(101%) contrast(95%); }
#app .place-finder-priorities input:checked + span { border-color:#4b8ed6; background:#1a3652; color:#fff; }
#app .place-finder-switches { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:13px; }
#app .place-finder-switches label { display:flex; align-items:center; justify-content:space-between; gap:6px; color:#aebdcc; font-size:10px; }
#app .place-finder-switches input { position:absolute; opacity:0; }
#app .place-finder-switches i { position:relative; width:29px; height:16px; border:1px solid #46627b; border-radius:999px; background:#142638; }
#app .place-finder-switches i::after { position:absolute; top:2px; left:2px; width:10px; height:10px; border-radius:50%; background:#8297a9; content:""; transition:.15s ease; }
#app .place-finder-switches input:checked + i { border-color:#348af2; background:#2874d0; }
#app .place-finder-switches input:checked + i::after { left:15px; background:#fff; }
#app .place-finder-form > footer { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:14px 18px; border-top:1px solid #2b4256; background:#112031; box-shadow:0 -12px 24px rgba(7,14,22,.16); }
#app .place-finder-form > footer button { height:38px; border-radius:7px; font:inherit; font-size:11px; font-weight:700; cursor:pointer; }
#app .place-finder-reset { border:1px solid #e0a92d; background:#c9951d; color:#fff; }
#app .place-finder-submit { display:flex; align-items:center; justify-content:center; gap:9px; border:1px solid #4497fa; background:#2d7ddd; color:#fff; box-shadow:0 8px 20px rgba(23,102,201,.25); }
#app .place-finder-submit i { font-size:16px; font-style:normal; }

#app .place-finder-results { display:grid; grid-template-rows:auto auto minmax(0,1fr); min-width:0; min-height:0; padding:24px 20px 12px; background:#111c28; }
#app .place-finder-results-header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:16px; }
#app .place-finder-results-header h2 { display:flex; align-items:baseline; gap:5px; margin:0; font-size:21px; }
#app .place-finder-results-header h2 span { color:#9fb0bf; font-size:15px; font-weight:400; }
#app .place-finder-results-header p { margin:6px 0 0; color:#8298ab; font-size:11px; }
#app .place-finder-results-actions { display:grid; justify-items:end; gap:6px; color:#8298ab; font-size:10px; }
#app .place-finder-header-source { display:flex; align-items:center; text-decoration:none; }
#app .place-finder-header-source img { display:block; width:92px; height:18px; object-fit:contain; }
#app .place-finder-sort-status { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
#app .place-finder-results-actions strong { color:#d9e5ee; font-size:11px; }
#app .place-finder-results-actions button { display:none; height:31px; padding:0 12px; border:1px solid #3b5871; border-radius:6px; background:#172a3c; color:#d5e2ec; font:inherit; }
#app .place-finder-applied { display:flex; align-items:stretch; min-height:68px; margin-bottom:12px; padding:0 10px; overflow:auto; border:1px solid #2e475c; border-radius:9px; background:#152536; scrollbar-width:none; }
#app .place-finder-applied > span { display:grid; grid-template-columns:34px auto; grid-template-rows:1fr 1fr; align-content:center; min-width:160px; padding:12px 20px; border-right:1px solid #2c4356; }
#app .place-finder-applied > span:last-child { border-right:0; }
#app .place-finder-applied i { grid-row:1/3; align-self:center; color:#54a5ff; font-size:24px; font-style:normal; }
#app .place-finder-applied i img { display:block; width:22px; height:22px; object-fit:contain; filter:brightness(0) saturate(100%) invert(60%) sepia(88%) saturate(2311%) hue-rotate(189deg) brightness(99%) contrast(95%); }
#app .place-finder-applied b { align-self:end; color:#eef5fa; font-size:12px; }
#app .place-finder-applied small { align-self:start; margin-top:3px; color:#8096a9; font-size:9px; }
#app .place-finder-summary { display:grid; grid-template-columns:minmax(190px,1.5fr) repeat(7,minmax(100px,1fr)); overflow:hidden; padding:0; }
#app .place-finder-summary > span { grid-template-columns:20px minmax(0,max-content); min-width:0; padding:10px 12px; justify-content:center; text-align:left; }
#app .place-finder-summary i { width:20px; height:20px; }
#app .place-finder-summary i img { width:19px; height:19px; }
#app .place-finder-summary b,#app .place-finder-summary small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .place-finder-summary > .place-finder-summary-country-box { display:flex; align-items:center; justify-content:center; }
#app .place-finder-summary-countries { display:flex; align-self:center; width:100%; height:34px; min-width:0; overflow:auto hidden; padding-bottom:1px; scroll-snap-type:x mandatory; scrollbar-width:none; }
#app .place-finder-summary-countries::-webkit-scrollbar { display:none; }
#app .place-finder-summary-country-page { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,auto); grid-auto-flow:row; flex:0 0 100%; align-content:center; gap:5px 14px; min-width:0; scroll-snap-align:start; }
#app .place-finder-summary-country-page > span { display:flex; align-items:center; gap:5px; min-width:0; }
#app .place-finder-summary-countries img { width:14px; height:14px; border-radius:50%; object-fit:cover; }
#app .place-finder-summary-countries b { color:#eef5fa; font-size:10px; font-weight:600; }
#app .place-finder-results-body { min-height:0; overflow:auto; padding-right:3px; scrollbar-color:#526c84 transparent; scrollbar-width:thin; }
#app .place-finder-results-body::-webkit-scrollbar-corner { background:#111c28; }
#app .place-finder-closest-note { display:flex; align-items:center; gap:10px; box-sizing:border-box; min-width:1120px; min-height:34px; margin-bottom:6px; padding:7px 12px; border:1px solid #8a6b2d; border-radius:7px; background:#2a281e; color:#b8c6d1; font-size:10px; }
#app .place-finder-closest-note strong { color:#f0c65a; font-size:10px; }
#app .place-finder-result-head,
#app .place-finder-result { display:grid; grid-template-columns:minmax(170px,1.25fr) minmax(92px,.65fr) minmax(92px,.65fr) minmax(100px,.7fr) minmax(115px,.8fr) minmax(108px,.72fr) minmax(92px,.62fr) minmax(95px,.66fr) minmax(145px,1fr); gap:10px; align-items:center; }
#app .place-finder-result-head { min-width:1120px; height:34px; padding:0 14px; border:1px solid #36536b; border-radius:9px 9px 0 0; background:#17283a; box-shadow:0 4px 12px rgba(4,10,17,.06); color:#8ea3b5; font-family:Ubuntu,sans-serif; font-size:9px; font-weight:700; letter-spacing:.06em; }
#app .place-finder-result-head > span { display:flex; align-items:center; justify-content:center; min-width:0; height:29px; text-align:center; }
#app .place-finder-table-sort { position:relative; display:flex; align-items:center; justify-content:center; width:100%; min-width:0; height:29px; margin:0; padding:0; border:0; border-radius:4px; background:transparent; color:inherit; font:inherit; letter-spacing:inherit; line-height:1.15; text-align:center; cursor:pointer; transition:color 140ms ease; }
#app .place-finder-table-sort-label { position:absolute; top:50%; left:50%; max-width:calc(100% - 16px); overflow:hidden; transform:translate(-50%,-50%); text-overflow:ellipsis; white-space:nowrap; }
#app .place-finder-table-sort-icon { position:absolute; right:0; display:block; width:7px; height:7px; background:currentColor; opacity:.55; transform:rotate(180deg); transition:transform 140ms ease,opacity 140ms ease; mask:url('../assets/icons/nucleo/ui/fill/arrows/12px_chevron-down.svg') center/contain no-repeat; -webkit-mask:url('../assets/icons/nucleo/ui/fill/arrows/12px_chevron-down.svg') center/contain no-repeat; }
#app .place-finder-table-sort[data-sort-direction="desc"] .place-finder-table-sort-icon { transform:rotate(0deg); }
#app .place-finder-table-sort:hover,#app .place-finder-table-sort:focus-visible,#app .place-finder-table-sort.is-active { color:#4d9cff; }
#app .place-finder-table-sort:hover .place-finder-table-sort-icon,#app .place-finder-table-sort:focus-visible .place-finder-table-sort-icon,#app .place-finder-table-sort.is-active .place-finder-table-sort-icon { opacity:1; }
#app .place-finder-table-sort:focus-visible { outline:1px solid rgba(77,156,255,.48); outline-offset:1px; }
@media (prefers-reduced-motion:reduce) {
  #app .place-finder-table-sort,#app .place-finder-table-sort-icon { transition-duration:.01ms; }
}
#app .place-finder-result { box-sizing:border-box; min-width:1120px; height:70px; min-height:70px; margin-top:0; padding:9px 14px; border:1px solid #36536b; border-top:0; border-radius:0; background:#17283a; box-shadow:none; transition:border-color .15s ease,background .15s ease; }
#app .place-finder-result:last-child { border-radius:0 0 9px 9px; }
#app .place-finder-result:hover { border-color:#4a78a0; background:#192d41; }
#app .place-finder-place { display:grid; grid-template-columns:23px 30px minmax(0,1fr); align-items:center; gap:9px; min-width:0; }
#app .place-finder-rank { display:grid; width:22px; height:22px; border:0; background:transparent; color:#e8f0f6; font-size:10px; font-weight:700; place-items:center; }
#app .place-finder-place-thumb { display:grid; width:30px; height:30px; margin:0; padding:0; border:0; border-radius:50%; place-items:center; background:transparent; cursor:pointer; }
#app .place-finder-place-thumb img { width:28px; height:28px; border-radius:50%; object-fit:cover; box-shadow:0 1px 5px rgba(0,0,0,.16); transition:box-shadow .16s ease-out; }
#app .place-finder-place-thumb:hover img { box-shadow:0 0 0 1px rgba(77,156,255,.38),0 1px 5px rgba(0,0,0,.16); }
#app .place-finder-place-thumb:focus-visible img { box-shadow:0 0 0 1px rgba(77,156,255,.56),0 1px 5px rgba(0,0,0,.16); }
#app .place-finder-place-actions { position:relative; display:grid; width:30px; height:30px; place-items:center; }
#app .place-finder-place-menu { position:absolute; z-index:90; top:calc(100% + 5px); left:0; display:grid; box-sizing:border-box; width:154px; padding:4px; border:1px solid #3d5a73; border-radius:9px; background:#182a3b; box-shadow:0 14px 28px rgba(0,0,0,.38); }
#app .place-finder-place-menu[hidden] { display:none; }
#app .place-finder-place-menu button { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:center; gap:8px; height:32px; padding:0 8px; border:0; border-radius:6px; background:transparent; color:#dce7ef; font:600 11px/1 var(--font-family,inherit); text-align:left; cursor:pointer; }
#app .place-finder-place-menu button:hover,#app .place-finder-place-menu button:focus-visible { outline:0; background:#21384d; color:#fff; }
#app .place-finder-place-menu svg { width:16px; height:16px; fill:none; stroke:#77aff5; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
#app .place-finder-place-menu img { width:16px; height:16px; object-fit:contain; filter:brightness(0) saturate(100%) invert(66%) sepia(65%) saturate(1760%) hue-rotate(185deg) brightness(101%) contrast(92%); }
#app .place-finder-place > span:last-child { display:grid; min-width:0; }
#app .place-finder-place strong { overflow:hidden; color:#f2f7fa; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
#app .place-finder-place small { margin-top:2px; color:#8ea3b5; font-size:10px; }
#app .place-finder-weather,
#app .place-finder-night,
#app .place-finder-sun,
#app .place-finder-daylight,
#app .place-finder-rain,
#app .place-finder-cloud { display:flex; align-items:center; gap:9px; min-width:0; }
#app .place-finder-weather > i,
#app .place-finder-night > i,
#app .place-finder-sun > i,
#app .place-finder-daylight > i,
#app .place-finder-rain > i,
#app .place-finder-cloud > i { color:#f7bd35; font-size:25px; font-style:normal; }
#app .place-finder-weather > i,
#app .place-finder-night > i,
#app .place-finder-sun > i,
#app .place-finder-daylight > i,
#app .place-finder-rain > i,
#app .place-finder-cloud > i { display:grid; width:19px; height:19px; flex:0 0 19px; place-items:center; }
#app .place-finder-weather > i img,
#app .place-finder-sun > i img,
#app .place-finder-daylight > i img { display:block; width:18px; height:18px; object-fit:contain; filter:brightness(0) saturate(100%) invert(79%) sepia(69%) saturate(1159%) hue-rotate(341deg) brightness(103%) contrast(94%); }
#app .place-finder-night > i img { display:block; width:18px; height:18px; object-fit:contain; filter:brightness(0) saturate(100%) invert(60%) sepia(88%) saturate(2311%) hue-rotate(189deg) brightness(99%) contrast(95%); }
#app .place-finder-rain > i img { display:block; width:18px; height:18px; object-fit:contain; filter:brightness(0) saturate(100%) invert(60%) sepia(88%) saturate(2311%) hue-rotate(189deg) brightness(99%) contrast(95%); }
#app .place-finder-cloud > i img { display:block; width:18px; height:18px; object-fit:contain; filter:brightness(0) saturate(100%) invert(60%) sepia(88%) saturate(2311%) hue-rotate(189deg) brightness(99%) contrast(95%); }
#app .place-finder-weather span,
#app .place-finder-night span,
#app .place-finder-sun span,
#app .place-finder-daylight span,
#app .place-finder-rain span,
#app .place-finder-cloud span { display:grid; gap:4px; min-width:0; }
#app .place-finder-weather strong,
#app .place-finder-night strong,
#app .place-finder-sun strong,
#app .place-finder-daylight strong,
#app .place-finder-rain strong,
#app .place-finder-cloud strong { color:#eef4f8; font-size:13px; white-space:nowrap; }
#app .place-finder-weather small,
#app .place-finder-night small,
#app .place-finder-sun small,
#app .place-finder-daylight small,
#app .place-finder-rain small,
#app .place-finder-cloud small { overflow:hidden; color:#879daf; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
#app .place-finder-conditions { display:grid; gap:5px; color:#849aab; font-size:9px; }
#app .place-finder-conditions b { color:#d8e4ec; font-weight:600; }
#app .place-finder-match { display:grid; grid-template-columns:44px max-content 18px; align-items:center; justify-content:space-between; gap:0; min-width:0; }
#app .place-finder-score { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:conic-gradient(#43cf71 calc(var(--match-score)*1%),#284356 0); }
#app .place-finder-score::before { grid-area:1/1; width:32px; height:32px; border-radius:50%; background:#17283a; content:""; }
#app .place-finder-score b { z-index:1; grid-area:1/1; color:#f0f6fa; font-size:9px; }
#app .place-finder-match > span:nth-child(2) { display:grid; gap:4px; min-width:0; }
#app .place-finder-match strong { overflow:hidden; color:#cfdae3; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
#app .place-finder-match small { color:#7990a3; font-size:9px; }
#app .place-finder-match button { border:0; background:transparent; color:#98adbd; font-size:24px; cursor:pointer; }
#app .place-finder-empty { display:grid; place-items:center; align-content:center; min-height:360px; padding:30px; border:1px solid #2b4357; border-radius:9px; background:#152536; text-align:center; }
#app .place-finder-loading { display:grid; gap:6px; min-width:1120px; padding:0 1px 4px 0; }
#app .place-finder-loading-head,
#app .place-finder-loading-row { display:grid; grid-template-columns:minmax(170px,1.25fr) minmax(92px,.65fr) minmax(92px,.65fr) minmax(100px,.7fr) minmax(115px,.8fr) minmax(108px,.72fr) minmax(92px,.62fr) minmax(95px,.66fr) minmax(145px,1fr); align-items:center; gap:10px; box-sizing:border-box; padding:0 14px; border:1px solid #2b4357; }
#app .place-finder-loading-head { height:31px; border-radius:7px; background:#132334; }
#app .place-finder-loading-row { height:70px; border-color:#36536b; border-radius:9px; background:#17283a; }
#app .place-finder-loading-head > span,
#app .place-finder-loading-row > span { display:flex; align-items:center; justify-content:center; min-width:0; }
#app .place-finder-loading-head i,
#app .place-finder-loading-row i { display:block; width:62%; height:7px; border-radius:999px; background:linear-gradient(90deg,#20364a 0%,#31516c 48%,#20364a 100%); background-size:200% 100%; animation:place-finder-shimmer 1.2s ease-in-out infinite; animation-delay:calc(var(--skeleton-row,0) * 35ms); }
#app .place-finder-loading-head i { width:52%; height:6px; opacity:.68; }
#app .place-finder-loading-row > span:first-child { justify-content:flex-start; }
#app .place-finder-loading-row > span:first-child i { width:76%; height:10px; }
#app .place-finder-loading-row > span:last-child i { width:72%; }
#app .place-finder-empty strong { font-size:14px; }
#app .place-finder-empty p { max-width:390px; margin:6px 0 16px; color:#8399ab; font-size:10px; line-height:1.5; }
@media (prefers-reduced-motion:reduce) { #app .place-finder-loading-head i,#app .place-finder-loading-row i { animation:none; } }
#app .place-finder-empty > span { display:grid; place-items:center; width:42px; height:42px; margin-bottom:12px; border:1px solid #47657d; border-radius:50%; color:#68aaff; font-size:23px; }
#app .place-finder-empty button { height:32px; padding:0 14px; border:1px solid #438fe3; border-radius:6px; background:#226dca; color:#fff; font:inherit; font-size:10px; }

/* Keep the Finder's type hierarchy proportional to the global app font-size preference. */
#app .place-finder-view { font-size:var(--app-font-size); font-weight:var(--app-font-weight); }
#app .place-finder-advanced summary span,
#app .place-finder-form label small,
#app .place-finder-period-title,
#app .place-finder-field-note,
#app .place-finder-number b,
#app .place-finder-applied small,
#app .place-finder-result-head,
#app .place-finder-weather small,
#app .place-finder-night small,
#app .place-finder-sun small,
#app .place-finder-daylight small,
#app .place-finder-rain small,
#app .place-finder-conditions,
#app .place-finder-score b,
#app .place-finder-match small { font-size:calc(var(--app-font-size) * .6428571429); }
#app .place-finder-sidebar-heading .place-finder-kicker,
#app .place-finder-results-header .place-finder-eyebrow,
#app .place-finder-advanced summary,
#app .place-finder-form legend,
#app .place-finder-field-grid label,
#app .place-finder-date-field,
#app .place-finder-metric-grid > label,
#app .place-finder-picker-option small,
#app .place-finder-period span,
#app .place-finder-priorities span,
#app .place-finder-switches label,
#app .place-finder-results-actions,
#app .place-finder-place small,
#app .place-finder-match strong,
#app .place-finder-empty p,
#app .place-finder-empty button { font-size:calc(var(--app-font-size) * .7142857143); }
#app .place-finder-picker-trigger,
#app .place-finder-picker-search input,
#app .place-finder-date-control,
#app .place-finder-form > footer button,
#app .place-finder-results-header p,
#app .place-finder-results-actions strong { font-size:calc(var(--app-font-size) * .7857142857); }
#app .place-finder-sidebar-heading p,
#app .place-finder-search input,
#app .place-finder-picker-option,
#app .place-finder-field-grid input,
#app .place-finder-number input,
#app .place-finder-applied b { font-size:calc(var(--app-font-size) * .8571428571); }
#app .place-finder-place strong,
#app .place-finder-weather strong,
#app .place-finder-night strong,
#app .place-finder-sun strong,
#app .place-finder-daylight strong,
#app .place-finder-rain strong { font-size:calc(var(--app-font-size) * .9285714286); }
#app .place-finder-loading strong,
#app .place-finder-empty strong { font-size:var(--app-font-size); }
#app .place-finder-results-header h2 span { font-size:calc(var(--app-font-size) * 1.0714285714); }
#app .place-finder-results-header h2 { font-size:calc(var(--app-font-size) * 1.5); }
#app .place-finder-sidebar-heading h1 { font-size:calc(var(--app-font-size) * 1.6428571429); }

/* Match the Finder's text hierarchy to the Map workspace palette. */
#app .place-finder-sidebar-heading .place-finder-kicker,
#app .place-finder-results-header .place-finder-eyebrow,
#app .place-finder-heading-icon,
#app .place-finder-advanced summary::before,
#app .place-finder-calendar-header button,
#app .place-finder-applied i,
#app .place-finder-empty > span { color:var(--place-finder-text-accent); }
#app .place-finder-sidebar-heading p,
#app .place-finder-advanced summary,
#app .place-finder-form legend,
#app .place-finder-field-grid label,
#app .place-finder-date-field,
#app .place-finder-metric-grid > label,
#app .place-finder-picker-search svg,
#app .place-finder-picker-search input::placeholder,
#app .place-finder-date-control svg,
#app .place-finder-period-title,
#app .place-finder-period span,
#app .place-finder-priorities span,
#app .place-finder-switches label,
#app .place-finder-results-header h2 span,
#app .place-finder-results-actions strong,
#app .place-finder-place small,
#app .place-finder-conditions b,
#app .place-finder-match strong { color:var(--place-finder-text-secondary); }
#app .place-finder-search,
#app .place-finder-search button,
#app .place-finder-advanced summary span,
#app .place-finder-form label small,
#app .place-finder-picker-option small,
#app .place-finder-calendar-weekdays,
#app .place-finder-calendar-day.is-muted,
#app .place-finder-field-note,
#app .place-finder-number b,
#app .place-finder-results-header p,
#app .place-finder-results-actions,
#app .place-finder-applied small,
#app .place-finder-result-head,
#app .place-finder-weather small,
#app .place-finder-night small,
#app .place-finder-sun small,
#app .place-finder-daylight small,
#app .place-finder-rain small,
#app .place-finder-cloud small,
#app .place-finder-conditions,
#app .place-finder-match small,
#app .place-finder-match button,
#app .place-finder-empty p { color:var(--place-finder-text-muted); }
#app .place-finder-search input,
#app .place-finder-field-grid select,
#app .place-finder-field-grid input,
#app .place-finder-picker-trigger,
#app .place-finder-picker-trigger-icon,
#app .place-finder-picker-option-icon,
#app .place-finder-picker-search input,
#app .place-finder-picker-option,
#app .place-finder-date-control,
#app .place-finder-calendar-popover,
#app .place-finder-calendar-day,
#app .place-finder-number input,
#app .place-finder-applied b,
#app .place-finder-summary-countries b,
#app .place-finder-rank,
#app .place-finder-place strong,
#app .place-finder-weather strong,
#app .place-finder-night strong,
#app .place-finder-sun strong,
#app .place-finder-daylight strong,
#app .place-finder-rain strong,
#app .place-finder-cloud strong,
#app .place-finder-score b { color:var(--place-finder-text-primary); }
#app .place-finder-error > span { border-color:#a55a60; color:#ff8a91; }
@keyframes place-finder-spin { to { transform:rotate(360deg); } }
@keyframes place-finder-shimmer { 0% { background-position:100% 0; } 100% { background-position:-100% 0; } }

@media (max-width:1120px) {
  #app .place-finder-shell { grid-template-columns:var(--place-finder-sidebar-width,396px) minmax(0,1fr); }
  #app .place-finder-result-head,
  #app .place-finder-result { grid-template-columns:minmax(180px,1.25fr) 100px 100px 105px 120px 90px 160px; min-width:950px; }
  #app .place-finder-result-head > span:nth-child(7),
  #app .place-finder-conditions { display:none; }
}
@media (max-width:820px) {
  #app .place-finder-shell { display:block; position:relative; }
  #app .place-finder-form { position:absolute; z-index:5; inset:0 auto 0 0; width:min(340px,92vw); transform:translateX(-105%); transition:transform .18s ease; }
  #app .place-finder-sidebar-resize-handle { display:none; }
  #app .place-finder-filters-open .place-finder-form { transform:translateX(0); box-shadow:25px 0 60px rgba(0,0,0,.45); }
  #app .place-finder-results { box-sizing:border-box; height:100%; padding:18px 14px 10px; }
  #app .place-finder-results-actions button { display:block; }
  #app .place-finder-results-header { align-items:flex-start; }
  #app .place-finder-applied { min-height:61px; }
  #app .place-finder-applied > span { min-width:142px; padding:9px 14px; }
}
@media (max-width:560px) {
  #app .place-finder-results-header { display:grid; gap:10px; }
  #app .place-finder-results-header h2 { font-size:18px; }
  #app .place-finder-results-actions { justify-items:stretch; }
  #app .place-finder-header-source { justify-content:flex-end; }
  #app .place-finder-sort-status { justify-content:space-between; }
  #app .place-finder-result-head { display:none; }
  #app .place-finder-result { grid-template-columns:minmax(185px,1fr) 112px 112px 165px; min-width:650px; }
  #app .place-finder-result .place-finder-night,
  #app .place-finder-result .place-finder-daylight,
  #app .place-finder-result .place-finder-rain,
  #app .place-finder-result .place-finder-conditions { display:none; }
  #app .place-finder-result { height:70px; min-height:70px; }
}

html, body { background:#101d29; }
body {
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  color: var(--ink);
}
button, input, select, textarea { font: inherit; }

/* Nucleo catalogue + library API glyphs default to white on the dark slate UI.
   Trailing slash after nucleo/ avoids photo placeholders like nucleo-place-thumbnail.svg.
   Nested /assets/icons/nucleo/** is gitignored and not deployed — production UI must use
   /api/nucleo-library-assets/ (R2). Keep both selectors so local catalogue paths still whiten.
   Exceptions: Nucleo picker flag/custom previews keep natural colour (see .nucleo-icon-preview.is-*).
   Coloured hearts/stars/pins that are not Nucleo <img> assets (data-icon, map marker data-URLs) are unaffected. */
img[src*="assets/icons/nucleo/"],
img[src*="assets/icons/nucleo-"],
img[src*="/api/nucleo-library-assets/"] {
  filter: brightness(0) invert(1);
}

.button,
.icon-button,
.country-picker-trigger,
.search-box input,
.toolbar-select,
.date-picker-trigger {
  border-color: #596775;
  background: #35424f;
  color: var(--ink);
  box-shadow: inset 0 1px rgba(255, 255, 255, .025);
}

.button:hover,
.icon-button:hover,
.country-picker-trigger:hover,
.country-picker-trigger:focus-visible {
  border-color: #7c8b99;
  background: #414e5b;
}

.button-primary {
  border-color: #789bc2;
  background: #6287b2;
  color: #fff;
}

.button-primary:hover { border-color: #8aa9cc; background: #7195bf; }

.button:focus-visible,
.icon-button:focus-visible,
.nav-link:focus-visible,
.filter-chip:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #86a9d0;
  outline-offset: 2px;
}

.toolbar {
  min-height: 70px;
  padding: 12px 18px;
  border-color: #4c5a67;
  background: #2b3742;
}

.search-box input::placeholder { color: #aeb8c2; }
.search-box kbd { color: #b8c2cb; }

.country-picker-menu,
.autocomplete-menu,
.date-picker-popover {
  border-color: #62717f;
  background: #35424f;
  box-shadow: var(--shadow);
}

.autocomplete-option {
  border-bottom-color: #4f5d69;
  background: #35424f;
  color: var(--ink);
}

.autocomplete-option:hover,
.autocomplete-option:focus-visible {
  background: #414e5b;
  color: #f5f7f9;
}

.autocomplete-copy strong { color: #f5f7f9; }
.autocomplete-country-flag { width:18px; height:18px; flex:0 0 18px; border-radius:50%; object-fit:cover; }
.autocomplete-copy .place-subtitle,
.autocomplete-country,
.autocomplete-category { color: #b8c2cb; }
.autocomplete-category { background: #2b3742; }

.country-picker-search,
.country-picker-search input {
  border-color: #52606d;
  background: transparent;
  color: var(--ink);
}

.country-option { color: var(--ink); }
.country-option:hover,
.country-option:focus-visible,
.country-option[aria-selected="true"] {
  background: rgba(111, 150, 196, .19);
  color: #c9dcf2;
}

/* Keep toolbar filter menus compact, matching place context menus (~30px). */
.toolbar-picker .country-picker-search input { font-size: 11px; }
.toolbar-picker .country-option {
  min-height: 30px;
  gap: 6px;
  padding: 0 8px;
  border-radius: 6px;
}
.toolbar-picker .country-option > span:last-child {
  font-size: 12px;
  font-weight: 550;
}

.workspace { background: #18232d; }

.map-fallback { background: #111c26; }
.map-fallback::before {
  background:
    repeating-linear-gradient(20deg, transparent 0 39px, rgba(153, 168, 181, .22) 40px 42px, transparent 43px 79px),
    repeating-linear-gradient(108deg, transparent 0 59px, rgba(129, 145, 159, .18) 60px 63px, transparent 64px 116px);
}
.map-fallback::after {
  border-color: rgba(139, 158, 174, .18);
  background: rgba(45, 64, 79, .88);
}
.map-label { color: #c2ccd5; }

.saved-panel {
  border-color: #53616e;
  background: #34414e;
}

.panel-heading {
  border-color: #596775;
  background: #3b4855;
}

.panel-heading { padding: 16px 16px 13px; }
.panel-heading h2 { color: #f5f7f9; font-weight: 700; }
.panel-heading span { color: #b5c0ca; }

.filter-bar {
  gap: 6px;
  padding: 9px 12px;
  border-color: #596775;
  background: #34414e;
}

.filter-chip {
  min-height: 29px;
  border-color: #657380;
  border-radius: 8px;
  background: #3d4a57;
  color: #d3dae0;
  font-size: 11px;
}

.filter-chip:hover,
.filter-chip.active {
  border-color: #83a3c6;
  background: rgba(111, 150, 196, .2);
  color: #e1edf9;
}

.place-row {
  min-height: 74px;
  padding: 9px 12px;
  border-color: #596775;
  background: #34414e;
}
.place-row:focus,
.place-row:focus-visible { outline: 0; }
.place-row:hover,
.place-row.selected { background: #414f5c; }
.place-thumb { width: 54px; height: 54px; border: 0; border-radius: 8px; outline: 0; box-shadow: none; background: #111d29; object-fit: cover; }
.place-thumb-wrap { display: block; overflow: hidden; border-radius: 8px; background: #111d29; }
.place-title { color: #f4f6f8; font-size: 13px; font-weight: 650; }
.place-subtitle,
.place-meta { color: #b5c0ca; }
.place-rating { color: #e0aa59; }

.drawer,
.modal,
.location-consent,
.weather-placeholder {
  border: 1px solid #62717f;
  background: #34414e;
  color: var(--ink);
  box-shadow: var(--shadow);
}

.drawer-address,
.info-item,
.modal p,
.form-grid label,
.drawer-minimise-button { color: #b9c3cc; }

.settings-modal { width:min(100%,520px); border-color:#314354; background:#111d29; color:#f4f7fa; zoom:var(--app-display-zoom,1); }
.settings-modal h2 { color:#f4f7fa; }
.font-settings-modal {
  width:min(100%,480px);
  padding:14px;
  overflow:auto;
  border:1px solid #314354;
  background:#111d29;
  color:#f4f7fa;
  box-shadow:0 16px 34px rgba(0,0,0,.35);
  zoom:var(--app-display-zoom,1);
}
.font-settings-modal > h2 { margin:0; color:#f4f7fa; font-size:15px; font-weight:600; letter-spacing:-.02em; }
.font-settings-modal .settings-section { margin-top:10px; }
.font-settings-modal .form-grid { gap:8px; }
.font-settings-modal .form-grid label { gap:4px; color:#aebac6; font-size:10px; }
.font-settings-modal .settings-font-picker { gap:6px; }
.font-settings-modal .settings-font-picker h3 { gap:6px; color:#f4f7fa; font-size:12px; font-weight:650; }
.font-settings-modal .settings-font-picker h3 span { font-size:13px; }
.font-settings-modal .settings-font-grid { gap:5px 7px; }
.font-settings-modal .settings-font-choice { min-height:28px; gap:7px; padding:0 8px; border-radius:7px; font-size:11px; }
.font-settings-modal .settings-font-radio { width:12px; height:12px; flex:0 0 12px; }
.font-settings-modal .settings-font-choice[aria-checked="true"] .settings-font-radio::after { width:6px; height:6px; }
.font-settings-modal .settings-font-choice em { font-size:8px; }
.font-settings-modal .settings-type-grid { gap:8px; }
.font-settings-modal .settings-range-control { min-height:28px; padding:0 8px; border-radius:7px; }
.font-settings-modal .settings-range-control output { font-size:11px; }
.font-settings-modal .settings-range-control input[type="range"] { width:100%; height:14px; min-height:0; margin:0; padding:0; appearance:none; background:transparent; cursor:pointer; }
.font-settings-modal .settings-range-control input[type="range"]::-webkit-slider-runnable-track { height:5px; border-radius:99px; background:linear-gradient(90deg,#7097c0 0 var(--settings-range-progress,0%),#43586b var(--settings-range-progress,0%) 100%); }
.font-settings-modal .settings-range-control input[type="range"]::-moz-range-track { height:5px; border-radius:99px; background:linear-gradient(90deg,#7097c0 0 var(--settings-range-progress,0%),#43586b var(--settings-range-progress,0%) 100%); }
.font-settings-modal .settings-range-control input[type="range"]::-webkit-slider-thumb { width:11px; height:11px; margin-top:-3px; border:2px solid #bdd3e8; border-radius:50%; appearance:none; background:#7199c2; box-shadow:0 1px 5px rgba(0,0,0,.35); }
.font-settings-modal .settings-range-control input[type="range"]::-moz-range-thumb { width:11px; height:11px; border:2px solid #bdd3e8; border-radius:50%; background:#7199c2; box-shadow:0 1px 5px rgba(0,0,0,.35); }
.font-settings-modal .settings-range-control input[type="range"]:focus-visible { outline:0; }
.font-settings-modal .modal-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.font-settings-modal .modal-actions .button { min-height:28px; padding:0 10px; border-radius:7px; font-size:11px; }
.font-settings-modal .modal-actions .button img { width:13px; height:13px; }
.settings-modal .form-grid label,
.settings-modal .settings-section label { color:#aebac6; }
.settings-modal .form-grid input,
.settings-modal .form-grid textarea,
.settings-modal .form-grid select,
.settings-modal .modal-title-input,
.settings-modal .category-add-row input { border-color:#314354; background:#182634; color:#f4f7fa; }
.settings-modal .form-grid input::placeholder,
.settings-modal .form-grid textarea::placeholder,
.settings-modal .category-add-row input::placeholder { color:#aebac6; }
.settings-modal .form-grid input:focus,
.settings-modal .form-grid textarea:focus,
.settings-modal .form-grid select:focus,
.settings-modal .category-add-row input:focus { border-color:#2f80ed; outline:0; }
.settings-modal .place-meta { color:#aebac6; }
.settings-modal .button { border-color:#314354; background:#182634; color:#f4f7fa; }
.settings-modal .button:hover,
.settings-modal .button:focus-visible { border-color:#4e6680; background:#223241; color:#fff; outline:0; }
.settings-modal .button.button-primary { border-color:#2f80ed; background:#2f80ed; color:#fff; }
.settings-modal .button.button-primary:hover,
.settings-modal .button.button-primary:focus-visible { border-color:#3c8cf2; background:#256fcb; }
.custom-photo-url-modal { width:min(100%,360px); padding:14px; zoom:var(--app-display-zoom,1); }
.custom-photo-url-modal > h2 { font-size:16px; }
.custom-photo-url-modal .form-grid { gap:8px; }
.custom-photo-url-modal .custom-photo-url-hint { margin:0; color:#8fa3b5; font:400 10px/1.3 "Ubuntu",system-ui,sans-serif; }
.custom-photo-url-modal .form-grid label { gap:4px; font-size:10px; }
.custom-photo-url-modal .form-grid input { min-height:31px; padding:0 9px; font-size:10px; }
.custom-photo-url-modal .modal-actions { gap:6px; margin-top:8px; }
.custom-photo-url-modal .modal-actions .button { min-height:28px; padding:0 10px; font-size:11px; }
.edit-place-details-modal { width:min(100%,572px); min-height:359px; zoom:var(--app-display-zoom,1); }
.edit-place-details-modal { padding:14px; }
.edit-place-details-modal > h2 { font-size:0; }
.edit-place-details-modal > h2::after { content:"Edit Category"; font-size:16px; }
.edit-place-details-modal > p,
.edit-place-details-modal .form-grid > label:first-child { display:none; }
.edit-place-details-modal .form-grid { gap:12px; }
.edit-place-details-modal .modal-actions { gap:6px; margin-top:10px; }
.edit-place-details-modal .modal-actions .button { min-height:28px; padding:0 10px; font-size:11px; }
.edit-place-category-picker { min-width:0; margin:10px 0 0; padding:0; border:0; }
.edit-place-category-picker legend { margin-bottom:5px; padding:0; color:#aebac6; font-size:11px; font-weight:600; }
.edit-place-category-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.edit-place-category-option { display:flex; min-width:0; min-height:30px; align-items:center; gap:6px; padding:0 7px; border:1px solid #314354; border-radius:6px; background:#182634; color:#f4f7fa; font:600 10px/1 "Ubuntu",system-ui,sans-serif; text-align:left; cursor:pointer; }
.edit-place-category-option img,.edit-place-category-option .category-type-icon { width:14px; height:14px; flex:0 0 14px; display:grid; place-items:center; object-fit:contain; filter:brightness(0) invert(1); }
.edit-place-category-option .category-type-icon .material-icon,.edit-place-category-option .category-type-icon .icon-svg { width:14px; height:14px; font-size:14px; }
.edit-place-category-search-wrap { position:relative; margin:0 0 10px; }
.edit-place-category-search-wrap > [data-icon] { position:absolute; z-index:1; top:50%; left:9px; width:10px; height:10px; color:#aebac6; pointer-events:none; transform:translateY(-50%); }
.edit-place-category-search-wrap > [data-icon] .icon-svg { width:10px; height:10px; }
.edit-place-category-picker .edit-place-category-search { width:100%; min-height:31px; height:31px; box-sizing:border-box; margin:0; padding:0 9px 0 26px; border:1px solid #314354; border-radius:7px; background:#182634; color:#f4f7fa; font-size:11px; }
.edit-place-category-add { justify-content:center; color:#aebac6; }
.edit-place-category-add-icon,.edit-place-category-add-icon .icon-svg { width:10px; height:10px; font-size:10px; line-height:1; }
.edit-place-category-option span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.edit-place-category-option:hover,.edit-place-category-option:focus-visible { border-color:#4e6680; background:#223241; outline:0; }
.edit-place-category-option.is-selected { border-color:#2f80ed; background:#1f3a57; box-shadow:0 0 0 1px rgba(47,128,237,.18); }
.edit-place-category-input { display:none; }
.category-settings-modal { position:relative; display:grid; grid-template-rows:auto auto auto minmax(0,1fr); width:min(1000px,calc(100vw - 24px)); min-width:0; height:min(74.1125vh,802px); min-height:0; max-height:min(74.1125vh,802px); padding:18px; overflow:hidden!important; zoom:var(--app-display-zoom,1); }
.category-settings-modal > h2 { padding-right:34px; font-size:16px; }
.category-settings-close { position:absolute; top:9px; right:9px; width:28px; min-height:28px; border-color:#314354; border-radius:6px; background:#182634; color:#f4f7fa; font-size:18px; font-weight:400; line-height:1; }
.category-settings-close:hover,.category-settings-close:focus-visible { border-color:#4e6680; background:#223241; outline:0; }
.category-settings-tabs { display:flex; gap:6px; margin:10px 0 0; }
.category-settings-tab { min-height:28px; padding:0 12px; border:1px solid #314354; border-radius:999px; background:#182634; color:#aebac6; font:600 11px/1 "Ubuntu",system-ui,sans-serif; cursor:pointer; }
.category-settings-tab:hover,.category-settings-tab:focus-visible { border-color:#4e6680; background:#223241; color:#f4f7fa; outline:0; }
.category-settings-tab.is-active { border-color:#2f80ed; background:rgba(47,128,237,.18); color:#e8f2ff; }
.category-settings-modal [data-category-settings-panel][hidden] { display:none!important; }
.category-settings-search-wrap { margin:10px 0; }
.category-settings-modal .category-settings-search { width:100%; min-height:31px; height:31px; box-sizing:border-box; margin:0; padding:0 9px 0 26px; border:1px solid #314354; border-radius:7px; background:#182634; color:#f4f7fa; font-size:11px; }
.settings-tag-name { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.settings-tag-count { margin-left:auto; flex:0 0 auto; color:#7f8d99; font:600 10px/1 "Ubuntu",system-ui,sans-serif; }
.settings-tags-empty { display:grid; gap:6px; place-items:center; min-height:180px; padding:24px; border:1px dashed #314354; border-radius:10px; color:#aebac6; text-align:center; }
.settings-tags-empty p { margin:0; color:#f4f7fa; font:600 13px/1.2 "Ubuntu",system-ui,sans-serif; }
.settings-tags-empty small { color:#7f8d99; font:500 11px/1.35 "Ubuntu",system-ui,sans-serif; }
.settings-category-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; align-content:start; min-height:0; margin:0; overflow-y:auto; }
.settings-category-option { position:relative; display:flex; box-sizing:border-box; min-width:0; align-items:center; align-self:start; gap:6px; min-height:30px; height:30px; max-height:30px; padding:0 7px; border:1px solid #314354; border-radius:6px; background:#182634; color:#f4f7fa; font:600 10px/1 "Ubuntu",system-ui,sans-serif; }
.settings-category-option[data-category-settings-option] { border-color:var(--category-colour); background:var(--category-colour); color:#fff; }
.settings-category-option[data-category-settings-option]:hover { border-color:#fff; background:var(--category-colour); }
.category-settings-modal .settings-category-option[hidden] { display:none!important; }
.settings-category-option img,.settings-category-option .category-type-icon { width:14px; height:14px; flex:0 0 14px; display:grid; place-items:center; filter:brightness(0) invert(1); }
.category-type-icon.is-country-flag-icon,.category-type-icon.is-country-flag-icon img { filter:none!important; }
.category-type-icon.is-country-flag-icon img { border-radius:50%; object-fit:cover!important; }
.settings-category-option .category-type-icon .material-icon,.settings-category-option .category-type-icon .icon-svg { width:14px; height:14px; font-size:14px; }
.settings-category-option > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.settings-category-icon-button { display:grid; width:20px; height:20px; padding:0; border:0; border-radius:4px; background:transparent; place-items:center; }
.settings-category-icon-button:hover,.settings-category-icon-button:focus-visible { background:#223241; outline:0; }
.settings-category-menu { position:absolute; z-index:8; top:calc(100% + 6px); right:auto; bottom:auto; left:7px; display:grid; min-width:143.5px; padding:4px; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.35); }
/* Match Categories & Tags chip label type (.settings-category-option: 600 10px Ubuntu). */
.category-settings-modal .settings-category-menu > button,
.settings-category-menu > button,
.settings-category-menu > label { display:flex; align-items:center; gap:9px; width:100%; min-height:27.75px; padding:0 10px; border:0; border-radius:6px; box-sizing:border-box; background:transparent; color:#f4f7fa; font-family:"Ubuntu",system-ui,sans-serif; font-size:10px; font-weight:600; line-height:1; text-align:left; cursor:pointer; }
.settings-category-menu button [data-icon],.settings-category-menu label [data-icon] { display:inline-grid; width:15px; height:15px; flex:0 0 15px; place-items:center; overflow:hidden; }
.settings-category-menu button [data-icon] .icon-svg,.settings-category-menu label [data-icon] .icon-svg { width:15px; height:15px; display:block; }
.settings-category-menu-divider { height:1px; margin:0 3px; background:rgba(174,186,198,.14); }
.settings-category-menu .settings-category-menu-remove { margin-top:0; border-radius:0 0 6px 6px; }
.settings-category-menu button:hover,.settings-category-menu button:focus-visible,.settings-category-menu label:hover,.settings-category-menu label:focus-within { outline:0; background:#223241; color:#fff; }
.settings-category-colour-control > span:nth-child(2) { flex:1; }
.settings-category-colour-swatch { width:14px; height:14px; flex:0 0 14px; border:1px solid rgba(255,255,255,.7); border-radius:50%; background:var(--category-colour); box-shadow:0 0 0 2px rgba(0,0,0,.14); }
.category-colour-modal { width:min(430px,calc(100vw - 32px)); padding:0; overflow:hidden; border:1px solid #385066; border-radius:18px; background:#132433; box-shadow:0 24px 64px rgba(0,0,0,.48),0 0 0 1px rgba(47,128,237,.08); }
.category-colour-modal form { display:grid; gap:16px; padding:20px; }
.category-colour-header { display:flex; align-items:center; gap:11px; }
.category-colour-header-icon { display:grid; width:34px; height:34px; flex:0 0 34px; border:1px solid rgba(92,160,255,.34); border-radius:11px; background:rgba(47,128,237,.14); color:#72adff; place-items:center; }
.category-colour-header-icon .icon-svg { width:18px; height:18px; }
.category-colour-header h2 { margin:0; color:#f4f7fa; font:700 16px/1.15 "Ubuntu",system-ui,sans-serif; }
.category-colour-header p { margin:4px 0 0; color:#91a3b3; font:500 11px/1 "Ubuntu",system-ui,sans-serif; }
.category-colour-preview { position:relative; display:flex; min-height:92px; align-items:center; justify-content:center; gap:10px; overflow:hidden; border:1px solid rgba(255,255,255,.18); border-radius:14px; background:var(--category-colour-preview); color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.15); }
.category-colour-preview::after { position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,.12),transparent 48%,rgba(0,0,0,.12)); content:""; pointer-events:none; }
.category-colour-preview > span,.category-colour-preview > strong { position:relative; z-index:1; }
.category-colour-preview > span { display:grid; width:28px; height:28px; place-items:center; filter:brightness(0) invert(1); }
.category-colour-preview > span img,.category-colour-preview > span .icon-svg { width:24px; height:24px; }
.category-colour-preview strong { font:700 18px/1 "Ubuntu",system-ui,sans-serif; letter-spacing:.06em; text-shadow:0 1px 3px rgba(0,0,0,.3); }
.category-colour-controls { display:grid; gap:12px; padding:14px; border:1px solid #30475b; border-radius:13px; background:#182c3c; }
.category-colour-controls label { display:grid; grid-template-columns:76px minmax(0,1fr); align-items:center; gap:12px; color:#c9d4dd; font:600 11px/1 "Ubuntu",system-ui,sans-serif; }
.category-colour-slider { width:100%; height:16px; margin:0; appearance:none; border:0; border-radius:999px; outline:0; background:#263c4e; cursor:pointer; }
.category-colour-hue { background:linear-gradient(90deg,#f04444,#f2db42,#45d166,#42d9e6,#4779f2,#a34cf2,#ef4ba2,#f04444); }
.category-colour-saturation { background:linear-gradient(90deg,#718191,var(--category-colour-preview)); }
.category-colour-lightness { background:linear-gradient(90deg,#07121c,var(--category-colour-preview),#eef6ff); }
.category-colour-slider::-webkit-slider-thumb { width:16px; height:16px; appearance:none; border:2px solid #fff; border-radius:50%; background:#2f80ed; box-shadow:0 1px 5px rgba(0,0,0,.45); }
.category-colour-slider::-moz-range-thumb { width:12px; height:12px; border:2px solid #fff; border-radius:50%; background:#2f80ed; box-shadow:0 1px 5px rgba(0,0,0,.45); }
.category-colour-palette { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:6px; }
.category-colour-palette button { aspect-ratio:1; min-width:0; padding:0; border:1px solid rgba(255,255,255,.24); border-radius:8px; background:var(--palette-colour); box-shadow:inset 0 1px 0 rgba(255,255,255,.14); cursor:pointer; }
.category-colour-palette button:hover,.category-colour-palette button:focus-visible { border-color:#fff; outline:2px solid rgba(47,128,237,.55); outline-offset:2px; }
.category-colour-hex { display:flex; align-items:center; justify-content:space-between; gap:14px; color:#c9d4dd; font:600 11px/1 "Ubuntu",system-ui,sans-serif; }
.category-colour-hex input { width:112px; height:34px; box-sizing:border-box; border:1px solid #385066; border-radius:9px; background:#0f1e2b; color:#f4f7fa; font:700 12px/1 "Ubuntu Mono",ui-monospace,monospace; letter-spacing:.06em; text-align:center; text-transform:uppercase; }
.category-colour-hex input:focus { border-color:#4b9aff; outline:2px solid rgba(47,128,237,.22); }
.category-colour-modal .modal-actions { margin:0; padding-top:2px; }
.category-colour-modal .modal-actions .button { min-height:34px; border-radius:9px; }
.settings-category-menu button.is-danger { color:#f08d96; }
.settings-category-menu button.is-danger:hover,.settings-category-menu button.is-danger:focus-visible { background:rgba(240,141,150,.12); color:#ffc4c9; }
.category-inline-rename { display:flex; flex:1; align-items:center; gap:4px; min-width:0; }
.category-inline-rename input { width:100%; min-width:0; height:26px; padding:0 6px; border:1px solid #4e6680; border-radius:5px; background:#101d29; color:#f4f7fa; font:600 11px/1 var(--font-family,inherit); }
.category-inline-rename .icon-button { display:grid; flex:0 0 24px; width:24px; min-height:24px; padding:0; border:0; border-radius:5px; place-items:center; background:transparent; color:#f4f7fa; }
.category-inline-rename .icon-button:hover,.category-inline-rename .icon-button:focus-visible { background:#223241; outline:0; }
.category-inline-rename .icon-button [data-icon] { width:14px; height:14px; }
.category-add-card { width:100%; justify-content:center; border-color:#314354; color:#aebac6; cursor:pointer; font:600 10px/1 "Ubuntu",system-ui,sans-serif; text-align:left; }
.category-add-card:hover,.category-add-card:focus-visible { border-color:#4e6680; background:#223241; outline:0; }
.category-add-card [data-icon] { width:10px; height:10px; }
.category-inline-add { gap:4px; }
.category-inline-add input { width:100%; min-width:0; height:26px; padding:0 6px; border:1px solid #4e6680; border-radius:5px; background:#101d29; color:#f4f7fa; font:600 11px/1 var(--font-family,inherit); }
.category-inline-add .icon-button { display:grid; flex:0 0 24px; width:24px; min-height:24px; padding:0; border:0; border-radius:5px; place-items:center; background:transparent; color:#f4f7fa; }
.category-inline-add .icon-button:hover,.category-inline-add .icon-button:focus-visible { background:#223241; outline:0; }
.category-inline-add .icon-button [data-icon] { width:14px; height:14px; }
.category-settings-modal .settings-section { margin-top:0; }
.category-add-form { display:grid; gap:6px; }
.category-add-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.category-add-row input { min-width:0; }
.category-add-row .button { min-height:38px; padding:0 12px; font-size:12px; white-space:nowrap; }
.settings-category-launcher { display:flex; align-items:center; gap:10px; width:100%; margin-top:16px; padding:11px; border:1px solid #314354; border-radius:8px; background:#182634; color:#f4f7fa; text-align:left; }
.settings-category-launcher:hover { border-color:#4e6680; background:#223241; }
.settings-category-launcher img { width:18px; height:18px; flex:0 0 18px; filter:brightness(0) invert(1); }
.settings-category-launcher > span:nth-child(2) { display:grid; gap:2px; flex:1; }
.settings-category-launcher strong { font-size:12px; }
.settings-category-launcher small { color:#b9c3cc; font-size:11px; }
#app.app-window > .modal-layer {
  position: absolute;
  inset: 0;
  padding: 16px;
  overflow: hidden;
  border-radius: inherit;
}
#app.app-window > .app-startup {
  position:absolute;
  inset:57px 0 var(--app-bottom-strip-height,33px);
  border-radius:0;
}
#app.app-window > .modal-layer:has(.location-consent) { top:57px; }
#app.app-window > .modal-layer .location-consent { zoom:var(--app-display-zoom,1); }
@media (min-width:721px) {
  #app.app-window:has(> .main-area:not(.statistics-active):not(.weather-active):not(.place-finder-active)) > .modal-layer:has(.settings-modal:not(.category-settings-modal)) { padding-left:calc((var(--saved-panel-width,534px) * var(--app-display-zoom,1)) + 32px); }
  #app.app-window > .modal-layer:has(.category-settings-modal) { padding:16px; }
  #app.app-window > .modal-layer:has(.location-consent) { padding-left:calc((var(--saved-panel-width,534px) * var(--app-display-zoom,1)) + 16px); }
  #app.app-window > .modal-layer:has(.nucleo-icon-picker) { padding-right:16px; }
}

#app.app-window .modal {
  box-sizing: border-box;
  max-width: 100%;
  max-height: 100%;
  overflow: auto;
}
#app.app-window > .modal-layer:has(.weather-modal) { top:57px; bottom:var(--app-bottom-strip-height,33px); padding:12px; border-radius:0; }
#app.app-window > .modal-layer .weather-modal { width:95%; max-width:none; height:100%; max-height:none; margin-inline:auto; padding:28px 32px; overflow-x:hidden; overflow-y:auto; border:1px solid #314354; border-radius:12px; background:#182634; box-shadow:none; zoom:var(--app-display-zoom,1); }
#app.app-window > .modal-layer:has(.photo-manager-modal) { display:grid; padding:24px; place-items:center; background:rgba(5,13,20,.58); backdrop-filter:blur(5px); }
#app.app-window > .modal-layer .photo-manager-modal { display:grid; grid-template-rows:auto minmax(0,1fr); width:min(940px,100%); height:min(760px,100%); max-height:100%; padding:0; overflow:hidden; border-color:#314555; border-radius:14px; background:#111d29; color:#f2f5f8; box-shadow:0 26px 72px rgba(0,0,0,.52); }
#app .photo-manager-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px 15px; border-bottom:1px solid #314555; }
#app .photo-manager-header p { margin:0 0 5px; color:#81909c; font-size:10px; font-weight:700; letter-spacing:.1em; line-height:1; text-transform:uppercase; }
#app .photo-manager-header h2 { margin:0; color:#f2f5f8; font:500 19px/1.1 "Ubuntu",system-ui,sans-serif; }
#app .photo-manager-header .icon-button { width:30px; min-height:30px; padding:0; border-color:#314555; border-radius:8px; background:#182634; color:#dce6ee; }
#app .photo-manager-header .icon-button:hover,#app .photo-manager-header .icon-button:focus-visible { border-color:#4e6680; background:#223545; outline:0; }
#app .photo-manager-header .icon-button [data-icon] { width:16px; height:16px; }
#app .photo-manager-workspace { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); min-height:0; gap:16px; padding:18px 20px 20px; }
#app .photo-manager-library,#app .photo-manager-preview-panel { display:flex; min-width:0; min-height:0; flex-direction:column; padding:14px; border:1px solid #314555; border-radius:10px; background:#142432; }
#app .photo-manager-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:12px; }
#app .photo-manager-panel-heading h3 { margin:0; color:#f2f5f8; font-size:13px; font-weight:600; }
#app .photo-manager-panel-heading p { margin:3px 0 0; color:#81909c; font-size:10px; line-height:1.25; }
#app .photo-manager-add-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:6px; }
#app .photo-manager-add { display:flex; align-items:center; gap:6px; min-height:28px; padding:0 9px; white-space:nowrap; font-size:10px; }
#app .photo-manager-add [data-icon] { width:13px; height:13px; flex:0 0 13px; }
#app .photo-manager-add input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
#app .photo-manager-url-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:7px; margin:-2px 0 10px; }
#app .photo-manager-url-form[hidden] { display:none; }
#app .photo-manager-url-fields { display:grid; gap:6px; min-width:0; }
#app .photo-manager-url-form input { min-width:0; height:30px; padding:0 8px; border:1px solid #314555; border-radius:7px; background:#0d1b28; color:#f2f5f8; font:400 11px/1 "Ubuntu",system-ui,sans-serif; }
#app .photo-manager-url-form input::placeholder { color:#6f8293; }
#app .photo-manager-url-form .button { min-height:30px; padding:0 10px; font-size:11px; }
#app .photo-manager-status { min-height:14px; margin:0 0 8px; color:#aebac6; font-size:10px; }
#app .photo-manager-status.is-empty { visibility:hidden; }
#app .photo-manager-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); min-height:0; flex:1 1 auto; gap:9px; overflow:auto; padding-right:2px; }
#app .photo-manager-card { display:grid; gap:6px; min-width:0; padding:5px; border:1px solid #314555; border-radius:8px; background:#182634; color:#b9c3cc; font:500 10px/1.1 "Ubuntu",system-ui,sans-serif; text-align:left; cursor:pointer; }
#app .photo-manager-card.photo-manager-filled-slot { cursor:grab; touch-action:none; user-select:none; -webkit-user-select:none; }
#app .photo-manager-card.photo-manager-filled-slot:active,
#app .photo-manager-card.photo-manager-filled-slot.is-dragging,
#app .photo-manager-grid.is-reordering .photo-manager-card.photo-manager-filled-slot { cursor:grabbing; }
#app .photo-manager-card img { display:block; width:100%; aspect-ratio:4 / 3; border-radius:5px; object-fit:cover; pointer-events:none; -webkit-user-drag:none; }
#app .photo-manager-card span { overflow:hidden; padding:0 2px; text-overflow:ellipsis; white-space:nowrap; }
#app .photo-manager-card > span:last-child { text-align:center; }
#app .photo-manager-empty-slot { grid-template-rows:minmax(0,1fr) auto; border-style:dashed; background:rgba(24,38,52,.48); color:#8093a3; cursor:default; }
#app .photo-manager-empty-slot:not(.is-uploading) { cursor:pointer; }
#app .photo-manager-empty-slot-art { display:grid; min-width:0; min-height:0; aspect-ratio:4 / 3; overflow:visible!important; padding:0!important; border:1px dashed #40586b; border-radius:5px; place-items:center; align-content:center; gap:3px; }
#app .photo-manager-empty-slot-art [data-icon] { width:14px; height:14px; color:#708596; }
#app .photo-manager-empty-slot-art small { color:#8093a3; font-size:9px; font-weight:500; line-height:1; }
#app .photo-manager-empty-slot.is-uploading { border-style:solid; cursor:wait; }
#app .photo-manager-upload-progress { position:relative; display:grid; width:54px; height:54px; color:#f2f5f8; place-items:center; }
#app .photo-manager-upload-progress svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; transform:rotate(-90deg); }
#app .photo-manager-upload-progress circle { fill:none; stroke-width:4; }
#app .photo-manager-upload-track { stroke:#40505d; }
#app .photo-manager-upload-value { stroke:#45df7e; stroke-linecap:butt; stroke-dasharray:97.39; stroke-dashoffset:calc(97.39 - (97.39 * var(--photo-upload-progress) / 100)); transition:stroke-dashoffset .14s ease; }
#app .photo-manager-upload-progress strong { position:relative; z-index:1; color:#f2f5f8; font:700 12px/1 "Ubuntu",system-ui,sans-serif; }
#app .photo-manager-card:hover,.photo-manager-card:focus-visible { border-color:#4e6680; background:#223545; outline:0; }
#app .photo-manager-card.is-active { border-color:#2f80ed; box-shadow:0 0 0 1px rgba(47,128,237,.35); }
@media (prefers-reduced-motion:reduce) { #app .photo-manager-upload-value { transition-duration:.01ms; } }
#app .photo-manager-grid.is-reordering { cursor:grabbing; }
#app .photo-manager-card.is-dragging { opacity:.42; cursor:grabbing; border-color:#4e6680; background:#1a2b3a; }
#app .photo-manager-card.is-drop-target { border-color:#7f96aa; background:#223545; box-shadow:inset 0 0 0 1px rgba(127,150,170,.35); }
#app .photo-manager-empty-slot.is-drop-target { border-style:solid; color:#c5d0da; }
.photo-manager-context-menu { position:fixed; z-index:130; min-width:112px; padding:4px; border:1px solid #314354; border-radius:8px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.35); }
.photo-manager-context-menu > button { display:flex; align-items:center; gap:8px; width:100%; min-height:30px; padding:0 8px; border:0; border-radius:5px; background:transparent; color:#f08d96; font:600 11px/1 "Ubuntu",system-ui,sans-serif; text-align:left; cursor:pointer; }
.photo-manager-context-menu > button [data-icon] { width:14px; height:14px; flex:0 0 14px; }
.photo-manager-context-menu > button:hover,.photo-manager-context-menu > button:focus-visible { outline:0; background:rgba(240,141,150,.12); color:#ffc4c9; }
#app .photo-manager-empty { display:grid; min-height:138px; margin:0; padding:18px; border:1px dashed #4b6478; border-radius:8px; place-items:center; color:#aebac6; font-size:11px; line-height:1.45; text-align:center; }
#app .photo-manager-preview { position:relative; display:grid; aspect-ratio:var(--photo-card-aspect,4 / 3); min-height:0; overflow:hidden; border:1px solid #314555; border-radius:8px; background:#2a3946; place-items:center; cursor:grab; touch-action:none; }
#app .photo-manager-preview.is-dragging { cursor:grabbing; }
#app .photo-manager-preview img { display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:cover; background:#2a3946; transition:transform .12s ease,object-position .12s ease; }
#app .photo-manager-preview.is-dragging img,#app .photo-manager-preview.is-zooming img { transition:none; }
#app .photo-manager-crop-guides { position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent 49.8%,rgba(255,255,255,.36) 50%,transparent 50.2%),linear-gradient(transparent 49.8%,rgba(255,255,255,.36) 50%,transparent 50.2%); opacity:.7; }
#app .photo-manager-crop-guides::after { position:absolute; top:50%; left:50%; box-sizing:border-box; width:var(--photo-card-guide-width,100%); height:var(--photo-card-guide-height,100%); border:1px dashed rgba(214,226,236,.58); border-radius:2px; content:""; transform:translate(-50%,-50%); }
#app .photo-manager-preview.is-centred .photo-manager-crop-guides { opacity:1; background:linear-gradient(90deg,transparent 49.6%,rgba(69,151,255,.95) 50%,transparent 50.4%),linear-gradient(transparent 49.6%,rgba(69,151,255,.95) 50%,transparent 50.4%); }
#app .photo-manager-preview > [data-icon] { width:32px; height:32px; color:#62717f; }
#app .photo-manager-preview-tools { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; margin-top:12px; }
#app .photo-manager-zoom { display:grid; grid-template-columns:auto minmax(0,1fr) 48px; align-items:center; gap:9px; margin-top:0; color:#aebac6; font-size:11px; }
#app .photo-manager-zoom input { width:100%; height:13px; padding:0; appearance:none; background:transparent; accent-color:#2f80ed; }
#app .photo-manager-zoom input::-webkit-slider-runnable-track { height:4px; border:0; border-radius:999px; background:#dfe4e8; }
#app .photo-manager-zoom input::-webkit-slider-thumb { width:13px; height:13px; margin-top:-4.5px; appearance:none; border:0; border-radius:50%; background:#2f80ed; }
#app .photo-manager-zoom input::-moz-range-track { height:4px; border:0; border-radius:999px; background:#dfe4e8; }
#app .photo-manager-zoom input::-moz-range-thumb { width:13px; height:13px; border:0; border-radius:50%; background:#2f80ed; }
#app .photo-manager-zoom output { color:#f2f5f8; font-size:11px; font-weight:600; text-align:right; }
#app .photo-manager-save-crop { min-height:30px; padding:0 12px; border-color:#2f80ed; border-radius:7px; background:#2f80ed; color:#fff; font-size:11px; font-weight:600; }
#app .photo-manager-save-crop:hover:not(:disabled),#app .photo-manager-save-crop:focus-visible:not(:disabled) { border-color:#3c8cf2; background:#256fcb; outline:0; }
#app .photo-manager-save-crop:disabled { opacity:.45; cursor:default; }
@media (max-width:720px) { #app.app-window > .modal-layer:has(.photo-manager-modal) { padding:12px; } #app .photo-manager-workspace { grid-template-columns:1fr; padding:14px; } #app .photo-manager-preview { min-height:240px; } #app .photo-manager-grid { max-height:none; } }
#app .weather-country-heading { display:flex!important; align-items:center; gap:9px; min-height:24px; } #app .weather-country-heading > img { width:18px; height:18px; border-radius:50%; object-fit:cover; } #app .weather-analysis { display:grid; grid-template-columns:minmax(360px,.78fr) minmax(500px,1fr); gap:22px; align-items:start; margin-top:18px; } #app .weather-climate { min-width:0; padding:14px; border:0; border-radius:11px; background:#182634; } #app .weather-section-heading,#app .weather-climate-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:11px; } #app .weather-section-heading h2,#app .weather-climate h2 { margin:0; color:#f4f7fa; font-size:13px; font-weight:600; } #app .weather-section-heading span,.weather-climate-heading p,.weather-climate-heading > span,.weather-climate-unavailable p { margin:0; color:#aebac6; font-size:10px; } #app .weather-climate-heading { align-items:flex-start; } #app .weather-climate-heading > span { white-space:nowrap; } #app .weather-climate-chart-wrap { position:relative; }
#app .weather-chart-hit { pointer-events:all; }
#app .weather-chart-tooltip[hidden],#app .weather-hourly-tooltip[hidden],#app .weather-hourly-crosshair[hidden] { display:none!important; }
#app .weather-climate-chart .weather-chart-cursor[hidden] { display:none!important; } #app .weather-climate-chart { display:block; width:100%; height:auto; overflow:visible; cursor:crosshair; } #app .weather-climate-chart .weather-chart-bands, #app .weather-climate-chart .weather-chart-grid, #app .weather-climate-chart .weather-chart-axes, #app .weather-climate-chart .weather-chart-now, #app .weather-climate-chart .weather-chart-now-label, #app .weather-climate-chart .weather-chart-cursor, #app .weather-climate-chart polyline, #app .weather-climate-chart circle, #app .weather-climate-chart .weather-chart-month { pointer-events:none; } #app .weather-chart-plot { fill:#182634; } #app .weather-chart-grid line { stroke:rgba(20,32,44,.72); stroke-width:1; } #app .weather-chart-grid text { fill:#c9d7e4; font:9px "Ubuntu",system-ui,sans-serif; } #app .weather-chart-axes .weather-chart-axis { stroke:rgba(201,215,228,.38); stroke-width:1.15; } #app .weather-chart-axes .weather-chart-tick { stroke:rgba(201,215,228,.42); stroke-width:1.1; } #app .weather-chart-zero line { stroke:rgba(201,215,228,.52); stroke-width:1.35; } #app .weather-chart-zero text { fill:#e8eef5; font-weight:600; } #app .weather-chart-high,#app .weather-chart-low { fill:none; stroke-width:2.7; stroke-linecap:round; stroke-linejoin:round; } #app .weather-chart-high { stroke:#dd897d; } #app .weather-chart-low { stroke:#78a7ef; } #app .weather-chart-high-point { fill:#dd897d; } #app .weather-chart-low-point { fill:#78a7ef; } #app .weather-chart-month { fill:#c9d7e4; font:9px "Ubuntu",system-ui,sans-serif; text-anchor:middle; } #app .weather-chart-cursor { stroke:#dbe8f6; stroke-width:1; stroke-dasharray:3 3; opacity:.8; } #app .weather-chart-tooltip { position:absolute; z-index:2; top:18px; display:grid; gap:2px; min-width:80px; padding:6px 8px; border:1px solid #314354; border-radius:7px; background:rgba(24,38,52,.96); box-shadow:0 8px 18px rgba(0,0,0,.25); color:#dbe8f6; font-size:10px; pointer-events:none; transform:translateX(-50%); } #app .weather-chart-tooltip strong { color:#f4f7fa; font-size:11px; } #app .weather-climate-table { display:grid; gap:1px; margin-top:10px; overflow:hidden; } #app .weather-climate-table > div { display:grid; grid-template-columns:54px minmax(0,1fr); align-items:center; position:relative; min-width:0; min-height:26px; background:transparent; } #app .weather-climate-months { position:relative; min-width:0; min-height:26px; } #app .weather-climate-table span,#app .weather-climate-table strong { display:grid; min-height:26px; padding:0 3px; place-items:center; color:#aebac6; font-size:10px; font-weight:500; } #app .weather-climate-table span { position:absolute; top:0; left:var(--weather-month-x); width:8.45%; transform:translateX(-50%); } #app .weather-climate-table strong { justify-content:start; padding:0 6px 0 0; color:#f4f7fa; } #app .weather-climate-average span { color:#d5e0ed; } #app .weather-climate-high span,#app .weather-climate-low span { color:#aebac6; opacity:.58; } #app .weather-climate-high strong,#app .weather-climate-low strong { color:#c9d7e4; opacity:.72; }
#app .weather-analysis { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; justify-content:stretch; }
#app .weather-chart-band rect { pointer-events:none; }
#app .weather-chart-band-cool rect { fill:rgba(120,167,239,.13); }
#app .weather-chart-band-mild rect { fill:rgba(213,224,237,.035); }
#app .weather-chart-band-warm rect { fill:rgba(221,137,125,.14); }
#app .weather-chart-band-label { fill:#fff0b3; font:600 9px/1 "Ubuntu",system-ui,sans-serif; text-anchor:middle; paint-order:fill; stroke:none; stroke-width:0; filter:drop-shadow(0 1px 1.25px rgba(17,29,41,.55)); }
#app .weather-chart-band-cool .weather-chart-band-label { fill:#9bc1ff; }
#app .weather-chart-band-warm .weather-chart-band-label { fill:#efb1a7; }
#app .weather-climate-stack { display:grid; gap:18px; min-width:0; }
#app .weather-category-climate.is-loading { opacity:.58; pointer-events:none; }
#app .weather-category-chart-wrap { position:relative; min-height:220px; }
#app .weather-category-chart-wrap > p { display:grid; min-height:220px; margin:0; place-items:center; color:#aebac6; font-size:11px; }
#app .weather-category-month-grid { stroke:rgba(20,32,44,.55); stroke-width:1; }
#app .weather-category-areas path { stroke:rgba(24,38,52,.45); stroke-width:.6; }
#app .weather-category-area-snow { fill:#5f9fd6; }
#app .weather-category-area-mixed { fill:#4fb3a6; }
#app .weather-category-area-rain { fill:#6baf78; }
#app .weather-precip-legend { display:flex; align-items:center; gap:14px; min-height:16px; margin:0 0 3px 34px; color:#c2ced8; font:400 9px/16px "Ubuntu",system-ui,sans-serif; }
#app .weather-precip-legend span { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
#app .weather-precip-legend i { display:inline-block; width:16px; height:0; border-top:2px solid currentColor; }
#app .weather-precip-chance-key { color:#f4f7fa; }
#app .weather-precip-days-key { color:#e5b75f; }
#app .weather-precip-days-line { fill:none; stroke:#d2b06d; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round; opacity:.86; pointer-events:none; }
#app .weather-precip-days-point { fill:#e5b75f; stroke:#1b2633; stroke-width:1; pointer-events:none; }
#app .weather-precip-days-axis line { stroke:#d2b06d; stroke-width:1; opacity:.5; }
#app .weather-precip-days-axis text { fill:#bda36f; font:400 8px "Ubuntu",system-ui,sans-serif; text-anchor:start; }
#app .weather-precip-days-axis .weather-precip-days-axis-title { font-size:8px; text-anchor:middle; }
#app [data-weather-category-chart="precip"] .weather-category-areas path { stroke:none; }
#app [data-weather-category-chart="precip"] .weather-category-area-rain { fill:#8eae89; fill-opacity:.86; }
#app [data-weather-category-chart="precip"] .weather-category-area-mixed { fill:#71aaa1; fill-opacity:.84; }
#app [data-weather-category-chart="precip"] .weather-category-area-snow { fill:#7da9cf; fill-opacity:.84; }
#app [data-weather-category-chart="precip"] .weather-category-total { stroke:#cbd4ce; stroke-width:2; }
#app [data-weather-category-chart="precip"] .weather-category-peak circle { fill:#cbd4ce; }
#app .weather-precip-hover-point { fill:#1b2633; stroke:#cbd4ce; stroke-width:2.5; pointer-events:none; }
#app .weather-precip-hover-point[hidden] { display:none!important; }
#app .weather-category-season-wet rect { fill:rgba(142,174,137,.22); }
#app .weather-category-season-dry rect { fill:rgba(142,174,137,.055); }
#app .weather-category-area-clear { fill:#2f6fb5; }
#app .weather-category-area-mostlyClear { fill:#4f8fc8; }
#app .weather-category-area-partlyCloudy { fill:#7ea0b8; }
#app .weather-category-area-mostlyCloudy { fill:#a7b4c0; }
#app .weather-category-area-overcast { fill:#cfd6de; }
#app .weather-category-total,#app .weather-category-clearer { fill:none; stroke:#f4f7fa; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#app .weather-category-area-label { fill:#f4f7fa; font:600 10px/1 "Ubuntu",system-ui,sans-serif; text-anchor:middle; pointer-events:none; paint-order:fill; stroke:none; stroke-width:0; filter:drop-shadow(0 1px 1.25px rgba(17,29,41,.55)); }
#app .weather-category-area-label.is-on-light { fill:#1b2834; stroke:none; filter:drop-shadow(0 0 1.5px rgba(247,249,251,.75)) drop-shadow(0 1px 1.25px rgba(247,249,251,.45)); }
#app .weather-category-peak circle { fill:#f4f7fa; stroke:#182634; stroke-width:1; }
#app .weather-category-peak text { fill:#f4f7fa; font:600 10px/1 "Ubuntu",system-ui,sans-serif; text-anchor:middle; paint-order:fill; stroke:none; stroke-width:0; }
#app .weather-category-peak-value { font-size:9px; font-weight:25; font-family:"Ubuntu",system-ui,sans-serif; }
#app .weather-category-peak-date { font-size:10px; font-weight:600; font-family:"Ubuntu",system-ui,sans-serif; }
#app .weather-category-season rect { fill:rgba(93,168,237,.16); }
#app .weather-category-season-snow rect { fill:rgba(110,168,226,.22); }
#app .weather-category-season-rain rect { fill:rgba(112,178,124,.2); }
#app .weather-category-season-mixed rect { fill:rgba(88,186,176,.18); }
#app .weather-category-season-cloudier rect { fill:rgba(168,180,194,.14); }
#app .weather-category-season-clearer rect { fill:rgba(93,168,237,.2); }
#app .weather-category-season text { fill:#c9d7e4; font:600 9px "Ubuntu",system-ui,sans-serif; text-anchor:middle; }
#app [data-weather-category-chart="cloud"] .weather-category-areas path { stroke:none; }
#app [data-weather-category-chart="cloud"] .weather-category-area-clear { fill:#95b5df; }
#app [data-weather-category-chart="cloud"] .weather-category-area-mostlyClear { fill:#b1c4dd; }
#app [data-weather-category-chart="cloud"] .weather-category-area-partlyCloudy { fill:#c9d0d9; }
#app [data-weather-category-chart="cloud"] .weather-category-area-mostlyCloudy { fill:#acb0b6; }
#app [data-weather-category-chart="cloud"] .weather-category-area-overcast { fill:#989ca1; }
#app [data-weather-category-chart="cloud"] .weather-category-clearer { stroke:#606060; stroke-width:1.2; }
#app [data-weather-category-chart="cloud"] .weather-category-area-label { fill:#f7f9fb; stroke:none; stroke-width:0; filter:drop-shadow(0 1px 1.25px rgba(17,29,41,.55)); }
#app [data-weather-category-chart="cloud"] .weather-category-area-label.is-on-light { fill:#1a2b3a; stroke:none; filter:drop-shadow(0 0 1.5px rgba(247,249,251,.75)) drop-shadow(0 1px 1.25px rgba(247,249,251,.45)); }
#app [data-weather-category-chart="cloud"] .weather-category-peak circle { fill:#606060; stroke:#f7f9fb; stroke-width:1.2; }
#app [data-weather-category-chart="cloud"] .weather-category-peak text { fill:#1a2b3a; paint-order:fill; stroke:none; stroke-width:0; filter:drop-shadow(0 0 1.75px rgba(255,248,220,.92)) drop-shadow(0 1px 1.5px rgba(247,249,251,.55)); }
#app [data-weather-category-chart="cloud"] .weather-category-season-cloudier rect { fill:rgba(152,156,161,.38); }
#app [data-weather-category-chart="cloud"] .weather-category-season-clearer rect { fill:rgba(149,181,223,.38); }
#app [data-weather-category-chart="cloud"] .weather-category-season text { fill:#e7edf3; }
#app [data-weather-category-chart="cloud"] .weather-category-guide-line { stroke:#4f78b8; stroke-width:1; stroke-dasharray:4 4; pointer-events:none; }
#app [data-weather-category-chart="cloud"] .weather-chart-grid-right { text-anchor:start; }
#app .weather-daylight-areas path { stroke:none; }
#app .weather-daylight-area-daylight { fill:#fce49d; }
#app .weather-daylight-area-civilTwilight { fill:#b9ac86; }
#app .weather-daylight-area-nauticalTwilight { fill:#908a79; }
#app .weather-daylight-area-astronomicalTwilight { fill:#817e75; }
#app .weather-daylight-area-night { fill:#707070; }
#app .weather-daylight-line { fill:none; stroke:#d88918; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
#app .weather-daylight-twelve-line { stroke:#4f78b8; stroke-width:1; stroke-dasharray:4 4; pointer-events:none; }
#app .weather-daylight-hour-guide { stroke:rgba(232,238,245,.28); stroke-width:1; pointer-events:none; }
#app .weather-daylight-hour-guide.weather-daylight-twelve-line { stroke:#4f78b8; stroke-dasharray:4 4; }
#app .weather-daylight-now-point,#app .weather-daylight-hover-point { fill:#fff0b3; stroke:#d88918; stroke-width:2.5; pointer-events:none; }
#app .weather-daylight-hover-point[hidden] { display:none!important; }
#app [data-weather-category-chart="daylight"] .weather-chart-cursor { display:none!important; }
#app .weather-daylight-band-label { font:600 10px "Ubuntu",system-ui,sans-serif; text-anchor:middle; pointer-events:none; }
#app .weather-daylight-night-label { fill:#cfd6de; }
#app .weather-daylight-day-label { fill:#25313b; }
#app .weather-daylight-point circle { fill:#d88918; stroke:#fff0b3; stroke-width:.8; }
#app .weather-daylight-point text { fill:#1a2b3a; font:600 10px/1 "Ubuntu",system-ui,sans-serif; text-anchor:middle; pointer-events:none; paint-order:fill; stroke:none; stroke-width:0; filter:drop-shadow(0 0 1.75px rgba(255,248,220,.92)) drop-shadow(0 1px 1.5px rgba(247,249,251,.55)); }
#app .weather-daylight-point-hours { font-size:9px; font-weight:25; font-family:"Ubuntu",system-ui,sans-serif; }
#app .weather-daylight-point-date { font-family:"Ubuntu",system-ui,sans-serif; }
#app .weather-daylight-table { margin-top:0; }
#app .weather-daylight-table span { color:#c9d7e4; font-size:9px; font-variant-numeric:tabular-nums; }
#app .weather-daylight-table strong { color:#c9d7e4; font-size:9px; font-weight:500; line-height:1.05; }
#app .weather-daylight-table .weather-daylight-row-label { justify-content:center; padding:0; }
#app .weather-daylight-table .weather-daylight-row-label img { display:block; width:14px; height:14px; object-fit:contain; }
#app .weather-sunshine-areas path { stroke:none; }
#app .weather-sunshine-area-sunshine { fill:#fce49d; }
#app .weather-sunshine-area-rest { fill:#707070; }
#app .weather-sunshine-line { fill:none; stroke:#d88918; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
#app .weather-sunshine-twelve-line { stroke:#4f78b8; stroke-width:1; stroke-dasharray:4 4; pointer-events:none; }
#app .weather-sunshine-hour-guide { stroke:rgba(232,238,245,.28); stroke-width:1; pointer-events:none; }
#app .weather-sunshine-hour-guide.weather-sunshine-twelve-line { stroke:#4f78b8; stroke-dasharray:4 4; }
#app .weather-sunshine-now-point,#app .weather-sunshine-hover-point { fill:#fff0b3; stroke:#d88918; stroke-width:2.5; pointer-events:none; }
#app .weather-sunshine-hover-point[hidden] { display:none!important; }
#app [data-weather-category-chart="sunshine"] .weather-chart-cursor { display:none!important; }
#app .weather-sunshine-unit-controls .weather-climate-periods button { min-width:auto; padding:0 6px; }
#app .weather-sunshine-unit-controls .weather-climate-periods button img { display:block; width:12px; height:12px; object-fit:contain; }
#app .weather-sunshine-band-label { font:600 10px "Ubuntu",system-ui,sans-serif; text-anchor:middle; pointer-events:none; }
#app .weather-sunshine-rest-label { fill:#cfd6de; }
#app .weather-sunshine-sun-label { fill:#25313b; }
#app .weather-sunshine-point circle { fill:#d88918; stroke:#fff0b3; stroke-width:.8; }
#app .weather-sunshine-point text { fill:#1a2b3a; font:600 10px/1 "Ubuntu",system-ui,sans-serif; text-anchor:middle; pointer-events:none; paint-order:fill; stroke:none; stroke-width:0; filter:drop-shadow(0 0 1.75px rgba(255,248,220,.92)) drop-shadow(0 1px 1.5px rgba(247,249,251,.55)); }
#app .weather-sunshine-point-hours { font-size:9px; font-weight:25; font-family:"Ubuntu",system-ui,sans-serif; }
#app .weather-sunshine-point-date { font-family:"Ubuntu",system-ui,sans-serif; }
#app .weather-sunshine-table { margin-top:0; }
#app .weather-sunshine-table span { color:#c9d7e4; font-size:9px; font-variant-numeric:tabular-nums; }
#app .weather-sunshine-table strong { color:#c9d7e4; font-size:9px; font-weight:500; line-height:1.05; }
#app .weather-sunshine-table .weather-sunshine-row-label { justify-content:center; padding:0; }
#app .weather-sunshine-table .weather-sunshine-row-label img { display:block; width:14px; height:14px; object-fit:contain; }
#app .weather-water-band { stroke:none; pointer-events:none; }
#app .weather-water-band-outer { fill:rgba(107,89,128,.14); }
#app .weather-water-band-inner { fill:rgba(107,89,128,.25); }
#app .weather-water-line { fill:none; stroke:#8b76a5; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
#app .weather-water-axis-right { text-anchor:start; }
#app .weather-hourly-climate { padding:14px; border:0; border-radius:11px; background:#182634; }
#app .weather-hourly-climate > header.weather-climate-heading { margin-bottom:10px; }
#app .weather-hourly-climate h2 { margin:0; color:#f4f7fa; font-size:12px; font-weight:600; }
#app .weather-hourly-climate p { margin:3px 0 0; color:#aebac6; font-size:10px; }
#app .weather-hourly-climate.is-loading { opacity:.58; pointer-events:none; }
#app .weather-hourly-legend { display:block; flex:0 0 auto; width:100%; margin:5px 0 0; padding-bottom:2px; border:0; border-collapse:collapse; color:#c9d7e4; font:400 9px/15px "Ubuntu",system-ui,sans-serif; }
#app .weather-hourly-legend tbody { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px 18px; }
#app .weather-hourly-legend tr { display:grid; grid-template-columns:minmax(0,1fr) 55px; align-items:center; gap:7px; min-width:0; }
#app .weather-hourly-legend td { display:flex; align-items:center; min-width:0; padding:0; border:0; white-space:nowrap; }
#app .weather-hourly-legend td:first-child { display:grid; grid-template-columns:11px minmax(0,1fr); align-items:center; gap:4px; overflow:hidden; color:#eef3f7; text-align:left; text-overflow:ellipsis; }
#app .weather-hourly-legend td:first-child span { min-width:0; overflow:hidden; text-align:left; text-overflow:ellipsis; }
#app .weather-hourly-legend td:last-child { justify-content:center; color:#8ea0af; text-align:center; }
#app .weather-hourly-legend i { width:9px; height:9px; justify-self:center; margin:0; border:1px solid rgba(255,255,255,.16); border-radius:2px; background:rgb(var(--weather-hourly-band)); }
#app .weather-hourly-chart-wrap { position:relative; min-height:319px; overflow:hidden; background:#182634; }
#app .weather-hourly-chart-wrap canvas { display:block; width:100%; height:100%; cursor:crosshair; outline:0; }
#app .weather-hourly-chart-wrap canvas:focus-visible { box-shadow:inset 0 0 0 2px #55a0ff; }
#app .weather-hourly-axis { position:absolute; z-index:1; color:#c9d7e4; font:400 10px/10px "Ubuntu",system-ui,sans-serif; pointer-events:none; }
#app .weather-hourly-axis[hidden] { display:none; }
#app .weather-hourly-axis span { position:absolute; display:block; white-space:nowrap; }
#app .weather-hourly-axis-y { top:8px; bottom:18px; left:0; width:34px; }
#app .weather-hourly-axis-y span { top:var(--weather-hourly-axis-position); right:8px; left:auto; transform:translateY(-50%); text-align:right; }
#app .weather-hourly-axis-y span:last-child { transform:translateY(-100%); }
#app .weather-hourly-axis-x { right:10px; bottom:0; left:34px; height:18px; }
#app .weather-hourly-axis-x span { top:7px; left:var(--weather-hourly-axis-position); transform:translateX(-50%); }
#app .weather-hourly-labels { position:absolute; z-index:1; inset:0; color:rgba(244,247,250,.9); font:600 10px/1 "Ubuntu",system-ui,sans-serif; pointer-events:none; }
#app .weather-hourly-labels[hidden] { display:none; }
#app .weather-hourly-labels span { position:absolute; top:var(--weather-hourly-label-y); left:var(--weather-hourly-label-x); transform:translate(-50%,-50%); white-space:nowrap; }
#app .weather-hourly-labels .weather-hourly-now-label { color:#f08d7e; font-weight:400; transform:none; }
#app .weather-hourly-now-point { position:absolute; z-index:3; width:9px; height:9px; box-sizing:border-box; border:2px solid #1b2633; border-radius:50%; background:rgb(var(--weather-hourly-now-band,240,141,126)); transform:translate(-50%,-50%); pointer-events:none; }
#app .weather-hourly-now-point[hidden] { display:none; }
#app .weather-hourly-crosshair { position:absolute; z-index:2; display:block; margin:0; padding:0; background:rgba(238,246,255,.82); pointer-events:none; }
#app .weather-hourly-crosshair-x { top:8px; bottom:18px; width:1px; transform:translateX(-50%); }
#app .weather-hourly-crosshair-y { right:10px; left:34px; height:1px; transform:translateY(-50%); }
#app .weather-hourly-tooltip { position:absolute; z-index:4; display:grid; gap:2px; place-items:center; min-width:104px; padding:6px 8px; border:1px solid #314354; border-radius:7px; background:#182634; box-shadow:0 8px 18px rgba(0,0,0,.25); color:#dbe8f6; font-size:10px; text-align:center; pointer-events:none; transform:translate(-50%,0); }
#app .weather-hourly-tooltip strong { color:#f4f7fa; font-size:11px; }
#app .weather-hourly-tooltip-value { white-space:nowrap; }
#app .weather-hourly-tooltip-zone { display:inline-flex; align-items:center; justify-content:center; gap:5px; white-space:nowrap; color:#c9d7e4; font-weight:600; }
#app .weather-hourly-tooltip-zone i { display:block; width:8px; height:8px; flex:0 0 8px; border:1px solid rgba(255,255,255,.18); border-radius:2px; background:rgb(var(--weather-hourly-band)); }
#app .weather-hourly-chart-wrap > p { display:grid; min-height:220px; margin:0; place-items:center; color:#aebac6; }
#app .weather-source-logo { width:92px; height:18px; object-fit:contain; }
#app .weather-climate-controls { display:flex; align-items:center; flex-shrink:0; gap:7px; } #app .weather-climate-periods { display:flex; align-items:center; gap:3px; } #app .weather-climate-periods button { min-width:27px; height:23px; padding:0 5px; border:1px solid #314354; border-radius:5px; background:#111d29; color:#aebac6; cursor:pointer; font:500 10px "Ubuntu",system-ui,sans-serif; } #app .weather-climate-periods button:hover, #app .weather-climate-periods button[aria-pressed="true"] { border-color:#5da8ed; background:#234d77; color:#f4f7fa; } #app .weather-climate-controls label { display:grid; gap:3px; color:#aebac6; font-size:9px; line-height:1; } #app .weather-climate-controls input { width:52px; height:23px; padding:0 5px; border:1px solid #314354; border-radius:5px; outline:0; background:#111d29; color:#f4f7fa; font:500 10px "Ubuntu",system-ui,sans-serif; text-align:center; -moz-appearance:textfield; appearance:textfield; } #app .weather-climate-controls input::-webkit-outer-spin-button, #app .weather-climate-controls input::-webkit-inner-spin-button { margin:0; -webkit-appearance:none; appearance:none; } #app .weather-climate-controls input:focus { border-color:#5da8ed; } #app .weather-climate-controls .weather-source-logo { align-self:center; margin-left:3px; }
#app .weather-climate.is-loading { opacity:.58; pointer-events:none; }
#app .weather-chart-average { fill:none; stroke:#d5e0ed; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:5 4; }
#app .weather-chart-average-point { fill:#d5e0ed; }
#app .weather-chart-percentile { stroke:none; pointer-events:none; }
#app .weather-chart-high-p10-p90 { fill:rgba(221,137,125,.14); }
#app .weather-chart-high-p25-p75 { fill:rgba(221,137,125,.24); }
#app .weather-chart-low-p10-p90 { fill:rgba(120,167,239,.14); }
#app .weather-chart-low-p25-p75 { fill:rgba(120,167,239,.24); }
#app .weather-chart-perceived-high-p10-p90 { fill:rgba(221,137,125,.12); }
#app .weather-chart-perceived-high-p25-p75 { fill:rgba(221,137,125,.2); }
#app .weather-chart-perceived-low-p10-p90 { fill:rgba(120,167,239,.12); }
#app .weather-chart-perceived-low-p25-p75 { fill:rgba(120,167,239,.2); }
#app .weather-chart-perceived { fill:none; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:2 3; opacity:.9; pointer-events:none; }
#app .weather-chart-seasonal-hover-point { fill:#1b2633; stroke:#b8c6d2; stroke-width:2.5; pointer-events:none; }
#app .weather-chart-seasonal-hover-point[hidden] { display:none!important; }
#app .weather-chart-perceived-high { stroke:#dd897d; }
#app .weather-chart-perceived-average { stroke:#b8c6d2; }
#app .weather-chart-perceived-low { stroke:#78a7ef; }
#app .weather-series-hidden { display:none; }
@media (max-width:980px) { #app .weather-analysis { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:720px) { #app .weather-analysis { grid-template-columns:1fr; } }
#app .weather-analysis > .weather-climate { min-width:0; }
#app .weather-country-heading { min-height:28px; gap:10px; }
#app .weather-country-heading > img { width:20px; height:20px; }
#app .weather-modal header strong { font-size:19px; }
#app .weather-current { margin:20px 0 20px 30px; font-size:31px; }
#app .weather-current small,#app .weather-source { font-size:12px; }
#app .weather-days > button { gap:7px; min-height:82px; padding:13px 10px; }
#app .weather-days > button b { font-size:14px; }
#app .weather-days > button strong { font-size:16px; }
#app .weather-days small { font-size:11px; }
#app .weather-source { margin-top:15px; }
#app .weather-analysis { gap:19px; margin-top:16px; }
#app .weather-section-heading h2,#app .weather-climate h2 { font-size:14px; }
#app .weather-section-heading span,.weather-climate-heading p,.weather-climate-heading > span,.weather-climate-unavailable p { font-size:11px; }
#app .weather-climate-periods button { min-width:30px; height:26px; font-size:11px; }
#app .weather-climate-controls label { font-size:10px; }
#app .weather-climate-controls input { width:56px; height:26px; font-size:11px; }
#app .weather-source-logo { width:98px; height:20px; }
#app .weather-chart-grid text,#app .weather-chart-month { font-size:10px; }
#app .weather-climate-table span,#app .weather-climate-table strong { min-height:28px; font-size:10px; }
#app .weather-climate-table > div { min-height:28px; }
#app .weather-climate-months { min-height:28px; }
#app .weather-climate-table span { padding:0 1px; overflow:hidden; text-overflow:clip; white-space:nowrap; }
#app .weather-climate-table strong { min-width:0; padding:0 6px 0 0; }
#app .weather-modal-loading { overflow:hidden; }
#app .weather-skeleton-line,#app .weather-skeleton-wave { display:block; border-radius:999px; background:linear-gradient(90deg,#203140 0%,#31475a 45%,#203140 100%); background-size:200% 100%; animation:weather-skeleton-shimmer 1.25s ease-in-out infinite; animation-delay:var(--weather-skeleton-delay,0ms); }
#app .weather-current-skeleton { display:grid; align-content:start; gap:10px; }
#app .weather-current-skeleton .weather-skeleton-current { width:90px; height:40px; }
#app .weather-current-skeleton .weather-skeleton-city { width:82px; height:10px; margin:0; }
#app .weather-days-skeleton > div { align-content:center; justify-items:center; }
#app .weather-days-skeleton .weather-skeleton-date { width:34px; height:6px; }
#app .weather-days-skeleton .weather-skeleton-day { width:42px; height:10px; }
#app .weather-days-skeleton .weather-skeleton-temp { width:38px; height:13px; }
#app .weather-days-skeleton .weather-skeleton-detail { width:54px; height:7px; }
#app .weather-days-skeleton .weather-skeleton-sun { width:48px; height:6px; }
#app .weather-source-skeleton { width:132px; }
#app .weather-source-skeleton .weather-skeleton-line { width:100%; height:7px; }
#app .weather-skeleton-climate { min-height:256px; }
#app .weather-skeleton-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
#app .weather-skeleton-heading > .weather-skeleton-line:first-child { width:112px; height:10px; }
#app .weather-skeleton-heading .weather-skeleton-controls { width:188px; height:24px; border-radius:6px; }
#app .weather-skeleton-chart { position:relative; height:204px; margin-top:18px; overflow:hidden; border:1px solid rgba(49,67,84,.58); border-radius:7px; background:repeating-linear-gradient(0deg,transparent 0 40px,rgba(201,215,228,.045) 40px 41px); }
#app .weather-skeleton-wave { position:absolute; top:48%; left:-5%; width:110%; height:38px; border-radius:50%; opacity:.5; transform:rotate(-2deg); }
#app .weather-chart-loading-skeleton { position:absolute; z-index:4; inset:0; overflow:hidden; border:1px solid rgba(49,67,84,.58); border-radius:7px; background-color:#182634; background-image:repeating-linear-gradient(0deg,transparent 0 54px,rgba(201,215,228,.045) 54px 55px),repeating-linear-gradient(90deg,transparent 0 76px,rgba(201,215,228,.035) 76px 77px); }
#app .weather-chart-loading-skeleton .weather-skeleton-wave { top:45%; height:46px; opacity:.46; }
#app .weather-category-chart-wrap:has(> .weather-chart-loading-skeleton),#app .weather-climate-chart-loading-wrap { min-height:356px; }
#app .weather-hourly-chart-wrap:has(> .weather-chart-loading-skeleton) { min-height:339px; }
#app .weather-climate.is-loading:has([data-weather-chart-skeleton]),#app .weather-hourly-climate.is-loading:has([data-weather-chart-skeleton]) { opacity:1; }
#app .weather-location-clock-skeleton { display:grid; justify-items:center; gap:5px; }
#app .weather-location-clock-skeleton .weather-skeleton-clock-time { width:72px; height:13px; }
#app .weather-location-clock-skeleton .weather-skeleton-clock-date { width:104px; height:7px; }
#app .weather-location-clock-skeleton .weather-skeleton-clock-zone { width:82px; height:6px; }
@keyframes weather-skeleton-shimmer { 0% { background-position:100% 0; } 100% { background-position:-100% 0; } }
@media (prefers-reduced-motion:reduce) { #app .weather-skeleton-line,#app .weather-skeleton-wave { animation:none; } }
.settings-section { margin-top:16px; }
.settings-section:first-of-type { margin-top: 0; }
.settings-section fieldset { display: grid; gap:10px; margin:0; padding:0; border:0; }
.settings-section legend { padding: 0; color: #f5f7f9; font-size: 14px; font-weight: 700; }
.settings-section h3 { margin:0; color:#f5f7f9; font-size:13px; font-weight:700; }
.api-refresh-settings { display:grid; gap:10px; padding-top:12px; border-top:1px solid #2a3c4d; }
.api-place-cache-settings { display:grid; gap:10px; padding-top:12px; border-top:1px solid #2a3c4d; }
.api-place-cache-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.api-place-cache-heading .button { min-height:28px; padding:0 10px; font-size:11px; }
.api-place-cache-heading .button:disabled { opacity:.45; cursor:default; }
.api-place-cache-list { display:grid; gap:0; max-height:180px; overflow:auto; border:1px solid #314354; border-radius:8px; background:#182634; }
.api-place-cache-empty { margin:0; padding:10px 12px; }
.api-place-cache-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; padding:8px 10px; border-bottom:1px solid #314354; }
.api-place-cache-row:last-child { border-bottom:0; }
.api-place-cache-copy { display:grid; gap:2px; min-width:0; }
.api-place-cache-copy strong { color:#f4f7fa; font-size:12px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.api-place-cache-copy span { color:#aebac6; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.api-place-cache-remove { width:28px; min-height:28px; padding:0; border-color:#314354; background:#111d29; color:#f4f7fa; font-size:16px; line-height:1; }
.api-place-cache-remove:hover,
.api-place-cache-remove:focus-visible { border-color:#4e6680; background:#223241; color:#fff; outline:0; }
.api-settings-modal {
  width:min(100%,657px);
  max-height:min(90vh,493px);
  padding:14px;
  overflow:auto;
  border:1px solid #314354;
  background:#152737;
  color:#f4f7fa;
  box-shadow:0 16px 34px rgba(0,0,0,.35);
  zoom:var(--app-display-zoom,1);
}
.api-settings-modal[data-active-tab="google"] { min-height:min(90vh,383px); }
.api-settings-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; }
.api-settings-modal .api-settings-heading h2 { display:flex; align-items:center; gap:8px; margin:0; min-width:0; color:#f4f7fa; font-size:15px; font-weight:600; letter-spacing:-.02em; }
.api-settings-modal .api-settings-title-icon { display:block; width:16px; height:16px; flex:0 0 16px; object-fit:contain; filter:brightness(0) invert(1); opacity:.92; }
.api-settings-tabs { display:grid; grid-template-columns:repeat(2,104px); align-items:center; gap:6px; margin:0; flex:0 0 auto; }
.api-settings-tab { display:inline-flex; align-items:center; justify-content:center; gap:4px; box-sizing:border-box; width:104px; min-width:104px; max-width:104px; height:28px; min-height:28px; max-height:28px; padding:0 8px; border:1px solid #314354; border-radius:999px; background:#182634; color:#aebac6; font:600 10px/1 "Ubuntu",system-ui,sans-serif; letter-spacing:-.02em; white-space:nowrap; cursor:pointer; overflow:hidden; }
.api-settings-tab:hover,.api-settings-tab:focus-visible { border-color:#4e6680; background:#223241; color:#f4f7fa; outline:0; }
.api-settings-tab.is-active { border-color:#2f80ed; background:rgba(47,128,237,.18); color:#e8f2ff; }
.api-settings-tab > span { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.api-settings-tab-logo { display:block; width:14px; height:14px; max-width:14px; max-height:14px; flex:0 0 14px; object-fit:contain; }
.api-settings-modal .settings-section { margin-top:10px; }
.api-settings-modal .api-settings-panel { display:grid; gap:8px; }
.api-settings-modal .api-settings-panel[hidden] { display:none; }
.api-settings-modal .settings-section fieldset { gap:8px; }
.api-settings-modal .settings-section legend { color:#f4f7fa; font-size:12px; font-weight:650; }
.api-settings-modal .settings-section h3 { color:#f4f7fa; font-size:12px; font-weight:650; }
.api-settings-modal .form-grid { gap:8px; }
.api-settings-modal .form-grid label { gap:4px; color:#aebac6; font-size:10px; }
.api-settings-modal .form-grid input { min-height:31px; height:31px; padding:0 9px; border-radius:7px; font-size:11px; }
.api-settings-modal .api-key-input-with-icon { position:relative; display:block; width:80%; }
.api-settings-modal .api-key-input-icon { position:absolute; left:9px; top:50%; width:14px; height:14px; transform:translateY(-50%); pointer-events:none; object-fit:contain; filter:brightness(0) invert(1); opacity:.78; }
.api-settings-modal .api-key-input-with-icon input { display:block; width:100%; box-sizing:border-box; padding-left:30px; border-radius:10px; }
.api-settings-modal .place-meta { margin:0; color:#8fa3b5; font:400 10px/1.35 "Ubuntu",system-ui,sans-serif; }
.api-settings-modal .api-usage-signin-link { color:#7eb6f5; text-decoration:underline; text-underline-offset:2px; }
.api-settings-modal .api-usage-signin-link:hover,.api-settings-modal .api-usage-signin-link:focus-visible { color:#c5ddff; outline:0; }
.api-settings-modal .api-refresh-settings,
.api-settings-modal .api-key-settings,
.api-settings-modal .api-place-cache-settings,
.api-settings-modal .api-usage-settings { display:grid; gap:10px; padding-top:12px; border-top:0; }
.api-settings-modal .api-refresh-settings .place-meta { margin-top:0; }
.api-settings-modal .api-key-settings > .api-place-cache-heading,
.api-settings-modal .api-usage-settings > .api-place-cache-heading,
.api-settings-modal .api-place-cache-settings > .api-place-cache-heading,
.api-settings-modal .api-refresh-settings > .api-place-cache-heading { min-height:28px; align-items:center; padding-bottom:2px; border-bottom:1px solid #2a3c4d; gap:8px; box-sizing:content-box; }
.api-settings-modal .api-usage-heading-actions { display:flex; align-items:center; gap:5px; min-width:0; flex-wrap:wrap; justify-content:flex-end; }
.api-settings-modal .api-usage-periods { display:flex; align-items:center; gap:3px; flex-wrap:wrap; }
.api-settings-modal .api-usage-period-button { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; min-height:20px; height:20px; padding:0 6px; border:1px solid #314354; border-radius:999px; background:#182634; color:#aebac6; font:600 8px/1 "Ubuntu",system-ui,sans-serif; cursor:pointer; white-space:nowrap; }
.api-settings-modal .api-usage-period-button:hover,
.api-settings-modal .api-usage-period-button:focus-visible { border-color:#4e6680; background:#223241; color:#f4f7fa; outline:0; }
.api-settings-modal .api-usage-period-button.is-active,
.api-settings-modal .api-usage-period-button[aria-pressed="true"] { border-color:#2f80ed; background:rgba(47,128,237,.18); color:#e8f2ff; }
.api-settings-modal .api-usage-refresh-button { width:20px; min-width:20px; height:20px; min-height:20px; padding:0; border:1px solid #314354; border-radius:7px; background:#182634; color:#aebac6; box-shadow:none; }
.api-settings-modal .api-usage-refresh-button:hover,
.api-settings-modal .api-usage-refresh-button:focus-visible { border-color:#4e6680; background:#223241; color:#f4f7fa; outline:0; }
.api-settings-modal .api-usage-refresh-button > img { display:block; width:11px; height:11px; object-fit:contain; filter:brightness(0) invert(1); opacity:.88; }
.api-settings-modal .api-settings-panel > :first-child { border-top:0; padding-top:0; }
.api-settings-modal .api-usage-panel { min-height:178px; display:grid; gap:12px; align-content:start; }
.api-settings-modal .api-usage-block { display:grid; gap:0; }
.api-settings-modal .api-usage-skeleton-line { display:block; height:5px; border-radius:999px; background:linear-gradient(90deg,#223241 0%,#2a3c4d 45%,#223241 100%); background-size:200% 100%; animation:api-usage-skeleton 1.2s ease-in-out infinite; }
.api-settings-modal .api-usage-skeleton-line.short { width:18px; flex:0 0 auto; }
.api-settings-modal .api-usage-skeleton-row .api-usage-row-label > .api-usage-skeleton-line { width:72%; min-width:0; }
.api-settings-modal .api-usage-skeleton-icon { display:block; width:14px; height:14px; flex:0 0 14px; border-radius:3px; background:linear-gradient(90deg,#223241 0%,#2a3c4d 45%,#223241 100%); background-size:200% 100%; animation:api-usage-skeleton 1.2s ease-in-out infinite; }
.api-settings-modal .api-usage-skeleton-bar > i { display:block; opacity:.28; background:#4e6680; }
.api-settings-modal .api-usage-skeleton-chart .api-usage-chart-y-tick { display:block; width:18px; height:4px; border-radius:999px; background:#223241; }
.api-settings-modal .api-usage-skeleton-chart .api-usage-chart-y-tick::after { display:none; }
.api-settings-modal .api-usage-skeleton-chart .api-usage-chart-x-tick > span { display:block; width:36px; height:4px; border-radius:999px; background:#223241; }
.api-settings-modal .api-usage-skeleton-chart .api-usage-chart-x-tick::before { display:none; }
.api-settings-modal .api-usage-panel > .place-meta,
.api-settings-modal .api-usage-skeleton-meta { min-height:19px; }
@keyframes api-usage-skeleton { 0% { background-position:100% 0; } 100% { background-position:-100% 0; } }
.api-settings-modal .api-usage-split { display:grid; grid-template-columns:190px minmax(0,1fr); grid-template-rows:146px 19px; gap:0 8px; align-items:start; }
.api-settings-modal .api-usage-chart-frame { grid-column:2; grid-row:1 / 3; display:grid; grid-template-columns:auto minmax(0,1fr); gap:4px; align-items:stretch; box-sizing:border-box; min-width:0; width:100%; height:165px; min-height:165px; max-height:165px; background:transparent; }
.api-settings-modal .api-usage-chart-y { display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; box-sizing:border-box; min-width:2.2em; height:100%; padding:6px 0 24px; color:#7f8d99; font-size:8px; line-height:1; font-variant-numeric:tabular-nums; background:transparent; }
.api-settings-modal .api-usage-chart-y-tick { position:relative; z-index:1; padding:1px 5px 1px 2px; border-radius:2px; background:transparent; }
.api-settings-modal .api-usage-chart-y-tick::after { content:""; position:absolute; right:0; top:50%; width:4px; height:1px; background:rgba(127,141,153,.55); transform:translateY(-50%); }
.api-settings-modal .api-usage-chart-plot { display:grid; grid-template-rows:minmax(0,1fr) 24px; gap:0; position:relative; box-sizing:border-box; min-width:0; min-height:0; height:100%; border:0; border-radius:0; background:transparent; overflow:hidden; }
.api-settings-modal .api-usage-chart { position:relative; display:grid; grid-template-columns:repeat(var(--usage-cols,24),minmax(0,1fr)); align-items:end; gap:3px; box-sizing:border-box; min-height:0; height:100%; padding:6px 6px 2px; border:0; border-radius:0; background-color:transparent; background-image:linear-gradient(to top,rgba(127,141,153,.14) 1px,transparent 1px); background-size:100% calc((100% - 6px) / var(--usage-y-steps,4)); background-position:left 6px; background-repeat:repeat-y; }
.api-settings-modal .api-usage-reference-line { position:absolute; z-index:1; left:6px; right:6px; top:var(--usage-reference-top,50%); height:0; border-top:1px dashed rgba(174,186,198,.42); pointer-events:none; }
.api-settings-modal .api-usage-bar { position:relative; z-index:2; display:flex; align-items:flex-end; justify-content:center; height:100%; min-width:0; cursor:pointer; outline:0; }
.api-settings-modal .api-usage-bar > i { display:block; width:100%; height:var(--usage-height,0%); min-height:0; border-radius:5px 5px 0 0; background:#2f80ed; transition:background .12s ease,opacity .12s ease; }
.api-settings-modal .api-usage-bar.is-empty { cursor:default; pointer-events:none; }
.api-settings-modal .api-usage-bar.is-empty > i { display:none; }
.api-settings-modal .api-usage-bar:hover > i,
.api-settings-modal .api-usage-bar.is-active > i,
.api-settings-modal .api-usage-bar:focus-visible > i { background:#5aa2ff; }
.api-settings-modal .api-usage-tooltip { position:absolute; z-index:6; display:grid; gap:2px; width:max-content; max-width:min(240px,calc(100% - 8px)); padding:5px 8px; border:1px solid #314354; border-radius:7px; background:#182634; box-shadow:none; color:#aebac6; font:400 10px/1.2 "Ubuntu",system-ui,sans-serif; pointer-events:none; transform:none; white-space:nowrap; }
.api-settings-modal .api-usage-tooltip .api-usage-tooltip-label { color:#aebac6; font-weight:400; }
.api-settings-modal .api-usage-tooltip strong { display:block; color:#f4f7fa; font-size:10px; font-weight:650; font-variant-numeric:tabular-nums; }
.api-settings-modal .api-usage-tooltip[hidden] { display:none; }
.api-settings-modal .api-usage-chart-axis { display:grid; grid-template-columns:repeat(var(--usage-cols,24),minmax(0,1fr)); align-items:start; gap:3px; box-sizing:border-box; height:24px; color:#7f8d99; font-size:8px; line-height:1.05; padding:0 6px 3px; background:transparent; }
.api-settings-modal .api-usage-chart-x-tick { grid-column:var(--tick-col); display:flex; flex-direction:column; align-items:center; justify-content:flex-start; min-width:0; white-space:nowrap; text-align:center; }
.api-settings-modal .api-usage-chart-x-tick::before { content:""; display:block; width:1px; height:3px; margin:0 auto 1px; background:rgba(127,141,153,.65); }
.api-settings-modal .api-usage-chart-x-label { display:block; text-align:center; }
.api-settings-modal .api-usage-chart-x-label.is-stacked { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:0; text-align:center; }
.api-settings-modal .api-usage-chart-x-label.is-stacked > span { display:block; text-align:center; }
.api-settings-modal .api-usage-list { grid-column:1; grid-row:1; display:grid; grid-template-rows:repeat(6,minmax(0,1fr)); gap:0; align-content:stretch; box-sizing:border-box; width:100%; height:146px; min-height:146px; max-height:146px; border:1px solid #314354; border-radius:7px; background:#182634; overflow:hidden; }
.api-settings-modal .api-usage-split > .place-meta { grid-column:1; grid-row:2; align-self:end; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.api-settings-modal .api-usage-row { display:flex; align-items:center; justify-content:space-between; gap:6px; box-sizing:border-box; min-height:0; padding:4.4px 8px; border-bottom:0; color:#aebac6; font-size:10px; line-height:1.2; }
.api-settings-modal .api-usage-period { justify-content:flex-start; color:#f4f7fa; background:#152433; border-bottom:1px solid rgba(49,67,84,.55); }
.api-settings-modal .api-usage-period h4 { margin:0; min-width:0; color:#f4f7fa; font-size:10px; font-weight:650; letter-spacing:0.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.api-settings-modal .api-usage-row-label { display:inline-flex; align-items:center; gap:5px; min-width:0; }
.api-settings-modal .api-usage-row-label > span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.api-settings-modal .api-usage-row-icon,
.api-settings-modal .api-usage-row-icon-spacer { display:block; width:14px; height:14px; flex:0 0 14px; }
.api-settings-modal .api-usage-row-icon { object-fit:contain; filter:brightness(0) invert(1); opacity:.88; }
.api-settings-modal .api-usage-row strong { color:#f4f7fa; font-size:10px; font-weight:650; font-variant-numeric:tabular-nums; flex:0 0 auto; text-align:right; }
.api-settings-modal .api-usage-total { color:#f4f7fa; font-weight:700; border-top:1px solid rgba(49,67,84,.55); justify-content:space-between; }
.api-settings-modal .api-usage-total .api-usage-row-label { justify-content:flex-start; font-weight:700; }
.api-settings-modal .api-usage-total strong { font-weight:700; }
.api-settings-modal .api-open-meteo-usage-panel { min-height:0; gap:8px; }
.api-settings-modal .api-open-meteo-usage-panel > .place-meta { background:transparent; box-shadow:none; text-shadow:none; -webkit-text-fill-color:currentColor; }
.api-settings-modal .api-open-meteo-usage-list { grid-template-rows:none; height:auto; min-height:0; max-height:none; }
.api-settings-modal .api-open-meteo-usage-row { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; gap:5px 6px; align-items:center; padding-top:8px; padding-bottom:8px; border-bottom:1px solid rgba(49,67,84,.35); background:transparent; }
.api-settings-modal .api-open-meteo-usage-row:last-child { border-bottom:0; }
.api-settings-modal .api-open-meteo-usage-row .api-usage-row-label { grid-column:1; grid-row:1; background:transparent; box-shadow:none; text-shadow:none; -webkit-text-fill-color:currentColor; }
.api-settings-modal .api-open-meteo-usage-row .api-usage-row-label > span { background:transparent; box-shadow:none; text-shadow:none; -webkit-text-fill-color:currentColor; }
.api-settings-modal .api-open-meteo-usage-row strong { grid-column:2; grid-row:1; background:transparent; box-shadow:none; text-shadow:none; -webkit-text-fill-color:currentColor; }
.api-settings-modal .api-open-meteo-usage-meter { position:relative; grid-column:1 / -1; grid-row:2; display:block; height:18px; border-radius:9px; background:#223241; overflow:hidden; }
.api-settings-modal .api-open-meteo-usage-meter > i { display:block; height:100%; border-radius:inherit; background:#2f80ed; }
.api-settings-modal .api-open-meteo-usage-meter > em { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; margin:0; padding:0; border:0; background:transparent; box-shadow:none; color:#f4f7fa; font:650 10px/1 "Ubuntu",system-ui,sans-serif; font-style:normal; font-variant-numeric:tabular-nums; letter-spacing:0.01em; text-shadow:none; -webkit-text-fill-color:currentColor; pointer-events:none; }
.api-settings-modal .api-open-meteo-usage-row.is-limit-hit strong,
.api-settings-modal .api-open-meteo-usage-panel > .place-meta.is-limit-hit { color:#f0b35a; }
.api-settings-modal .api-open-meteo-usage-row.is-limit-hit .api-open-meteo-usage-meter > i { background:#f0b35a; }
.api-settings-modal .api-open-meteo-usage-row.is-limit-hit .api-open-meteo-usage-meter > em { color:#f8d9a4; }
@media (max-width:560px) {
  .api-settings-modal .api-usage-split { grid-template-columns:1fr; grid-template-rows:146px 165px 19px; row-gap:8px; }
  .api-settings-modal .api-usage-list { grid-column:1; grid-row:1; }
  .api-settings-modal .api-usage-chart-frame { grid-column:1; grid-row:2; }
  .api-settings-modal .api-usage-split > .place-meta { grid-column:1; grid-row:3; }
}
.api-settings-modal .settings-range-control { min-height:28px; padding:0 8px; border-radius:7px; }
.api-settings-modal .settings-range-control output { font-size:11px; }
.api-settings-modal .api-place-cache-list { max-height:67px; border-radius:7px; }
.api-settings-modal .api-place-cache-actions { display:flex; justify-content:flex-end; }
.api-settings-modal .api-place-cache-actions .button { min-height:28px; height:28px; padding:0 10px; border-radius:7px; font-size:11px; }
.api-settings-modal .api-place-cache-empty { padding:8px 10px; }
.api-settings-modal .api-place-cache-row { padding:7px 9px; }
.api-settings-modal .api-place-cache-copy strong { font-size:11px; font-weight:650; }
.api-settings-modal .api-place-cache-copy span { font-size:10px; }
.api-settings-modal .api-place-cache-heading .button,
.api-settings-modal .modal-actions .button { min-height:28px; padding:0 10px; border-radius:7px; font-size:11px; }
.api-settings-modal .modal-actions .button-danger { border-color:#b94b55; background:#b94b55; color:#fff; }
.api-settings-modal .modal-actions .button-danger:hover,
.api-settings-modal .modal-actions .button-danger:focus-visible { border-color:#cf5a64; background:#cf5a64; color:#fff; outline:0; }
.api-settings-modal .modal-actions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:10px; padding-top:10px; border-top:1px solid #2a3c4d; }
.api-settings-modal .modal-actions .button-primary { flex:0 0 auto; margin-left:auto; }
.api-settings-modal .api-maps-browser-toggle { display:inline-flex; align-items:center; gap:8px; min-height:28px; margin-left:0; }
.api-settings-modal .api-maps-browser-toggle-label { color:#aebac6; font:600 11px/1 "Ubuntu",system-ui,sans-serif; white-space:nowrap; }
.api-settings-modal .api-refresh-settings .api-maps-browser-toggle { margin-left:auto; }
.api-settings-modal .api-refresh-settings label:has(input:disabled) { opacity:.55; }
.api-settings-modal .api-maps-switch { position:relative; box-sizing:border-box; width:36px; height:20px; padding:0; border:1px solid #1a2836; border-radius:999px; background:#c9951d; box-shadow:inset 0 0 0 1px rgba(0,0,0,.18); cursor:pointer; flex:0 0 auto; transition:background .16s ease,border-color .16s ease; }
.api-settings-modal .api-maps-switch.is-on,
.api-settings-modal .api-maps-switch[aria-checked="true"] { background:#2f9e68; border-color:#1f6b46; }
.api-settings-modal .api-maps-switch:hover,
.api-settings-modal .api-maps-switch:focus-visible { outline:0; }
.api-settings-modal .api-maps-switch:focus-visible { box-shadow:0 0 0 2px rgba(47,128,237,.45); }
.api-settings-modal .api-maps-switch-thumb { position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:#f4f7fa; box-shadow:0 1px 3px rgba(0,0,0,.35); transition:transform .16s ease; pointer-events:none; }
.api-settings-modal .api-maps-switch.is-on .api-maps-switch-thumb,
.api-settings-modal .api-maps-switch[aria-checked="true"] .api-maps-switch-thumb { transform:translateX(16px); }
.settings-font-picker { display:grid; gap:7px; }
.settings-font-picker h3 { display:flex; align-items:center; gap:7px; font-size:14px; }
.settings-font-picker h3 span { color:#2f80ed; font-size:16px; font-weight:500; }
.settings-font-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 8px; }
.settings-font-choice { display:flex; align-items:center; min-height:34px; gap:8px; padding:0 9px; border:1px solid #314354; border-radius:8px; background:#182634; color:#f4f7fa; font-size:12px; font-weight:600; text-align:left; }
.settings-font-choice:hover,.settings-font-choice:focus-visible { border-color:#4e6680; background:#223241; outline:0; }
.settings-font-choice[aria-checked="true"] { border-color:#2f80ed; background:rgba(47,128,237,.18); box-shadow:inset 0 0 0 1px rgba(47,128,237,.2); }
.settings-font-radio { display:grid; width:14px; height:14px; flex:0 0 14px; place-items:center; border:1.5px solid #aebac6; border-radius:50%; }
.settings-font-choice[aria-checked="true"] .settings-font-radio { border-color:#2f80ed; }
.settings-font-choice[aria-checked="true"] .settings-font-radio::after { content:""; width:7px; height:7px; border-radius:50%; background:#2f80ed; }
.settings-font-choice em { margin-left:auto; color:#aebac6; font-size:9px; font-style:normal; font-weight:700; }
.settings-font-guide { padding:10px 12px; border:1px solid #314354; border-radius:8px; background:#182634; color:#f4f7fa; font-size:12px; }
.settings-font-guide ol { display:grid; gap:3px; margin:6px 0 0; padding-left:18px; color:#aebac6; }
.settings-type-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.settings-range-control { display:grid; grid-template-columns:minmax(0,1fr) 42px; align-items:center; gap:8px; min-height:34px; padding:0 8px; border:1px solid #314354; border-radius:8px; background:#182634; }
.settings-range-control input[type="range"] { min-height:0; padding:0; accent-color:#2f80ed; }
.settings-range-control output { color:#f4f7fa; font-size:12px; font-weight:700; text-align:right; }
.settings-select-control { display:grid; min-height:34px; border:1px solid #314354; border-radius:8px; background:#182634; overflow:hidden; }
.settings-select-control select { width:100%; min-height:34px; padding:0 10px; border:0; border-radius:8px; background:transparent; color:#f4f7fa; font:inherit; font-size:12px; font-weight:600; }
.api-refresh-settings .place-meta { margin-top:4px; }
.settings-modal .modal-actions .button img { width:15px; height:15px; color:currentColor; filter:brightness(0) invert(1); }
.settings-modal > .modal-actions .button { font-size:12px; }
.font-settings-modal > .modal-actions .button { font-size:11px; }
.settings-font-results { max-height: 192px; overflow: auto; border: 1px solid #314354; border-radius: 8px; background: #182634; }
.settings-font-option { display: grid; gap: 2px; width: 100%; padding: 9px 10px; border: 0; border-bottom: 1px solid #314354; background: transparent; color: #f4f7fa; text-align: left; }
.settings-font-option:last-child { border-bottom: 0; }
.settings-font-option:hover,
.settings-font-option:focus-visible,
.settings-font-option[aria-selected="true"] { background: #223241; color: #fff; outline: 0; }
.settings-font-option strong { font-size: 13px; font-weight: 700; }
.settings-font-option span { color: #aebac6; font-size: 11px; }
.settings-font-preview { display:grid; gap:3px; min-height:58px; padding:9px 10px; border:1px solid #314354; border-radius:8px; background:#182634; color:#f4f7fa; font-size:12px; }
.settings-api-section { padding-top:13px; border-top:1px solid rgba(174,186,198,.2); }
.settings-font-preview strong { line-height: 1.25; }
.settings-font-preview span { color: #aebac6; font-size: 12px; }

.tag,
.status-pill { background: #3d4a57; color: #d9e1e8; }

.form-grid input,
.form-grid textarea,
.form-grid select,
.modal-title-input {
  border-color: #62717f;
  background: #2c3843;
  color: var(--ink);
}

.drawer-favourite {
  border-color: #6b7986;
  background: rgba(42, 54, 65, .94);
}

.marker {
  border-color: #dce6ee;
  background: #668fbe;
  box-shadow: 0 4px 12px rgba(2, 7, 12, .34);
}
.marker.selected { outline-color: rgba(111, 150, 196, .26); }

.map-controls .button,
.map-controls .icon-button {
  border-color: #657380;
  background: #34414e;
  color: #f1f4f6;
  box-shadow: 0 8px 18px rgba(3, 8, 13, .25);
}

.notice { background: #493d2f; color: #f2cf92; }
.toast-region {
  right: 16px;
  bottom: 16px;
  gap: 6px;
}

.toast {
  max-width: min(238px, calc(100vw - 32px));
  padding: 6px 9px;
  border: 1px solid #314354;
  border-left-color: #2f80ed;
  border-radius: 7px;
  background: #111f2c;
  color: #e8f0f6;
  box-shadow: 0 8px 20px rgba(3, 10, 17, .28);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.35;
  opacity: 1;
  transition: opacity 600ms ease;
}

.toast.is-exiting { opacity: 0; }

.toast.error {
  border-color: #874854;
  border-left-color: #ef7d87;
  background: #2a1a21;
  color: #ffdce0;
}

@media (prefers-reduced-motion: reduce) {
  .toast { transition-duration: .01ms; }
}

@media (min-width: 721px) {
  #app.app-shell.app-window {
    position: fixed;
    inset: 0;
    margin: auto;
    min-width: 0;
    max-width: 100vw;
    max-height: 100dvh;
    overflow: visible;
    border: 1px solid #4f5d69;
    border-radius: 13px;
    background: #18232d;
    box-shadow: 0 24px 70px rgba(2, 7, 12, .38);
    /* Corner resize handles extend slightly beyond the shell edge. */
    contain: layout;
  }

  #app.app-shell { grid-template-rows: 62px minmax(0, 1fr) 44px; }

  #app > .sidebar {
    position: static;
    grid-row: 1;
    border-color: #3e4b57;
    background: #34414e;
  }

  #app > .main-area { grid-row: 2; }

  /* Keep MyPlaces search and map filters directly over the map canvas. */
  #app.app-window > .main-area {
    position: relative;
    grid-template-rows: minmax(0, 1fr);
  }

  #app.app-window > .main-area > .workspace { grid-row: 1; }
  /*
    Map host must fill the workspace slot beside the saved panel (inset, not a
    shrunk × zoom layout box). Inverse-zoom on #map was withdrawn: nested CSS
    zoom left Google tile layers as a narrow center strip with dark voids.
    Pin/tooltip alignment under app display zoom is handled in map.js overlays.
  */
  #app.app-window > .main-area > .workspace > .map-canvas {
    top:0;
    left:var(--saved-panel-width,534px);
    right:0;
    bottom:0;
    width:auto;
    height:auto;
  }
  #app.app-window > .main-area.saved-panel-hidden > .workspace > .map-canvas {
    left:0;
  }

  #app.app-window > .main-area > .toolbar {
    position: absolute;
    z-index: 30;
    top: 10px;
    left: calc(var(--saved-panel-width, 534px) + 10px);
    right: 10px;
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    overflow: visible;
  }

  #app.app-window > .main-area > .toolbar .search-box input,
  #app.app-window > .main-area > .toolbar .country-picker-trigger,
  #app.app-window > .main-area > .toolbar .toolbar-select,
  #app.app-window > .main-area > .toolbar .icon-button {
    background: rgba(43, 55, 66, .72);
    backdrop-filter: blur(6px);
  }

  #app > .sidebar .module-switcher {
    order: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  #app > .sidebar > .nav-group { order: 1; }

  #app > .sidebar .sidebar-top-actions {
    display: flex;
    order: 2;
    align-items: center;
    gap: 6px;
    margin-left: auto;
  }

  #app > .sidebar .sidebar-top-actions .sidebar-settings-button {
    width: 24.65px;
    min-height: 24.65px;
    padding: 0;
    border: 1px solid #314354;
    border-radius: 9px;
    background: #182634;
    color: #aebac6;
    box-shadow: none;
  }

  #app > .sidebar .sidebar-top-actions .sidebar-settings-button:hover,
  #app > .sidebar .sidebar-top-actions .sidebar-settings-button:focus-visible {
    border-color: #4e6680;
    background: #223241;
    color: #f4f7fa;
    outline: 0;
  }

  #app > .sidebar .sidebar-top-actions .sidebar-settings-button [data-icon] {
    width: 11.9px;
    height: 11.9px;
    flex: 0 0 11.9px;
  }

  #app > .sidebar .sidebar-top-actions .sidebar-settings-button .nucleo-nav-icon {
    width: 11.9px;
    height: 11.9px;
    flex: 0 0 11.9px;
  }

  #app > .sidebar .timezone-clock {
    order: 3;
    margin-left: auto;
    padding: 0 0 0 10px;
    border-right: 0;
    border-left: 1px solid #3f4c58;
  }

  #app > .sidebar .timezone-clock-datetime { color: #edf7ff; }

  #app > .sidebar .timezone-clock-pin { background: #89a8c8; }

  #app > .sidebar .nav-link {
    border: 1px solid transparent;
    color: #cbd3da;
  }

  #app > .sidebar .nav-link:hover,
  #app > .sidebar .nav-link.active {
    border-color: #52616f;
    background: #2c3843;
    color: #fff;
  }

  #app > .sidebar > .sidebar-footer {
    position: absolute;
    z-index: 45;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    min-height: 44px;
    margin: 0;
    padding: 0 18px;
    border-top: 1px solid #3f4c58;
    background: #34414e;
  }

  .app-bottom-strip {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
  }

  #app > .sidebar > .sidebar-footer .bottom-strip-status {
    display: flex;
    align-items: center;
    gap: 0;
    min-width: 0;
    color: #c7d0d8;
    font-size: 11px;
  }

  .bottom-strip-status > span {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 0 18px;
    border-right: 1px solid #3f4c58;
    white-space: nowrap;
  }

  .bottom-strip-status > span:first-child {
    padding-left: 0;
    color: #f0f3f5;
    font-weight: 650;
  }

  #app > .sidebar > .sidebar-footer .nav-group { margin-left: auto; }

  #app > .sidebar > .sidebar-footer .nav-link { min-height: 32px; }

  .cloudflare-push-status {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    min-height: 32px;
    margin: 0 0 0 auto;
    color: #aebac6;
    font-size: 10px;
    font-weight: 425;
    white-space: nowrap;
  }

  .cloudflare-wordmark {
    display: inline-flex;
    align-items: flex-end;
    gap: 4px;
    color: #f3f6f8;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .cloudflare-wordmark-cloud { color: #f48120; font-size: 16px; line-height: .65; letter-spacing: 0; }

  .app-display-zoom-control {
    display: inline-grid;
    grid-template-columns: 22px minmax(84px, 108px) 22px 40px;
    align-items: center;
    gap: 7px;
    min-height: 28px;
    padding: 3px 5px;
    border: 1px solid #314354;
    border-radius: 9px;
    background: rgba(18, 33, 47, .9);
    box-shadow: inset 0 1px rgba(255,255,255,.025), 0 5px 16px rgba(0,0,0,.16);
    min-width: 0;
    color: #c7d0d8;
  }

  .app-display-zoom-button,
  .app-display-zoom-field {
    min-height: 22px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: #edf2f5;
    font: 650 10px/1 inherit;
  }

  .app-display-zoom-button { padding: 0; cursor: pointer; color: #b7c6d3; }
  .app-display-zoom-field { width: 40px; padding: 0; color: #d9e6f1; font-size: 9px; letter-spacing: .01em; text-align: center; }
  .app-display-zoom-slider {
    width: 100%;
    height: 14px;
    margin: 0;
    appearance: none;
    background: transparent;
    cursor: pointer;
  }
  .app-display-zoom-slider::-webkit-slider-runnable-track {
    height: 5px;
    border-radius: 99px;
    background: linear-gradient(90deg, #7097c0 0 47%, #43586b 47% 100%);
  }
  .app-display-zoom-slider::-moz-range-track {
    height: 5px;
    border-radius: 99px;
    background: linear-gradient(90deg, #7097c0 0 47%, #43586b 47% 100%);
  }
  .app-display-zoom-slider::-webkit-slider-thumb {
    width: 11px;
    height: 11px;
    margin-top: -3px;
    border: 2px solid #bdd3e8;
    border-radius: 50%;
    appearance: none;
    background: #7199c2;
    box-shadow: 0 1px 5px rgba(0,0,0,.35);
  }
  .app-display-zoom-slider::-moz-range-thumb {
    width: 11px;
    height: 11px;
    border: 2px solid #bdd3e8;
    border-radius: 50%;
    background: #7199c2;
    box-shadow: 0 1px 5px rgba(0,0,0,.35);
  }
  .app-display-zoom-button:hover { background: #263a4c; color: #f3f7fb; }
  .app-display-zoom-button:hover,
  .app-display-zoom-field:focus,
  .app-display-zoom-button:focus-visible,
  .app-display-zoom-slider:focus-visible { border-color: #89a8c8; outline: 0; }

  .app-shell-resize-handle {
    position: absolute;
    z-index: 130;
    top: 1px;
    left: 1px;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    appearance: none;
    background: transparent;
    box-shadow: none;
    cursor: nwse-resize;
    outline: 0;
    touch-action: none;
  }

  .app-shell-resize-handle.is-top-right,
  .app-shell-resize-handle.is-bottom-left { cursor: nesw-resize; }
  .app-shell-resize-handle.is-top-right,
  .app-shell-resize-handle.is-bottom-right { left: auto; right: 1px; }
  .app-shell-resize-handle.is-bottom-left,
  .app-shell-resize-handle.is-bottom-right { top: auto; bottom: 1px; }
  .app-shell-resize-handle.is-bottom-right { border-radius:0 0 12px 0; background:#152737; }

  .app-shell-resize-handle:focus-visible {
    outline: 2px solid #89a8c8;
    outline-offset: 2px;
  }

  body.is-resizing-app-shell,
  body.is-resizing-app-shell * {
    cursor: nwse-resize !important;
    user-select: none !important;
  }

  .main {
    --app-display-zoom: 1;
    zoom: var(--app-display-zoom, 1);
  }

  .app-window .main-area,
  .app-window .workspace {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
  }

  .app-window .toolbar {
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .app-window .saved-panel {
    max-width: min(760px, calc(100% - 320px));
  }

  .app-window .panel-resize-handle::after {
    left: 50%;
    width: 9.5px;
    height: 13.5px;
    border-radius: 3px;
    background: #8996a2;
    clip-path: polygon(84% 8%, 8% 50%, 84% 92%);
    opacity: .45;
    transform: translate(-50%, -50%);
    transition: opacity 120ms ease, transform 120ms ease;
  }

  .app-window .panel-resize-handle:hover::after,
  .app-window .panel-resize-handle:focus-visible::after,
  .app-window .panel-resize-handle.is-active::after {
    background: #a8b4be;
    box-shadow: none;
    opacity: .9;
    transform: translate(-50%, -50%) scale(1.08);
  }

  body.is-resizing-saved-panel,
  body.is-resizing-saved-panel * {
    cursor: ew-resize !important;
    user-select: none !important;
  }
}

@media (max-width: 720px) {
  #app.app-shell.app-window {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-height: 100dvh;
    overflow: hidden;
  }

  .app-shell-resize-handle { display: none; }
  .main-area { background: #18232d; }
  .mobile-nav { border-color: #53616e; background: #1c2731; }
  .mobile-nav button { color: #aeb8c2; }
  .mobile-nav button.active { color: #91b2d4; }
  .saved-panel {
    border-color: #596775;
    background: #34414e;
    box-shadow: 0 -12px 30px rgba(2, 7, 12, .3);
  }
}

/* Premium MyPlaces map workspace — retains the established layout and controls. */
#app.app-shell {
  --ink: #f4f7fa; --muted: #aebac6; --line: #314354; --canvas: #09131d;
  --surface: #152737; --surface-raised: #1d3041; --surface-deep: #152737;
  --accent: #2f80ed; --accent-soft: rgba(47,128,237,.18); --success: #4ea98e; --warning: #e6ae54;
  --surface-canvas: #09131d; --surface-application: rgba(21,39,55,.78); --surface-navigation: #1d3041; --surface-table-row: #182c3d;
  --border-default: #314354; --border-strong: #4e6680; --text-primary: #f4f7fa; --text-secondary: #aebac6; --text-muted: #81909c;
  --accent-primary: #2f80ed; --accent-secondary: #62a0e8;
  --map-pin-bookmarked: #2f80ed; --map-pin-wishlist: #c9951d; --map-pin-favourite: #ef4444;
  --font-family: var(--app-font-family);
  background: var(--surface-deep);
  font-family: var(--app-font-family);
  font-size: var(--app-font-size);
  font-weight: var(--app-font-weight);
}

@media (min-width:721px) {
  #app.app-shell.app-window { overflow:hidden; border-color:#314354; border-radius:14px; background:var(--surface-deep); box-shadow:none; }
  #app.app-shell { grid-template-rows:57px minmax(0,1fr) var(--app-bottom-strip-height,33px); }
  #app > .sidebar { position:relative; z-index:100; height:57px; padding:5px 16px; overflow:visible; border-bottom-color:#314354; background:var(--surface-application); }
  #app > .sidebar:has(.nav-menu:hover),#app > .sidebar:has(.nav-menu:focus-within) { z-index:121; }
  #app > .sidebar .module-switcher { min-height:38px; border:0; border-radius:0; background:transparent; box-shadow:none; }
  #app > .sidebar .nav-link { position:relative; min-height:38px; color:#aebac6; font-size:12px; }
  #app > .sidebar > .nav-group > .nav-link[data-key="all"] { justify-content:center; }
  #app > .sidebar .nav-link:hover { border-color:transparent; background:transparent; color:#f4f7fa; }
  #app > .sidebar .nav-link.active { border-color:transparent; background:transparent; color:#f4f7fa; }
  #app > .sidebar .nav-link.active:focus-visible { outline:0; }
  #app > .sidebar > .nav-group { gap:6px; }
  #app > .sidebar > .nav-group > .nav-link,
  #app > .sidebar > .nav-group > .nav-menu { flex:0 0 100px; width:100px; }
  #app > .sidebar > .nav-group > .nav-link,
  #app > .sidebar > .nav-group > .nav-menu > .nav-link { justify-content:center; }
  #app > .sidebar > .nav-group > .nav-link:hover::after,
  #app > .sidebar > .nav-group > .nav-menu > .nav-link:hover::after,
  #app > .sidebar .nav-link.active::after { position:absolute; right:10px; bottom:-2px; left:10px; height:2px; border-radius:999px; background:#2f80ed; content:""; }
  #app > .sidebar .nav-menu { position:relative; flex:0 0 auto; }
  #app > .sidebar > .nav-group > .nav-menu { flex-basis:100px; }
  #app > .sidebar > .nav-group > .nav-menu > .nav-link { width:100%; }
  #app > .sidebar .nav-explorer-menu { --explorer-title-font-size:12px; }
  #app > .sidebar .nav-explorer-menu > .nav-link { font-size:var(--explorer-title-font-size); }
  #app > .sidebar .nav-explorer-chevron { width:12px; height:12px; margin-left:-2px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; transition:transform .16s ease; }
  #app > .sidebar .nav-explorer-menu:hover .nav-explorer-chevron,#app > .sidebar .nav-explorer-menu:focus-within .nav-explorer-chevron { transform:rotate(180deg); }
  #app > .sidebar .nav-hover-menu { position:absolute; z-index:110; top:100%; left:0; display:none; min-width:190px; padding:3px; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.32); }
  #app > .sidebar .nav-explorer-menu .nav-hover-menu { min-width:170px; }
  #app > .sidebar .nav-menu:hover .nav-hover-menu,#app > .sidebar .nav-menu:focus-within .nav-hover-menu { display:grid; gap:2px; }
  #app > .sidebar .nav-countries-menu.is-click-collapsed .nav-hover-menu { display:none; }
  #app > .sidebar .nav-hover-option,#app > .sidebar .nav-hover-empty { display:flex; align-items:center; gap:6px; min-height:30px; padding:0 8px; border-radius:6px; color:#f4f7fa; font-size:11px; white-space:nowrap; }
  #app > .sidebar .nav-explorer-menu .nav-hover-option { font-size:calc(var(--explorer-title-font-size) - 2px); }
  #app > .sidebar button.nav-hover-option { width:100%; border:0; background:transparent; font-family:inherit; font-weight:inherit; line-height:inherit; text-align:left; cursor:pointer; }
  #app > .sidebar .nav-hover-option:hover { background:#223241; }
  #app > .sidebar .nav-explorer-menu .nav-hover-option[aria-current="page"] { background:#20384e; color:#82bcff; }
  #app > .sidebar button.nav-hover-option:focus-visible { outline:0; background:#223241; }
  #app > .sidebar .nav-hover-option [data-icon] { width:15px; height:15px; flex:0 0 15px; }
  #app > .sidebar .nav-flight-plan-icon { width:14px; height:14px; flex:0 0 14px; object-fit:contain; filter:brightness(0) invert(1); opacity:.9; }
  #app > .sidebar .nav-hover-option .collection-dot { width:7px; height:7px; }
  #app > .sidebar .nav-hover-option img { display:block; width:16px; height:12px; min-width:16px; flex:0 0 16px; border-radius:2px; object-fit:contain; overflow:visible; }
  #app > .sidebar .nav-explorer-menu .nav-flight-map-icon { width:15px; height:15px; min-width:15px; flex-basis:15px; border-radius:0; filter:brightness(0) invert(1); }
  #app > .sidebar .nav-countries-menu .nav-hover-option img { width:10px; height:10px; min-width:10px; flex-basis:10px; border-radius:50%; object-fit:cover; }
  #app .weather-modal { position:relative; width:min(700px,calc(100vw - 32px)); padding:22px; border-color:#314354; background:#182634; color:#f4f7fa; }
  #app .weather-modal header { display:grid; gap:3px; } #app .weather-modal header strong { font-size:18px; } #app .weather-modal header span,.weather-source,.weather-current small { color:#aebac6; font-size:12px; }
  #app .weather-close { position:absolute; top:10px; right:10px; } #app .weather-current { margin:18px 0 18px 30px; font-size:28px; } #app .weather-days { display:grid; grid-template-columns:repeat(7,minmax(68px,1fr)); overflow:auto; border:1px solid #314354; border-radius:9px; background:#111d29; }
  #app .weather-days > button { display:grid; gap:5px; min-width:68px; padding:10px 8px; border-right:1px solid #314354; text-align:center; } #app .weather-days > button:last-child { border:0; } #app .weather-days small { color:#aebac6; font-size:10px; line-height:1.25; } #app .weather-days .weather-day-date { color:#81909c; font-size:9px; font-weight:500; line-height:1; } #app .weather-day-title { display:flex; align-items:center; justify-content:center; gap:5px; } #app .weather-day-title img { width:17px; height:17px; object-fit:contain; opacity:.96; } #app .weather-day-temperature { display:inline-flex; align-items:baseline; justify-content:center; gap:5px; } #app .weather-day-temperature small { color:#81909c; font-size:9px; font-weight:500; } #app .weather-day-low { display:inline-flex; align-items:baseline; justify-content:center; gap:3px; } #app .weather-day-low .weather-day-temperature { gap:3px; } #app .weather-day-low .weather-day-temperature small { font-size:8px; } #app .weather-day-sun-times { display:flex; justify-content:center; gap:8px; color:#81909c!important; font-size:9px!important; } #app .weather-day-sun-times span { display:inline-flex; align-items:center; gap:3px; } #app .weather-day-sun-times img { width:12px; height:12px; filter:brightness(0) invert(1); opacity:.72; } #app .weather-source,.weather-loading,.weather-error { margin:14px 0 0; color:#aebac6; } #app .weather-error { color:#e6ae54; }
  #app .unified-place-card .drawer-current-weather { display:grid; grid-template-columns:16px minmax(0,1fr) auto; align-items:center; gap:8px; min-height:42px; padding:9px 11px; border:1px solid #314354; border-radius:9px; background:#142432; color:#f4f7fa; font-size:11px; } #app .unified-place-card .drawer-weather-icon { width:16px; height:16px; object-fit:contain; } #app .unified-place-card .drawer-weather-generic { filter:brightness(0) invert(1); opacity:.72; } #app .unified-place-card .drawer-weather-copy { display:grid; gap:2px; min-width:0; } #app .unified-place-card .drawer-weather-copy small { color:#aebac6; font-size:10px; line-height:1.2; } #app .unified-place-card .drawer-weather-actions { display:flex; align-items:center; gap:4px; align-self:center; } #app .unified-place-card .drawer-weather-temperature { display:flex; align-items:center; justify-content:flex-end; gap:3px; } #app .unified-place-card .drawer-weather-condition { width:14px; height:14px; object-fit:contain; } #app .unified-place-card .drawer-current-weather strong { font-size:11px; font-weight:575; } #app .unified-place-card .drawer-weather-toggle { display:grid; width:22px; height:22px; padding:0; border:0; border-radius:5px; place-items:center; background:transparent; color:#b2bec9; cursor:pointer; } #app .unified-place-card .drawer-weather-toggle:hover,#app .unified-place-card .drawer-weather-toggle:focus-visible { background:#243a4e; color:#f3f7fb; outline:0; } #app .unified-place-card .drawer-weather-toggle svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; transition:transform .16s ease; } #app .unified-place-card .drawer-weather-toggle[aria-expanded="true"] svg { transform:rotate(180deg); } #app .unified-place-card .drawer-weather-forecast { display:grid; grid-column:1 / -1; gap:8px; margin:5px -14px 0; padding-top:9px; border-top:1px solid #314354; } #app .unified-place-card .drawer-weather-forecast[hidden] { display:none; } #app .unified-place-card .drawer-weather-hours,#app .unified-place-card .drawer-weather-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; } #app .unified-place-card .drawer-weather-hours { padding-bottom:8px; border-bottom:1px solid #314354; } #app .unified-place-card .drawer-weather-hour,#app .unified-place-card .drawer-weather-day { display:grid; justify-items:center; gap:2px; min-width:0; color:#aebac6; font-size:8px; line-height:1.15; text-align:center; } #app .unified-place-card .drawer-weather-day > span { color:#81909c; font-size:8px; } #app .unified-place-card .drawer-weather-hour img,#app .unified-place-card .drawer-weather-day img { width:15px; height:15px; object-fit:contain; opacity:.96; } #app .unified-place-card .drawer-weather-hour strong,#app .unified-place-card .drawer-weather-day strong { display:flex; align-items:baseline; gap:2px; color:#f4f7fa; font-size:10px; } #app .unified-place-card .drawer-weather-day i { color:#81909c; font-size:8px; font-style:normal; font-weight:400; }
  #app .unified-place-card .drawer-current-weather.is-forecast-expanded { align-items:start; min-height:148px; }
  #app .unified-place-card .drawer-current-weather { grid-template-columns:18px minmax(0,1fr) auto; gap:12px; padding-right:14px; padding-left:14px; }
  #app .unified-place-card .drawer-weather-icon { width:18px; height:18px; }
  #app > .sidebar .nav-city-code,#app > .sidebar .nav-country-code,#app > .sidebar .nav-city-count { margin-left:auto; color:#8090a0; font-size:10px; font-weight:400; }
  #app > .sidebar .nav-hover-empty { color:#aebac6; }
  #app > .sidebar .nav-country-submenu { position:relative; }
  #app > .sidebar .nav-country-trigger { justify-content:space-between; cursor:default; }
  #app > .sidebar .nav-country-trigger > span:nth-child(2) { margin-right:auto; }
  #app > .sidebar .nav-country-chevron { color:#aebac6; font-size:16px; line-height:1; }
  #app > .sidebar .nav-country-city-menu { position:absolute; z-index:111; top:-6px; left:calc(100% + 2px); display:none; min-width:170px; padding:3px; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.32); }
  #app > .sidebar .nav-country-submenu:hover > .nav-country-city-menu { display:grid; gap:2px; }
  #app > .sidebar .timezone-clock { margin-left:10px; border-left-color:#314354; color:#f4f7fa; }
  #app.app-window > .main-area > .toolbar { top:17.5px; left:calc(var(--saved-panel-width,534px) + 16px); right:16px; justify-content:flex-start; gap:8px; }
  #app.app-window > .main-area.saved-panel-hidden > .toolbar { left:16px; }
  #app.app-window > .main-area > .toolbar .search-box { position:relative; left:auto; z-index:1; flex:0 1 620px; width:min(620px,100%); min-width:0; max-width:620px; transform:none; }
  #app.app-window > .main-area > .toolbar .map-layers-control { position:fixed; z-index:35; top:auto; right:16px; bottom:calc(var(--app-bottom-strip-height,33px) + 18px); left:auto; flex:0 0 auto; margin-left:0; }
  #app.app-window > .main-area > .toolbar .map-layers-control .map-layers-menu { top:auto; right:0; bottom:calc(100% + 2px); left:auto; }
  #app.app-window > .main-area > .toolbar .map-layers-control::after { position:absolute; right:0; bottom:100%; width:100%; height:2px; content:''; }
  #app.app-window > .main-area > .toolbar .map-selector-control,#app.app-window > .main-area > .toolbar .map-tone-control { position:relative; top:auto; right:auto; bottom:auto; left:auto; flex:0 0 auto; }
  #app.app-window > .main-area > .toolbar .toolbar-select,#app.app-window > .main-area > .toolbar .toolbar-spacer { display:none; }
  #app.app-window > .main-area > .toolbar .search-box input,#app.app-window > .main-area > .toolbar .country-picker-trigger,#app.app-window > .main-area > .toolbar .icon-button { height:38px; border-color:#314354; border-radius:9px; background:rgba(17,29,41,.9); color:#f4f7fa; box-shadow:0 8px 20px rgba(3,9,16,.16); }
  #app.app-window > .main-area > .toolbar .search-box input { border-radius:14px; font-size:calc(var(--app-font-size) * .9142857143); }
  #app.app-window > .main-area > .toolbar .search-box .nucleo-search-icon { position:absolute; z-index:1; left:10px; width:14px; height:14px; filter:brightness(0) invert(1); opacity:.9; pointer-events:none; }
  #app.app-window > .main-area > .toolbar .search-box .search-clear-button { position:absolute; z-index:2; right:10px; display:grid; width:18px; height:18px; padding:0; border:0; place-items:center; background:transparent; cursor:pointer; }
  #app.app-window > .main-area > .toolbar .search-box .search-clear-button img { display:block; width:18px; height:18px; object-fit:contain; filter:brightness(0) invert(1); }
  #app.app-window > .main-area > .toolbar .search-box .search-clear-button:hover,#app.app-window > .main-area > .toolbar .search-box .search-clear-button:focus-visible { opacity:.8; outline:0; }
  #app.app-window > .main-area > .toolbar .country-picker-trigger { min-height:38px; }
  #app.app-window > .main-area > .toolbar .search-box input:focus,#app.app-window > .main-area > .toolbar .country-picker-trigger:focus-visible { border-color:#2f80ed; }
}

#app .workspace,#app .map-canvas,#app .map-fallback { background:#101f2c; }
#app .map-canvas { overflow:hidden; opacity:1; transition:opacity .65s cubic-bezier(.22,.61,.36,1); }
#app .map-canvas.is-map-loading { opacity:0; transition:none; }
#app .map-canvas::after { position:absolute; z-index:30; inset:0; background:#101f2c; content:''; opacity:0; pointer-events:none; transition:opacity .12s ease; }
#app .map-canvas.is-map-refreshing::after { opacity:1; }
.current-location-overlay { position:absolute; z-index:58; box-sizing:border-box; width:14px; height:14px; border:2px solid #fff; border-radius:50%; background:#2f80ed; box-shadow:0 1px 5px rgba(10,34,58,.42); pointer-events:none; transform:translate(-50%,-50%); }
.current-location-overlay::after { position:absolute; inset:-5px; border:2px solid rgba(47,128,237,.62); border-radius:50%; content:""; animation:current-location-pulse 1.8s ease-out infinite; pointer-events:none; }
@keyframes current-location-pulse { 0%,25% { opacity:.55; transform:scale(.78); } 80%,100% { opacity:0; transform:scale(1.65); } }
@media (prefers-reduced-motion:reduce) { .current-location-overlay::after { opacity:.42; transform:scale(1.15); animation:none; } }
@media (prefers-reduced-motion:reduce) { #app .map-canvas { transition:none; } }
/* Concept A: lighter header band (flag + name) over darker meta body; very thin outer border. */
/* Clearance from lat/lng tip: pin body (~24–33px) + ~4px gap above the pin head. */
/* scale(0.9) + bottom-centre origin keeps the card ~10% smaller while seated above the pin. */
.map-marker-tooltip { position:absolute; z-index:60; display:grid; gap:0; align-content:start; width:max-content; height:auto!important; min-width:0; max-width:min(360px,90vw); padding:0; overflow:hidden; border:0.5px solid rgba(148,163,178,.55); border-radius:10px; background:#181f29; box-shadow:0 10px 24px rgba(0,0,0,.36); color:#f4f7fa; font:400 11px/1.25 "Ubuntu",system-ui,sans-serif; pointer-events:auto; transform:translate(-50%,calc(-100% - 28px)) scale(0.9); transform-origin:50% 100%; }
.map-marker-tooltip strong { font-size:12px; font-weight:500; }
.map-marker-tooltip-title { display:flex; align-items:center; gap:6px; margin:0; padding:8px 11px 6px; background:#2d3641; color:#f4f7fa; }
.map-marker-tooltip-title > span { flex:0 1 auto; max-width:100%; line-height:1.25; overflow-wrap:break-word; white-space:nowrap; }
.map-marker-tooltip-flag { width:11px; height:11px; flex:0 0 11px; border-radius:50%; object-fit:cover; }
.map-marker-tooltip-meta { display:grid; grid-template-columns:repeat(3,max-content); align-items:center; justify-content:space-between; gap:14px; box-sizing:border-box; width:100%; padding:6px 11px 8px; background:#181f29; }
.map-marker-tooltip-category { display:flex; align-items:center; gap:5px; }
.map-marker-tooltip-category .material-icon,.map-marker-tooltip-category .icon-svg { width:13px; height:13px; flex:0 0 13px; font-size:13px; line-height:13px; }
.map-marker-tooltip > span { color:#aebac6; }
.map-marker-tooltip .map-marker-tooltip-rating { color:#f2bd61; font-weight:600; white-space:nowrap; }
.map-marker-tooltip-reviews { display:inline-flex; align-items:center; gap:3px; color:#81909c; font:400 10px/1.2 "Ubuntu",system-ui,sans-serif; white-space:nowrap; }
.map-marker-tooltip-review-icon { width:11px; height:11px; flex:0 0 11px; object-fit:contain; filter:brightness(0) invert(1); opacity:.75; }
.openstreetmap-marker .map-marker-tooltip { visibility:hidden; opacity:0; left:50%; top:0; z-index:8; transition:opacity .12s ease,visibility .12s ease; }
.openstreetmap-marker:hover .map-marker-tooltip,.openstreetmap-marker:focus-visible .map-marker-tooltip { visibility:visible; opacity:1; }
#app .map-fallback::before { opacity:.58; }
#app .map-canvas .gm-style .gm-style-cc,
#app .map-canvas .gm-style .gm-style-cc > div { border-radius:999px!important; overflow:hidden!important; }
#app .map-canvas .gm-style .gm-style-cc,
#app .map-canvas .gm-style .gm-style-cc a { cursor:default!important; pointer-events:none!important; }
#app .saved-panel { position:absolute; top:0; right:auto; bottom:var(--app-bottom-strip-height,33px); left:0; width:var(--saved-panel-width,534px); grid-template-rows:auto minmax(0,1fr); border-right:1px solid #314354; border-left:0; border-radius:0 14px 0 0; background:var(--surface-application); box-shadow:14px 0 30px rgba(3,9,16,.2); }
@media (min-width:721px) {
  #app.app-window > .main-area { grid-row:2 / span 2; overflow:visible; }
  #app.app-window > .main-area > .workspace { overflow:visible; }
  /* Sit above the full-width Cloudflare strip so the last place row is not clipped. */
  #app.app-window .saved-panel { z-index:50; bottom:var(--app-bottom-strip-height,33px); height:auto; }
  #app.app-window .saved-panel:has(.saved-panel-location-filters .country-picker-menu:not([hidden])) { z-index:100; }
  #app.app-window > .sidebar > .app-bottom-strip { right:0; }
}
#app .panel-heading { padding:16px 14px 12px; border-top-right-radius:14px; border-bottom-color:#314354; background:var(--surface-application); }
#app .panel-heading-copy { display:flex; align-items:center; justify-content:space-between; width:100%; min-width:0; }
#app .panel-heading h2 { display:flex; align-items:center; gap:8px; color:#f4f7fa; font-size:12px; }
#app .panel-heading h2 > span { color:inherit; font-size:inherit; }
#app .panel-heading .panel-brand-mark { display:block; flex:0 0 23px; width:23px; height:23px; overflow:hidden; border-radius:7px; background:center/cover no-repeat url("../assets/branding/myplaces-logo.png"); }
#app .panel-heading .panel-brand-mark::before { content:none; }
#app .panel-heading span { color:#aebac6; font-size:11px; }
#app .saved-panel-pin { position:absolute; z-index:3; right:12px; bottom:12px; }
#app .saved-panel-pin .icon-button { width:32px; min-height:32px; border-color:#314354; border-radius:8px; background:#182634; color:#aebac6; box-shadow:0 6px 16px rgba(0,0,0,.2); }
#app .saved-panel-pin .icon-button:hover,#app .saved-panel-pin .icon-button:focus-visible { border-color:#4e6680; background:#223241; color:#f4f7fa; outline:0; }
#app .toolbar > .icon-button { display:none; }
#app .filter-bar { padding:10px 12px; border-bottom-color:#314354; background:var(--surface-application); }
#app .filter-chip { min-height:30px; border-color:#314354; border-radius:8px; background:#182634; color:#aebac6; font-size:11px; }
#app .filter-chip.active { border-color:#2f80ed; background:rgba(47,128,237,.18); color:#e8f2ff; }
/* Search, location filters and sort controls remain one full-width responsive group. */
#app .saved-panel-location-filters { display:flex; flex-direction:column; align-items:stretch; width:100%; max-width:none; box-sizing:border-box; padding:8px 12px 10px; border-bottom:1px solid #314354; background:var(--surface-application); }
#app .saved-panel-location-filters-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6.93px; width:100%; min-width:0; }
#app .saved-panel-location-filters .toolbar-picker { min-width:0; }
#app .saved-panel-location-filters > .saved-panel-search { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6.93px; width:100%; min-width:0; padding:10px 0; }
#app .saved-panel-location-filters > .saved-panel-search [data-icon] { left:10px; }
#app .saved-panel-location-filters > .saved-panel-search .saved-panel-search-clear { right:calc(25% + 10px); left:auto; }
#app .saved-panel-location-filters > .saved-panel-search input { grid-column:1 / 4; width:100%; max-width:none; padding-right:31px; }
#app .saved-panel-location-filters > .saved-panel-search .saved-panel-count { grid-column:4; justify-self:center; }
#app .saved-panel-location-filters .country-picker-trigger { position:relative; display:grid; grid-template-columns:14px minmax(0,1fr) 14px; align-items:center; column-gap:2px; width:100%; min-width:0; min-height:33px; padding:0 7px; border-color:#314354; border-radius:10px; background:#182634; color:#f4f7fa; font-family:inherit; font-size:11px; font-weight:550; line-height:1; text-align:center; box-shadow:0 8px 18px rgba(0,0,0,.22); }
#app .saved-panel-location-filters .country-picker-trigger:hover,#app .saved-panel-location-filters .country-picker-trigger:focus-visible { border-color:#314354; background:#223241; color:#fff; outline:0; }
#app .saved-panel-location-filters .country-picker-trigger > span:not([data-icon]):not(.category-type-icon) { position:static; inset:auto; grid-column:2; justify-self:stretch; overflow:visible; padding:0; font-size:11px; line-height:1; text-align:center; text-overflow:clip; white-space:nowrap; pointer-events:none; min-width:0; }
#app .saved-panel-location-filters .country-picker-trigger [data-icon],#app .saved-panel-location-filters .country-picker-trigger .country-flag { position:relative; z-index:1; grid-column:1; justify-self:start; width:14px; height:14px; }
#app .saved-panel-location-filters .country-picker-trigger > .material-icon,#app .saved-panel-location-filters .country-picker-trigger > .icon-svg { position:relative; z-index:1; grid-column:1; justify-self:start; width:14px; height:14px; }
#app .saved-panel-location-filters .country-picker-trigger > .material-icon { font-size:14px; transform:scale(1.15); transform-origin:center; }
#app .saved-panel-location-filters .country-picker-trigger > .category-type-icon { position:relative; z-index:1; display:grid; grid-column:1; justify-self:start; width:14px; height:14px; aspect-ratio:1; place-items:center; inset:auto; padding:0; overflow:visible; line-height:1; pointer-events:none; }
#app .saved-panel-location-filters .country-picker-trigger .category-type-icon .material-icon { width:14px; height:14px; font-size:14px; transform:scale(1.15); transform-origin:center; }
#app .saved-panel-location-filters .country-picker-trigger .category-type-icon .icon-svg,#app .saved-panel-location-filters .country-picker-trigger .category-type-icon img { display:block; width:14px; height:14px; max-width:14px; max-height:14px; aspect-ratio:1; object-fit:contain; filter:brightness(0) invert(1); }
#app .saved-panel-location-filters .country-picker-chevron { position:relative; z-index:1; grid-column:3; justify-self:end; width:11px; height:11px; margin-left:0; }
#app .saved-panel-location-filters .country-picker-menu { width:260px; padding:5px; border-color:#314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.35); }
#app .saved-panel-location-filters-row > .toolbar-picker:first-child .country-picker-menu { right:auto; left:0; }
#app .saved-panel-location-filters .country-picker-search { gap:8px; min-height:34px; margin:0 3px 4px; padding:0 9px; border:1px solid #314354; border-radius:14px; background:rgba(17,29,41,.9); }
#app .saved-panel-location-filters .country-picker-search [data-icon] { width:15px; height:15px; color:#aebac6; }
#app .saved-panel-location-filters .country-picker-search input { color:#f4f7fa; font-family:inherit; font-size:12px; font-weight:550; line-height:1; }
#app .saved-panel-location-filters .country-picker-search input::placeholder { color:#aebac6; }
#app .saved-panel-location-filters .country-picker-search:focus-within { border-color:#2f80ed; }
#app .saved-panel-location-filters .country-picker-search input:focus-visible { outline:0; }
#app .saved-panel-location-filters .country-picker-options { max-height:292px; padding:0; }
#app .saved-panel-location-filters .country-option { display:grid; grid-template-columns:12px minmax(0,1fr) auto; align-items:center; column-gap:6px; min-height:30px; padding:0 8px; border-radius:0; color:#f4f7fa; font-family:inherit; font-size:12px; font-weight:550; line-height:1; }
#app .saved-panel-location-filters .country-option > span:last-child { font-family:inherit; font-size:12px; font-weight:550; line-height:1; }
#app .saved-panel-location-filters .country-option:not(:first-child),#app .saved-panel-location-filters .country-option:not(:first-child) > span:last-child { font-weight:350; }
#app .saved-panel-location-filters .country-picker-options .country-option:first-child { margin-bottom:0; border-bottom:1px solid rgba(174,186,198,.2); border-bottom-left-radius:0; border-bottom-right-radius:0; }
#app .saved-panel-location-filters .country-picker[data-picker="city"] .country-picker-options .country-option:first-child { margin-bottom:3px; border-bottom:1px solid rgba(174,186,198,.2); border-bottom-left-radius:0; border-bottom-right-radius:0; }
#app .saved-panel-location-filters .city-role-option { display:grid; grid-template-columns:10px 32px 8px 10px minmax(0,1fr); align-items:center; column-gap:6px; padding:0 8px; }
#app .saved-panel-location-filters .city-role-option .country-option-label { min-width:0; text-align:left; }
#app .saved-panel-location-filters .city-role-value-separator { color:#8090a0; }
#app .saved-panel-location-filters .city-role-city { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .saved-panel-location-filters .city-role-separator { height:1px; margin:3px 0; background:rgba(174,186,198,.2); }
#app .saved-panel-location-filters .city-role-separator[hidden] { display:none; }
#app .selected-place-map-label { max-width:150px; overflow:hidden; padding:5px 8px; border:1px solid rgba(255,255,255,.78); border-radius:999px; background:#111d29; box-shadow:0 3px 10px rgba(0,0,0,.32); color:#f4f7fa!important; font:600 11px/1 var(--font-family,inherit)!important; text-overflow:ellipsis; white-space:nowrap; }
#app .saved-panel-location-filters .country-option:hover,#app .saved-panel-location-filters .country-option:focus-visible { background:#223241; color:#fff; }
#app .saved-panel-location-filters .country-option[aria-selected="true"] { background:#31516a; color:#fff; box-shadow:inset 2px 0 #2f80ed; }
#app .saved-panel-location-filters .country-option [data-icon] { width:10px; height:10px; flex:0 0 10px; }
#app .saved-panel-location-filters .country-option .country-flag { width:10.5px; height:10.5px; flex:0 0 10.5px; }
#app .saved-panel-location-filters .country-option > .material-icon,#app .saved-panel-location-filters .country-option > .icon-svg { width:12px; height:12px; flex:0 0 12px; }
#app .saved-panel-location-filters .country-option > .material-icon { font-size:12px; transform:none; }
#app .saved-panel-location-filters .country-option .category-type-icon { display:grid; width:12px; height:12px; flex:0 0 12px; place-items:center; }
#app .saved-panel-location-filters .country-option .category-type-icon .material-icon,#app .saved-panel-location-filters .country-option .category-type-icon .icon-svg,#app .saved-panel-location-filters .country-option .category-type-icon img { width:12px; height:12px; font-size:12px; transform:none; filter:brightness(0) invert(1); }
#app .saved-panel-location-filters .country-option .country-flag { border-radius:50%; box-shadow:none; }
#app .saved-panel-location-filters .country-option .country-option-label { min-width:0; font-family:inherit; font-size:12px; font-weight:350; line-height:1; text-align:left; }
#app .saved-panel-location-filters .country-option > .country-option-code { margin-left:auto; color:#8090a0; font-family:inherit; font-size:10px!important; font-weight:350; line-height:1; }
#app .saved-panel-sort { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:6px; width:100%; max-width:none; padding:6px 0 0; background:transparent; color:#aebac6; font-size:10px; font-weight:600; }
#app .saved-panel-sort-reset { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; gap:0; min-width:25px; min-height:25px; margin-right:2px; padding:0; border:1px solid transparent; border-radius:7px; background:transparent; color:#aebac6; cursor:pointer; }
#app .saved-panel-sort-reset .icon-svg { width:12px; height:12px; flex:0 0 12px; opacity:.78; }
#app .saved-panel-sort-separator { width:1px; height:15px; flex:0 0 1px; margin:0 1px; background:#314354; }
#app .saved-panel-sort button { display:inline-flex; align-items:center; justify-content:center; flex:1 1 auto; gap:4px; min-height:25px; padding:0 7px; border:1px solid #314354; border-radius:7px; background:#182634; color:#aebac6; font:600 10.5px/1 inherit; cursor:pointer; }
#app .saved-panel-sort button[data-saved-panel-sort="name"] { font-size:10px; }
#app .saved-panel-sort button .icon-svg,#app .saved-panel-sort button .saved-panel-wishlist-icon { width:11px; height:11px; flex:0 0 11px; }
#app .saved-panel-wishlist-icon { filter:brightness(0) invert(1); }
#app .saved-panel-sort button:hover,#app .saved-panel-sort button:focus-visible { border-color:#4e6680; background:#223241; color:#f4f7fa; outline:0; }
#app .saved-panel-sort button[aria-pressed="true"] { border-color:transparent; background:#2f80ed; color:#fff; }
#app .saved-panel-sort button.saved-panel-sort-reset { flex:0 0 25px; padding:0; border-color:transparent; background:transparent; color:#aebac6; }
#app .saved-panel-sort button.saved-panel-sort-reset:hover,#app .saved-panel-sort button.saved-panel-sort-reset:focus-visible { border-color:#4e6680; background:#223241; color:#f4f7fa; outline:0; }
#app .saved-panel-sort button.saved-panel-sort-reset:hover .icon-svg,#app .saved-panel-sort button.saved-panel-sort-reset:focus-visible .icon-svg { opacity:1; }
#app .saved-panel-sort button.saved-panel-sort-reset[aria-pressed="true"] { border-color:#4e6680; background:#223241; color:#f4f7fa; }
#app .saved-panel-sort button.saved-panel-sort-reset[aria-pressed="true"] .icon-svg { opacity:1; }
#app .saved-panel-sort button[data-action="toggle-saved-panel-favourites"][aria-pressed="true"] { border-color:#ef4444; background:#d83b47; color:#fff; }
#app .saved-panel-sort button[data-action="toggle-saved-panel-wishlist"][aria-pressed="true"] { border-color:#e0a92d; background:#c9951d; color:#fff; }
#app .saved-panel-search { position:relative; display:flex; align-items:center; box-sizing:border-box; height:54px; padding:10px 12px; background:var(--surface-application); }
#app .saved-panel-search [data-icon] { position:absolute; top:50%; left:22px; width:14px; height:14px; color:#aebac6; pointer-events:none; transform:translateY(-50%); }
#app .saved-panel-search .saved-panel-search-clear { position:absolute; z-index:1; top:50%; left:20px; display:grid; width:18px; height:18px; padding:0; border:0; border-radius:4px; background:transparent; color:#aebac6; cursor:pointer; place-items:center; transform:translateY(-50%); }
#app .saved-panel-search .saved-panel-search-clear img { display:block; width:14px; height:14px; object-fit:contain; }
#app .saved-panel-search .saved-panel-search-clear:hover,#app .saved-panel-search .saved-panel-search-clear:focus-visible { background:#223241; color:#f4f7fa; outline:1px solid #4e6680; outline-offset:1px; }
#app .saved-panel-search .saved-panel-search-clear[hidden],#app .saved-panel-search [data-icon][hidden] { display:none; }
#app .saved-panel-search input { box-sizing:border-box; flex:0 0 350px; width:350px; min-width:0; max-width:calc(100% - 110px); height:34px; padding:0 10px 0 31px; border:1px solid #4e6680; border-radius:8px; background:#1d3041; color:#f4f7fa; font-size:12.8px; font-weight:400; }
#app .saved-panel-search .saved-panel-count { flex:0 0 auto; color:#aebac6; font-size:11px; font-weight:500; white-space:nowrap; }
#app .saved-panel-search input::placeholder { color:#aebac6; text-transform:capitalize; }
#app .saved-panel-search input:focus { border-color:#2f80ed; outline:0; }
#app .place-row[hidden],#app .saved-panel-search-empty[hidden] { display:none; }
#app .place-row { position:relative; display:grid; grid-template-columns:58px minmax(0,1fr) 86px; grid-template-rows:repeat(3,minmax(0,1fr)); column-gap:6px; row-gap:2px; align-items:center; min-height:76px; padding:9px 12px; border-bottom-color:transparent; background:var(--surface-application); cursor:pointer; }
#app .place-row::after { position:absolute; right:0; bottom:0; left:0; height:1px; background:#314354; content:""; pointer-events:none; }
#app .place-row:focus,
#app .place-row:focus-visible { outline:0; }
#app .place-row:hover { background:rgba(47,128,237,.2); }
#app .place-row.selected { background:#20384e; box-shadow:inset 2px 0 #2f80ed; }
#app .place-thumb { width:58px; height:58px; border:0; border-radius:0; outline:0; box-shadow:none; background:#111d29; object-fit:cover; }
#app .place-thumb-wrap { position:relative; display:block; grid-column:1; grid-row:1 / span 3; align-self:center; width:58px; height:58px; overflow:hidden; border:0; border-radius:8px; background:#111d29; box-shadow:none; isolation:isolate; }
#app .place-thumb-wrap .place-thumb { display:block; width:calc(100% + 2px); height:calc(100% + 2px); max-width:none; margin:-1px; border-radius:0; }
#app .place-thumb-upload-progress { position:absolute; z-index:3; inset:0; width:100%; height:100%; background:rgba(13,27,40,.84); cursor:wait; }
#app .place-thumb-upload-progress svg { inset:7px; width:44px; height:44px; }
#app .place-thumb-upload-progress circle { stroke-width:3; }
#app .place-thumb-upload-progress strong { font-size:9px; font-variant-numeric:tabular-nums; }
#app .place-thumb-badges { position:absolute; z-index:2; inset:0; pointer-events:none; }
#app .place-thumb-top-badges { position:absolute; top:4px; right:4px; display:flex; flex-direction:row; align-items:center; gap:1.5px; pointer-events:none; }
#app .place-thumb-badges .place-favourite-badge,
#app .place-thumb-badges .place-status-label.is-bookmarked { pointer-events:auto; }
#app .place-favourite-badge { position:static; display:grid; place-items:center; box-sizing:border-box; width:15px; height:15px; padding:0; border:1px solid rgba(49,67,84,.95); border-radius:50%; background:rgba(17,29,41,.88); color:#f4f7fa; line-height:0; box-shadow:0 2px 6px rgba(0,0,0,.28); cursor:pointer; opacity:.55; transition:opacity 120ms ease,background 120ms ease,border-color 120ms ease,color 120ms ease; appearance:none; -webkit-appearance:none; flex:0 0 15px; }
#app .place-favourite-badge [data-icon],
#app .place-favourite-badge .place-favourite-icon { width:8px; height:8px; }
#app .place-favourite-badge .place-favourite-icon { display:block; margin:0; object-fit:contain; transform:none; }
#app .place-favourite-badge:hover,#app .place-favourite-badge:focus-visible,#app .place-favourite-badge.is-favourite { opacity:1; }
#app .place-favourite-badge:hover,#app .place-favourite-badge:focus-visible { border-color:#f08d96; background:#223241; outline:0; }
#app .place-favourite-badge.is-favourite { border-color:var(--map-pin-favourite,#ef4444); background:var(--map-pin-favourite,#ef4444); color:#fff; }
#app .place-favourite-badge.is-favourite .icon-svg { fill:currentColor; stroke:currentColor; }
#app .place-favourite-badge.is-favourite .place-favourite-icon { filter:brightness(0) invert(1); }
#app .place-favourite-badge.is-favourite:hover,#app .place-favourite-badge.is-favourite:focus-visible { border-color:var(--map-pin-favourite,#ef4444); background:var(--map-pin-favourite,#ef4444); }
#app .place-title { color:#f4f7fa; font-size:12px; font-weight:600; }
#app .place-title-row { display:flex; align-items:center; gap:8px; min-width:0; max-width:100%; }
#app .place-title-row .place-title { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .place-row.is-renaming { cursor:default; box-shadow:inset 2px 0 #2f80ed; background:#182634; }
#app .place-row.is-renaming,
#app .place-row.is-renaming .place-title-row,
#app .place-row.is-renaming .place-subtitle,
#app .place-row.is-renaming .place-category { user-select:text; -webkit-user-select:text; }
#app .place-row-name-input { box-sizing:border-box; display:block; width:100%; min-width:0; height:22px; margin:0; padding:0 7px; border:1px solid #2f80ed; border-radius:5px; background:#0f1a24; color:#f4f7fa; caret-color:#f4f7fa; font:650 12px/1.2 "Ubuntu",system-ui,sans-serif; outline:0; user-select:text; -webkit-user-select:text; pointer-events:auto; }
#app .place-title-row .place-row-name-input { flex:1 1 auto; width:auto; min-width:0; }
#app .place-row-name-input:focus { border-color:#5aa2ff; box-shadow:0 0 0 2px rgba(47,128,237,.28); }
#app .place-subtitle,#app .place-meta { color:#aebac6; font-size:10px; }
#app .place-row .place-subtitle { margin-top:0; }
#app .place-copy .place-subtitle,#app .place-copy .place-category { margin-left:0; }
#app .saved-panel .place-row .country-flag { width:10px; height:10px; flex-basis:10px; }
#app .place-copy,
#app .place-rating-stack { display:contents; }
#app .place-title-row { grid-column:2; grid-row:1; min-width:0; max-width:100%; }
#app .place-subtitle { grid-column:2; grid-row:2; min-width:0; }
#app .place-category { grid-column:2; grid-row:3; min-width:0; }
#app .place-title-row,#app .place-row .place-subtitle,#app .place-row .place-category { box-sizing:border-box; padding-left:6px; }
#app .place-rating { grid-column:3; grid-row:1; display:flex; align-items:center; justify-content:center; gap:3px; margin:0; color:#e6ae54; font-size:12px; line-height:1.2; white-space:nowrap; }
#app .place-rating-count { grid-column:3; grid-row:2; display:flex; align-items:center; justify-content:center; gap:3px; width:100%; text-align:center; white-space:nowrap; }
#app .place-rating-count .icon-svg, #app .place-rating-count .place-review-icon { width:11px; height:11px; flex:0 0 11px; opacity:.75; filter:brightness(0) invert(1); }
#app .place-rating-status { grid-column:3; grid-row:3; display:flex; align-items:center; justify-content:center; min-width:0; }
#app .place-row-state-pill { display:inline-flex; align-items:center; justify-content:center; gap:3px; box-sizing:border-box; max-width:100%; min-height:15px; padding:2px 7px; border:1px solid transparent; border-radius:999px; color:#fff; font-size:10px; font-weight:400; line-height:1; white-space:nowrap; }
#app .place-row-state-pill .place-row-state-icon { display:block; width:8px; height:8px; flex:0 0 8px; object-fit:contain; filter:brightness(0) invert(1); }
#app .place-row-state-pill.is-wishlist { border-color:#e0a92d; background:var(--map-pin-wishlist,#c9951d); }
#app .place-row-state-pill.is-visited { border-color:transparent; background:#3a7070; }
#app .place-row-state-pill.is-favourite { border-color:#f08d96; background:var(--map-pin-favourite,#ef4444); }
#app .place-thumb-top-badges .place-status-label { flex:0 0 15px; }
#app .place-status-label { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; width:15px; height:15px; padding:0; border:0; border-radius:999px; background:var(--accent-primary,#2f80ed); color:#fff; line-height:1; box-shadow:0 1px 4px rgba(0,0,0,.28); appearance:none; -webkit-appearance:none; }
#app .place-status-label .place-status-label-icon { display:block; width:8px; height:8px; flex:0 0 8px; object-fit:contain; filter:brightness(0) invert(1); }
#app .place-status-label.is-wishlist { background:var(--map-pin-wishlist,#c9951d); color:#fff; }
#app .place-status-label.is-bookmarked { background:var(--map-pin-bookmarked,var(--accent-primary,#2f80ed)); color:#fff; }
#app button.place-status-label.is-bookmarked { cursor:pointer; transition:background 120ms ease,box-shadow 120ms ease; }
#app button.place-status-label.is-bookmarked:hover,
#app button.place-status-label.is-bookmarked:focus-visible { background:#4d94ee; box-shadow:0 0 0 1px rgba(255,255,255,.5),0 2px 6px rgba(0,0,0,.34); outline:0; }
#app .place-category { display:flex; align-items:center; gap:5px; min-width:0; color:#aebac6; font-size:10px; font-weight:400; white-space:nowrap; }
#app .place-category [data-icon] { width:13px; height:13px; flex:0 0 13px; }
#app .place-category .category-type-icon,#app .place-category .category-type-icon img { display:grid; width:13px; height:13px; flex:0 0 13px; object-fit:contain; filter:brightness(0) invert(1); }
#app .place-category > span:last-child { overflow:hidden; text-overflow:ellipsis; }

/* Saved places follows the live typography preference while preserving its hierarchy. */
#app .saved-panel { font-size:var(--app-font-size); }
#app .saved-panel-location-filters .country-picker-trigger,
#app .saved-panel-location-filters .country-picker-trigger > span:not([data-icon]):not(.category-type-icon),
#app .saved-panel-search .saved-panel-count { font-size:11px; }
#app .saved-panel-location-filters .country-picker-search input { font-size:12px; }
#app .saved-panel-sort button { font-size:calc(var(--app-font-size) * .75); }
#app .saved-panel-location-filters .country-option,
#app .saved-panel-location-filters .country-option > span:last-child,
#app .saved-panel-location-filters .country-option .country-option-label,
#app .place-title,
#app .place-row-name-input,
#app .place-rating { font-size:calc(var(--app-font-size) * .8571428571); }
#app .saved-panel-location-filters .country-option > .country-option-code,
#app .saved-panel-sort,
#app .saved-panel-sort button[data-saved-panel-sort="name"],
#app .place-subtitle,
#app .place-meta,
#app .place-category,
#app .place-row-state-pill { font-size:calc(var(--app-font-size) * .7142857143)!important; }
#app .saved-panel-search input { font-size:calc(var(--app-font-size) * .9142857143); }
#app .saved-panel-footer { padding:10px 12px; border-top:1px solid #314354; background:var(--surface-application); }
#app .saved-panel-footer { display:none; }
#app .saved-panel-footer .button { width:100%; min-height:38px; justify-content:space-between; border-color:#314354; background:#182634; color:#f4f7fa; font-size:12px; }
#app .drawer { top:70px; width:396px; border-color:#314354; border-radius:15px; background:#111d29; box-shadow:0 20px 46px rgba(0,0,0,.42); overflow:hidden; }
#app .drawer-edit-panel { position:absolute; z-index:16; top:70px; right:auto; left:calc(var(--saved-panel-width,534px) + 426px); box-sizing:border-box; width:396px; height:85%; max-height:none; overflow:auto; padding:16px; border:1px solid #314354; border-radius:15px; background:#111d29; box-shadow:0 20px 46px rgba(0,0,0,.42); }
#app .drawer-edit-panel ~ .drawer { top:50%; display:block; visibility:visible; z-index:17; transform:translateY(-50%); }
#app .drawer-edit-panel-header { display:flex; align-items:start; justify-content:space-between; gap:12px; }
#app .drawer-edit-panel h2 { font-size:21px; letter-spacing:-.035em; }
#app .drawer-edit-panel .drawer-address { margin-top:5px; }
#app .drawer-edit-panel-header .icon-button { flex:0 0 auto; border-color:rgba(244,247,250,.22); background:rgba(17,29,41,.82); color:#f4f7fa; }
#app .drawer-edit-form { margin-top:16px; }
#app .drawer-edit-form .drawer-actions { margin-top:4px; }
#app .drawer-edit-panel .editor-country { display:flex; align-items:center; gap:7px; margin-top:6px; color:#aebac6; font-size:12px; }
#app .drawer-edit-panel .editor-country .country-flag { width:16px; height:16px; }
#app .drawer-edit-panel input[readonly] { color:#aebac6; cursor:default; }
#app .drawer-edit-panel .category-editor { gap:6px; }
#app .drawer-edit-panel .category-editor-input { position:relative; display:block; }
#app .drawer-edit-panel .category-editor-input img { position:absolute; z-index:1; top:50%; left:11px; width:16px; height:16px; color:#aebac6; transform:translateY(-50%); pointer-events:none; }
#app .drawer-edit-panel .category-editor-input input { padding-left:36px; }
#app .drawer-edit-panel .visit-status-field { display:grid; gap:6px; min-width:0; margin:0; padding:0; border:0; }
#app .drawer-edit-panel .visit-status-field legend { padding:0; color:#b9c3cc; font-size:12px; font-weight:600; }
#app .personal-rating-picker { display:flex; align-items:center; justify-content:flex-start; gap:8px; min-height:38px; }
#app .personal-rating-stars { display:flex; align-items:center; gap:4px; }
#app .personal-rating-stars button { display:grid; width:24px; height:30px; place-items:center; padding:0; border:0; background:transparent; cursor:pointer; }
#app .personal-rating-stars [data-rating-star] { font-size:23px; line-height:1; color:#223241; background:linear-gradient(90deg,#ffbd22 calc(var(--rating-fill,0) * 100%),#223241 calc(var(--rating-fill,0) * 100%)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
#app .personal-rating-stars [data-fill="full"] { --rating-fill:1; }
#app .personal-rating-stars [data-fill="half"] { --rating-fill:.5; }
#app .personal-rating-stars [data-fill="empty"] { --rating-fill:0; }
#app .personal-rating-stars button:focus-visible { outline:2px solid #2f80ed; outline-offset:2px; border-radius:4px; }
#app .personal-rating-picker output { min-width:32px; color:#f4f7fa; font-size:12px; font-weight:700; text-align:left; }
#app .personal-rating-clear { display:grid; width:28px; height:28px; margin-left:auto; padding:0; border:0; background:transparent; color:#aebac6; place-items:center; cursor:pointer; }
#app .personal-rating-clear img,#app .personal-rating-clear .icon-svg { width:16px; height:16px; opacity:.78; filter:brightness(0) invert(1); }
#app .personal-rating-clear:hover,#app .personal-rating-clear:focus-visible { border-radius:6px; background:rgba(255,95,109,.12); color:#ff5f6d; outline:0; }
#app .personal-rating-clear:hover img,#app .personal-rating-clear:hover .icon-svg,#app .personal-rating-clear:focus-visible img,#app .personal-rating-clear:focus-visible .icon-svg { opacity:1; filter:none; }
#app .visit-status-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; border:1px solid #405767; border-radius:8px; background:#2c3843; }
#app .visit-status-picker label { position:relative; display:flex; align-items:center; justify-content:center; gap:6px; min-height:38px; padding:0 6px; border-right:1px solid #405767; color:#d9e1e8; font-size:11px; font-weight:600; text-align:center; cursor:pointer; }
#app .visit-status-picker label:last-child { border-right:0; }
#app .visit-status-picker input { position:absolute; width:1px; min-height:1px; opacity:0; pointer-events:none; }
#app .visit-status-picker label:has(input:checked) { background:#2f80ed; color:#fff; }
#app .visit-status-picker label:first-child:has(input:checked) { background:#c9951d; color:#fff; }
#app .visit-status-picker label:focus-within { outline:0; }
#app .visit-status-picker .visit-status-icon { width:14px; height:14px; flex:0 0 14px; filter:brightness(0) invert(1); opacity:.88; }
#app .drawer-actions .button { font-size:12px; }
#app .drawer-header { position:absolute; z-index:3; top:0; right:0; padding:10px; }
#app .drawer-header .icon-button,#app .drawer-favourite { border-color:rgba(244,247,250,.22); background:rgba(17,29,41,.82); color:#f4f7fa; backdrop-filter:blur(8px); }
#app .drawer-favourite.is-active { border-color:rgba(244,247,250,.22); background:rgba(17,29,41,.82); color:#ff5f6d; }
#app .drawer-favourite.is-active .icon-svg { fill:currentColor; }
#app .drawer-media { position:relative; }
#app .drawer-media::after { position:absolute; right:0; bottom:0; left:0; height:54px; background:linear-gradient(transparent,#111d29); content:''; pointer-events:none; }
#app .drawer-image { width:100%; height:194px; margin:0; border-radius:0; }
#app .drawer-photo-controls { position:absolute; z-index:2; right:10px; bottom:9px; display:flex; align-items:center; gap:5px; padding:3.75px; border:1px solid rgba(244,247,250,.22); border-radius:9px; background:rgba(17,29,41,.82); color:#f4f7fa; font-family:inherit; font-size:10px; font-weight:600; line-height:1; backdrop-filter:blur(8px); }
#app .custom-photo-upload { position:absolute; z-index:3; right:auto; bottom:10px; left:10px; width:32px; min-height:32px; border-color:rgba(244,247,250,.22); border-radius:8px; background:rgba(17,29,41,.82); color:#f4f7fa; cursor:pointer; backdrop-filter:blur(8px); }
#app .custom-photo-upload [data-icon] { width:16px; height:16px; }
#app .custom-photo-upload input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
#app .drawer-photo-controls .icon-button { width:22px; min-height:22px; border:0; border-radius:6px; background:transparent; color:inherit; font-size:10px; line-height:1; }
#app .drawer-photo-controls .icon-button:hover { background:#223241; }
#app .drawer-photo-controls .icon-svg { width:15px; height:15px; }
#app .drawer-photo-controls .photo-caret { font-family:inherit; font-size:10px; font-weight:400; line-height:1; }
#app .drawer-title-row .drawer-favourite { position:static; z-index:auto; flex:0 0 auto; margin:0; }
#app .drawer-title-row { min-height:34px; }
#app .drawer-title-row > div { min-width:0; flex:1 1 auto; padding-right:76px; }
#app .drawer-body { position:relative; padding:15px; }
#app .drawer h2 { color:#f4f7fa; font-size:18px; }
#app .drawer-address,#app .info-item { color:#aebac6; font-size:12px; }
#app .drawer-website > span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .drawer-title-row + .place-rating { position:absolute; top:15px; right:52px; display:grid; justify-items:end; gap:2px; margin:0; color:#f6bf59; font-size:10px; line-height:1; text-align:right; white-space:nowrap; }
#app .drawer-title-row + .place-rating .place-meta { display:block; color:#c6d2de; font-size:10px; }
#app .info-grid { gap:0; margin:14px 0; border:1px solid #314354; border-radius:9px; overflow:hidden; }
#app .info-item { min-height:35px; padding:8px 10px; border-bottom:1px solid #314354; }
#app .info-item:last-child { border-bottom:0; }
#app .drawer .tag { border:1px solid #314354; background:#182634; color:#c6d2de; }
#app .drawer-actions .button-primary { border-color:#2f80ed; background:#2f80ed; }
#app .drawer-actions .button,#app .drawer-actions .icon-button { min-height:33.25px; font-size:9px; }
#app .unified-place-card { position:absolute; z-index:95; top:74px; right:auto; left:calc(var(--saved-panel-width,534px) + 16px); display:grid; grid-template-rows:44px auto 48px minmax(0,1fr); box-sizing:border-box; width:min(var(--place-card-width,444px),calc(100% - var(--saved-panel-width,534px) - 32px)); height:min(900px,calc(100% - 90px)); max-height:calc(100% - 90px); overflow:hidden; border-radius:16px; background:#0d1b28; color:#f2f5f8; font-family:var(--app-font-family); }
#app .unified-place-card .drawer-header { position:relative; z-index:4; top:auto; right:auto; display:flex; align-items:center; justify-content:flex-start; gap:12px; min-width:0; padding:0 10px 0 16px; border-bottom:1px solid #314555; background:#172735; }
#app .unified-place-card .drawer-header .icon-button { width:26px; min-height:26px; flex:0 0 26px; border-color:transparent; border-radius:7px; background:transparent; color:#b2bec9; }
#app .unified-place-card .drawer-header .icon-button:hover,#app .unified-place-card .drawer-header .icon-button:focus-visible { border-color:#314555; background:#1b2c3a; color:#fff; outline:0; }
#app .unified-place-card .drawer-place-heading { display:flex; align-items:center; gap:10px; flex:1 1 auto; min-width:0; }
#app .unified-place-card .drawer-details-loading { flex:0 0 auto; padding:3px 6px; border-radius:999px; background:rgba(47,128,237,.16); color:#9dcbff; font-size:9px; font-weight:600; letter-spacing:.01em; }
#app .unified-place-card .drawer-details-loading[hidden] { display:none; }
#app .unified-place-card .drawer-title-menu { position:relative; display:flex; flex:0 0 20px; }
#app .unified-place-card .drawer-title-icon-button { display:grid; width:24px; height:24px; padding:0; border:0; border-radius:7px; background:transparent; place-items:center; cursor:pointer; }
#app .unified-place-card .drawer-title-icon-button:hover,#app .unified-place-card .drawer-title-icon-button:focus-visible { background:#223545; outline:0; }
#app .unified-place-card .drawer-title-menu-popover { position:absolute; z-index:8; top:calc(100% + 8px); left:0; display:grid; min-width:132px; padding:5px; border:1px solid #314555; border-radius:9px; background:#172735; box-shadow:0 12px 28px rgba(0,0,0,.34); }
#app .unified-place-card .drawer-title-menu-popover[hidden] { display:none; }
#app .unified-place-card .drawer-title-menu-popover button { display:flex; align-items:center; gap:7px; min-height:30px; padding:0 9px; border:0; border-radius:6px; background:transparent; color:#f2f5f8; font:400 12px/1 "Ubuntu",system-ui,sans-serif; text-align:left; cursor:pointer; }
#app .unified-place-card .drawer-title-menu-popover button img { width:14px; height:14px; flex:0 0 14px; filter:brightness(0) invert(1); opacity:.86; }
#app .unified-place-card .drawer-title-menu-popover button:hover,#app .unified-place-card .drawer-title-menu-popover button:focus-visible { background:#223545; outline:0; }
#app .unified-place-card .drawer-place-heading .category-type-icon { display:grid; width:16px; height:16px; flex:0 0 16px; align-self:center; place-items:center; color:#f2f5f8; }
#app .unified-place-card .drawer-place-heading .category-type-icon .material-icon,#app .unified-place-card .drawer-place-heading .category-type-icon .icon-svg,#app .unified-place-card .drawer-place-heading .category-type-icon img { width:16px; height:16px; font-size:16px; line-height:1; object-fit:contain; }
#app .unified-place-card .drawer-place-heading h2 { overflow:hidden; color:#f2f5f8; font-size:16px; font-weight:400; line-height:1.1; letter-spacing:-.025em; text-overflow:ellipsis; white-space:nowrap; }
#app .unified-place-card .drawer-custom-name-form { display:flex; flex:1 1 auto; min-width:0; align-items:center; gap:4px; }
#app .unified-place-card .drawer-custom-name-input { width:100%; min-width:0; height:30px; padding:0 7px; border:1px solid #3c79bc; border-radius:6px; background:#0d1b28; color:#f2f5f8; caret-color:#f2f5f8; font:365 16px/1.1 "Ubuntu",system-ui,sans-serif; letter-spacing:-.025em; outline:0; user-select:text; -webkit-user-select:text; }
#app .unified-place-card .drawer-custom-name-save { width:30px; height:30px; flex:0 0 30px; border-color:#2f6fae; color:#e8f4ff; }
#app .unified-place-card .drawer-custom-name-save:hover { background:#17446a; border-color:#5da8ed; }
#app .unified-place-card .drawer-header-country { display:flex; align-items:flex-start; gap:7px; min-width:0; margin-left:auto; color:#f2f5f8; font-size:13px; white-space:nowrap; }
#app .unified-place-card .drawer-header-country .country-flag { width:15px; height:15px; flex:0 0 15px; margin-top:1px; border:0; border-radius:50%; object-fit:cover; box-shadow:none; }
#app .unified-place-card .drawer-header-country-copy { display:grid; gap:1px; min-width:0; line-height:1.05; }
#app .unified-place-card .drawer-header-country-copy small { color:#81909c; font-size:12px; font-weight:400; }
#app .unified-place-card .drawer-header-actions { display:flex; align-items:center; gap:12px; margin-left:auto; }
#app .unified-place-card .drawer-header-action-group { display:flex; align-items:center; gap:4px; }
#app .unified-place-card .drawer-header-actions .icon-button { width:22px; min-height:22px; flex-basis:22px; }
#app .unified-place-card .drawer-header-actions .icon-button [data-icon] { width:15px; height:15px; flex-basis:15px; }
#app .unified-place-card .drawer-minimise-button { border-color:rgba(240,199,75,.58)!important; background:rgba(240,199,75,.07)!important; color:#f0c74b!important; }
#app .unified-place-card .drawer-close-button { border-color:rgba(239,100,112,.58)!important; background:rgba(239,100,112,.07)!important; color:#ef6470!important; }
#app .unified-place-card .drawer-media { position:relative; height:295px; overflow:hidden; }
#app .unified-place-card .drawer-media::after { height:62px; background:linear-gradient(transparent,rgba(13,27,40,.68)); }
#app .unified-place-card .drawer-image { display:block; width:100%; height:100%; margin:0; border-radius:0; object-fit:contain; }
#app .unified-place-card .drawer-favourite { position:absolute; z-index:3; top:14px; right:14px; width:29px; min-height:29px; height:29px; border:0; border-radius:50%; background:rgba(13,27,40,.74); color:#f2f5f8; backdrop-filter:blur(8px); }
#app .unified-place-card .drawer-favourite [data-icon] { width:21px; height:21px; flex-basis:21px; }
#app .unified-place-card .drawer-favourite.is-active { border-color:rgba(255,95,109,.9); color:#ff5f6d; }
#app .unified-place-card .drawer-photo-upload { position:absolute; z-index:5; bottom:18px; left:18px; }
#app .unified-place-card .drawer-photo-upload-menu[hidden] { display:none!important; }
#app .unified-place-card .custom-photo-upload { position:relative; right:auto; bottom:auto; left:auto; width:27px; min-height:27px; height:27px; border-radius:9px; }
#app .unified-place-card .custom-photo-upload { transition:transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease; }
#app .unified-place-card .custom-photo-upload:hover { border-color:rgba(115,174,255,.95); background:rgba(47,128,237,.9); color:#fff; box-shadow:0 7px 16px rgba(10,58,113,.48); transform:translateY(-1px); }
#app .unified-place-card .custom-photo-upload:focus-visible { border-color:#8bbcff; background:rgba(47,128,237,.9); color:#fff; box-shadow:0 0 0 3px rgba(94,165,255,.3); outline:0; }
#app .unified-place-card .drawer-photo-upload-menu { position:absolute; bottom:42px; left:0; display:grid; min-width:102px; padding:4px; border:1px solid #314555; border-radius:9px; background:#172735; box-shadow:0 10px 24px rgba(0,0,0,.3); }
#app .unified-place-card .drawer-photo-upload-menu label,#app .unified-place-card .drawer-photo-upload-menu button { display:flex; align-items:center; gap:8px; min-height:30px; padding:0 9px; border:0; border-radius:6px; background:transparent; color:#f2f5f8; font:500 12px/1 "Ubuntu",system-ui,sans-serif; cursor:pointer; }
#app .unified-place-card .drawer-photo-upload-menu label:hover,#app .unified-place-card .drawer-photo-upload-menu button:hover { background:#223545; }
#app .unified-place-card .drawer-photo-upload-menu [data-icon] { width:14px; height:14px; color:#b2bec9; }
#app .unified-place-card .drawer-photo-upload-menu input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
#app .unified-place-card .drawer-photo-controls { right:14px; bottom:18px; gap:2px; height:27px; min-height:27px; padding:1px 4px; border-radius:9px; background:rgba(13,27,40,.82); font-size:11px; font-weight:500; }
#app .unified-place-card .drawer-photo-controls .icon-button { width:23px; min-height:23px; height:23px; border-radius:7px; }
#app .unified-place-card .drawer-photo-controls .icon-svg { width:14px; height:14px; }
#app .unified-place-card .drawer-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); height:48px; border-bottom:1px solid #314555; background:#0d1b28; }
#app .unified-place-card .drawer-tabs button { position:relative; display:flex; align-items:center; justify-content:center; gap:7px; padding:0; border:0; background:transparent; color:#b2bec9; font:500 13px/1 "Ubuntu",system-ui,sans-serif; cursor:pointer; }
#app .unified-place-card .drawer-tab-icon { width:16px; height:16px; opacity:.8; filter:brightness(0) invert(1); }
#app .unified-place-card .drawer-tab-icon .icon-svg { width:16px; height:16px; display:block; }
#app .unified-place-card .drawer-tabs button::after { position:absolute; right:0; bottom:-1px; left:0; height:2px; background:#2f80ed; content:""; opacity:0; }
#app .unified-place-card .drawer-tabs button:hover,#app .unified-place-card .drawer-tabs button:focus-visible { color:#f2f5f8; outline:0; }
#app .unified-place-card .drawer-tabs button.is-active { color:#55a0ff; }
#app .unified-place-card .drawer-tabs button.is-active::after { opacity:1; }
#app .unified-place-card .drawer-tab-panels { min-height:0; background:#0d1b28; }
#app .unified-place-card .drawer-tab-panel { box-sizing:border-box; height:100%; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-color:#4e6475 #0d1b28; }
#app .unified-place-card .drawer-tab-panel[hidden] { display:none; }
#app .unified-place-card .drawer-details-panel { display:flex; flex-direction:column; padding:18px; }
#app .unified-place-card .drawer-info-list { display:grid; gap:8px; }
#app .unified-place-card .drawer-info-row { display:flex; align-items:center; gap:12px; box-sizing:border-box; min-height:45px; padding:8px 14px; border:1px solid #314555; border-radius:11px; background:#142432; color:#f2f5f8; font-size:12px; font-weight:365; line-height:1.4; text-decoration:none; }
#app .unified-place-card .drawer-info-row > [data-icon],#app .unified-place-card .drawer-info-row > .category-type-icon { width:18px; height:18px; flex:0 0 18px; color:#b2bec9; }
#app .unified-place-card .drawer-info-icon { width:18px; height:18px; flex:0 0 18px; filter:brightness(0) invert(1); opacity:.78; }
#app .unified-place-card .drawer-address-flag { width:12px; height:12px; flex:0 0 12px; border:0; border-radius:50%; outline:0; background:transparent; object-fit:cover; box-shadow:none; }
#app .unified-place-card .drawer-address-copy { display:grid; gap:1px; min-width:0; }
#app .unified-place-card .drawer-address-copy > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .unified-place-card .drawer-address-copy small { color:#81909c; font-size:10px; font-weight:365; line-height:1.2; }
#app .unified-place-card .drawer-address-location { display:flex; align-items:center; gap:7px; }
#app .unified-place-card .drawer-info-row .material-icon { width:18px; height:18px; font-size:18px; }
#app .unified-place-card .drawer-row-arrow { margin-left:auto; color:#b2bec9; font-size:18px; }
#app .unified-place-card .drawer-website-row { min-width:0; }
#app .unified-place-card .drawer-website-row,#app .unified-place-card .drawer-phone-row { min-height:36px; padding-top:6px; padding-bottom:6px; }
#app .unified-place-card .drawer-website-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .unified-place-card .drawer-website-row .drawer-row-arrow { flex:0 0 auto; }
#app .unified-place-card .drawer-opening-row { align-items:center; min-height:56px; }
#app .unified-place-card .drawer-opening-row.is-timeline-expanded { min-height:112px; }
#app .unified-place-card .drawer-opening-content { flex:1 1 auto; min-width:0; }
#app .unified-place-card .drawer-opening-copy { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
#app .unified-place-card .drawer-opening-copy > span { min-width:0; }
#app .unified-place-card .drawer-opening-copy small { display:inline-flex; align-items:center; gap:5px; flex:0 0 auto; padding:0; color:#b2bec9; font-size:9px; font-weight:700; }
#app .unified-place-card .drawer-opening-actions { display:inline-flex; align-items:center; gap:4px; flex:0 0 auto; }
#app .unified-place-card .drawer-opening-toggle { display:grid; width:22px; height:22px; place-items:center; padding:0; border:0; border-radius:5px; background:transparent; color:#b2bec9; cursor:pointer; }
#app .unified-place-card .drawer-opening-toggle:hover,#app .unified-place-card .drawer-opening-toggle:focus-visible { background:#243a4e; color:#f3f7fb; outline:0; }
#app .unified-place-card .drawer-opening-toggle svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; transition:transform .16s ease; }
#app .unified-place-card .drawer-opening-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
#app .unified-place-card .drawer-opening-copy [data-opening-status]::before { content:""; width:7px; height:7px; border-radius:50%; background:#e0b84f; box-shadow:0 0 0 2px rgba(224,184,79,.12); animation:drawer-status-pulse 1.8s ease-in-out infinite; }
#app .unified-place-card .opening-status.is-open .drawer-opening-copy [data-opening-status] { color:#70d6a5; }
#app .unified-place-card .opening-status.is-open .drawer-opening-copy [data-opening-status]::before { background:#45c57b; box-shadow:0 0 0 2px rgba(69,197,123,.12); }
#app .unified-place-card .opening-status.is-closing-soon .drawer-opening-copy [data-opening-status],#app .unified-place-card .opening-status.is-closed .drawer-opening-copy [data-opening-status] { color:#f4c75d; }
#app .unified-place-card .drawer-business-status { display:block; margin-top:2px; color:#91a1af; font-size:9px; font-weight:500; }
@keyframes drawer-status-pulse { 50% { opacity:.45; transform:scale(.82); } }
@media (prefers-reduced-motion:reduce) { #app .unified-place-card .drawer-opening-copy [data-opening-status]::before { animation:none; } }
#app .unified-place-card .opening-timeline { width:100%; margin-top:12px; }
#app .unified-place-card .opening-timeline-labels { display:flex; justify-content:space-between; padding:0 1px; color:#7f8d99; font-size:9px; }
#app .unified-place-card .opening-timeline-track { position:relative; height:8px; margin-top:5px; overflow:hidden; border-radius:99px; background:#2a3946; }
#app .unified-place-card .opening-timeline-segment { position:absolute; top:1px; bottom:1px; left:var(--timeline-start); width:var(--timeline-width); min-width:5px; border-radius:99px; background:linear-gradient(90deg,#a8d94a,#55c878 42%,#3fb66f); }
#app .unified-place-card .opening-timeline-now { position:absolute; z-index:2; top:0; bottom:0; left:var(--timeline-now); width:2px; border-radius:99px; background:#eef6ff; box-shadow:0 0 0 1px rgba(8,20,31,.38); transform:translateX(-50%); }
#app .unified-place-card .drawer-rating-row { gap:12px; }
#app .unified-place-card .drawer-category-row { align-items:center; min-height:38px; }
#app .unified-place-card .drawer-category-row > .category-type-icon { margin-top:0; }
#app .unified-place-card .drawer-category-content { flex:1 1 auto; min-width:0; }
#app .unified-place-card .drawer-category-content > span { display:block; }
#app .unified-place-card .drawer-category-suggestion { min-height:24px; padding:0 8px; border:1px dashed #4b6478; border-radius:7px; background:transparent; color:#aebac6; font:400 10px/1 "Ubuntu",system-ui,sans-serif; cursor:pointer; white-space:nowrap; }
#app .unified-place-card .drawer-category-suggestion:hover { border-color:#62a0e8; color:#f2f5f8; }
#app .unified-place-card .drawer-price-scale { width:100%; margin-top:8px; }
#app .unified-place-card .drawer-price-row { display:block; min-height:0; padding:10px 14px; }
#app .unified-place-card .drawer-price-row .drawer-price-scale { margin-top:0; }
#app .unified-place-card .drawer-price-heading { display:flex; justify-content:flex-end; color:#c2ccd5; font-size:10px; line-height:1; }
#app .unified-place-card .drawer-price-heading strong { font-weight:500; white-space:nowrap; }
#app .unified-place-card .drawer-price-labels { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:7px; color:#7f8d99; font-size:7px; line-height:1; }
#app .unified-place-card .drawer-price-labels span { text-align:center; }
#app .unified-place-card .drawer-price-labels span:first-child { text-align:left; }
#app .unified-place-card .drawer-price-labels span:last-child { text-align:right; }
#app .unified-place-card .drawer-price-track { position:relative; height:7px; margin-top:5px; border-radius:99px; background:linear-gradient(90deg,#516b7c 0%,#5b9a78 50%,#55c878 100%); }
#app .unified-place-card .drawer-price-track i { position:absolute; z-index:1; top:50%; width:1px; height:10px; background:rgba(239,246,255,.58); transform:translate(-50%,-50%); }
#app .unified-place-card .drawer-price-track i:nth-child(1) { left:0; }
#app .unified-place-card .drawer-price-track i:nth-child(2) { left:25%; }
#app .unified-place-card .drawer-price-track i:nth-child(3) { left:50%; }
#app .unified-place-card .drawer-price-track i:nth-child(4) { left:75%; }
#app .unified-place-card .drawer-price-track i:nth-child(5) { left:100%; }
#app .unified-place-card .drawer-price-track > span { position:absolute; top:50%; left:var(--price-position); width:10px; height:10px; border:2px solid #f2f5f8; border-radius:50%; background:#2f80ed; box-shadow:0 0 0 2px rgba(13,27,40,.72); transform:translate(-50%,-50%); }
#app .unified-place-card .public-rating-box { display:inline-flex; align-items:center; box-sizing:border-box; height:27px; gap:6px; min-width:70px; padding:0 10px; border-radius:9px; color:#fff; font-size:13px; font-weight:575; }
#app .unified-place-card .public-rating-box.rating-empty { background:rgba(137,153,166,.28); box-shadow:inset 0 0 0 1px rgba(174,188,199,.16); }
#app .unified-place-card .public-rating-box.rating-one { background:#ef3934; }
#app .unified-place-card .public-rating-box.rating-two { background:#ff654f; }
#app .unified-place-card .public-rating-box.rating-three { background:#ffc13b; }
#app .unified-place-card .public-rating-box.rating-four { background:#8dbd2a; }
#app .unified-place-card .public-rating-box.rating-five { background:#2eb327; }
#app .unified-place-card .drawer-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(128px,.42fr); gap:10px; margin-top:16px; }
#app .unified-place-card .drawer-details-actions { margin-top:auto; padding-top:16px; }
#app .unified-place-card:has(.drawer-details-panel:not([hidden])) { grid-template-rows:44px auto 48px minmax(0,1fr); height:min(900px,calc(100% - 90px)); max-height:calc(100% - 90px); }
#app .unified-place-card:has(.drawer-details-panel:not([hidden])) .drawer-tab-panel { height:100%; overflow:hidden; }
#app .unified-place-card:has(.drawer-details-panel:not([hidden])) .drawer-details-actions { margin-top:auto; }
#app .unified-place-card:has(.drawer-details-panel:not([hidden])) .drawer-info-list { min-height:0; flex:1 1 auto; overflow:auto; }
#app .unified-place-card { top:74px; height:min(750px,calc(100% - 90px)); max-height:calc(100% - 90px); transform:none; }
#app .unified-place-card:has(.drawer-details-panel:not([hidden])) { height:min(750px,calc(100% - 90px)); }
#app .unified-place-card:has(.drawer-personal-panel:not([hidden])) { grid-template-rows:44px auto 48px auto; height:auto; }
#app .unified-place-card:has(.drawer-personal-panel:not([hidden])) .drawer-tab-panel { height:auto; overflow:visible; }
#app .unified-place-card .drawer-actions .button { min-height:42px; border-color:#314555; background:#1b2c3a; color:#f2f5f8; font:600 12px/1 "Ubuntu",system-ui,sans-serif; }
#app .unified-place-card .drawer-actions .button-primary { border-color:#2f80ed; background:#2f80ed; color:#fff; }
#app .unified-place-card .drawer-details-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
#app .unified-place-card .drawer-details-actions > :nth-child(-n + 2),#app .unified-place-card .drawer-details-actions > :nth-child(3) { grid-column:auto; justify-self:stretch; width:100%; min-width:0; }
#app .unified-place-card .drawer-details-actions .button { display:inline-flex; align-items:center; justify-content:center; min-height:33px; height:33px; padding:0 8px; gap:6px; font-size:11px; }
#app .unified-place-card .drawer-details-actions .button > img,#app .unified-place-card .drawer-details-actions .button > .icon-svg { width:14px; height:14px; filter:brightness(0) invert(1); }
#app .unified-place-card .drawer-details-actions .button-danger { border-color:rgba(240,141,150,.52); color:#ffc4c9; }
#app .unified-place-card .drawer-details-actions .button-danger > img,#app .unified-place-card .drawer-details-actions .button-danger > .icon-svg { filter:invert(79%) sepia(19%) saturate(675%) hue-rotate(301deg) brightness(109%) contrast(101%); }
#app .unified-place-card .drawer-personal-panel { padding:0 20px 18px; }
#app .unified-place-card .drawer-edit-form { margin:0; }
#app .unified-place-card .personal-form-row { display:grid; grid-template-columns:1fr; gap:8px; align-items:center; min-height:76px; padding:14px 0; border-bottom:1px solid rgba(49,69,85,.72); }
#app .unified-place-card .personal-form-label { display:flex; align-items:center; gap:11px; color:#f2f5f8; font-size:12px; }
#app .unified-place-card .personal-form-label [data-icon] { width:18px; height:18px; color:#b2bec9; }
#app .unified-place-card .personal-form-label strong { font-weight:500; }
#app .unified-place-card .personal-form-control { min-width:0; }
#app .unified-place-card .personal-form-control input,#app .unified-place-card .personal-form-control textarea,#app .unified-place-card .personal-form-control .country-picker-trigger,#app .unified-place-card .personal-form-control .date-picker-trigger { box-sizing:border-box; width:100%; min-height:42px; padding:9px 12px; border:1px solid #314555; border-radius:10px; background:#142432; color:#f2f5f8; font:400 12px/1.35 "Ubuntu",system-ui,sans-serif; }
#app .unified-place-card .personal-form-control textarea { min-height:70px; resize:vertical; }
#app .unified-place-card .personal-form-control input::placeholder,#app .unified-place-card .personal-form-control textarea::placeholder { color:#7f8d99; }
#app .unified-place-card .personal-form-control input:focus,#app .unified-place-card .personal-form-control textarea:focus { border-color:#2f80ed; outline:0; }
#app .unified-place-card .collection-picker .country-picker-menu { z-index:8; border-color:#314555; background:#172735; }
#app .unified-place-card .collection-picker .country-option { color:#f2f5f8; }
#app .unified-place-card .personal-tags-editor { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:7px; min-height:42px; padding:6px; border:1px solid #314555; border-radius:10px; background:#142432; }
#app .unified-place-card .personal-tag-chips { display:flex; flex-wrap:wrap; gap:6px; }
#app .unified-place-card .personal-tag-chip { display:inline-flex; align-items:center; gap:6px; min-height:28px; padding:0 9px; border:1px solid #314555; border-radius:8px; background:#1b2c3a; color:#f2f5f8; font:400 11px/1 "Ubuntu",system-ui,sans-serif; cursor:pointer; }
#app .unified-place-card .personal-tag-chip .category-type-icon,
#app .unified-place-card .personal-tag-chip .category-type-icon img { width:12px; height:12px; flex:0 0 12px; display:grid; place-items:center; filter:brightness(0) invert(1); opacity:.9; }
#app .unified-place-card .personal-tag-suggestion { min-height:28px; padding:0 9px; border:1px dashed #4b6478; border-radius:8px; background:transparent; color:#aebac6; font:400 11px/1 "Ubuntu",system-ui,sans-serif; cursor:pointer; }
#app .unified-place-card .personal-tag-suggestion:hover { border-color:#62a0e8; color:#f2f5f8; }
#app .unified-place-card .personal-tag-matches[hidden] { display:none!important; }
#app .unified-place-card .personal-tag-matches { position:absolute; z-index:8; top:calc(100% + 5px); right:0; left:0; display:grid; max-height:132px; overflow:auto; padding:5px; border:1px solid #314555; border-radius:9px; background:#172735; box-shadow:0 10px 24px rgba(0,0,0,.32); }
#app .unified-place-card .personal-tag-matches button { min-height:30px; padding:0 9px; border:0; border-radius:6px; background:transparent; color:#f2f5f8; font:400 11px/1 "Ubuntu",system-ui,sans-serif; text-align:left; cursor:pointer; }
#app .unified-place-card .personal-tag-matches button:hover,#app .unified-place-card .personal-tag-matches button:focus-visible { background:#223545; outline:0; }
#app .unified-place-card .personal-tag-matches button.is-active { background:#2b4356; color:#f2f5f8; outline:0; }
#app .unified-place-card .personal-tag-input { flex:1 1 92px; width:auto!important; min-width:80px; min-height:28px!important; padding:0 6px!important; border:0!important; background:transparent!important; }
#app .unified-place-card .personal-rating-picker { min-height:30px; flex-wrap:wrap; }
#app .unified-place-card .personal-rating-stars [data-rating-star] { color:#7f8d99; background:linear-gradient(90deg,#ffbd22 calc(var(--rating-fill,0) * 100%),#7f8d99 calc(var(--rating-fill,0) * 100%)); -webkit-background-clip:text; background-clip:text; }
#app .unified-place-card .personal-rating-picker output { margin-left:8px; }
#app .unified-place-card .visit-status-picker { height:34px; background:#142432; }
#app .unified-place-card .visit-status-picker label { min-height:32px; font-size:12px; }
#app .unified-place-card .date-picker { width:100%; }
#app .unified-place-card .date-picker-popover { z-index:9; border-color:#314555; background:#172735; color:#f2f5f8; }
#app .unified-place-card .wifi-password-control { position:relative; height:34px; min-height:34px; }
#app .unified-place-card .wifi-password-control input { box-sizing:border-box; height:34px; min-height:34px; padding:0 48px 0 12px; }
#app .unified-place-card .wifi-password-control .icon-button { position:absolute; top:50%; right:6px; width:32px; min-height:32px; border:0; background:transparent; color:#b2bec9; transform:translateY(-50%); }
#app .unified-place-card .personal-form-actions { grid-template-columns:minmax(0,.7fr) minmax(0,1fr); padding-top:16px; }
#app .drawer-minimized-summary { display:none; }
#app .unified-place-card.is-minimized { --minimized-stack-index:0; position:absolute; top:auto!important; right:auto!important; bottom:calc(var(--app-bottom-strip-height,33px) + 56px + (var(--minimized-stack-index) * 76px)); left:calc(var(--saved-panel-width,534px) + 20px); z-index:calc(96 + var(--minimized-stack-index)); display:block; box-sizing:border-box; width:300px!important; min-width:0!important; max-width:calc(100% - var(--saved-panel-width,534px) - 40px)!important; height:68px!important; min-height:68px!important; max-height:68px!important; overflow:hidden; border:1px solid #314354; border-radius:12px; background:#172431; box-shadow:0 10px 24px rgba(0,0,0,.32); transform:none!important; cursor:pointer; }
#app .unified-place-card.is-minimized:hover,#app .unified-place-card.is-minimized:focus-within { border-color:#4e6680; background:#1b2a38; }
#app .unified-place-card.is-minimized .drawer-header,#app .unified-place-card.is-minimized .drawer-media,#app .unified-place-card.is-minimized .drawer-summary,#app .unified-place-card.is-minimized .drawer-tabs,#app .unified-place-card.is-minimized .drawer-tab-panels,#app .unified-place-card.is-minimized .drawer-details-loading,#app .unified-place-card.is-minimized .drawer-resize-handle { display:none; }
#app .unified-place-card.is-minimized .drawer-minimized-summary { display:grid; grid-template-rows:34px 34px; height:100%; color:#f3f6f8; }
#app .unified-place-card.is-minimized .drawer-minimized-title { display:flex; min-width:0; align-items:center; gap:7px; padding:0 12px; border-bottom:1px solid rgba(75,100,120,.58); }
#app .unified-place-card.is-minimized .drawer-minimized-title strong { min-width:0; overflow:hidden; font-size:13px; font-weight:650; line-height:1; text-overflow:ellipsis; white-space:nowrap; }
#app .unified-place-card.is-minimized .drawer-minimized-expand { display:grid; width:22px; height:22px; flex:0 0 22px; margin-left:auto; padding:0; border:0; border-radius:6px; background:transparent; color:#aebac6; cursor:pointer; place-items:center; }
#app .unified-place-card.is-minimized .drawer-minimized-expand:hover,#app .unified-place-card.is-minimized .drawer-minimized-expand:focus-visible { background:#26394a; color:#fff; outline:1px solid #4e6680; outline-offset:0; }
#app .unified-place-card.is-minimized .drawer-minimized-expand .icon-svg { width:13px; height:13px; }
#app .unified-place-card.is-minimized .drawer-address-flag { width:14px; height:14px; flex:0 0 14px; border-radius:50%; object-fit:cover; }
#app .unified-place-card.is-minimized .drawer-minimized-meta { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:0 12px; }
#app .unified-place-card.is-minimized .drawer-minimized-category,#app .unified-place-card.is-minimized .drawer-minimized-rating,#app .unified-place-card.is-minimized .drawer-minimized-reviews { display:flex; min-width:0; align-items:center; gap:4px; color:#aebac6; font-size:11px; font-weight:500; line-height:1; white-space:nowrap; }
#app .unified-place-card.is-minimized .drawer-minimized-category > span:last-child { overflow:hidden; text-overflow:ellipsis; }
#app .unified-place-card.is-minimized .drawer-minimized-category .category-type-icon,#app .unified-place-card.is-minimized .drawer-minimized-category .category-type-icon img,#app .unified-place-card.is-minimized .drawer-minimized-category .material-icon,#app .unified-place-card.is-minimized .drawer-minimized-category .icon-svg { width:12px; height:12px; flex:0 0 12px; font-size:12px; }
#app .unified-place-card.is-minimized .drawer-minimized-rating { color:#ffc247; }
#app .unified-place-card.is-minimized .drawer-minimized-rating strong { font-size:11px; font-weight:700; }
#app .unified-place-card.is-minimized .drawer-minimized-reviews img { width:12px; height:12px; flex:0 0 12px; filter:brightness(0) invert(1); opacity:.68; }
#app .map-controls { right:auto; bottom:calc(var(--app-bottom-strip-height,33px) + 18px); left:calc(var(--saved-panel-width,534px) + 20px); display:flex; align-items:center; gap:7.2px; }
#app .map-controls .icon-button { width:32.4px; min-height:32.4px; border-color:#314354; border-radius:9px; background:#182634; color:#f4f7fa; box-shadow:0 7.2px 16.2px rgba(0,0,0,.22); }
#app .map-controls .icon-button [data-icon] { width:16.2px; height:16.2px; flex:0 0 16.2px; }
#app .map-zoom-controls { display:flex; gap:0; overflow:hidden; border:1px solid #314354; border-radius:9px; box-shadow:0 7.2px 16.2px rgba(0,0,0,.22); }
#app .map-zoom-controls .icon-button { border:0; border-radius:0; box-shadow:none; }
#app .map-zoom-controls .icon-button + .icon-button { border-left:1px solid #314354; }
#app .map-controls [data-action="zoom-out"] { font-size:16.2px; line-height:1; }
.map-feature-density-control { position:relative; display:flex; align-items:center; }
.map-feature-density-button { display:grid; width:28px; height:28px; padding:0; border:0; place-items:center; background:transparent; color:#aebac6; font-size:18px; line-height:1; cursor:pointer; }
.map-feature-density-button > span { display:block; line-height:1; transform:translateY(-1px); }
.map-feature-density-button:hover,.map-feature-density-button:focus-visible { color:#f4f7fa; outline:0; }
#app .map-controls .map-feature-density-button { width:32.4px; height:32.4px; border:1px solid #314354; border-radius:9px; background:#182634; color:#f4f7fa; box-shadow:0 7.2px 16.2px rgba(0,0,0,.22); }
.map-feature-density-menu { position:absolute; z-index:125; bottom:calc(100% + 10px); left:0; width:min(268px,calc(100vw - 42px)); padding:10px 11px; border:1px solid rgba(77,134,154,.78); border-radius:9px; background:linear-gradient(135deg,rgba(17,36,49,.98),rgba(14,29,42,.98)); box-shadow:0 14px 28px rgba(0,0,0,.35),0 0 0 1px rgba(71,201,210,.16); color:#f4f7fa; }
.map-feature-density-menu[hidden] { display:none; }
.map-feature-density-menu > strong { display:block; margin-bottom:8px; font-size:11px; font-weight:600; letter-spacing:0; }
.map-feature-density-presets { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; margin-bottom:8px; }
.map-feature-density-presets button { display:flex; min-width:0; min-height:30px; align-items:center; justify-content:center; gap:6px; padding:0 6px; border:1px solid #314354; border-radius:6px; background:#182634; color:#aebac6; font:350 11px/1 var(--font-family,inherit); cursor:pointer; white-space:nowrap; }
.map-feature-density-presets button > img { width:12px; height:12px; flex:0 0 12px; object-fit:contain; filter:brightness(0) invert(1); opacity:.9; }
.map-feature-density-presets button:hover,.map-feature-density-presets button:focus-visible { border-color:#4e6680; background:#223241; color:#f4f7fa; outline:0; }
.map-feature-density-presets button.is-active { border-color:transparent; background:#2f80ed; color:#fff; }
.map-feature-density-presets button.is-active > img { filter:brightness(0) invert(1); opacity:1; }
.map-feature-density-rows { display:grid; gap:4px; margin-left:0; width:100%; }
.map-feature-density-row { display:grid; grid-template-columns:18px 66px minmax(72px,1fr) 36px; align-items:center; gap:6px; min-height:30px; color:#e5edf3; font:350 11px/1 var(--font-family,inherit); }
.map-feature-density-icon-frame { display:grid; width:18px; height:18px; border:0; border-radius:0; background:transparent; place-items:center; }
.map-feature-density-icon { width:12px; height:12px; object-fit:contain; filter:brightness(0) invert(1); opacity:.93; }
.map-feature-density-label { min-width:0; }
.map-feature-density-menu input { width:100%; height:14px; appearance:none; background:transparent; cursor:pointer; }
.map-feature-density-menu input::-webkit-slider-runnable-track { height:4px; border-radius:999px; background:linear-gradient(to right,#3b8cf0 0 var(--density-value),#34495d var(--density-value) 100%); }
.map-feature-density-menu input::-webkit-slider-thumb { width:12px; height:12px; margin-top:-4px; appearance:none; border:1px solid #dce9f6; border-radius:50%; background:#77b1f7; box-shadow:0 1px 3px rgba(0,0,0,.45); }
.map-feature-density-menu input::-moz-range-track { height:4px; border-radius:999px; background:linear-gradient(to right,#3b8cf0 0 var(--density-value),#34495d var(--density-value) 100%); }
.map-feature-density-menu input::-moz-range-thumb { width:12px; height:12px; border:1px solid #dce9f6; border-radius:50%; background:#77b1f7; box-shadow:0 1px 3px rgba(0,0,0,.45); }
.map-feature-density-row output { justify-self:end; min-width:36px; padding:0; border:0; border-radius:0; background:transparent; color:#dce6ed; font-size:11px; font-weight:350; line-height:1; text-align:right; }
#app .map-layers-control { position:absolute; z-index:32; top:16px; right:auto; bottom:auto; left:16px; }
#app .main-area.saved-panel-hidden .map-layers-control { right:auto; left:16px; }
#app > .sidebar .map-layers-control,#app > .sidebar .map-selector-control { position:relative; z-index:110; bottom:auto; left:auto; flex:0 0 auto; }
#app .map-layers-trigger { display:flex; flex-wrap:nowrap; align-items:center; gap:5px; width:auto; height:34px; min-height:34px; padding:0 8px; border:1px solid #314354; border-radius:9px; background:rgba(17,29,41,.9); color:#f4f7fa; font:350 12px/1 var(--font-family,inherit); font-size:12px; box-shadow:0 8px 20px rgba(3,9,16,.16); cursor:pointer; white-space:nowrap; }
#app .map-layers-trigger .icon-svg { width:16px; height:16px; }
#app .map-control-chevron { width:14px; height:14px; margin-left:0; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
#app .map-layers-trigger:hover,#app .map-layers-trigger:focus-visible { border-color:#4e6680; background:#182634; color:#fff; outline:0; }
#app.app-window > .main-area > .toolbar .map-selector-control,#app.app-window > .main-area > .toolbar .map-tone-control { z-index:35; }
#app.app-window > .main-area > .toolbar .map-selector-control .map-layers-trigger,#app.app-window > .main-area > .toolbar .map-tone-control .map-layers-trigger { min-width:0; height:34px; min-height:34px; justify-content:center; }
#app.app-window > .main-area > .toolbar .map-tone-control .map-layers-trigger { min-width:0; gap:4px; padding-right:7px; padding-left:7px; }
#app.app-window > .main-area > .toolbar .map-tone-control .map-tone-icon { width:16px; height:16px; flex:0 0 16px; object-fit:contain; filter:brightness(0) invert(1); }
#app .map-layers-menu { position:absolute; top:calc(100% + 2px); bottom:auto; left:0; display:grid; min-width:130px; padding:5px; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.35); }
#app .map-layers-menu[hidden] { display:none; }
@media (hover:hover) {
  #app .map-layers-control:not(.is-dismissed):hover .map-layers-menu[hidden],#app .map-layers-control:not(.is-dismissed):focus-within .map-layers-menu[hidden],#app .map-selector-control:not(.is-dismissed):hover .map-layers-menu[hidden],#app .map-selector-control:not(.is-dismissed):focus-within .map-layers-menu[hidden],#app .map-tone-control:not(.is-dismissed):hover .map-layers-menu[hidden],#app .map-tone-control:not(.is-dismissed):focus-within .map-layers-menu[hidden] { display:grid; }
  #app .workspace > .map-layers-control::after,#app .map-selector-control::after,#app .map-tone-control::after { position:absolute; top:100%; right:0; width:100%; height:2px; content:''; }
}
#app .map-layers-menu button { display:flex; align-items:center; gap:6px; min-height:30px; padding:0 8px; border:0; border-radius:6px; background:transparent; color:#f4f7fa; font:350 12px/1 var(--font-family,inherit); font-size:12px; text-align:left; cursor:pointer; }
#app .map-layers-menu button [data-icon] { width:12px; height:12px; flex:0 0 12px; }
#app .map-layers-menu .map-theme-option-icon { width:12px; height:12px; flex:0 0 12px; aspect-ratio:1; object-fit:contain; }
#app .map-layers-menu .map-provider-logo { width:16px; height:16px; flex:0 0 16px; object-fit:contain; background:transparent; border:0; outline:0; }
#app .map-layers-menu button::after { width:7px; height:7px; margin-left:auto; border-radius:50%; background:#4ea98e; content:''; opacity:0; }
#app .map-layers-menu button[aria-checked="true"]::after { opacity:1; }
#app .map-layers-menu button:hover,#app .map-layers-menu button[aria-checked="true"] { background:#223241; color:#fff; }
#app .saved-panel-search-empty > span:last-child { display:none; }
#app .saved-panel-search-empty strong { font-size:12px; font-weight:650; }
#app .osm-attribution { position:absolute; z-index:33; right:10px; bottom:8px; padding:3px 6px; border-radius:4px; background:rgba(17,29,41,.86); color:#f4f7fa; font-size:10px; line-height:1.2; }
#app .main-area.saved-panel-hidden .osm-attribution { right:10px; }
#app .osm-attribution[hidden] { display:none; }
#app .openstreetmap-view {
  position:absolute;
  z-index:2;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:#e8edf1;
  overflow:hidden;
  pointer-events:none;
  contain:strict;
}
#app .openstreetmap-tiles,
#app .openstreetmap-markers {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:hidden;
}
#app .openstreetmap-tile {
  position:absolute;
  top:0;
  left:0;
  display:block;
  width:256px;
  height:256px;
  max-width:none;
  will-change:transform,width,height;
  pointer-events:none;
  image-rendering:auto;
}
#app .openstreetmap-marker {
  position:absolute;
  top:0;
  left:0;
  z-index:1;
  display:block;
  width:0;
  height:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
  cursor:pointer;
  pointer-events:none;
  transform:translate3d(0,0,0);
  will-change:transform;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.35));
}
#app .openstreetmap-marker.selected { z-index:2; }
#app .openstreetmap-marker .openstreetmap-pin {
  position:absolute;
  top:0;
  left:0;
  display:block;
  transform:translate(-50%,-100%);
  pointer-events:auto;
}
#app .openstreetmap-marker .map-marker-tooltip {
  pointer-events:none;
  transform:translate(-50%,calc(-100% - 28px)) scale(0.9);
  transform-origin:50% 100%;
}
#app .workspace > .map-layers-control .map-layers-menu { top:calc(100% + 2px); right:auto; bottom:auto; left:0; }
#app.app-window > .main-area > .toolbar .map-selector-control .map-layers-menu,#app.app-window > .main-area > .toolbar .map-tone-control .map-layers-menu { top:calc(100% + 2px); right:0; bottom:auto; left:auto; }
#app > .sidebar .map-layers-trigger { width:auto; min-height:34px; padding:0 8px; border-color:transparent; border-radius:7px; background:transparent; color:#aebac6; box-shadow:none; }
#app > .sidebar .map-layers-trigger:hover,#app > .sidebar .map-layers-trigger:focus-visible { border-color:#314354; background:#182634; color:#f4f7fa; outline:0; }
#app > .sidebar .map-layers-menu { top:100%; bottom:auto; left:0; }
#app.app-window > .sidebar > .app-bottom-strip { right:0; min-height:var(--app-bottom-strip-height,33px); height:var(--app-bottom-strip-height,33px); overflow:hidden; border-top-color:#314354; border-radius:0 0 13px 13px; background:#152737; }
#app.app-window .app-display-zoom-control { padding:3px 5px; border:0; border-radius:0; background:transparent; box-shadow:none; }
#app .marker.selected { outline-color:rgba(47,128,237,.34); }
.place-context-menu { position:fixed; z-index:120; min-width:140px; padding:4px; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 16px 34px rgba(0,0,0,.35); }
.place-context-menu button { display:flex; align-items:center; gap:9px; width:100%; min-height:30px; padding:0 10px; border:0; border-radius:6px; background:transparent; color:#f4f7fa; font:350 12px/1 var(--font-family,inherit); font-size:12px; text-align:left; cursor:pointer; }
.place-context-menu .place-context-menu-remove { margin-top:4px; padding-top:4px; border-top:1px solid rgba(174,186,198,.14); border-radius:0 0 6px 6px; }
.place-context-menu button [data-icon] { width:15px; height:15px; flex:0 0 15px; }
.place-context-menu button:hover,.place-context-menu button:focus-visible { outline:0; background:#223241; color:#fff; }
.place-context-menu button.is-danger { color:#f08d96; }
.place-context-menu button.is-danger:hover,.place-context-menu button.is-danger:focus-visible { background:rgba(240,141,150,.12); color:#ffc4c9; }
.remove-place-modal { width:min(100%,360px); padding:14px; border:1px solid #314354; background:#111d29; color:#f4f7fa; box-shadow:0 16px 34px rgba(0,0,0,.35); zoom:var(--app-display-zoom,1); }
.remove-place-modal > h2 { margin:0; color:#f4f7fa; font-size:15px; font-weight:600; letter-spacing:-.02em; }
.remove-place-modal > p { margin:6px 0 0; color:#aebac6; font-size:11px; line-height:1.4; }
.remove-place-modal .modal-actions { gap:6px; margin-top:12px; }
.remove-place-modal .modal-actions .button { min-height:28px; padding:0 10px; border-radius:7px; font-size:11px; gap:6px; }
.remove-place-modal .modal-actions .button [data-icon] { width:14px; height:14px; flex:0 0 14px; }
.osm-place-picker-modal { width:min(100%,440px); padding:14px; }
.osm-place-picker-header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
.osm-place-picker-header > .icon-button { flex:0 0 24px; width:24px; min-height:24px; padding:0; border-radius:6px; }
.osm-place-picker-header > .icon-button [data-icon] { width:13px; height:13px; flex-basis:13px; }
.osm-place-picker-header > div { display:grid; gap:2px; }
.osm-place-picker-header > div > span { color:#94a4b2; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.osm-place-picker-header h2 { margin:0; font-size:16px; }
.osm-place-picker-list { display:grid; max-height:430px; overflow:auto; border:1px solid #314354; border-radius:10px; }
.osm-place-option { position:relative; display:grid; grid-template-columns:30px minmax(0,1fr); align-items:center; width:100%; border:0; border-bottom:1px solid #314354; background:#142331; color:#f4f7fa; text-align:left; }
.osm-place-option:last-child { border-bottom:0; }
.osm-place-option:hover,.osm-place-option:focus-within { outline:0; background:#1d3041; }
.osm-place-icon-trigger { grid-column:1; display:grid; width:24px; height:24px; margin-left:8px; padding:0; place-items:center; border:0; border-radius:6px; background:transparent; color:#c5d0da; cursor:pointer; }
.osm-place-icon-trigger:hover,.osm-place-icon-trigger:focus-visible,.osm-place-icon-trigger[aria-expanded="true"] { outline:0; background:#2a4053; color:#fff; }
.osm-place-icon-trigger > .category-type-icon { display:grid; width:18px; height:18px; place-items:center; }
.osm-place-icon-trigger img,.osm-place-icon-trigger .material-icon,.osm-place-icon-trigger .icon-svg { width:16px; height:16px; font-size:16px; object-fit:contain; filter:brightness(0) invert(1); opacity:.88; }
.osm-place-option-main { grid-column:2; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 10px; align-items:center; min-width:0; width:100%; padding:10px 12px 10px 4px; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; }
.osm-place-option-main:focus-visible { outline:0; box-shadow:inset 0 0 0 1px #3b8ef3; }
.osm-place-option > .osm-place-skeleton-icon { grid-column:1; grid-row:1 / span 2; align-self:center; display:grid; width:18px; height:18px; place-items:center; color:#c5d0da; }
.osm-place-option strong,.osm-place-option .osm-place-option-meta { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.osm-place-option strong { grid-column:2; grid-row:1; font-size:12px; font-weight:600; }
.osm-place-option .osm-place-option-meta { grid-column:2; grid-row:2; color:#b7c2cc; font-size:10px; }
.osm-place-option small { grid-column:3; grid-row:1 / span 2; align-self:center; color:#8fa1b0; font-size:10px; white-space:nowrap; }
.osm-place-option-main strong { grid-column:1; }
.osm-place-option-main .osm-place-option-meta { grid-column:1; }
.osm-place-option-main small { grid-column:2; }
.osm-place-action-menu { position:fixed; z-index:240; min-width:132px; padding:5px; border:1px solid #3a4e60; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.38); }
.osm-place-action-menu > button { display:flex; align-items:center; gap:8px; width:100%; min-height:30px; padding:0 8px; border:0; border-radius:6px; background:transparent; color:#f4f7fa; font:350 12px/1 var(--font-family,inherit); text-align:left; cursor:pointer; }
.osm-place-action-menu > button:hover,.osm-place-action-menu > button:focus-visible { outline:0; background:#25394a; }
.osm-place-action-menu > button [data-icon] { width:14px; height:14px; flex:0 0 14px; }
.osm-place-picker-loading .osm-place-picker-list { min-height:220px; pointer-events:none; }
.osm-place-skeleton-option { grid-template-columns:18px minmax(0,1fr) auto; gap:2px 10px; padding:10px 12px; pointer-events:none; cursor:default; }
.osm-place-skeleton-option:hover,.osm-place-skeleton-option:focus-visible { background:#142331; }
.osm-place-skeleton-icon { border-radius:4px; background:linear-gradient(90deg,#1a2b3a 0%,#2a3c4d 45%,#1a2b3a 100%); background-size:200% 100%; animation:api-usage-skeleton 1.2s ease-in-out infinite; }
.osm-place-skeleton-line { display:block; height:8px; max-width:100%; border-radius:999px; background:linear-gradient(90deg,#1a2b3a 0%,#2a3c4d 45%,#1a2b3a 100%); background-size:200% 100%; animation:api-usage-skeleton 1.2s ease-in-out infinite; }
.osm-place-skeleton-option strong .osm-place-skeleton-line { height:10px; }
.osm-place-skeleton-option .osm-place-option-meta .osm-place-skeleton-line { height:7px; }
.osm-place-skeleton-line-short { width:48px; height:7px; }
.remove-place-modal .button-danger { border-color:rgba(240,141,150,.52); background:#182634; color:#ffc4c9; }
.remove-place-modal .button-danger:hover,.remove-place-modal .button-danger:focus-visible { border-color:rgba(240,141,150,.72); background:rgba(240,141,150,.12); color:#ffc4c9; outline:0; }
.remove-place-modal .button-danger [data-icon],.remove-place-modal .button-danger .icon-svg { color:#ffc4c9; filter:none; }
.nav-context-menu { position:fixed; z-index:125; min-width:154px; padding:5px; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.35); }
.nav-context-menu > button { display:flex; align-items:center; gap:8px; width:100%; min-height:30px; padding:0 8px; border:0; border-radius:6px; background:transparent; color:#f4f7fa; font:350 12px/1 var(--font-family,inherit); font-size:12px; text-align:left; cursor:pointer; }
.nav-context-menu > button [data-icon] { width:15px; height:15px; flex:0 0 15px; }
.nav-context-menu > button:hover,.nav-context-menu > button:focus-visible { outline:0; background:#223241; color:#fff; }
.category-context-menu { position:fixed; z-index:126; min-width:140px; padding:4px; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.35); }
.category-context-menu > button { display:flex; align-items:center; gap:9px; width:100%; min-height:30px; padding:0 10px; border:0; border-radius:6px; background:transparent; color:#f4f7fa; font:350 12px/1 var(--font-family,inherit); font-size:12px; text-align:left; cursor:pointer; }
.category-context-menu > button [data-icon] { display:inline-grid; width:15px; height:15px; flex:0 0 15px; place-items:center; overflow:hidden; }
.category-context-menu > button [data-icon] .icon-svg { width:15px; height:15px; display:block; }
.category-context-menu > button:hover,.category-context-menu > button:focus-visible { outline:0; background:#223241; color:#fff; }
.category-context-menu-divider { height:1px; margin:4px 3px; background:rgba(174,186,198,.14); }
.category-context-menu > button.is-danger { color:#f08d96; }
.category-context-menu > button.is-danger:hover,.category-context-menu > button.is-danger:focus-visible { background:rgba(240,141,150,.12); color:#ffc4c9; }
.nucleo-nav-icon { width:18px; height:18px; flex:0 0 18px; object-fit:contain; filter:brightness(0) invert(1); }
#app .nav-link[data-key="want"] .nucleo-nav-icon { width:16px; height:16px; flex-basis:16px; }
.nucleo-icon-picker { width:min(1000px,calc(100vw - 24px)); height:min(750px,calc(100vh - 24px)); max-height:min(750px,calc(100vh - 24px)); display:flex; flex-direction:column; gap:12px; padding:18px; overflow:hidden; border:1px solid var(--border-strong,var(--line)); border-radius:14px; color:var(--text-primary,var(--ink)); background:#152737; box-shadow:0 28px 72px rgba(0,0,0,.56); }
#app.app-window > .modal-layer:has(.nucleo-icon-picker) { background:color-mix(in srgb,var(--surface-canvas,var(--canvas)) 62%,transparent); }
.nucleo-picker-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.nucleo-picker-heading h2 { display:flex; align-items:center; gap:8px; margin:2px 0 0; font-size:18px; }
.nucleo-picker-title-icon { width:18px; height:18px; flex:0 0 18px; }
.nucleo-picker-kicker { display:block; color:var(--text-muted,var(--muted)); font-size:10px; font-weight:700; letter-spacing:.08em; line-height:1; text-transform:uppercase; }
.nucleo-picker-heading-actions { display:flex; align-items:center; gap:5px; }
.nucleo-picker-heading-actions .icon-button { width:22px; height:22px; min-height:22px; padding:0; font-size:16px; line-height:1; }
.nucleo-picker-heading-actions .icon-button > img { width:16px; height:16px; filter:brightness(0) invert(1); }
.nucleo-picker-heading h2 img,.nucleo-settings-library-icon { width:18px; height:18px; object-fit:contain; filter:brightness(0) invert(1); }
.nucleo-picker-heading p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.nucleo-picker-controls { display:grid; grid-template-columns:minmax(180px,1.8fr) repeat(3,minmax(110px,1fr)) 76px 86px; gap:8px; }
.nucleo-picker-controls label { display:grid; gap:5px; color:var(--muted); font-size:10.5px; font-weight:475; }
.nucleo-picker-controls input { min-width:0; height:33px; padding:0 9px; border:1px solid var(--border-default,var(--line)); border-radius:8px; background:var(--surface-navigation,var(--surface-raised,var(--surface))); color:var(--text-primary,var(--ink)); font:475 10.5px/1 var(--font-family,inherit); }
.nucleo-picker-search-field { position:relative; display:block; }
.nucleo-picker-search-field img { position:absolute; top:50%; left:10px; width:15px; height:15px; filter:brightness(0) invert(1); opacity:.9; transform:translateY(-50%); pointer-events:none; }
.nucleo-picker-search-field input { width:100%; padding-left:33px; }
.nucleo-picker-controls label:has([data-nucleo-size]),.nucleo-picker-controls label:has([data-nucleo-stroke]) { justify-items:center; text-align:center; }
.nucleo-picker-controls label:has([data-nucleo-size]) input,.nucleo-picker-controls label:has([data-nucleo-stroke]) input { width:100%; padding-inline:8px; text-align:center; -moz-appearance:textfield; appearance:textfield; }
.nucleo-picker-controls label:has([data-nucleo-size]) input::-webkit-outer-spin-button,
.nucleo-picker-controls label:has([data-nucleo-size]) input::-webkit-inner-spin-button,
.nucleo-picker-controls label:has([data-nucleo-stroke]) input::-webkit-outer-spin-button,
.nucleo-picker-controls label:has([data-nucleo-stroke]) input::-webkit-inner-spin-button { margin:0; -webkit-appearance:none; appearance:none; }
.nucleo-picker-controls select { min-width:0; height:33px; padding:0 30px 0 12px; border:1px solid #314354; border-radius:9px; background:#182634; color:#f4f7fa; color-scheme:dark; font:475 10.5px/1 var(--font-family,inherit); box-shadow:0 8px 20px rgba(3,9,16,.16); }
.nucleo-picker-controls select:hover,.nucleo-picker-controls select:focus { border-color:#4e6680; background:#182634; color:#fff; outline:0; }
.nucleo-picker-select { position:relative; }
.nucleo-picker-select > select { display:none; }
.nucleo-picker-select > button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:33px; padding:0 12px; border:1px solid #314354; border-radius:9px; background:#182634; color:#f4f7fa; font:475 10.5px/1 var(--font-family,inherit); text-align:left; cursor:pointer; box-shadow:0 8px 20px rgba(3,9,16,.16); }
.nucleo-picker-select > button:hover,.nucleo-picker-select > button:focus-visible { border-color:#4e6680; background:#182634; color:#fff; outline:0; }
.nucleo-picker-select > button svg { width:16px; height:16px; flex:0 0 16px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
.nucleo-picker-select-menu { position:absolute; z-index:12; top:calc(100% + 2px); right:0; left:0; display:grid; min-width:max-content; max-height:380px; padding:5px; overflow-y:auto; overscroll-behavior:contain; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.35); scrollbar-width:thin; }
.nucleo-picker-select-menu[hidden] { display:none; }
.nucleo-picker-select-menu button { display:flex; align-items:center; min-height:30px; padding:0 8px; border:0; border-radius:6px; background:transparent; color:#f4f7fa; font:400 12px/1 var(--font-family,inherit); text-align:left; white-space:nowrap; cursor:pointer; }
.nucleo-picker-select-menu button:hover,.nucleo-picker-select-menu button:focus-visible,.nucleo-picker-select-menu button[aria-selected="true"] { background:#223241; color:#fff; outline:0; }
.nucleo-picker-select-menu button.is-all-option { margin-bottom:0; border-bottom:1px solid rgba(174,186,198,.2); border-bottom-left-radius:0; border-bottom-right-radius:0; font-weight:600; }
.nucleo-picker-status { min-height:14px; margin:0; color:var(--muted); font-size:11px; }
.nucleo-picker-grid { --nucleo-preview-size:22px; --nucleo-stroke-width:1.8; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-content:start; gap:8px; min-height:0; padding:0 4px 0 0; overflow:auto; border:0; border-radius:0; background:transparent; }
.nucleo-picker-category-heading { grid-column:1/-1; margin:8px 0 1px; color:var(--ink); font-size:12px; line-height:1.2; }
.nucleo-picker-grid > .nucleo-picker-category-heading:first-child { margin-top:0; }
.nucleo-icon-tile { position:relative; display:grid; grid-template-columns:calc(var(--nucleo-preview-size,24px) + 10px) minmax(0,1fr); grid-template-rows:auto auto; align-items:center; column-gap:8px; min-height:48px; min-width:0; padding:7px 34px 7px 7px; border:1px solid var(--border-default,var(--line)); border-radius:9px; background:var(--surface-table-row,var(--surface-raised,var(--surface))); color:var(--text-primary,var(--ink)); font:650 10px/1.15 var(--font-family,inherit); text-align:left; cursor:pointer; }
.nucleo-icon-tile > span:nth-of-type(2) { min-width:0; font-size:10px; font-weight:650; line-height:1.15; }
.nucleo-icon-tile:hover,.nucleo-icon-tile:focus-visible,.nucleo-icon-tile[aria-selected="true"] { outline:0; border-color:var(--accent-primary,var(--accent)); background:var(--accent-soft); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary,var(--accent)) 18%,transparent); color:var(--text-primary,var(--ink)); }
.nucleo-icon-preview { display:grid; place-items:center; min-height:32px; }
.nucleo-icon-preview { grid-row:1/3; width:calc(var(--nucleo-preview-size) + 10px); height:calc(var(--nucleo-preview-size) + 10px); border-radius:50%; background:var(--surface-navigation,var(--surface)); }
.nucleo-icon-preview img { width:var(--nucleo-preview-size); height:var(--nucleo-preview-size); object-fit:contain; filter:brightness(0) invert(1); transform:scale(calc(1 + (var(--nucleo-stroke-width) - 1.8) * .06)); }
.nucleo-icon-preview.is-error::before { content:'?'; display:grid; place-items:center; width:var(--nucleo-preview-size); height:var(--nucleo-preview-size); border:1px dashed var(--line); border-radius:4px; color:var(--muted); }
.nucleo-icon-preview.is-error img { display:none; }
.nucleo-icon-preview.is-flag { width:26px; height:26px; background:transparent; }
.nucleo-icon-preview.is-flag img { width:26px; height:26px; filter:none; }
.nucleo-icon-preview.is-custom img { width:24px; height:24px; filter:none; }
.nucleo-icon-meta { overflow:hidden; color:var(--text-muted,var(--muted)); font-size:9px; font-weight:600; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
.nucleo-favourite.icon-favourite-button { position:absolute; top:7px; right:7px; display:grid; width:22px; min-height:22px; height:22px; padding:0; place-items:center; border:1px solid transparent; border-radius:999px; background:transparent; color:var(--text-muted,var(--muted)); font-size:13px; line-height:1; }
.nucleo-favourite.icon-favourite-button:hover,.nucleo-favourite.icon-favourite-button:focus-visible { border-color:rgba(255,77,94,.5); color:#ff4d5e; outline:0; }
.nucleo-favourite.icon-favourite-button.is-favourite { color:#ff4d5e; }
.nucleo-picker-grid:has(> .nucleo-picker-empty:only-child) { display:flex; align-items:center; justify-content:center; }
.nucleo-picker-empty { display:grid; justify-items:center; align-content:center; gap:6px; min-height:0; padding:0; color:var(--muted); font-size:12px; line-height:1.3; text-align:center; }
.nucleo-picker-empty strong { color:var(--ink); font-weight:650; white-space:nowrap; }
.nucleo-picker-empty span { white-space:nowrap; }
.nucleo-picker-selection { display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:var(--surface-raised,var(--surface)); color:var(--muted); font-size:11px; }
.nucleo-picker-selection img { width:var(--nucleo-preview-size,20px); height:var(--nucleo-preview-size,20px); object-fit:contain; filter:brightness(0) invert(1); }
.nucleo-picker-selection div { display:grid; min-width:0; gap:3px; }
#app .weather-climate-heading > div:first-child { display:grid; gap:4px; }
#app .weather-climate-heading > div:first-child .weather-source-logo { width:78px; height:15px; object-fit:contain; object-position:left center; }
#app .weather-place-picker { position:relative; }
#app .weather-place-picker > button { display:flex; align-items:center; gap:6px; padding:0; border:0; background:transparent; color:#f4f7fa; cursor:pointer; font:600 14px/1 var(--font-family,inherit); }
#app .weather-place-picker > button svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
#app .weather-place-menu { position:absolute; z-index:5; top:calc(100% + 9px); left:0; width:260px; padding:5px; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.35); }
#app .weather-place-search { display:flex; align-items:center; gap:8px; min-height:34px; margin:0 3px 4px; padding:0 9px; border:1px solid #314354; border-radius:8px; background:#111d29; }
#app .weather-place-search [data-icon] { width:15px; height:15px; color:#aebac6; flex:0 0 15px; }
#app .weather-place-search [data-icon] svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
#app .weather-place-search input { width:100%; min-width:0; height:auto; padding:0; border:0; outline:0; background:transparent; color:#f4f7fa; font:600 10.5px/1 var(--font-family,inherit); }
#app .weather-place-search input::placeholder { color:#aebac6; }
#app .weather-place-search:focus-within { border-color:#2f80ed; }
#app .weather-place-options { display:grid; max-height:292px; margin:0; padding:0; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#4e6475 #0d1b28; }
#app .weather-place-options::-webkit-scrollbar { width:8px; }
#app .weather-place-options::-webkit-scrollbar-track { background:#0d1b28; border-radius:999px; }
#app .weather-place-options::-webkit-scrollbar-thumb { background:#4e6475; border-radius:999px; }
#app .weather-place-option { display:flex; align-items:center; gap:6px; width:100%; min-height:30px; padding:0 4px 0 6px; border:0; border-radius:6px; background:transparent; color:#f4f7fa; font:400 11px/1 var(--font-family,inherit); text-align:left; cursor:pointer; }
#app .weather-place-option:hover,#app .weather-place-option:focus-within,#app .weather-place-option[aria-selected="true"] { background:#223241; color:#fff; outline:0; }
#app .weather-place-option:has(.weather-place-flag-button.is-home),#app .weather-place-option:has(.weather-place-flag-button.is-visiting) { background:#294154; }
#app .weather-place-option[aria-selected="true"],#app .weather-place-option:has(.weather-place-flag-button.is-home):hover,#app .weather-place-option:has(.weather-place-flag-button.is-visiting):hover { background:#31516a; }
#app .weather-place-option .country-flag,#app .weather-place-option img.country-flag,#app .weather-place-option > img { width:12.5px; height:12.5px; max-width:12.5px; max-height:12.5px; flex:0 0 12.5px; border-radius:50%; object-fit:cover; box-shadow:none; }
#app .weather-place-flag-button { display:inline-grid; place-items:center; width:18px; height:18px; margin:0; padding:0; border:0; border-radius:50%; background:transparent; color:inherit; cursor:pointer; flex:0 0 18px; }
#app .weather-place-flag-button:hover,#app .weather-place-flag-button:focus-visible { outline:0; background:rgba(244,247,250,.08); }
#app .weather-place-flag-button .country-flag { width:12.5px; height:12.5px; max-width:12.5px; max-height:12.5px; border-radius:50%; object-fit:cover; }
#app .weather-place-flag-button.is-home .country-flag,#app .weather-place-flag-button.is-visiting .country-flag { box-shadow:none; }
#app .weather-place-flag-fallback { display:block; width:12.5px; height:12.5px; border-radius:50%; background:#4e6475; }
#app .weather-place-option-main { display:flex; align-items:center; gap:6px; min-width:0; flex:1; min-height:30px; margin:0; padding:0 4px 0 0; border:0; border-radius:6px; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
#app .weather-place-option-main:hover,#app .weather-place-option-main:focus-visible { outline:0; }
#app .weather-place-option > [data-icon] { width:12.5px; height:12.5px; flex:0 0 12.5px; color:#f4f7fa; }
#app .weather-place-option > [data-icon] svg { width:12.5px; height:12.5px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
#app .weather-place-option-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:400 11px/1 var(--font-family,inherit); }
#app .weather-place-all .weather-place-option-label { font-weight:600; }
#app .weather-place-options .weather-place-option:first-child { margin-bottom:3px; border-bottom:1px solid rgba(174,186,198,.2); border-bottom-left-radius:0; border-bottom-right-radius:0; }
#app .weather-place-role-option { display:grid; grid-template-columns:12.5px 32px 8px 12.5px minmax(0,1fr); align-items:center; column-gap:6px; padding-left:14px; }
#app .weather-place-role-option .weather-place-role-label { min-width:0; text-align:left; }
#app .weather-place-role-value-separator { color:#8090a0; text-align:center; }
#app .weather-place-role-city { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .weather-place-role-list-separator { height:1px; margin:3px 0; background:rgba(174,186,198,.2); }
#app .weather-place-role-list-separator[hidden] { display:none; }
#app .weather-place-option-country-end { border-bottom:1px solid rgba(49,67,84,.55); border-bottom-left-radius:0; border-bottom-right-radius:0; }
#app .weather-place-option-code { margin-left:auto; color:#8090a0; font-family:inherit; font-size:9px!important; font-weight:400; line-height:1; text-transform:none; }
#app .weather-place-option[hidden] { display:none; }
.weather-city-role-menu { position:fixed; z-index:130; min-width:196px; padding:4px; border:1px solid #314354; border-radius:9px; background:#182634; box-shadow:0 14px 28px rgba(0,0,0,.35); }
.weather-city-role-menu > button { display:flex; align-items:center; gap:8px; width:100%; min-height:30px; padding:0 8px; border:0; border-radius:6px; background:transparent; color:#f4f7fa; font:350 12px/1 var(--font-family,inherit); text-align:left; cursor:pointer; }
.weather-city-role-menu > button [data-icon] { width:14px; height:14px; flex:0 0 14px; color:inherit; }
.weather-city-role-menu > button [data-icon] svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
.weather-city-role-menu > button.is-active [data-icon] { color:#5ec8a0; }
.weather-city-role-menu > button:hover,.weather-city-role-menu > button:focus-visible { outline:0; background:#223241; color:#fff; }
.weather-city-role-menu > button.is-active:hover [data-icon],.weather-city-role-menu > button.is-active:focus-visible [data-icon] { color:#5ec8a0; }
#app .weather-modal > .weather-forecast-row { display:grid; grid-template-columns:132px minmax(476px,1fr); margin:16px 0 0; overflow-x:auto; border:1px solid #314354; border-radius:12px; background:#111d29; }
#app .weather-forecast-row > .weather-current { display:grid; align-content:center; justify-items:center; gap:7px; min-width:132px; min-height:82px; margin:0; padding:13px 10px; border-right:1px solid #314354; color:#f4f7fa; font-size:inherit; line-height:1; text-align:center; }
#app .weather-forecast-row > .weather-current .weather-current-as-of { margin:0; color:#81909c; font-size:9px; font-weight:500; line-height:1; }
#app .weather-forecast-row > .weather-current .weather-day-title { min-height:17px; }
#app .weather-forecast-row > .weather-current .weather-current-condition { width:17px; height:17px; flex:0 0 17px; object-fit:contain; }
#app .weather-forecast-row > .weather-current > strong { font-size:22px; font-weight:600; line-height:1; }
#app .weather-forecast-row > .weather-current > small:last-child { margin:0; color:#aebac6; font-size:10px; font-weight:500; line-height:1.25; }
#app .weather-forecast-row > .weather-days { min-width:476px; margin:0; overflow:visible; border:0; border-radius:0; background:transparent; }
@media (min-width:721px) {
  #app .weather-modal > .weather-country-heading { min-height:34px; gap:12px; }
  #app .weather-modal > .weather-country-heading > img { width:26px; height:26px; }
  #app .weather-modal > .weather-country-heading strong { font-size:21px; font-weight:600; }
  #app .weather-forecast-row > .weather-current,#app .weather-forecast-row > .weather-days > button { min-height:108px; padding:14px 12px; }
}
#app .weather-modal > .weather-location-header { display:flex!important; align-items:center; justify-content:space-between; gap:24px; min-height:60px; margin:-28px -32px 0; padding:7px 62px 7px 32px; border-bottom:2px solid #4c91c6; background:transparent; box-shadow:none; }
#app .weather-location-header .weather-country-heading { min-width:0; min-height:42px; gap:12px; }
#app .weather-location-header .weather-country-heading > img { width:26px; height:26px; flex:0 0 26px; }
#app .weather-location-header .weather-place-picker > button { color:#f4f8fb; font-size:21px; font-weight:600; }
#app .weather-location-header .weather-place-picker > button:hover,#app .weather-location-header .weather-place-picker > button:focus-visible { color:#fff; outline:0; }
#app .weather-location-header .weather-place-picker > button svg { color:#8eb6d4; }
#app .weather-location-clock { display:flex; align-items:center; justify-content:center; min-width:126px; min-height:48px; color:#f4f7fa; font-style:normal; line-height:1.1; text-align:center; white-space:nowrap; }
#app .weather-location-clock .timezone-clock-text { width:126px; min-width:126px; max-width:126px; height:46px; }
#app .weather-location-clock .timezone-clock-value { color:#edf7ff; font-size:15px; }
#app .weather-location-clock .timezone-clock-day,#app .weather-location-clock .timezone-clock-date { color:#b9cbd9; font-size:9px; }
#app .weather-location-clock .timezone-clock-zone { color:#7f9eb5; font-size:8px; }
#app .weather-modal > .weather-close { top:14px; right:18px; border-color:#3c6077; background:#17394b; }
#app .weather-modal > .weather-close:hover,#app .weather-modal > .weather-close:focus-visible { border-color:#5b91b4; background:#21495f; outline:0; }
@media (max-width:720px) {
  #app .weather-modal > .weather-location-header { gap:10px; min-height:54px; margin:-22px -22px 0; padding:6px 48px 6px 18px; }
  #app .weather-location-header .weather-country-heading > img { width:22px; height:22px; flex-basis:22px; }
  #app .weather-location-header .weather-place-picker > button { font-size:17px; }
  #app .weather-location-clock { min-width:112px; }
  #app .weather-location-clock .timezone-clock-text { width:112px; min-width:112px; max-width:112px; }
  #app .weather-location-clock .timezone-clock-value { font-size:13px; }
}

/* Approved compact weather observatory: presentation only; chart data and interactions remain native. */
#app.app-window > .modal-layer .weather-modal {
  width:90%;
  max-width:1540px;
  padding:20px 14px 14px;
  border-color:#314354;
  border-radius:16px;
  background:#1b2633;
  font-family:"Ubuntu",system-ui,sans-serif;
}
#app .weather-modal > .weather-location-header {
  gap:21.6px;
  min-height:52.2px;
  margin:-20px -14px 0;
  padding:5.4px 46.8px 5.4px 12.6px;
  border-bottom:2px solid #405a70;
  background:transparent;
}
#app .weather-location-header .weather-country-heading { min-height:36px; gap:9px; }
#app .weather-location-header .weather-country-heading > img { width:16.2px; height:16.2px; flex:0 0 16.2px; box-shadow:none; }
#app .weather-location-header .weather-place-picker > button { gap:7.2px; font:500 18.36px/1 "Ubuntu",system-ui,sans-serif; }
#app .weather-place-picker-label { display:inline-flex; align-items:baseline; min-width:0; gap:4.5px; white-space:nowrap; }
#app.app-window .weather-location-header .weather-place-picker-city,#app.app-window .weather-location-header .weather-place-picker-country,#app.app-window .weather-location-header .weather-place-picker-country > span { color:#f4f7fa; font:500 18.36px/1 "Ubuntu",system-ui,sans-serif; }
#app .weather-location-header .weather-place-picker > button svg { width:13.5px; height:13.5px; color:#8ea0af; }
#app .weather-location-clock { flex:0 0 auto; min-width:max-content; min-height:36px; }
#app .weather-location-clock .timezone-clock-text { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; gap:7.2px; width:auto; min-width:0; max-width:none; height:auto; }
#app .weather-location-clock .weather-location-date { color:#b9cbd9; font-size:12.15px; font-weight:400; }
#app .weather-location-clock .timezone-clock-value { font-size:17.01px; }
#app .weather-location-clock .weather-clock-offset { display:inline-flex; align-items:center; gap:3.6px; margin-left:1.8px; color:#c6d4e0; font-size:12.15px; font-weight:500; letter-spacing:.01em; line-height:1; white-space:nowrap; }
#app .weather-location-clock .weather-clock-offset-icon { width:10.8px; height:10.8px; flex:0 0 10.8px; object-fit:contain; filter:brightness(0) invert(1); opacity:.78; }
#app .weather-location-clock .weather-clock-offset-value { font-variant-numeric:tabular-nums; }
#app .weather-location-clock .timezone-clock-day,#app .weather-location-clock .timezone-clock-date { font-size:7.2px; }
#app .weather-location-clock .timezone-clock-zone { font-size:6.75px; }
#app .weather-modal > .weather-close { top:11px; right:10px; border-color:#3a4d5e; background:transparent; box-shadow:none; }
#app .weather-modal > .weather-close:hover,#app .weather-modal > .weather-close:focus-visible { border-color:#60778a; background:#22313f; box-shadow:none; }

@media (max-width:720px) {
  #app .weather-location-clock { min-width:232px; }
  #app .weather-location-clock .timezone-clock-text { gap:4px; }
  #app .weather-location-clock .weather-location-date { font-size:8px; }
}

#app .weather-modal > .weather-forecast-row {
  display:grid;
  grid-template-columns:minmax(90px,1fr) minmax(630px,7fr);
  height:102px;
  margin:8px 0 0;
  overflow-x:auto;
  overflow-y:hidden;
  border:1px solid #314354;
  border-radius:8px;
  background:#1b2633;
  box-shadow:none;
}
#app .weather-forecast-row > .weather-current {
  position:relative;
  display:grid;
  grid-template-rows:auto auto 1fr;
  align-content:center;
  justify-items:center;
  gap:4px;
  min-width:90px;
  min-height:0;
  height:100%;
  margin:0;
  padding:7px 14px 7px 16px;
  border-right:1px solid rgba(49,67,84,.32);
  background:transparent;
  color:#f4f7fa;
  font-size:inherit;
  line-height:1;
  text-align:center;
}
#app .weather-forecast-row > .weather-current::before {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:3px;
  border-radius:8px 0 0 8px;
  background:#4c91c6;
}
#app .weather-current-heading { display:inline-flex; align-items:baseline; justify-content:center; gap:5px; }
#app .weather-current-heading > b { color:#c2ced8; font-size:10px; font-weight:500; letter-spacing:.02em; }
#app .weather-forecast-row > .weather-current .weather-current-as-of { color:#8ea0af; font-size:8px; font-weight:400; line-height:1; }
#app .weather-current-body { display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0; }
#app .weather-current-hero { display:inline-flex; align-items:baseline; justify-content:flex-start; gap:6px; }
#app .weather-forecast-row > .weather-current .weather-current-condition { width:26px; height:26px; flex:0 0 26px; align-self:center; object-fit:contain; }
#app .weather-current-hero > strong { color:#f4f7fa; font-size:26px; font-weight:500; line-height:1; }
#app .weather-current-feels { color:#c2ced8; font-size:9px; font-weight:400; line-height:1; white-space:nowrap; }
#app .weather-current-stats {
  align-self:end;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:6px 10px;
  width:100%;
  padding-top:4px;
  border-top:0;
}
#app .weather-current-stats > span {
  display:inline-flex;
  align-items:center;
  gap:3px;
  min-width:0;
  padding:0;
  border-right:0;
  color:#c2ced8;
}
#app .weather-current-stats > span img {
  width:11px;
  height:11px;
  flex:0 0 11px;
  object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.68;
}
#app .weather-current-stats strong { overflow:hidden; color:#e6eef5; font-size:8.5px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
#app .weather-current-stats small { display:none; }
#app .weather-forecast-row > .weather-days {
  display:grid;
  grid-template-columns:repeat(7,minmax(90px,1fr));
  column-gap:0;
  min-width:630px;
  height:100%;
  margin:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
}
#app .weather-days-heading { display:none; }
#app .weather-forecast-row > .weather-days > button {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:center;
  gap:0;
  min-width:90px;
  min-height:0;
  height:100%;
  padding:8px 12px;
  border:0;
  border-right:1px solid rgba(49,67,84,.28);
  border-radius:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:center;
  cursor:pointer;
}
#app .weather-forecast-row > .weather-days > button:hover { background:rgba(76,145,198,.08); }
#app .weather-forecast-row > .weather-days > button[aria-pressed="true"] { background:rgba(76,145,198,.13); box-shadow:inset 0 -2px #4c91c6; }
#app .weather-forecast-row > .weather-days > button:focus-visible { position:relative; z-index:1; outline:1px solid #6ca7d2; outline-offset:-2px; }
#app .weather-forecast-row > .weather-days > button:last-child { border-right:0; }
#app .weather-day-heading { display:inline-flex; align-items:baseline; justify-content:center; gap:4px; white-space:nowrap; }
#app .weather-day-heading b { color:#f4f7fa; font-size:10px; font-weight:500; line-height:1; }
#app .weather-day-heading small { color:#8ea0af; font-size:9.25px; font-weight:400; line-height:1; }
#app .weather-day-summary { display:inline-flex; align-items:center; justify-content:center; gap:4px; }
#app .weather-day-summary > img { width:18px; height:18px; flex:0 0 18px; object-fit:contain; }
#app .weather-day-temps { display:inline-flex; align-items:baseline; justify-content:center; gap:5px; line-height:1; }
#app .weather-day-temps strong { color:#f4f7fa; font-size:15px; font-weight:500; }
#app .weather-day-temps small { color:#9aabb9; font-size:11px; font-weight:400; }
#app .weather-day-temp-separator { display:inline-block; align-self:center; width:1px; height:.72em; flex:0 0 1px; background:#667987; }
#app .weather-heading-separator { display:inline-block; width:1px; height:.78em; margin:0 .22em; background:currentColor; vertical-align:-.08em; }
#app .weather-day-metrics { display:flex; align-items:center; justify-content:center; gap:0; color:#c2ced8; font-size:9.25px; white-space:nowrap; }
#app .weather-day-metrics > span + span::before { content:none; margin:0; }
#app .weather-day-precip { display:inline-flex; align-items:center; gap:3px; color:#9abbda; font-size:9.25px; font-weight:500; }
#app .weather-day-precip img { width:10px; height:10px; object-fit:contain; filter:brightness(0) invert(1); opacity:.78; }
#app .weather-forecast-row .weather-day-sun-times { display:flex; justify-content:center; gap:0; margin:0; color:#8ea0af!important; font-size:9.25px!important; font-weight:400; line-height:1; white-space:nowrap; }
#app .weather-forecast-row .weather-day-sun-times span { display:inline-flex; align-items:center; gap:3px; }
#app .weather-forecast-row .weather-day-sun-times img { width:10px; height:10px; flex:0 0 10px; object-fit:contain; filter:brightness(0) invert(1); opacity:.62; }
#app .weather-forecast-row > .weather-current .weather-current-sun-times { justify-content:flex-start; align-self:flex-start; }
#app .weather-hourly-forecast { display:grid; gap:12px; width:80%; min-width:0; margin:22px auto 0; }
#app .weather-hourly-forecast > header { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:18px; padding:0 2px; }
#app .weather-hourly-forecast > header strong { color:#f4f7fa; font-size:12px; font-weight:500; }
#app .weather-hourly-forecast > header span { color:#8ea0af; font-size:9px; font-weight:400; }
#app .weather-hourly-viewport { display:grid; grid-template-columns:34px minmax(0,1fr) 34px; align-items:center; gap:8px; min-width:0; padding:12px 8px; overflow:hidden; border:1px solid #314354; border-radius:8px; background:#172430; }
#app .weather-hourly-list { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); min-width:0; overflow:hidden; }
#app .weather-hourly-slot { position:relative; display:grid; grid-template-rows:auto 21px auto auto; align-content:center; justify-items:center; gap:4px; min-width:0; min-height:88px; padding:7px 4px; border-right:1px solid rgba(49,67,84,.38); color:#c2ced8; text-align:center; }
#app .weather-hourly-slot:last-child { border-right:0; }
#app .weather-hourly-slot.is-current { background:rgba(76,145,198,.11); box-shadow:inset 0 2px #4c91c6; }
#app .weather-hourly-slot time { color:#aebcc8; font-size:8.5px; font-weight:500; line-height:1; }
#app .weather-hourly-slot > img { width:19px; height:19px; object-fit:contain; }
#app .weather-hourly-slot > strong { color:#f4f7fa; font-size:12px; font-weight:500; line-height:1; }
#app .weather-hourly-slot > small { display:inline-flex; align-items:center; gap:2px; color:#9abbda; font-size:8px; font-weight:500; line-height:1; }
#app .weather-hourly-slot > small img { width:9px; height:9px; object-fit:contain; filter:brightness(0) invert(1); opacity:.72; }
@media (hover:hover) and (pointer:fine) {
  #app .weather-hourly-slot { transition:background-color .08s ease-out,box-shadow .08s ease-out,transform .08s ease-out; }
  #app .weather-hourly-slot::after { transition:box-shadow .08s ease-out,transform .08s ease-out; }
  #app .weather-hourly-slot > strong { transition:color .08s ease-out,text-shadow .08s ease-out; }
  #app .weather-hourly-slot:hover { z-index:2; border-radius:8px; background:rgba(61,156,245,.09); box-shadow:inset 0 0 0 1px rgba(93,169,239,.42),0 8px 18px rgba(5,15,24,.22); transform:translateY(-2px); }
  #app .weather-hourly-slot:hover::after { box-shadow:0 0 0 4px rgba(61,156,245,.13); transform:translateX(-50%) scale(1.22); }
  #app .weather-hourly-slot:hover > strong { color:#fff; text-shadow:0 0 12px rgba(108,174,245,.45); }
}
@media (prefers-reduced-motion:reduce) {
  #app .weather-hourly-slot,#app .weather-hourly-slot::after,#app .weather-hourly-slot > strong { transition:none; }
  #app .weather-hourly-slot:hover { transform:none; }
}
#app .weather-hourly-list > p { min-width:240px; margin:0; padding:20px; color:#8ea0af; font-size:10px; }
#app .weather-hourly-nav { display:grid; place-items:center; width:30px; min-width:30px; height:30px; padding:0; border:1px solid #405468; border-radius:50%; background:#243341; box-shadow:none; color:#dce7ef; cursor:pointer; }
#app .weather-hourly-nav:hover:not(:disabled) { border-color:#5d7890; background:#2b3e4e; }
#app .weather-hourly-nav:focus-visible { outline:1px solid #6ca7d2; outline-offset:2px; }
#app .weather-hourly-nav:disabled { cursor:default; opacity:.28; }
#app .weather-hourly-nav svg { display:block; width:17px; height:17px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.6; }
#app .weather-hourly-forecast-skeleton > header .weather-skeleton-line:first-child { width:62px; height:7px; }
#app .weather-hourly-forecast-skeleton > header .weather-skeleton-date { width:84px; height:6px; }
#app .weather-hourly-slot-skeleton .weather-skeleton-line { width:32px; height:6px; }
#app .weather-hourly-slot-skeleton .weather-skeleton-temp { width:22px; height:11px; }
#app .weather-hourly-slot-skeleton .weather-skeleton-detail { width:28px; height:6px; }
#app .weather-modal > .weather-source { display:none; }

#app .weather-modal > .weather-insights {
  display:grid;
  gap:12px;
  width:100%;
  margin-top:24px;
}
#app .weather-modal > .weather-insights .weather-insights-heading {
  margin:0;
  color:#f4f7fa;
  font-size:13px;
  font-weight:500;
  line-height:1.1;
}
#app .weather-modal > .weather-insights .weather-insights-row {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  width:100%;
}
#app .weather-modal > .weather-insights .weather-insight-pair {
  box-sizing:border-box;
  min-width:0;
  min-height:128px;
  border:1px solid #314354;
  border-radius:6px;
  background:#1b2633;
  overflow:visible;
}
#app .weather-modal > .weather-insights .weather-insight-pair-summary {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  min-height:60px;
  border-bottom:1px solid #314354;
  overflow:hidden;
}
#app .weather-modal > .weather-insights .weather-insight {
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:2px;
  min-width:0;
  min-height:60px;
  padding:6px 5px 5px;
  border:0;
  border-radius:0;
  background:transparent;
}
#app .weather-modal > .weather-insights .weather-insight-pair-summary > .weather-insight:first-child {
  border-right:1px solid #314354;
}
#app .weather-modal > .weather-insights .weather-insight-icon {
  display:block;
  width:12px;
  height:12px;
  flex:0 0 12px;
  background:currentColor;
  -webkit-mask:var(--weather-insight-icon) center / contain no-repeat;
  mask:var(--weather-insight-icon) center / contain no-repeat;
  color:#aebac6;
  opacity:.96;
}
#app .weather-modal > .weather-insights [data-weather-insight="coldest"] .weather-insight-icon { color:#75c5e6; }
#app .weather-modal > .weather-insights [data-weather-insight="warmest"] .weather-insight-icon { color:#f29b66; }
#app .weather-modal > .weather-insights [data-weather-insight="most-sunshine"] .weather-insight-icon { color:#f2bd4f; }
#app .weather-modal > .weather-insights [data-weather-insight="least-sunshine"] .weather-insight-icon { color:#93a8b7; }
#app .weather-modal > .weather-insights [data-weather-insight="most-daylight"] .weather-insight-icon { color:#70b8ea; }
#app .weather-modal > .weather-insights [data-weather-insight="least-daylight"] .weather-insight-icon { color:#9b88d1; }
#app .weather-modal > .weather-insights [data-weather-insight="most-rain-chance"] .weather-insight-icon { color:#7e6cbc; }
#app .weather-modal > .weather-insights [data-weather-insight="least-rain-chance"] .weather-insight-icon { color:#5db0ab; }
#app .weather-modal > .weather-insights .weather-insight-copy {
  display:grid;
  justify-items:center;
  gap:2px;
  min-width:0;
  width:100%;
  text-align:center;
}
#app .weather-modal > .weather-insights .weather-insight-value {
  display:grid;
  justify-items:center;
  color:#f4f7fa;
  font-size:10px;
  font-weight:600;
  line-height:1.05;
}
#app .weather-modal > .weather-insights .weather-insight-value span {
  color:#c9d7e4;
  font-size:13px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
#app .weather-modal > .weather-insights .weather-insight-label {
  max-width:100%;
  overflow:hidden;
  color:#aebac6;
  font-size:8px;
  font-weight:500;
  line-height:1.1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#app .weather-modal > .weather-insights .weather-insight-grid {
  display:grid;
  align-content:center;
  gap:2px;
  min-height:66px;
  padding:5px 7px 6px;
}
#app .weather-modal > .weather-insights .weather-insight-season-row {
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:3px;
  min-width:0;
}
#app .weather-modal > .weather-insights .weather-insight-season-label,
#app .weather-modal > .weather-insights .weather-insight-grid-skeleton .weather-insight-season-row > span {
  overflow:hidden;
  color:#aebac6;
  font-size:7px;
  font-weight:500;
  line-height:14px;
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#app .weather-modal > .weather-insights .weather-insight-season-months,
#app .weather-modal > .weather-insights .weather-insight-grid-skeleton .weather-insight-season-row > div {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,50px));
  justify-content:center;
  gap:2px;
  min-width:0;
}
#app .weather-modal > .weather-insights .weather-insight-month,
#app .weather-modal > .weather-insights .weather-insight-grid-skeleton i {
  box-sizing:border-box;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  height:14px;
  border:1px solid rgba(220,230,238,.24);
  border-radius:2px;
  background:rgba(var(--weather-insight-cell),.82);
  color:rgba(238,244,248,.78);
  font-size:7px;
  font-style:normal;
  font-weight:500;
  line-height:1;
  text-align:center;
  white-space:nowrap;
}
#app .weather-modal > .weather-insights .weather-insight-month.is-unavailable {
  background:#24313d;
  color:#71818e;
}
#app .weather-modal > .weather-insights .weather-insight-month-tooltip {
  box-sizing:border-box;
  position:absolute;
  z-index:20;
  left:50%;
  bottom:calc(100% + 4px);
  display:grid;
  justify-items:center;
  gap:2px;
  min-width:86px;
  padding:4px 6px;
  border:1px solid #405468;
  border-radius:4px;
  background:#101a24;
  box-shadow:0 4px 10px rgba(0,0,0,.32);
  color:#f4f7fa;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,2px);
  transition:opacity .1s ease,transform .1s ease;
}
#app .weather-modal > .weather-insights .weather-insight-month-tooltip strong { font-size:8px; font-weight:600; line-height:1.1; }
#app .weather-modal > .weather-insights .weather-insight-month-tooltip small { color:#aebac6; font-size:7px; font-weight:400; line-height:1.1; }
#app .weather-modal > .weather-insights .weather-insight-month:hover .weather-insight-month-tooltip {
  opacity:1;
  transform:translate(-50%,0);
}
#app .weather-modal > .weather-insights .weather-insights-empty {
  margin:0;
  padding:12px 11px;
  border:1px solid #314354;
  border-radius:6px;
  background:#1b2633;
  color:#aebac6;
  font-size:11px;
}
#app .weather-modal > .weather-insights.is-loading .weather-insight-skeleton {
  display:grid;
  justify-items:center;
  align-content:center;
  gap:7px;
}
#app .weather-modal > .weather-insights .weather-insight-skeleton-value { width:52%; height:11px; }
#app .weather-modal > .weather-insights .weather-insight-skeleton-label { width:78%; height:8px; }
#app .weather-modal > .weather-insights .weather-insight-grid-skeleton i { --weather-insight-cell:49,67,84; opacity:.56; }
@media (max-width:1100px) {
  #app .weather-modal > .weather-insights .weather-insights-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px) {
  #app .weather-modal > .weather-insights .weather-insights-row { grid-template-columns:minmax(0,1fr); }
}

#app .weather-modal > .weather-analysis {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:14px;
  row-gap:16px;
  align-items:stretch;
  width:100%;
  margin-top:24px;
  grid-auto-rows:480px;
}
#app .weather-modal > .weather-analysis > .weather-climate-stack { display:contents; }
#app .weather-modal > .weather-analysis .weather-climate,
#app .weather-modal > .weather-analysis .weather-hourly-climate {
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  width:100%;
  min-width:0;
  min-height:0;
  height:100%;
  margin:0;
  padding:9px 10px 13px;
  overflow:hidden;
  border:1px solid #314354;
  border-radius:6px;
  background:#1b2633;
}
#app .weather-modal > .weather-analysis .weather-climate-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  min-height:29px;
  margin-bottom:4px;
}
#app .weather-modal > .weather-analysis .weather-climate-heading > div:first-child { display:inline-flex; align-items:center; min-width:0; gap:11px; }
#app .weather-modal .weather-chart-title { position:relative; display:inline-flex; align-items:center; min-width:0; gap:5px; border-radius:4px; cursor:default; }
#app .weather-modal .weather-chart-title:focus-visible { outline:0; box-shadow:none; }
#app .weather-modal .weather-chart-title:focus-visible::after { position:absolute; bottom:-2px; left:0; width:14px; height:1px; background:#5da8ed; content:""; }
#app .weather-modal .weather-chart-title-icon { display:block; width:14px; height:14px; flex:0 0 14px; object-fit:contain; }
#app .weather-modal > .weather-analysis .weather-climate h2,
#app .weather-modal > .weather-analysis .weather-hourly-climate h2 { overflow:hidden; font-size:13px; font-weight:500; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
#app .weather-modal .weather-chart-title-input { width:min(230px,32vw); height:22px; padding:0 2px; border:0; border-bottom:1px solid #5da8ed; outline:0; background:transparent; color:#f4f7fa; font:500 13px/1.1 var(--font-family,"Ubuntu",system-ui,sans-serif); }
#app .weather-modal > .weather-analysis .weather-climate-heading > div:first-child .weather-source-logo { width:auto; height:13px; flex:0 0 auto; }
#app .weather-modal .weather-series-legend {
  position:relative;
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:space-between;
  gap:0;
  min-height:18px;
  margin:10px 8px 0 0;
}
#app .weather-modal .weather-series-legend .weather-seasonal-reset-button { position:absolute; left:-26px; width:16px; min-width:16px; height:16px; justify-content:center; }
#app .weather-modal .weather-series-legend .weather-seasonal-reset-button img { display:block; width:13px; height:13px; object-fit:contain; filter:brightness(0) invert(1); opacity:.78; }
#app .weather-modal .weather-series-legend .weather-seasonal-reset-button:hover img,
#app .weather-modal .weather-series-legend .weather-seasonal-reset-button:focus-visible img { opacity:1; }
#app .weather-modal .weather-series-legend button {
  display:inline-flex;
  align-items:center;
  gap:4px;
  height:16px;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  box-shadow:none;
  color:#c2ced8;
  cursor:pointer;
  font:400 9px/16px "Ubuntu",system-ui,sans-serif;
  white-space:nowrap;
}
#app .weather-modal .weather-series-legend button:hover { color:#f4f7fa; }
#app .weather-modal .weather-series-legend button:focus-visible { outline:1px solid #7891a6; outline-offset:2px; }
#app .weather-modal .weather-series-legend button[aria-pressed="false"] { color:#71808d; opacity:.72; }
#app .weather-modal .weather-series-swatch { display:inline-block; width:10px; height:0; border-top:2px solid currentColor; }
#app .weather-modal .weather-series-swatch-high { color:#dd897d; }
#app .weather-modal .weather-series-swatch-average { color:#d5e0ed; border-top-width:1px; border-top-style:dashed; }
#app .weather-modal .weather-series-swatch-low { color:#78a7ef; }
#app .weather-modal .weather-series-swatch-perceivedHigh { color:#dd897d; border-top-width:1px; border-top-style:dotted; }
#app .weather-modal .weather-series-swatch-perceivedAverage { color:#b8c6d2; border-top-width:1px; border-top-style:dotted; }
#app .weather-modal .weather-series-swatch-perceivedLow { color:#78a7ef; border-top-width:1px; border-top-style:dotted; }
#app .weather-modal .weather-series-swatch-percentiles { width:12px; height:6px; border:1px solid rgba(221,137,125,.65); background:rgba(221,137,125,.22); }
#app .weather-modal .weather-series-swatch-perceivedPercentiles { width:12px; height:6px; border:1px dotted #b8c6d2; background:rgba(184,198,210,.16); }
#app .weather-modal > .weather-analysis .weather-climate-controls { display:flex; align-items:flex-start; gap:8px; min-width:0; }
#app .weather-modal > .weather-analysis [data-seasonal-climate] .weather-climate-controls { margin-right:8px; }
#app .weather-modal [data-weather-category-chart="precip"] .weather-chart-tooltip { transform:translate(-50%,calc(-100% - 6px)); }
#app .weather-modal > .weather-analysis .weather-climate-periods { display:flex; align-self:flex-end; align-items:center; gap:8px; height:19px; }
#app .weather-modal > .weather-analysis .weather-climate-periods button {
  min-width:0;
  height:19px;
  padding:0 1px;
  border:0;
  border-bottom:1px solid transparent;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:#8ea0af;
  font:500 9px/18px "Ubuntu",system-ui,sans-serif;
}
#app .weather-modal > .weather-analysis .weather-climate-periods button:hover { border-color:transparent; background:transparent; box-shadow:none; color:#d9e2e9; }
#app .weather-modal > .weather-analysis .weather-climate-periods button[aria-pressed="true"] { border-color:#7891a6; background:transparent; box-shadow:none; color:#f4f7fa; }
#app .weather-modal > .weather-analysis .weather-climate-periods button:focus-visible { outline:0; box-shadow:none; }
#app .weather-modal > .weather-analysis .weather-sunshine-unit-controls .weather-climate-periods button { padding:0 3px; }
#app .weather-modal > .weather-analysis .weather-climate-controls label { display:grid; justify-items:center; gap:0; color:#81909c; font-size:8px; line-height:1; }
#app .weather-modal > .weather-analysis .weather-climate-controls input {
  width:40px;
  height:18px;
  padding:0;
  border:0;
  border-bottom:1px solid #3a4d5e;
  border-radius:0;
  outline:0;
  background:transparent;
  box-shadow:none;
  color:#f4f7fa;
  font:500 9px/18px "Ubuntu",system-ui,sans-serif;
  text-align:center;
}
#app .weather-modal > .weather-analysis .weather-climate-controls input:focus { border-color:#7891a6; box-shadow:none; }
#app .weather-modal > .weather-analysis .weather-hourly-chart-wrap { flex:0 0 auto; min-height:0; aspect-ratio:620 / 339; background:#1b2633; }
#app .weather-modal > .weather-analysis .weather-category-chart-wrap { flex:1; min-height:0; }
#app .weather-modal > .weather-analysis .weather-daylight-climate .weather-category-chart-wrap { min-height:0; }
#app .weather-modal > .weather-analysis .weather-sunshine-climate .weather-category-chart-wrap { min-height:0; }
#app .weather-modal > .weather-analysis .weather-climate-chart,
#app .weather-modal > .weather-analysis .weather-hourly-climate-canvas,
#app .weather-modal > .weather-analysis .weather-category-chart { max-width:100%; }
#app .weather-modal .weather-climate-months { position:absolute; inset:0; }
#app .weather-modal .weather-climate-table strong { position:relative; z-index:1; }
#app .weather-modal .weather-daylight-table { gap:0; }
#app .weather-modal .weather-daylight-table > div,
#app .weather-modal .weather-daylight-table .weather-climate-months,
#app .weather-modal .weather-daylight-table span,
#app .weather-modal .weather-daylight-table strong { min-height:24px; }
#app .weather-modal .weather-sunshine-table { gap:0; }
#app .weather-modal .weather-sunshine-table > div,
#app .weather-modal .weather-sunshine-table .weather-climate-months,
#app .weather-modal .weather-sunshine-table span,
#app .weather-modal .weather-sunshine-table strong { min-height:24px; }
#app .weather-modal [data-seasonal-climate] .weather-climate-table { gap:0; margin-top:4px; }
#app .weather-modal [data-seasonal-climate]:not(.is-loading) > .weather-climate-chart-wrap { margin-top:0; }
#app .weather-modal [data-seasonal-climate] .weather-climate-table > div,
#app .weather-modal [data-seasonal-climate] .weather-climate-months,
#app .weather-modal [data-seasonal-climate] .weather-climate-table span,
#app .weather-modal [data-seasonal-climate] .weather-climate-table strong { min-height:14.7px; }
#app .weather-modal [data-seasonal-climate] .weather-climate-high span,
#app .weather-modal [data-seasonal-climate] .weather-climate-high strong { color:#dd897d; opacity:1; }
#app .weather-modal [data-seasonal-climate] .weather-climate-low span,
#app .weather-modal [data-seasonal-climate] .weather-climate-low strong { color:#78a7ef; opacity:1; }
#app .weather-modal [data-seasonal-climate] .weather-chart-month[data-action="set-weather-seasonal-month"] { pointer-events:auto; cursor:pointer; }
#app .weather-modal [data-seasonal-climate] .weather-chart-day-suffix { font-size:6.5px; }
#app .weather-modal [data-seasonal-climate] .weather-chart-month[data-action="set-weather-seasonal-month"]:hover,
#app .weather-modal [data-seasonal-climate] .weather-chart-month[data-action="set-weather-seasonal-month"]:focus { fill:#f4f7fa; text-decoration:underline; outline:none; }
#app .weather-modal [data-seasonal-climate].is-month-view .weather-chart-title-line { transform:translateY(4px); }
#app .weather-modal [data-seasonal-climate].is-month-view .weather-seasonal-month-summary { margin-top:5px; }
#app .weather-modal [data-seasonal-climate].is-month-view .weather-seasonal-month-summary > div { grid-template-columns:54px minmax(0,1fr); }
#app .weather-modal [data-seasonal-climate].is-month-view .weather-seasonal-month-summary span {
  position:static;
  width:auto;
  transform:none;
  justify-content:start;
  padding-left:0;
}
#app .weather-modal [data-seasonal-climate].is-month-view .weather-chart-month-boundary { stroke:rgba(201,215,228,.32); stroke-width:1; }

/* Weather Observatory 2026: open, editorial desktop composition. */
@media (min-width:981px) {
  #app.app-window > .modal-layer:has(.weather-modal) {
    padding:0;
    background:#0b1822;
  }
  #app.app-window > .modal-layer .weather-modal {
    box-sizing:border-box;
    position:relative;
    width:100%;
    max-width:none;
    min-height:100%;
    margin:0;
    padding:24px 30px 34px;
    border:0;
    border-radius:0;
    background:
      radial-gradient(circle at 50% 12%,rgba(31,64,84,.2),transparent 38%),
      #0b1822;
    color:#f4f7fa;
  }
  #app .weather-modal > .weather-location-header {
    box-sizing:border-box;
    position:absolute;
    z-index:2;
    top:24px;
    left:30px;
    display:flex!important;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:7px;
    width:calc(44% - 60px);
    min-height:0;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
  }
  #app .weather-location-header .weather-country-heading {
    min-height:26px;
    gap:10px;
  }
  #app .weather-location-header .weather-country-heading > img {
    display:block;
    width:18px;
    height:18px;
    flex:0 0 18px;
  }
  #app .weather-location-header .weather-country-heading::before { display:none; content:none; }
  #app .weather-location-header .weather-place-picker > button,
  #app.app-window .weather-location-header .weather-place-picker-city,
  #app.app-window .weather-location-header .weather-place-picker-country,
  #app.app-window .weather-location-header .weather-place-picker-country > span {
    color:#f5f7f9;
    font:600 22px/1.1 "Ubuntu",system-ui,sans-serif;
  }
  #app .weather-location-header .weather-place-picker > button svg {
    width:13px;
    height:13px;
    margin-left:4px;
    color:#aebac6;
  }
  #app .weather-location-clock {
    display:block;
    min-width:0;
    min-height:0;
    margin-left:28px;
    color:#c8d2da;
    text-align:left;
  }
  #app .weather-location-clock .timezone-clock-text {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:4px 8px;
    width:230px;
    min-width:230px;
    height:auto;
  }
  #app .weather-location-clock .weather-location-date {
    flex:0 0 100%;
    color:#c7d0d8;
    font-size:12px;
  }
  #app .weather-location-clock .timezone-clock-value {
    color:#f4f7fa;
    font-size:13px;
    font-weight:500;
  }
  #app .weather-location-clock .weather-clock-offset {
    color:#aebac6;
    font-size:10px;
  }

  #app .weather-modal > .weather-forecast-row {
    display:grid;
    grid-template-columns:44% 56%;
    height:236px;
    margin:0;
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
  }
  #app .weather-forecast-row > .weather-current {
    box-sizing:border-box;
    position:relative;
    display:grid;
    grid-template-rows:1fr auto;
    align-content:stretch;
    justify-items:stretch;
    gap:22px;
    width:100%;
    min-width:0;
    min-height:0;
    height:100%;
    margin:0;
    padding:24px 34px 0 0;
    border:0;
    border-right:1px solid #2b3d49;
    background:transparent;
    text-align:left;
  }
  #app .weather-forecast-row > .weather-current::before { content:none; }
  #app .weather-current-heading { display:none; }
  #app .weather-current-body {
    display:grid;
    grid-template-columns:minmax(120px,.9fr) minmax(160px,1.1fr);
    align-items:center;
    gap:22px;
    min-width:0;
    width:min(440px,100%);
    align-self:start;
    justify-self:start;
    transform:scale(.85);
    transform-origin:top left;
  }
  #app .weather-current-visual {
    display:grid;
    place-items:center;
    min-width:0;
  }
  #app .weather-forecast-row > .weather-current .weather-current-condition {
    display:block;
    width:134px;
    height:134px;
    max-width:100%;
    flex:0 1 auto;
    object-fit:contain;
    filter:drop-shadow(0 12px 16px rgba(0,0,0,.2));
  }
  #app .weather-current-copy {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-width:0;
  }
  #app .weather-current-hero { display:block; }
  #app .weather-current-hero > strong {
    color:#f4f6f8;
    font-size:104px;
    font-weight:300;
    letter-spacing:-.06em;
    line-height:.84;
  }
  #app .weather-current-condition-label {
    margin-top:12px;
    color:#f4f7fa;
    font-size:17px;
    font-weight:400;
    line-height:1.15;
  }
  #app .weather-current-feels {
    margin-top:6px;
    color:#b7c2cb;
    font-size:12px;
    font-weight:400;
  }
  #app .weather-current-stats {
    align-self:end;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:0;
    width:100%;
    padding:0;
  }
  #app .weather-current-stats > span {
    box-sizing:border-box;
    display:grid;
    grid-template-rows:24px auto auto;
    justify-items:start;
    align-content:end;
    gap:3px;
    min-width:0;
    min-height:59px;
    padding:0 14px;
    border-right:1px solid #2b3d49;
    color:#d6dee5;
  }
  #app .weather-current-stats > span:first-child { padding-left:0; }
  #app .weather-current-stats > span:last-child { border-right:0; }
  #app .weather-current-stats > span img {
    width:22px;
    height:22px;
    flex:0 0 22px;
    filter:brightness(0) invert(1);
    opacity:.68;
  }
  #app .weather-current-stats small {
    display:block;
    color:#91a0ac;
    font-size:8px;
    font-weight:500;
    letter-spacing:.08em;
    line-height:1;
    text-transform:uppercase;
  }
  #app .weather-current-stats strong {
    color:#f1f4f6;
    font-size:10px;
    font-weight:500;
    line-height:1.1;
  }

  #app .weather-forecast-row > .weather-days {
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:26px repeat(7,30px);
    min-width:0;
    height:100%;
    padding:0 0 0 12px;
    overflow:visible;
    background:transparent;
  }
  #app .weather-days-heading {
    box-sizing:border-box;
    display:grid;
    grid-template-columns:1.1fr .75fr 1.55fr .8fr 1.1fr .85fr .85fr;
    align-items:center;
    justify-items:center;
    gap:6px;
    min-width:0;
    padding:0 4px;
    border-bottom:1px solid #344958;
    color:#8194a4;
    font-size:9px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
  }
  #app .weather-days-heading > span { justify-self:center; text-align:center; }
  #app .weather-forecast-row > .weather-days > button {
    box-sizing:border-box;
    display:grid;
    grid-template-columns:1.1fr .75fr 1.55fr .8fr 1.1fr .85fr .85fr;
    align-items:center;
    justify-items:center;
    gap:6px;
    min-width:0;
    min-height:0;
    height:30px;
    padding:0 4px;
    border:0;
    border-bottom:1px solid #273945;
    background:transparent;
    text-align:center;
  }
  #app .weather-forecast-row > .weather-days > button:first-of-type { border-top:0; }
  #app .weather-forecast-row > .weather-days > button:hover { background:rgba(62,111,143,.08); }
  #app .weather-forecast-row > .weather-days > button[aria-pressed="true"] {
    position:relative;
    background:linear-gradient(90deg,rgba(50,126,187,.12),rgba(50,126,187,.025));
    box-shadow:none;
  }
  #app .weather-forecast-row > .weather-days > button[aria-pressed="true"]::before {
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:3px;
    background:#3d9cf5;
  }
  #app .weather-day-heading {
    display:grid;
    grid-template-columns:auto auto;
    align-items:baseline;
    justify-content:center;
    gap:10px;
    text-align:center;
  }
  #app .weather-day-heading b {
    color:#f4f7fa;
    font-size:15px;
    font-weight:600;
    letter-spacing:.02em;
    text-transform:uppercase;
  }
  #app .weather-day-heading small { color:#aebac6; font-size:11px; }
  #app .weather-day-summary { display:contents; }
  #app .weather-day-summary > img {
    width:24px;
    height:24px;
    justify-self:center;
  }
  #app .weather-day-temps { width:100%; justify-content:center; gap:6px; }
  #app .weather-day-temps strong { font-size:18px; font-weight:500; }
  #app .weather-day-temps small { color:#aebac6; font-size:14px; }
  #app .weather-day-temp-separator { height:.72em; }
  #app .weather-day-metrics { justify-self:center; font-size:12px; }
  #app .weather-day-precip { gap:7px; color:#c2ccd4; font-size:12px; font-weight:400; }
  #app .weather-day-precip img { width:14px; height:14px; opacity:.72; }
  #app .weather-day-sunshine {
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#c2ccd4;
    font-size:12px;
    font-weight:400;
    white-space:nowrap;
  }
  #app .weather-day-sunshine img { width:15px; height:15px; opacity:.76; }
  #app .weather-forecast-row .weather-day-sun-times {
    display:contents;
    color:#b3bec7!important;
    font-size:12px!important;
  }
  #app .weather-forecast-row .weather-day-sun-times span { display:inline-flex; align-items:center; justify-self:center; gap:7px; white-space:nowrap; }
  #app .weather-forecast-row .weather-day-sun-times img { width:18px; height:18px; opacity:.78; }

  #app .weather-hourly-forecast {
    display:grid;
    gap:0;
    width:100%;
    margin:18px 0 0;
  }
  #app .weather-hourly-forecast > header {
    display:grid;
    grid-template-columns:max-content 1fr;
    align-items:center;
    gap:12px;
    min-height:20px;
    padding:0;
  }
  #app .weather-hourly-forecast > header::after { content:""; height:1px; background:#273945; }
  #app .weather-hourly-forecast > header strong {
    color:#d8e0e6;
    font-size:11px;
    font-weight:500;
    letter-spacing:.05em;
    text-transform:uppercase;
  }
  #app .weather-hourly-forecast > header span { display:none; }
  #app .weather-hourly-viewport {
    display:grid;
    grid-template-columns:48px minmax(0,1fr) 48px;
    align-items:center;
    gap:0;
    min-width:0;
    padding:10px 0 0;
    overflow:hidden;
    border:0;
    border-radius:0;
    background:transparent;
  }
  #app .weather-hourly-list {
    position:relative;
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    min-width:0;
    overflow:visible;
  }
  #app .weather-hourly-list::before {
    content:"";
    position:absolute;
    z-index:0;
    right:0;
    bottom:45px;
    left:0;
    height:2px;
    background:#3d9cf5;
    opacity:.92;
  }
  #app .weather-hourly-slot {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-rows:18px 30px 24px 15px;
    align-content:start;
    justify-items:center;
    gap:5px;
    min-width:0;
    min-height:112px;
    padding:4px 3px 0;
    border:0;
    color:#c2ced8;
  }
  #app .weather-hourly-slot::after {
    content:"";
    position:absolute;
    bottom:41px;
    left:50%;
    width:6px;
    height:6px;
    border-radius:50%;
    background:#3d9cf5;
    transform:translateX(-50%);
  }
  #app .weather-hourly-slot.is-current {
    background:transparent;
    box-shadow:inset -1px 0 #27516d;
  }
  #app .weather-hourly-slot time { color:#d9e0e6; font-size:10px; }
  #app .weather-hourly-slot.is-current time { color:#4ca6f9; }
  #app .weather-hourly-slot > img { width:26px; height:26px; }
  #app .weather-hourly-slot > strong { color:#f4f7fa; font-size:17px; font-weight:500; }
  #app .weather-hourly-slot > small { color:#c1ccd4; font-size:10px; font-weight:400; }
  #app .weather-hourly-slot > small img { width:11px; height:11px; }
  #app .weather-hourly-nav {
    width:38px;
    min-width:38px;
    height:38px;
    border-color:#536775;
    background:transparent;
  }
  #app .weather-hourly-nav:hover:not(:disabled) { border-color:#8296a4; background:rgba(255,255,255,.04); }

  #app .weather-modal > .weather-insights {
    display:grid;
    gap:7px;
    width:100%;
    margin-top:8px;
  }
  #app .weather-modal > .weather-insights .weather-insights-heading {
    color:#d8e0e6;
    font-size:11px;
    font-weight:500;
    letter-spacing:.05em;
    text-transform:uppercase;
  }
  #app .weather-modal > .weather-insights .weather-insights-row {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
  }
  #app .weather-modal > .weather-insights .weather-insight-pair {
    min-width:0;
    min-height:128px;
    padding:0 16px;
    overflow:visible;
    border:0;
    border-right:1px solid #31434f;
    border-radius:0;
    background:transparent;
  }
  #app .weather-modal > .weather-insights .weather-insight-pair:first-child { padding-left:6px; }
  #app .weather-modal > .weather-insights .weather-insight-pair:last-child { padding-right:6px; border-right:0; }
  #app .weather-modal > .weather-insights .weather-insight-pair-summary {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    min-height:50px;
    border:0;
  }
  #app .weather-modal > .weather-insights .weather-insight {
    display:grid;
    grid-template-columns:22px minmax(0,1fr);
    align-items:start;
    justify-content:start;
    gap:6px;
    min-height:50px;
    padding:2px 8px;
  }
  #app .weather-modal > .weather-insights .weather-insight-pair-summary > .weather-insight:first-child { border-right:1px solid #31434f; }
  #app .weather-modal > .weather-insights .weather-insight-icon { width:19px; height:19px; margin-top:1px; }
  #app .weather-modal > .weather-insights .weather-insight-copy { justify-items:start; gap:4px; text-align:left; }
  #app .weather-modal > .weather-insights .weather-insight-value {
    display:flex;
    align-items:baseline;
    gap:6px;
    font-size:12px;
    font-weight:400;
    white-space:nowrap;
  }
  #app .weather-modal > .weather-insights .weather-insight-value span { color:#f4f7fa; font-size:13px; font-weight:500; }
  #app .weather-modal > .weather-insights .weather-insight-label { color:#aebac6; font-size:8px; font-weight:400; }
  #app .weather-modal > .weather-insights .weather-insight-grid { gap:2px; min-height:70px; padding:4px 0 0; }
  #app .weather-modal > .weather-insights .weather-insight-season-row { grid-template-columns:48px minmax(0,1fr); gap:5px; }
  #app .weather-modal > .weather-insights .weather-insight-season-label { color:#c1ccd4; font-size:8px; line-height:17px; }
  #app .weather-modal > .weather-insights .weather-insight-season-months { grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px; }
  #app .weather-modal > .weather-insights .weather-insight-month { height:17px; border-color:rgba(220,230,238,.18); border-radius:0; font-size:8px; }

  #app .weather-modal > .weather-analysis {
    box-sizing:border-box;
    position:relative;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:310px;
    column-gap:0;
    row-gap:20px;
    align-items:stretch;
    width:100%;
    margin-top:16px;
    padding:42px 10px 12px;
    overflow:hidden;
    border:1px solid #31434f;
    border-radius:7px;
    background:rgba(10,23,32,.28);
  }
  #app .weather-modal > .weather-analysis::before {
    content:"Climate Atlas";
    position:absolute;
    top:15px;
    left:20px;
    color:#d8e0e6;
    font-size:11px;
    font-weight:500;
    letter-spacing:.05em;
    text-transform:uppercase;
  }
  #app .weather-modal > .weather-analysis .weather-climate,
  #app .weather-modal > .weather-analysis .weather-hourly-climate {
    height:100%;
    min-height:0;
    padding:0 14px 8px;
    overflow:hidden;
    border:0;
    border-radius:0;
    background:transparent;
  }
  #app .weather-modal > .weather-analysis .weather-climate:nth-child(odd),
  #app .weather-modal > .weather-analysis .weather-hourly-climate:nth-child(odd) { border-right:1px solid #31434f; }
  #app .weather-modal > .weather-analysis .weather-climate-heading { min-height:26px; margin-bottom:3px; }
  #app .weather-modal > .weather-analysis .weather-climate h2,
  #app .weather-modal > .weather-analysis .weather-hourly-climate h2 { font-size:13px; }
}

@media (max-width:980px) {
  #app.app-window > .modal-layer .weather-modal { width:95%; }
  #app .weather-modal > .weather-analysis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #app .weather-modal > .weather-analysis { grid-auto-rows:auto; }
  #app .weather-modal > .weather-analysis .weather-climate,
  #app .weather-modal > .weather-analysis .weather-hourly-climate { height:auto; min-height:460px; overflow:visible; }
  #app .weather-hourly-forecast { width:92%; }
}
@media (max-width:720px) {
  #app .weather-modal > .weather-analysis { grid-template-columns:minmax(0,1fr); }
  #app .weather-modal > .weather-location-header { min-height:39.6px; margin:-20px -14px 0; padding:4.5px 37.8px 4.5px 10.8px; }
  #app .weather-location-header .weather-country-heading > img { width:14.4px; height:14.4px; flex-basis:14.4px; }
  #app .weather-location-header .weather-place-picker > button { font-size:15.75px; }
  #app.app-window .weather-location-header .weather-place-picker-city,#app.app-window .weather-location-header .weather-place-picker-country,#app.app-window .weather-location-header .weather-place-picker-country > span { font-size:15.75px; }
  #app .weather-location-clock { min-width:96px; }
  #app .weather-location-clock .timezone-clock-text { width:96px; min-width:96px; max-width:96px; }
  #app .weather-modal > .weather-forecast-row { grid-template-columns:minmax(90px,1fr) minmax(630px,7fr); height:106px; }
  #app .weather-forecast-row > .weather-current { min-width:90px; }
  #app .weather-modal > .weather-analysis .weather-climate-heading { flex-wrap:wrap; }
  #app .weather-hourly-forecast { width:100%; }
  #app .weather-hourly-viewport { grid-template-columns:30px minmax(696px,1fr) 30px; overflow-x:auto; }
}
.nucleo-picker-selection strong { color:var(--ink); font-size:12px; }
.nucleo-picker-selection span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app.app-window .category-settings-modal,
#app.app-window .nucleo-icon-picker { width:min(1000px,calc(100vw - 24px)); height:min(74.1125vh,802px); max-height:min(74.1125vh,802px); padding:18px; zoom:var(--app-display-zoom,1); }
#app.app-window > .modal-layer .nucleo-icon-picker { justify-self:center; align-self:center; }
#app.app-window > .modal-layer { z-index:200; }
#app.app-window > .modal-layer > .modal { max-width:100%; max-height:100%; }
#app.app-window .nucleo-picker-grid { flex:1 1 auto; min-height:120px; max-height:none; }
.nucleo-icon-picker .modal-actions { flex:0 0 auto; margin-top:0; }
.nucleo-icon-picker .modal-actions .button { font-size:12px; }
@media (max-width:640px) { .nucleo-icon-picker { gap:10px; }.nucleo-picker-controls { grid-template-columns:1fr 1fr; }.nucleo-picker-search { grid-column:1/-1; }.nucleo-picker-grid { max-height:35vh; grid-template-columns:repeat(auto-fill,minmax(82px,1fr)); }.nucleo-icon-picker .modal-actions { flex-wrap:wrap; } }

@media (max-width:980px) { #app .saved-panel { width:310px; } #app .drawer { width:386px; } #app .unified-place-card { right:auto; left:326px; width:min(444px,calc((100% - 342px) * .6)); } #app .drawer-edit-panel { right:auto; left:414px; width:min(386px,calc(100vw - 432px)); } }
@media (max-width:720px) { #app .saved-panel { width:100%; } #app .drawer { width:auto; border-radius:14px; } #app .unified-place-card { top:10px; right:10px; bottom:auto; left:10px; grid-template-rows:55px 210px 46px minmax(0,1fr); width:auto; height:calc(100% - 20px); max-height:calc(100% - 20px); } #app .unified-place-card .drawer-header { gap:8px; padding:0 10px; } #app .unified-place-card .drawer-place-heading h2 { font-size:18px; } #app .unified-place-card .drawer-header-country { gap:6px; font-size:12px; } #app .unified-place-card .drawer-header-country .country-flag { width:15px; height:15px; flex-basis:15px; } #app .unified-place-card .drawer-header-country-copy small { font-size:11px; } #app .unified-place-card .drawer-media { height:210px; } #app .unified-place-card .drawer-personal-panel { padding-right:14px; padding-left:14px; } #app .unified-place-card .personal-form-row { grid-template-columns:1fr; gap:8px; padding:14px 0; } #app .unified-place-card .drawer-details-panel { padding:14px; } #app .drawer-edit-panel { right:10px; left:10px; width:auto; } #app .saved-panel-footer { display:none; } #app .osm-attribution { right:10px; bottom:calc(42% + 8px); } }
@media (max-width:720px) { #app .unified-place-card .drawer-place-heading h2 { font-size:16px; } }
@media (max-width:720px) { #app .unified-place-card { grid-template-rows:44px 210px 46px minmax(0,1fr); } }
@media (max-width:720px) { #app .unified-place-card { transform:none; } }

/* Reference-led place card: a single editorial detail surface, with all fields retained in the scrollable body. */
#app .unified-place-card {
  --place-card-surface:#152737;
  --place-card-surface-raised:#182a3b;
  --place-card-surface-soft:#1b2f42;
}
@media (min-width:721px) {
  #app .unified-place-card,
  #app .unified-place-card:has(.drawer-details-panel:not([hidden])) {
    grid-template-rows:47.5px auto auto minmax(0,1fr);
    border:1px solid #314555;
    border-radius:18px;
    background:var(--place-card-surface);
    box-shadow:0 26px 64px rgba(0,0,0,.52);
  }
}
#app .unified-place-card .drawer-header { min-height:47.5px; padding:0 6px 0 10px; background:var(--place-card-surface-raised); }
#app .unified-place-card .drawer-header-actions { gap:12px; }
#app .unified-place-card .drawer-header-action-group { gap:4px; }
#app .unified-place-card .drawer-header .drawer-favourite,
#app .unified-place-card .drawer-header .drawer-wishlist,
#app .unified-place-card .drawer-header .drawer-quick-save,
#app .unified-place-card .drawer-header .drawer-minimise-button,
#app .unified-place-card .drawer-header .drawer-close-button { position:static; z-index:auto; width:25px; min-width:25px; min-height:25px; height:25px; margin:0; border:1px solid rgba(184,200,213,.38)!important; border-radius:7px; background:transparent!important; box-shadow:none; color:#d8e1e8!important; transition:border-color .16s ease,background .16s ease,color .16s ease; }
#app .unified-place-card .drawer-header .drawer-favourite:hover,
#app .unified-place-card .drawer-header .drawer-wishlist:hover,
#app .unified-place-card .drawer-header .drawer-quick-save:hover,
#app .unified-place-card .drawer-header .drawer-minimise-button:hover,
#app .unified-place-card .drawer-header .drawer-close-button:hover { border-color:rgba(235,243,249,.78)!important; background:rgba(110,137,157,.18)!important; color:#f7fafc!important; }
#app .unified-place-card .drawer-header .drawer-minimise-button:hover { border-color:rgba(184,200,213,.38)!important; background:rgba(232,185,48,.2)!important; color:#f4c548!important; }
#app .unified-place-card .drawer-header .drawer-close-button:hover { border-color:rgba(184,200,213,.38)!important; background:rgba(238,94,104,.2)!important; color:#ff9aa1!important; }
#app .unified-place-card .drawer-header .drawer-favourite:focus-visible,
#app .unified-place-card .drawer-header .drawer-wishlist:focus-visible,
#app .unified-place-card .drawer-header .drawer-quick-save:focus-visible,
#app .unified-place-card .drawer-header .drawer-minimise-button:focus-visible,
#app .unified-place-card .drawer-header .drawer-close-button:focus-visible { border-color:#8bbcff!important; box-shadow:0 0 0 2px rgba(94,165,255,.35)!important; outline:0; }
#app .unified-place-card .drawer-header .drawer-favourite [data-icon],
#app .unified-place-card .drawer-header .drawer-minimise-button [data-icon],
#app .unified-place-card .drawer-header .drawer-close-button [data-icon] { width:14px; height:14px; }
#app .unified-place-card .drawer-header .drawer-wishlist .drawer-wishlist-icon { width:14px; height:14px; filter:brightness(0) invert(1); }
#app .unified-place-card .drawer-header .drawer-quick-save .drawer-quick-save-icon { width:14px; height:14px; filter:brightness(0) invert(1); }
#app .unified-place-card .drawer-header .drawer-wishlist.is-active { border-color:#e0a92d!important; background:#c9951d!important; }
#app .unified-place-card .drawer-header .drawer-quick-save.is-saved { border-color:#2f80ed!important; background:#2f80ed!important; }
#app .unified-place-card .drawer-header .drawer-quick-save.is-saved .drawer-quick-save-icon { filter:brightness(0) invert(1); }
#app .unified-place-card .drawer-header .drawer-favourite.is-active { border-color:#ef4444!important; background:rgba(239,68,68,.18)!important; color:#ff5f6d!important; }
#app .unified-place-card .drawer-header .drawer-favourite.is-active .icon-svg { fill:currentColor; }
#app .unified-place-card .drawer-resize-handle {
  position:absolute;
  z-index:8;
  width:16px;
  height:16px;
  padding:0;
  border:0;
  background:transparent;
  cursor:ew-resize;
  outline:0;
  touch-action:none;
}
#app .unified-place-card .drawer-resize-handle.is-top-left { top:0; left:0; }
#app .unified-place-card .drawer-resize-handle.is-bottom-left { top:auto; bottom:0; left:0; }
#app .unified-place-card .drawer-resize-handle::after {
  position:absolute;
  width:10px;
  height:10px;
  content:"";
  opacity:.45;
  pointer-events:none;
  transition:opacity 120ms ease, filter 120ms ease, transform 120ms ease;
}
/* Diagonal grip lines matching app-window chrome (same slate tones as panel grips) */
#app .unified-place-card .drawer-resize-handle.is-top-left::after {
  top:2px;
  left:2px;
  background:repeating-linear-gradient(-45deg, transparent 0 1.5px, #8996a2 1.5px 2.5px);
  clip-path:polygon(0 0, 100% 0, 0 100%);
  transform-origin:top left;
}
#app .unified-place-card .drawer-resize-handle.is-bottom-left::after {
  top:auto;
  bottom:2px;
  left:2px;
  background:repeating-linear-gradient(45deg, transparent 0 1.5px, #8996a2 1.5px 2.5px);
  clip-path:polygon(0 0, 0 100%, 100% 100%);
  transform-origin:bottom left;
}
#app .unified-place-card .drawer-resize-handle:hover::after,
#app .unified-place-card .drawer-resize-handle:focus-visible::after,
#app .unified-place-card .drawer-resize-handle.is-active::after {
  filter:brightness(1.2);
  opacity:.9;
  transform:scale(1.08);
}
#app .unified-place-card .drawer-resize-handle:focus-visible {
  outline:2px solid #89a8c8;
  outline-offset:2px;
}
body.is-resizing-place-card,
body.is-resizing-place-card * {
  cursor:ew-resize !important;
  user-select:none !important;
}
@media (max-width:980px) {
  #app .unified-place-card .drawer-resize-handle { display:none; }
}
#app .unified-place-card .drawer-media { box-sizing:border-box; height:265px; padding:10px; background:var(--place-card-surface-raised); }
#app .unified-place-card .drawer-image-frame { width:100%; height:100%; overflow:hidden; border-radius:18px; }
#app .unified-place-card .drawer-image { border-radius:0; object-fit:cover; }
#app .unified-place-card .drawer-media::after { display:none; }
#app .unified-place-card .drawer-tabs { display:none; }
#app .unified-place-card .drawer-summary { display:grid; grid-template-columns:1fr 1fr 1.16fr; align-items:stretch; min-height:72px; padding:8px 16px; border-bottom:1px solid rgba(75,100,120,.54); background:var(--place-card-surface-raised); }
#app .unified-place-card { overflow:hidden; }
#app .unified-place-card .drawer-tab-panels { min-height:0; overflow:hidden; }
/* Stretch columns so both dividers share one height; draw via ::before so length stays equal. */
#app .unified-place-card .drawer-summary > div { position:relative; display:grid; grid-template-rows:16px auto; align-content:start; justify-items:center; gap:4px; min-width:0; overflow:visible; padding:0 12px; text-align:center; }
#app .unified-place-card .drawer-summary > div + div { border-left:0; }
#app .unified-place-card .drawer-summary > div + div::before { content:""; position:absolute; top:0; bottom:0; left:0; width:1px; background:rgba(75,100,120,.62); }
#app .unified-place-card .drawer-summary .public-rating-box { min-width:56px; height:20px; gap:4px; padding:0 6px; font-size:12px; }
#app .unified-place-card .drawer-summary .public-rating-box img,
#app .unified-place-card .drawer-summary .public-rating-box .public-rating-icon-fallback { width:11px; height:11px; filter:brightness(0) invert(1); }
#app .unified-place-card .drawer-summary .public-rating-box .public-rating-icon-fallback { display:inline-grid; place-items:center; font-size:12px; line-height:1; filter:none; color:#fff; }
#app .unified-place-card .drawer-summary > .drawer-rating-summary,#app .unified-place-card .drawer-summary > .drawer-category-summary { grid-template-rows:10px minmax(24px,1fr) auto; row-gap:2px; }
#app .unified-place-card .drawer-summary > .drawer-category-summary { grid-template-rows:10px minmax(24px,1fr) 12px; }
#app .unified-place-card .drawer-summary > .drawer-rating-summary .public-rating-box { align-self:center; }
#app .unified-place-card .drawer-summary > div:first-child > small { align-self:end; justify-self:center; font-size:11px; text-align:center; }
#app .unified-place-card .drawer-summary strong { overflow:hidden; max-width:100%; color:#f4f7fa; font-size:12px; font-weight:600; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
#app .unified-place-card .drawer-summary > .drawer-price-summary { grid-template-rows:10px minmax(20px,1fr) 12px; align-content:stretch; row-gap:2px; }
#app .unified-place-card .drawer-summary .drawer-summary-title { color:#91a1af; font-size:9px; font-weight:575; line-height:10px; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
#app .unified-place-card .drawer-summary .drawer-price-tiers { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:end; align-self:center; width:min(78px,100%); height:6px; gap:4px; overflow:visible; }
#app .unified-place-card .drawer-summary .drawer-price-tier { position:relative; display:block; height:4px; border-radius:99px; background:#3d4b57; }
#app .unified-place-card .drawer-summary .drawer-price-tier-0.is-active { background:#86d4c8; }
#app .unified-place-card .drawer-summary .drawer-price-tier-1.is-active { background:#68c5b6; }
#app .unified-place-card .drawer-summary .drawer-price-tier-2.is-active { background:#6caef5; }
#app .unified-place-card .drawer-summary .drawer-price-tier-3.is-active { background:#f0b650; }
#app .unified-place-card .drawer-summary .drawer-price-tier-4 { background:#6d4549; }
#app .unified-place-card .drawer-summary .drawer-price-tier-4.is-active { background:#e25555; }
#app .unified-place-card .drawer-summary .drawer-price-tier.is-current::before { content:""; position:absolute; bottom:5px; left:50%; width:0; height:0; border-right:3px solid transparent; border-top:5px solid #f4f7fa; border-left:3px solid transparent; transform:translateX(-50%); }
#app .unified-place-card .drawer-summary .drawer-price-range { align-self:end; overflow:hidden; width:100%; color:#f4f7fa; font-size:11px; font-weight:575; line-height:12px; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
#app .unified-place-card .drawer-summary .drawer-summary-category { display:flex; align-items:center; align-self:center; justify-content:center; gap:5px; overflow:visible; min-width:0; width:100%; height:16px; font-size:12px; font-weight:575; line-height:1; }
#app .unified-place-card .drawer-summary .drawer-summary-category > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1; }
#app .unified-place-card .drawer-summary .drawer-summary-category-button { display:grid; width:16px; height:16px; flex:0 0 16px; margin:0; padding:0; border:0; border-radius:4px; background:transparent; color:inherit; place-items:center; overflow:visible; line-height:0; cursor:pointer; }
#app .unified-place-card .drawer-summary .drawer-summary-category-button:hover,#app .unified-place-card .drawer-summary .drawer-summary-category-button:focus-visible { background:#223545; outline:0; }
#app .unified-place-card .drawer-summary .drawer-summary-category-button .material-icon,
#app .unified-place-card .drawer-summary .drawer-summary-category-button .icon-svg,
#app .unified-place-card .drawer-summary .drawer-summary-category .category-type-icon,
#app .unified-place-card .drawer-summary .drawer-summary-category .category-type-icon .material-icon,
#app .unified-place-card .drawer-summary .drawer-summary-category .category-type-icon .icon-svg,
#app .unified-place-card .drawer-summary .drawer-summary-category .category-type-icon img { display:block; width:14px; height:14px; flex:0 0 14px; font-size:14px; line-height:1; object-fit:contain; overflow:visible; }
#app .unified-place-card .drawer-summary .drawer-summary-category .category-type-icon img { filter:brightness(0) invert(1); }
#app .unified-place-card .drawer-summary small { color:#b9c3cc; font-size:11px; line-height:1.15; }
#app .unified-place-card .drawer-tab-panels { background:var(--place-card-surface); }
#app .unified-place-card .drawer-details-panel,
#app .unified-place-card:has(.drawer-details-panel:not([hidden])) .drawer-details-panel { display:flex; flex-direction:column; overflow:auto!important; padding:0 18px; }
#app .unified-place-card:has(.drawer-details-panel:not([hidden])) .drawer-info-list { display:block; min-height:auto; overflow:visible; }
#app .unified-place-card .drawer-info-row,
#app .unified-place-card .drawer-current-weather { border-width:0 0 1px; border-color:rgba(75,100,120,.54); border-radius:0; background:transparent; }
#app .unified-place-card .drawer-info-row { min-height:62px; padding:10px 4px; }
#app .unified-place-card .drawer-current-weather { min-height:52px; padding:6px 4px; }
#app .unified-place-card .drawer-current-weather.is-forecast-expanded { min-height:124px; grid-template-rows:52px auto; align-items:center; align-content:start; row-gap:6px; }
#app .unified-place-card .drawer-info-row > [data-icon],
#app .unified-place-card .drawer-info-row > .category-type-icon,
#app .unified-place-card .drawer-info-icon,
#app .unified-place-card .drawer-weather-icon { color:#c7d0d9; opacity:.92; }
#app .unified-place-card .drawer-address-row > [data-icon="pin"] { display:none; }
#app .unified-place-card .drawer-address-row::before { content:""; width:18px; height:18px; flex:0 0 18px; background:url('/api/nucleo-library-assets/ui/glyph-duo/maps-location/18px_location.svg') center/contain no-repeat; filter:brightness(0) invert(1); opacity:.92; }
#app .unified-place-card .drawer-row-arrow { color:#cbd5dd; font-size:27px; font-weight:300; line-height:1; }
#app .unified-place-card .drawer-address-copy > span { color:#f2f5f8; font-size:12px; font-weight:500; text-transform:capitalize; }

/* Dual-tone weather glyphs ship precoloured; keep Nucleo white invert off. */
#app img.weather-tone-icon[data-weather-tone],
#app .weather-modal img.weather-tone-icon[data-weather-tone] {
  filter: none;
  opacity: 1;
}

#app .unified-place-card .drawer-weather-copy > strong { color:#f2f5f8; font-size:12px; font-weight:500; }
#app .unified-place-card .drawer-weather-temperature > strong { font-size:13px; }
#app .unified-place-card .drawer-address-copy small,
#app .unified-place-card .drawer-weather-copy small { color:#b4c0ca; font-size:11px; }
#app .unified-place-card .drawer-address-copy,
#app .unified-place-card .drawer-weather-copy { gap:5px; }
#app .unified-place-card .drawer-opening-row { min-height:62px; }
#app .unified-place-card .drawer-opening-copy > span { color:#f2f5f8; font-size:12px; font-weight:500; }
#app .unified-place-card .drawer-opening-copy [data-opening-status] { color:#9bd54e; font-size:12px; }
#app .unified-place-card .drawer-business-status { color:#aebac6; font-size:10px; }
#app .unified-place-card .drawer-website-row,
#app .unified-place-card .drawer-phone-row { min-height:45px; padding-top:8px; padding-bottom:8px; color:#f2f5f8; font-size:13px; }
#app .unified-place-card .drawer-personal-inline { margin-top:0; }
#app .unified-place-card .drawer-personal-inline .drawer-edit-form { margin:0; }
#app .unified-place-card .drawer-personal-inline .personal-form-row { grid-template-columns:118px minmax(0,1fr); gap:12px; min-height:54px; padding:9px 4px; border-bottom:1px solid rgba(75,100,120,.54); }
#app .unified-place-card .drawer-personal-inline .personal-form-row:first-of-type { grid-template-columns:1fr; gap:9px; }
#app .unified-place-card .drawer-personal-inline .personal-tags-editor { box-sizing:border-box; height:auto; min-height:34px; max-height:none; padding:4px 12px; gap:6px; align-content:center; align-items:center; }
#app .unified-place-card .drawer-personal-inline .personal-tag-chips:empty { display:none; }
#app .unified-place-card .drawer-personal-inline .personal-tag-chips { align-items:center; min-height:0; max-width:100%; }
#app .unified-place-card .drawer-personal-inline .personal-tag-chip { min-height:24px; border-color:#4e6680; background:#223747; color:#f2f5f8; }
#app .unified-place-card .drawer-personal-inline .personal-tag-chip .category-type-icon,#app .unified-place-card .drawer-personal-inline .personal-tag-chip .category-type-icon img { opacity:.9; }
#app .unified-place-card .drawer-personal-inline .personal-tag-chip > span:last-child { opacity:.9; }
#app .unified-place-card .drawer-personal-inline .personal-tag-add-chip,#app .unified-place-card .drawer-personal-inline .personal-tag-input-chip { display:inline-flex; align-items:center; box-sizing:border-box; min-width:88px; height:24px; padding:0 8px; gap:6px; border:1px solid rgba(75,100,120,.58); border-radius:8px; background:#182936; color:#a8b5bf; }
#app .unified-place-card .drawer-personal-inline .personal-tag-add-chip { min-width:0; font:400 11px/22px "Ubuntu",system-ui,sans-serif; cursor:pointer; }
#app .unified-place-card .drawer-personal-inline .personal-tag-add-chip[hidden] { display:none; }
#app .unified-place-card .drawer-personal-inline .personal-tag-add-chip:hover,#app .unified-place-card .drawer-personal-inline .personal-tag-add-chip:focus-visible { border-color:rgba(75,100,120,.58); background:#182936; outline:0; }
#app .unified-place-card .drawer-personal-inline .personal-tag-input-chip { cursor:text; }
#app .unified-place-card .drawer-personal-inline .personal-tag-input-chip[hidden] { display:none; }
#app .unified-place-card .drawer-personal-inline .personal-tag-input-chip:focus-within { border-color:rgba(75,100,120,.58); box-shadow:0 0 0 1px rgba(78,102,128,.22); }
#app .unified-place-card .drawer-personal-inline .personal-tag-add-chip > img,#app .unified-place-card .drawer-personal-inline .personal-tag-input-chip > img { display:block; width:12px; height:12px; flex:0 0 12px; object-fit:contain; filter:brightness(0) invert(1); opacity:.9; }
#app .unified-place-card .drawer-personal-inline .personal-tag-input-chip .personal-tag-input { box-sizing:border-box; flex:0 1 50px; width:50px!important; min-width:50px!important; height:22px!important; min-height:0!important; max-height:22px!important; margin:0; padding:0!important; border:0!important; outline:0; background:transparent!important; color:#f2f5f8; line-height:22px; font:400 11px/22px "Ubuntu",system-ui,sans-serif; }
#app .unified-place-card .drawer-personal-inline .personal-tag-input-chip .personal-tag-input::placeholder { color:#aebac6; opacity:1; }
#app .unified-place-card .drawer-personal-inline .personal-form-row:has(.personal-tag-matches:not([hidden])) { position:relative; z-index:2; }
#app .unified-place-card .drawer-personal-inline .personal-form-label { color:#f2f5f8; font-size:12px; }
#app .unified-place-card .drawer-personal-inline .personal-form-label [data-icon] { display:block; width:15px; height:15px; flex:0 0 15px; color:#c7d0d9; }
#app .unified-place-card .drawer-personal-inline .personal-form-label .tags-label-icon,#app .unified-place-card .drawer-personal-inline .personal-form-label .wifi-password-label-icon { display:block; width:15px; height:15px; flex:0 0 15px; object-fit:contain; filter:brightness(0) invert(1); opacity:.78; }
#app .unified-place-card .drawer-personal-inline .personal-form-label strong { font-weight:500; }
#app .unified-place-card .drawer-personal-inline .personal-form-control { min-width:0; }
#app .unified-place-card .drawer-personal-inline .personal-rating-picker { flex-wrap:nowrap; align-items:center; justify-content:flex-start; min-height:34px; }
#app .unified-place-card .drawer-personal-inline .personal-rating-picker output { display:block; min-width:32px; margin-left:0; color:#f4f7fa; font-size:12px; font-weight:350; text-align:left; }
#app .unified-place-card .drawer-personal-inline .personal-rating-picker output:empty { display:none; }
#app .unified-place-card .drawer-personal-inline .personal-rating-stars { gap:7px; }
#app .unified-place-card .drawer-personal-inline .personal-rating-stars button { width:28px; height:30px; }
#app .unified-place-card .drawer-personal-inline .personal-rating-stars [data-rating-star] { font-size:26px; }
#app .unified-place-card .drawer-personal-inline .visit-status-picker { height:34px; border-radius:8px; background:var(--place-card-surface); }
#app .unified-place-card .drawer-personal-inline .visit-status-picker label { min-height:32px; font-size:11px; }
#app .unified-place-card .drawer-personal-inline .visit-status-picker .visit-status-icon { display:block; width:13px; height:13px; flex:0 0 13px; filter:brightness(0) invert(1); }
#app .unified-place-card .drawer-personal-inline textarea { min-height:62px; resize:vertical; border-color:#314555; background:var(--place-card-surface-raised); color:#f2f5f8; }
#app .unified-place-card .drawer-personal-inline .personal-form-row:last-child { display:none; }
#app .unified-place-card .place-review-history { --review-history-colour:#e6ae54; display:block; box-sizing:border-box; width:100%; min-height:54px; margin:0; padding:0 4px; border-bottom:1px solid rgba(75,100,120,.54); color:#dbe4eb; }
#app .unified-place-card .review-history-summary-row { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:53px; }
#app .unified-place-card .review-history-summary-actions { display:flex; align-items:center; gap:5px; }
#app .unified-place-card .review-history-toggle { display:grid; width:22px; height:22px; padding:0; border:0; border-radius:5px; place-items:center; background:transparent; color:#b2bec9; cursor:pointer; }
#app .unified-place-card .review-history-toggle:hover,#app .unified-place-card .review-history-toggle:focus-visible { background:#243a4e; color:#f3f7fb; outline:0; }
#app .unified-place-card .review-history-toggle svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; transition:transform .16s ease; }
#app .unified-place-card .review-history-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
#app .unified-place-card .review-history-details { padding:10px 4px 14px; border-top:1px solid rgba(75,100,120,.54); }
#app .unified-place-card .review-history-details[hidden] { display:none; }
#app .unified-place-card .review-history-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
#app .unified-place-card .review-history-heading > span { display:grid; gap:4px; }
#app .unified-place-card .review-history-heading > span:last-child { justify-items:end; text-align:right; }
#app .unified-place-card .review-history-title { display:flex; align-items:center; gap:11px; }
#app .unified-place-card .review-history-title strong { color:#f2f5f8; font-family:"Ubuntu",system-ui,-apple-system,"system-ui","Segoe UI",sans-serif; font-size:12px; font-weight:500; line-height:normal; }
#app .unified-place-card .review-history-title img,#app .unified-place-card .review-history-review-count img { display:block; width:15px; height:15px; flex:0 0 15px; object-fit:contain; filter:brightness(0) invert(1); opacity:.78; }
#app .unified-place-card .review-history-heading strong { color:#f2f5f8; font-size:12px; font-weight:500; }
#app .unified-place-card .review-history-heading small { color:#8798a6; font-size:9px; font-weight:400; }
#app .unified-place-card .review-history-current-score { display:inline-flex; align-items:center; justify-content:flex-end; gap:4px; color:var(--review-history-colour); font-size:12px; font-weight:575; line-height:1; }
#app .unified-place-card .review-history-current-score strong { color:inherit; font-weight:575; }
#app .unified-place-card .review-history-change small { color:#aab7c2; }
#app .unified-place-card .review-history-chart-legend { display:flex; justify-content:flex-end; gap:12px; margin-top:5px; color:#8e9eaa; font-size:8px; }
#app .unified-place-card .review-history-chart-legend span { display:inline-flex; align-items:center; gap:4px; }
#app .unified-place-card .review-history-chart-legend i { display:block; width:10px; height:4px; border-radius:2px; }
#app .unified-place-card .review-history-chart-legend .is-score { height:2px; background:var(--review-history-colour); }
#app .unified-place-card .review-history-chart-legend .is-reviews { background:rgba(117,144,165,.34); }
#app .unified-place-card .review-history-chart { height:78px; margin-top:2px; }
#app .unified-place-card .review-history-chart svg { display:block; width:100%; height:78px; overflow:visible; }
#app .unified-place-card .review-history-grid { fill:none; stroke:rgba(107,132,151,.2); stroke-width:1; vector-effect:non-scaling-stroke; }
#app .unified-place-card .review-history-axis-label { fill:#7f8f9d; font:400 8px/1 "Ubuntu",system-ui,sans-serif; }
#app .unified-place-card .review-history-review-axis-label { fill:#708291; }
#app .unified-place-card .review-history-date-label { fill:#778996; font:400 7px/1 "Ubuntu",system-ui,sans-serif; }
#app .unified-place-card .review-history-bars { fill:rgba(117,144,165,.3); }
#app .unified-place-card .review-history-line { fill:none; stroke:var(--review-history-colour); stroke-linecap:round; stroke-linejoin:round; stroke-width:2; vector-effect:non-scaling-stroke; }
#app .unified-place-card .review-history-dots { fill:var(--review-history-colour); stroke:var(--place-card-surface); stroke-width:1.25; vector-effect:non-scaling-stroke; }
#app .unified-place-card .review-history-footer { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:4px; color:#8e9eaa; font-size:9px; }
#app .unified-place-card .review-history-review-count { display:flex; align-items:center; gap:6px; }
#app .unified-place-card .review-history-footer strong { color:#dce5ec; font-weight:575; }
#app .unified-place-card .review-history-footer .is-positive { color:#8fcf72; }
#app .unified-place-card .review-history-empty { display:grid; min-height:92px; place-items:center; color:#8798a6; font-size:10px; line-height:1.45; text-align:center; }
#app .unified-place-card .review-history-empty.is-error { color:#e78b91; }
#app .unified-place-card .place-meta-timestamps { display:flex; justify-content:space-between; align-items:center; gap:8px; margin:0; padding:0 8px 12px; color:#7f8d99; font:400 10px/1 "Ubuntu",system-ui,sans-serif; letter-spacing:.01em; }
#app .unified-place-card .place-meta-timestamps span { display:block; white-space:nowrap; }
#app .unified-place-card .place-meta-timestamp-modified { text-align:right; margin-left:auto; }
#app .unified-place-card .place-cloud-refresh { display:flex; justify-content:flex-start; align-items:center; gap:6px; box-sizing:border-box; width:100%; margin:0; padding:12px 8px 8px; color:#7f8d99; font:400 10px/1 "Ubuntu",system-ui,sans-serif; letter-spacing:.01em; text-align:left; }
#app .unified-place-card .place-cloud-refresh-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; margin:0; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; line-height:0; }
#app .unified-place-card .place-cloud-refresh-button:focus-visible:not(:disabled) { outline:0; }
#app .unified-place-card .place-cloud-refresh-button:disabled { cursor:not-allowed; }
#app .unified-place-card .place-cloud-refresh.is-disabled { opacity:.55; }
#app .unified-place-card .place-cloud-refresh.is-loading { opacity:.72; }
#app .unified-place-card .place-cloud-refresh.is-loading .place-cloud-refresh-button { cursor:wait; }
#app .unified-place-card .place-cloud-refresh-label { display:inline-flex; align-items:center; white-space:nowrap; pointer-events:none; user-select:none; }
#app .unified-place-card .place-cloud-refresh-icon { display:block; width:14px; height:14px; flex:0 0 14px; object-fit:contain; filter:brightness(0) invert(1); opacity:.72; }
#app .unified-place-card .place-cloud-refresh-button:hover:not(:disabled) .place-cloud-refresh-icon,#app .unified-place-card .place-cloud-refresh-button:focus-visible:not(:disabled) .place-cloud-refresh-icon { opacity:.92; }
#app .unified-place-card .place-cloud-refresh-time { margin-left:auto; white-space:nowrap; text-align:right; }
#app .unified-place-card .drawer-details-actions { position:sticky; z-index:3; bottom:0; box-sizing:border-box; height:50px; min-height:50px; margin:auto -18px 0; padding:8px 18px; border-top:1px solid rgba(75,100,120,.54); background:var(--place-card-surface-raised); box-shadow:0 -8px 18px rgba(4,13,22,.34); }
#app .unified-place-card .drawer-details-actions .button { height:33px; min-height:33px; border-radius:7px; background:var(--place-card-surface-raised); font-size:11px; }
#app .unified-place-card .drawer-details-actions > :only-child { grid-column:1 / -1; }
#app .unified-place-card .drawer-details-actions .button-danger { color:#ff9089; }
#app .unified-place-card .drawer-details-actions .button:disabled,#app .unified-place-card .drawer-details-actions .button[aria-disabled="true"] { opacity:.42; cursor:not-allowed; pointer-events:none; }
#app .unified-place-card .drawer-details-actions .button-danger:disabled,#app .unified-place-card .drawer-details-actions .button-danger[aria-disabled="true"] { border-color:rgba(240,141,150,.28); color:rgba(255,144,137,.55); }
#app .unified-place-card .drawer-details-actions .button-saved { border-color:#2f80ed; background:#2f80ed; color:#fff; }
#app .unified-place-card .drawer-details-actions .button-saved > .icon-svg { color:#fff; }
#app .unified-place-card .drawer-details-actions .button-primary { border-color:#314555; background:var(--place-card-surface-raised); color:#f2f5f8; }
#app .unified-place-card .drawer-details-actions .button-primary:hover { border-color:#4e6680; background:#1b2c3a; }
#app .unified-place-card .drawer-details-actions .button-primary:focus-visible { outline:0; box-shadow:none; border-color:#4e6680; }
#app .autocomplete-option.is-active { background:#223545; color:#f2f5f8; }
@media (max-width:720px) {
  #app .unified-place-card { grid-template-rows:44px 210px auto minmax(0,1fr); }
  #app .unified-place-card .drawer-summary { min-height:92px; padding:14px 12px 12px; }
  #app .unified-place-card .drawer-summary > div { padding:0 10px; }
  #app .unified-place-card .drawer-summary strong { font-size:13px; }
  #app .unified-place-card .drawer-summary small { font-size:10px; }
  #app .unified-place-card .drawer-details-panel { padding-right:14px; padding-left:14px; }
  #app .unified-place-card .drawer-personal-inline .personal-form-row { grid-template-columns:1fr; gap:8px; }
}

/* Statistics keeps the existing app shell and turns the map workspace into an analysis surface. */
#app .main-area.flight-map-active > .toolbar { visibility:hidden; pointer-events:none; }
#app .flight-map-view { position:absolute; z-index:90; inset:0 0 var(--app-bottom-strip-height,33px); box-sizing:border-box; overflow:hidden; background:#111d29; color:#f4f7fa; font-family:var(--app-font-family); }
#app .flight-map-heading { display:flex; height:62px; align-items:center; gap:10px; padding:0 26px; border-bottom:1px solid #314354; background:#152536; }
#app .flight-map-heading img { width:20px; height:20px; flex:0 0 20px; filter:brightness(0) invert(1); opacity:.9; }
#app .flight-map-heading h1 { margin:0; font-size:18px; font-weight:650; line-height:1; }
#app .main-area.weather-active > .toolbar { visibility:hidden; pointer-events:none; }
#app .weather-view { position:absolute; z-index:90; inset:0 0 var(--app-bottom-strip-height,33px); box-sizing:border-box; padding:0; overflow:hidden; background:#1b2633; color:#f4f7fa; font-family:var(--app-font-family); }
#app .weather-view[hidden] { display:none; }
#app .weather-view > .weather-modal { box-sizing:border-box; width:100%; max-width:none; height:100%; max-height:none; margin:0; padding:24px 32px 28px; overflow-x:hidden; overflow-y:auto; border:0; border-radius:0; background:#1b2633; box-shadow:none; font-family:"Ubuntu",system-ui,sans-serif; }
#app .weather-view .weather-modal > .weather-location-header { position:sticky; z-index:20; top:-24px; margin:-24px -32px 0; padding-right:32px; padding-left:32px; border-bottom:0; background:#1b2633; }
#app .weather-view .weather-modal > .weather-location-header::after { position:absolute; right:-100vw; bottom:0; left:-100vw; height:2px; background:#405a70; content:""; pointer-events:none; }
#app .weather-location-heading-group { display:flex; align-items:center; min-width:0; gap:8px; }
#app .weather-place-finder-back { display:grid; width:24.65px; height:24.65px; flex:0 0 24.65px; place-items:center; padding:0; border:1px solid #405a70; border-radius:7px; background:#152536; color:#9fc4df; cursor:pointer; }
#app .weather-place-finder-back:hover,#app .weather-place-finder-back:focus-visible { border-color:#63a9dc; outline:0; background:#20384c; color:#fff; }
#app .weather-place-finder-back svg { width:11.9px; height:11.9px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

#app .main-area.statistics-active > .toolbar { visibility:hidden; pointer-events:none; }
#app .statistics-view { position:absolute; z-index:80; inset:0; overflow:auto; padding:28px 34px 34px; background:#111d29; color:#f4f7fa; font-family:var(--app-font-family); font-size:1em; font-weight:var(--app-font-weight); }
#app .statistics-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; max-width:none; margin:0 0 24px; }
#app .statistics-kicker { display:flex; align-items:center; gap:8px; color:#aebac6; font-size:.857em; font-weight:bolder; letter-spacing:.03em; text-transform:uppercase; }
#app .statistics-kicker [data-icon] { width:16px; height:16px; color:#6f96c4; }
#app .statistics-heading h1 { margin:7px 0 4px; color:#f4f7fa; font-size:1.714em; font-weight:bolder; line-height:1.15; }
#app .statistics-heading p { margin:0; color:#aebac6; font-size:.929em; font-weight:inherit; }
#app .statistics-heading .icon-button { width:36px; min-height:36px; flex:0 0 36px; border-color:#314354; background:#182634; color:#f4f7fa; }
#app .statistics-content { max-width:none; margin:0; }
#app .statistics-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:14px; }
#app .statistics-metrics article { display:grid; grid-template-columns:30px 1fr; grid-template-rows:auto auto; align-items:center; gap:2px 10px; min-height:84px; padding:16px; border:1px solid #314354; border-radius:11px; background:#182634; box-shadow:0 10px 24px rgba(3,9,16,.14); }
#app .statistics-metrics [data-icon] { grid-row:1 / span 2; width:30px; height:30px; color:#6f96c4; }
#app .statistics-metrics strong { color:#f4f7fa; font-size:1.571em; font-weight:bolder; line-height:1; }
#app .statistics-metrics span:last-child { color:#aebac6; font-size:.857em; font-weight:inherit; }
#app .statistics-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
#app .statistics-card { min-width:0; min-height:230px; padding:18px; border:1px solid #314354; border-radius:11px; background:#182634; box-shadow:0 10px 24px rgba(3,9,16,.14); }
#app .statistics-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
#app .statistics-card-heading > div { display:flex; align-items:center; gap:10px; min-width:0; }
#app .statistics-card-heading [data-icon] { width:21px; height:21px; color:#6f96c4; }
#app .statistics-card-heading h2 { margin:0; color:#f4f7fa; font-size:1.071em; font-weight:bolder; line-height:1.2; }
#app .statistics-card-heading p { margin:3px 0 0; color:#aebac6; font-size:.857em; font-weight:inherit; }
#app .statistics-card-heading > strong { display:grid; min-width:31px; height:31px; border-radius:50%; place-items:center; background:#223241; color:#c9dcf2; font-size:.857em; font-weight:bolder; }
#app .statistics-bars { display:grid; gap:13px; margin:21px 0 0; padding:0; list-style:none; }
#app .statistics-bars li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 10px; align-items:center; color:#d8e0e7; font-size:.857em; font-weight:inherit; }
#app .statistics-bars li > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .statistics-bars .statistics-country-label { display:flex; align-items:center; gap:7px; }
#app .statistics-bars .statistics-country-label img { width:14px; height:14px; flex:0 0 14px; border-radius:50%; object-fit:cover; }
#app .statistics-bars li > strong { color:#f4f7fa; font-size:1em; font-weight:bolder; }
#app .statistics-bars li > i { grid-column:1 / -1; display:block; height:6px; overflow:hidden; border-radius:999px; background:#293847; }
#app .statistics-bars li > i::after { content:''; display:block; width:var(--stat-value); height:100%; border-radius:inherit; background:#6f96c4; }
#app .statistics-empty { color:#aebac6; font-size:.857em; font-style:normal; font-weight:inherit; }
#app .statistics-category-layout { display:grid; grid-template-columns:118px minmax(0,1fr); align-items:center; gap:18px; min-height:162px; padding-top:16px; }
#app .statistics-donut { display:grid; width:112px; height:112px; border-radius:50%; place-content:center; background:conic-gradient(var(--category-chart)); box-shadow:inset 0 0 0 16px #182634; text-align:center; }
#app .statistics-donut span { color:#f4f7fa; font-size:1.571em; font-weight:bolder; line-height:1; }
#app .statistics-donut small { margin-top:3px; color:#aebac6; font-size:.714em; font-weight:inherit; text-transform:uppercase; }
#app .statistics-category-list { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
#app .statistics-category-list li { display:grid; grid-template-columns:8px minmax(0,1fr) auto; align-items:center; gap:8px; color:#d8e0e7; font-size:.857em; font-weight:inherit; }
#app .statistics-category-label { display:flex; align-items:center; gap:6px; min-width:0; }
#app .statistics-category-label > span:last-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app .statistics-category-label .category-type-icon,
#app .statistics-category-label [data-icon],
#app .statistics-category-label .material-icon,
#app .statistics-category-label .icon-svg,
#app .statistics-category-label img { width:14px; height:14px; flex:0 0 14px; font-size:14px; line-height:14px; }
#app .statistics-category-list strong { display:inline-flex; align-items:baseline; gap:6px; color:#f4f7fa; font-size:1em; font-weight:bolder; font-variant-numeric:tabular-nums; }
#app .statistics-category-count { color:#f4f7fa; }
#app .statistics-category-pct { color:#aebac6; font-weight:inherit; }
#app .statistics-category-dot { width:8px; height:8px; border-radius:50%; background:#6f96c4; }
#app .statistics-category-dot.tone-1 { background:#67c793; }.statistics-category-dot.tone-2 { background:#e0aa59; }.statistics-category-dot.tone-3 { background:#8c78c5; }.statistics-category-dot.tone-4 { background:#75b9c9; }
#app .statistics-status-track { display:flex; height:12px; margin-top:28px; overflow:hidden; border-radius:999px; background:#293847; }
#app .statistics-status-track span { display:block; width:var(--stat-status); min-width:0; }.statistics-status-track .status-unspecified { background:#6f96c4; }.statistics-status-track .status-want { background:#e0aa59; }.statistics-status-track .status-visited { background:#67c793; }
#app .statistics-status-list { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:19px 0 0; }.statistics-status-list div { display:grid; gap:5px; }.statistics-status-list dt { color:#aebac6; font-size:.786em; }.statistics-status-list dd { margin:0; color:#f4f7fa; font-size:1.286em; font-weight:bolder; }
#app .statistics-insight { display:grid; align-content:center; gap:8px; min-height:145px; padding:19px; margin-top:18px; border:1px solid #314354; border-radius:9px; background:#111d29; }.statistics-insight strong { color:#f4f7fa; font-size:1.286em; font-weight:bolder; }.statistics-insight span { color:#d8e0e7; font-size:.929em; font-weight:inherit; }.statistics-insight small { color:#aebac6; font-size:.786em; font-weight:inherit; }
@media (max-width:900px) { #app .statistics-view { padding:22px; } #app .statistics-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) { #app .statistics-view { padding:18px 14px 24px; } #app .statistics-heading h1 { font-size:1.5em; } #app .statistics-grid { grid-template-columns:1fr; } #app .statistics-metrics { gap:8px; } #app .statistics-metrics article { min-height:72px; padding:12px; } }
#app .weather-chart-now { stroke:#f08d7e; stroke-width:1.5; opacity:.9; }
#app .weather-chart-now-label { fill:#f08d7e; font:600 10px "Ubuntu",system-ui,sans-serif; }
#app [data-seasonal-climate] .weather-chart-zero > line:first-child { stroke-dasharray:3 3; }
#app .weather-category-axis-tick { stroke:rgba(201,215,228,.42)!important; stroke-width:1.1!important; pointer-events:none; }
#app [data-weather-category-chart="daylight"] .weather-category-axis-tick { stroke:rgba(232,238,245,.82)!important; stroke-width:1.5!important; }
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip { min-width:0; transform:translate(-50%,calc(-100% - 6px)); }
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip-day { text-align:center; }
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip-body { display:grid; grid-template-columns:1em max-content max-content max-content max-content; align-items:center; column-gap:2px; row-gap:3px; }
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip-row { display:contents; }
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip-body img { display:block; width:1em; height:1em; object-fit:contain; }
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip-row b,
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip-label { color:#f4f7fa; font-weight:600; }
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip-hours { text-align:start; font-variant-numeric:tabular-nums; }
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip-sep { color:#aebac6; text-align:center; }
#app [data-weather-category-chart="daylight"] .weather-daylight-tooltip-ratio { text-align:start; font-variant-numeric:tabular-nums; }
#app [data-weather-category-chart="sunshine"] .weather-category-axis-tick { stroke:rgba(232,238,245,.82)!important; stroke-width:1.5!important; }
#app [data-weather-category-chart="sunshine"] .weather-sunshine-tooltip { min-width:0; width:max-content; transform:translate(-50%,calc(-100% - 6px)); }
#app [data-weather-category-chart="sunshine"] .weather-sunshine-tooltip-day { text-align:center; white-space:nowrap; }
#app [data-weather-category-chart="sunshine"] .weather-sunshine-tooltip-body { display:grid; grid-template-columns:1em max-content max-content; align-items:center; column-gap:4px; row-gap:3px; white-space:nowrap; }
#app [data-weather-category-chart="sunshine"] .weather-sunshine-tooltip-row { display:contents; }
#app [data-weather-category-chart="sunshine"] .weather-sunshine-tooltip-body img { display:block; width:1em; height:1em; object-fit:contain; }
#app [data-weather-category-chart="sunshine"] .weather-sunshine-tooltip-row b,
#app [data-weather-category-chart="sunshine"] .weather-sunshine-tooltip-label { color:#f4f7fa; font-weight:600; white-space:nowrap; }
#app [data-weather-category-chart="sunshine"] .weather-sunshine-tooltip-value { text-align:start; font-variant-numeric:tabular-nums; white-space:nowrap; }
#app .weather-precip-days-axis line { stroke:rgba(201,215,228,.42); stroke-width:1.1; opacity:1; }
#app .weather-precip-days-axis text { fill:#c2ced8; font:400 9px "Ubuntu",system-ui,sans-serif; }
#app .weather-precip-days-axis .weather-precip-days-axis-title { font-size:9px; }
#app .weather-hourly-axis-y span::after { position:absolute; top:50%; left:auto; right:-13px; width:5px; border-top:1px solid rgba(201,215,228,.42); content:""; }
#app .weather-hourly-axis-x span::before { position:absolute; top:-12px; left:50%; height:5px; border-left:1px solid rgba(201,215,228,.42); content:""; }
#app .weather-category-axis-line { stroke:rgba(201,215,228,.38); stroke-width:1.15; pointer-events:none; }
#app .weather-hourly-axis { font-size:9px; }
#app .weather-hourly-axis-y::before { position:absolute; top:0; right:0; bottom:0; left:auto; border-left:1.15px solid rgba(201,215,228,.38); content:""; }
#app .weather-hourly-axis-x::after { position:absolute; top:0; right:0; left:0; border-top:1.15px solid rgba(201,215,228,.38); content:""; }
#app .weather-daylight-point text { fill:#1a2b3a; stroke:none; stroke-width:0; filter:drop-shadow(0 0 1.75px rgba(255,248,220,.92)) drop-shadow(0 1px 1.5px rgba(247,249,251,.55)); }
#app .weather-sunshine-point text { fill:#1a2b3a; stroke:none; stroke-width:0; filter:drop-shadow(0 0 1.75px rgba(255,248,220,.92)) drop-shadow(0 1px 1.5px rgba(247,249,251,.55)); }

/* Final desktop weather scale: keep dense data readable and the frozen header full-width. */
@media (min-width:981px) {
  #app .weather-view .weather-modal > .weather-location-header {
    box-sizing:border-box;
    left:auto;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    width:calc(100% + 64px);
    min-height:62px;
    margin:-24px -32px 0;
    padding:10px 32px 8px;
    background:rgba(27,38,51,.98);
    backdrop-filter:blur(10px);
  }
  #app .weather-location-header .weather-country-heading { min-height:25px; }
  #app .weather-location-header .weather-place-picker > button,
  #app.app-window .weather-location-header .weather-place-picker-city,
  #app.app-window .weather-location-header .weather-place-picker-country,
  #app.app-window .weather-location-header .weather-place-picker-country > span { font-size:20px; }
  #app .weather-location-clock {
    margin-left:auto;
    text-align:right;
  }
  #app .weather-location-clock .timezone-clock-text {
    display:flex;
    flex-wrap:nowrap;
    justify-content:flex-end;
    align-items:baseline;
    gap:7px;
    width:auto;
    min-width:0;
    white-space:nowrap;
  }
  #app .weather-location-clock .weather-location-date,
  #app .weather-location-clock .timezone-clock-value,
  #app .weather-location-clock .weather-clock-offset { font-size:17px; }
  #app .weather-location-clock .weather-location-date { flex:0 0 auto; }
  #app .weather-location-clock .weather-clock-offset-icon { width:12px; height:12px; }

  #app .weather-current-stats small { font-size:10px; letter-spacing:.05em; }
  #app .weather-current-stats strong { font-size:12px; }
  #app .weather-hourly-forecast > header strong,
  #app .weather-modal > .weather-insights .weather-insights-heading,
  #app .weather-modal > .weather-analysis::before { font-size:12px; }
  #app .weather-hourly-slot time { font-size:11px; }
  #app .weather-hourly-slot > small { font-size:10px; }

  #app .weather-modal > .weather-insights { gap:9px; }
  #app .weather-modal > .weather-insights .weather-insight-pair {
    min-height:146px;
    padding-right:18px;
    padding-left:18px;
  }
  #app .weather-modal > .weather-insights .weather-insight-pair-summary { min-height:53px; }
  #app .weather-modal > .weather-insights .weather-insight { min-height:53px; padding:2px 9px; }
  #app .weather-modal > .weather-insights .weather-insight-value { font-size:13px; }
  #app .weather-modal > .weather-insights .weather-insight-value span { font-size:14px; }
  #app .weather-modal > .weather-insights .weather-insight-label {
    overflow:visible;
    font-size:10px;
    line-height:1.2;
    text-overflow:clip;
  }
  #app .weather-modal > .weather-insights .weather-insight-grid {
    gap:3px;
    min-height:88px;
    padding:7px 0 0;
  }
  #app .weather-modal > .weather-insights .weather-insight-season-row {
    grid-template-columns:54px minmax(0,1fr);
    gap:7px;
  }
  #app .weather-modal > .weather-insights .weather-insight-season-label {
    font-size:10px;
    line-height:21px;
  }
  #app .weather-modal > .weather-insights .weather-insight-season-months { gap:4px; }
  #app .weather-modal > .weather-insights .weather-insight-month {
    height:21px;
    border-color:rgba(220,230,238,.28);
    border-radius:5px;
    font-size:10px;
  }
  #app .weather-modal > .weather-insights .weather-insight-month-tooltip strong { font-size:10px; }
  #app .weather-modal > .weather-insights .weather-insight-month-tooltip small { font-size:9px; }
  #app .weather-modal > .weather-analysis .weather-climate-controls label { font-size:10px; }
  #app .weather-modal > .weather-analysis .weather-climate-periods button {
    min-width:29px;
    height:25px;
    font-size:11px;
  }
  #app .weather-modal > .weather-analysis .weather-climate-controls input {
    height:25px;
    font-size:11px;
  }
  #app .weather-modal > .weather-analysis .weather-chart-grid text,
  #app .weather-modal > .weather-analysis .weather-chart-month { font-size:10px; }
  #app .weather-modal > .weather-analysis .weather-hourly-axis,
  #app .weather-modal > .weather-analysis .weather-precip-days-axis text { font-size:10px; }
  #app .weather-modal > .weather-analysis {
    grid-auto-rows:auto;
    overflow:visible;
  }
  #app .weather-modal > .weather-analysis .weather-climate,
  #app .weather-modal > .weather-analysis .weather-hourly-climate {
    height:auto;
    min-height:310px;
    overflow:visible;
  }
  #app .weather-hourly-list::before { bottom:58px; }
  #app .weather-hourly-slot::after { bottom:55px; }
}

/* Insights summaries: stack each extreme pair and use the freed column for the active-period annual mean. */
#app .weather-modal > .weather-insights .weather-insight-pair-summary {
  grid-template-columns:minmax(0,1.55fr) minmax(76px,.85fr);
  min-height:58px;
}
#app .weather-modal > .weather-insights .weather-insight-extremes {
  display:grid;
  grid-template-rows:repeat(2,minmax(0,1fr));
  min-width:0;
  border-right:1px solid #314354;
}
#app .weather-modal > .weather-insights .weather-insight-extremes > .weather-insight {
  display:grid;
  grid-template-columns:12px minmax(0,1fr);
  align-items:center;
  justify-content:stretch;
  gap:6px;
  min-height:29px;
  padding:3px 6px;
}
#app .weather-modal > .weather-insights .weather-insight-extremes > .weather-insight:first-child {
  border-right:0;
  border-bottom:1px solid #314354;
}
#app .weather-modal > .weather-insights .weather-insight-extremes .weather-insight-icon {
  width:11px;
  height:11px;
  margin:0;
}
#app .weather-modal > .weather-insights .weather-insight-extremes .weather-insight-copy {
  justify-items:start;
  gap:1px;
  text-align:left;
}
#app .weather-modal > .weather-insights .weather-insight-extremes .weather-insight-value {
  display:flex;
  align-items:baseline;
  gap:4px;
  max-width:100%;
  overflow:hidden;
  font-size:9px;
  font-weight:500;
  white-space:nowrap;
}
#app .weather-modal > .weather-insights .weather-insight-extremes .weather-insight-value span {
  flex:0 0 auto;
  font-size:10px;
  font-weight:600;
}
#app .weather-modal > .weather-insights .weather-insight-extremes .weather-insight-label {
  max-width:100%;
  overflow:hidden;
  font-size:7px;
  line-height:1.05;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#app .weather-modal > .weather-insights .weather-insight-average {
  box-sizing:border-box;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:3px;
  min-width:0;
  min-height:58px;
  padding:4px 6px;
  color:#f4f7fa;
  text-align:center;
}
#app .weather-modal > .weather-insights .weather-insight-average strong {
  font-size:15px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  line-height:1;
}
#app .weather-modal > .weather-insights .weather-insight-average > span:last-child {
  color:#aebac6;
  font-size:7px;
  font-weight:500;
  line-height:1.1;
}
#app .weather-modal > .weather-insights .weather-insight-skeleton-average { width:44px; height:14px; }

@media (min-width:981px) {
  #app .weather-modal > .weather-insights .weather-insight-pair-summary { min-height:58px; }
  #app .weather-modal > .weather-insights .weather-insight-extremes > .weather-insight { min-height:29px; padding:3px 7px; }
  #app .weather-modal > .weather-insights .weather-insight-extremes .weather-insight-value { font-size:10px; }
  #app .weather-modal > .weather-insights .weather-insight-extremes .weather-insight-value span { font-size:11px; }
  #app .weather-modal > .weather-insights .weather-insight-extremes .weather-insight-label { font-size:8px; }
  #app .weather-modal > .weather-insights .weather-insight-average { min-height:58px; }
  #app .weather-modal > .weather-insights .weather-insight-average strong { font-size:17px; }
  #app .weather-modal > .weather-insights .weather-insight-average > span:last-child { font-size:8px; }
}
