:root{--color-background:#111318;--color-surface:#1b1f27;--color-text:#f5f7fa;--color-muted:#a8b0bd;--color-accent:#85b7ff;--color-border:#303846;--color-success:#70d6a0;--color-warning:#f0c674;--color-error:#f08080}
/* Apartment tracker ------------------------------------------------------ */
:is(.tracker-page, .agents-page) {
  color-scheme:dark;
  background:var(--color-background,#101318);
  color:var(--color-text,#edf2f7);
  font-size:1rem;
  line-height:1.5;
}

:is(.tracker-page, .agents-page) .page-shell {
  min-height:100vh;
  min-height:100dvh;
  padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));
}

:is(.tracker-page, .agents-page) .masthead {
  align-items:flex-end;
  border-bottom:1px solid var(--color-border);
  display:flex;
  gap:2rem;
  justify-content:space-between;
  padding:1.25rem 0 1.5rem;
}

:is(.tracker-page, .agents-page) .masthead>div {
  max-width:54rem;
}

:is(.tracker-page, .agents-page) .eyebrow {
  margin:0 0 .55rem;
}

:is(.tracker-page, .agents-page) .eyebrow a {
  color:var(--color-accent);
}

:is(.tracker-page, .agents-page) h1 {
  margin:.35rem 0 1rem;
}

:is(.tracker-page, .agents-page) .lede,:is(.tracker-page, .agents-page) .muted,:is(.tracker-page, .agents-page) .status {
  color:var(--color-muted);
}

:is(.tracker-page, .agents-page) .lede {
  line-height:1.6;
  margin:0;
  max-width:48rem;
}

:is(.tracker-page, .agents-page) .top-actions,:is(.tracker-page, .agents-page) .utility-row,:is(.tracker-page, .agents-page) .utility-buttons,:is(.tracker-page, .agents-page) .filter-buttons,:is(.tracker-page, .agents-page) .form-actions,:is(.tracker-page, .agents-page) .card-actions {
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}

:is(.tracker-page, .agents-page) .top-actions {
  flex-shrink:0;
}

:is(.tracker-page, .agents-page) .button {
  min-height:44px;
  padding:.65rem .9rem;
}

:is(.tracker-page, .agents-page) .button.primary {
  font-weight:700;
}

:is(.tracker-page, .agents-page) .button.secondary,:is(.tracker-page, .agents-page) .button.quiet {
  color:var(--color-text);
  background:transparent;
  border:1px solid var(--color-border);
}

:is(.tracker-page, .agents-page) .button.quiet {
  border-color:transparent;
}

:is(.tracker-page, .agents-page) .button:hover {
  filter:brightness(1.1);
}

:is(.tracker-page, .agents-page) .content-column {
  width:100%;
  max-width:none;
  margin:2rem auto;
}

:is(.tracker-page, .agents-page) .toolbar {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
  margin:1.5rem 0 .8rem;
  padding:1rem;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:.75rem;
}

:is(.tracker-page, .agents-page) label {
  display:block;
  color:var(--color-muted);
  font-size:.8rem;
  font-weight:650;
}

:is(.tracker-page, .agents-page) input,:is(.tracker-page, .agents-page) select,:is(.tracker-page, .agents-page) textarea {
  width:100%;
  min-height:2.7rem;
  margin-top:.35rem;
  padding:.65rem .7rem;
  color:var(--color-text);
  background:var(--color-background);
  border:1px solid var(--color-border);
  border-radius:.4rem;
  font:inherit;
  font-size:1rem;
  font-weight:400;
}

:is(.tracker-page, .agents-page) textarea {
  min-height:6rem;
  resize:vertical;
}

:is(.tracker-page, .agents-page) input[type=checkbox] {
  width:auto;
  min-height:0;
  margin:0 .35rem 0 0;
}

:is(.tracker-page, .agents-page) .utility-row {
  justify-content:space-between;
  margin:0 0 1.5rem;
}

:is(.tracker-page, .agents-page) .utility-row label {
  align-items:center;
  display:inline-flex;
}

:is(.tracker-page, .agents-page) .status {
  min-height:1.5em;
  margin:.5rem 0;
  font-size:.85rem;
}

:is(.tracker-page, .agents-page) .status.error {
  color:var(--color-error);
}

:is(.tracker-page, .agents-page) .results-heading {
  align-items:flex-end;
  display:flex;
  justify-content:space-between;
  margin:1.5rem 0 .85rem;
}

:is(.tracker-page, .agents-page) .results-heading h2 {
  margin:0;
}

:is(.tracker-page, .agents-page) .muted {
  margin:.2rem 0;
  font-size:.85rem;
}

:is(.tracker-page, .agents-page) .card-grid {
  align-items:start;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}

:is(.tracker-page, .agents-page) .card {
  display:flex;
  flex-direction:column;
  gap:.8rem;
  min-width:0;
  padding:1.15rem;
  overflow-wrap:anywhere;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:.75rem;
}

:is(.tracker-page, .agents-page) .card-top {
  align-items:flex-start;
  display:flex;
  gap:.75rem;
  justify-content:space-between;
}

:is(.tracker-page, .agents-page) .card h3 {
  margin:0;
  font-size:1.25rem;
  line-height:1.2;
}

:is(.tracker-page, .agents-page) .area {
  margin:0 0 .25rem;
  color:var(--color-muted);
  font-size:.85rem;
}

:is(.tracker-page, .agents-page) .favorite {
  flex:0 0 auto;
  padding:.2rem .4rem;
  color:var(--color-accent);
  background:transparent;
  border:0;
  cursor:pointer;
  font-size:1.7rem;
  line-height:1;
}

:is(.tracker-page, .agents-page) .price {
  margin:0;
  font-size:1.35rem;
  font-weight:750;
}

:is(.tracker-page, .agents-page) .price small {
  font-size:.72rem;
  font-weight:400;
}

:is(.tracker-page, .agents-page) .facts {
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin:0;
}

:is(.tracker-page, .agents-page) .pill {
  padding:.2rem .5rem;
  color:var(--color-muted);
  border:1px solid var(--color-border);
  border-radius:999px;
  font-size:.8rem;
}

:is(.tracker-page, .agents-page) .walk {
  padding:.8rem .9rem;
  background:color-mix(in srgb,var(--color-accent) 14%,var(--color-surface));
  border-left:3px solid var(--color-accent);
  border-radius:.45rem;
}

:is(.tracker-page, .agents-page) .walk strong {
  display:block;
  font-size:1.2rem;
}

:is(.tracker-page, .agents-page) .walk p {
  margin:0;
  color:var(--color-muted);
}

:is(.tracker-page, .agents-page) .caveat {
  margin:0;
  padding-left:.8rem;
  border-left:3px solid var(--color-warning,#e5ae61);
}

:is(.tracker-page, .agents-page) .card-actions {
  margin-top:auto;
}

:is(.tracker-page, .agents-page) .tour-badge {
  margin:0;
  padding:.45rem .65rem;
  color:var(--color-accent);
  background:color-mix(in srgb,var(--color-accent) 12%,var(--color-surface));
  border-radius:.35rem;
  font-size:.86rem;
}

:is(.tracker-page, .agents-page) .tour-list { display:grid; gap:.6rem; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); }
:is(.tracker-page, .agents-page) .tour-summary { display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; padding:.75rem; background:var(--color-surface); border:1px solid var(--color-border); border-radius:.5rem; }
:is(.tracker-page, .agents-page) .tour-summary span { color:var(--color-muted); margin-right:auto; }
:is(.tracker-page, .agents-page) .check-label { display:flex; align-items:center; gap:.35rem; margin:.35rem 0; color:var(--color-text); font-size:.95rem; font-weight:400; }
:is(.tracker-page, .agents-page) fieldset { margin:1rem 0; padding:.8rem; border:1px solid var(--color-border); border-radius:.45rem; }
:is(.tracker-page, .agents-page) legend { padding:0 .35rem; color:var(--color-muted); font-weight:650; }
:is(.tracker-page, .agents-page) .tour-question { display:grid; grid-template-columns:1fr 1fr auto auto; gap:.5rem; align-items:start; margin:.6rem 0; }
:is(.tracker-page, .agents-page) .tour-question input,:is(.tracker-page, .agents-page) .tour-question textarea { margin:0; }
:is(.tracker-page, .agents-page) .share-management { margin-top:1.5rem; border-top:1px solid var(--color-border); padding-top:1rem; }
:is(.tracker-page, .agents-page) .share-row { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; padding:.55rem 0; border-bottom:1px solid var(--color-border); }
:is(.tracker-page, .agents-page) .share-row span { margin-right:auto; }
:is(.tracker-page, .agents-page) .preview-dialog { width:min(calc(100% - 2rem),80rem); }
:is(.tracker-page, .agents-page) .share-preview { width:100%; height:75vh; border:1px solid var(--color-border); border-radius:.4rem; }

:is(.tracker-page, .agents-page) .card-actions select {
  width:auto;
  min-width:8.5rem;
  margin:0;
}

:is(.tracker-page, .agents-page) .card a,:is(.tracker-page, .agents-page) .dialog-card a {
  color:var(--color-accent);
}

:is(.tracker-page, .agents-page) .empty {
  grid-column:1/-1;
  padding:2rem;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:.75rem;
}

:is(.tracker-page, .agents-page) details {
  padding-top:.75rem;
  border-top:1px solid var(--color-border);
}

:is(.tracker-page, .agents-page) summary {
  min-height:2rem;
  color:var(--color-muted);
  cursor:pointer;
  font-weight:650;
}

:is(.tracker-page, .agents-page) .note {
  margin-top:.5rem;
}

:is(.tracker-page, .agents-page) .file-button {
  cursor:pointer;
}

:is(.tracker-page, .agents-page) .file-button input {
  display:none;
}

:is(.tracker-page, .agents-page) footer {
  margin-top:2.5rem;
  padding-top:1rem;
  color:var(--color-muted);
  border-top:1px solid var(--color-border);
  font-size:.8rem;
}

:is(.tracker-page, .agents-page) dialog {
  width:min(calc(100% - 2rem),46rem);
  max-width:none;
  padding:0;
  color:var(--color-text);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:.75rem;
  box-shadow:0 1.5rem 4rem #0008;
  margin:auto;
  max-width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 2rem);
}

:is(.tracker-page, .agents-page) dialog::backdrop {
  background:#0009;
}

:is(.tracker-page, .agents-page) .dialog-card {
  position:relative;
  max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 2rem);
  max-height:min(90vh,calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 2rem));
  padding:1.5rem;
  overflow:auto;
  overscroll-behavior:contain;
  scroll-padding-block:1rem;
}

:is(.tracker-page, .agents-page) .dialog-close {
  position:absolute;
  top:.65rem;
  right:.8rem;
  padding:.2rem .45rem;
  color:var(--color-muted);
  background:transparent;
  border:0;
  cursor:pointer;
  font-size:1.6rem;
  line-height:1;
}

:is(.tracker-page, .agents-page) .dialog-card h2 {
  margin:0 2rem 1.25rem 0;
}

:is(.tracker-page, .agents-page) .form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem;
  margin-bottom:1rem;
}

:is(.tracker-page, .agents-page) .form-actions {
  justify-content:flex-end;
  margin-top:1rem;
}

:is(.tracker-page, .agents-page) .brief-form {
  margin-top:1.25rem;
}

:is(.tracker-page, .agents-page) .brief-form button {
  margin-top:.65rem;
}

:is(.tracker-page, .agents-page) .brief-copy {
  min-height:5rem;
  margin:0;
  padding:1rem;
  white-space:pre-wrap;
  background:var(--color-background);
  border-radius:.45rem;
}

:is(.tracker-page, .agents-page) dl {
  display:grid;
  grid-template-columns:minmax(9rem,.7fr) 1fr;
  margin:1.25rem 0;
}

:is(.tracker-page, .agents-page) dt,:is(.tracker-page, .agents-page) dd {
  padding:.55rem 0;
  border-bottom:1px solid var(--color-border);
}

:is(.tracker-page, .agents-page) dt {
  color:var(--color-muted);
  font-weight:650;
}

:is(.tracker-page, .agents-page) dd {
  margin:0;
  overflow-wrap:anywhere;
}

:is(.tracker-page, .agents-page) dialog ul {
  padding-left:1.25rem;
  color:var(--color-muted);
}

:is(.tracker-page, .agents-page) button:focus-visible,:is(.tracker-page, .agents-page) a:focus-visible,:is(.tracker-page, .agents-page) input:focus-visible,:is(.tracker-page, .agents-page) select:focus-visible,:is(.tracker-page, .agents-page) textarea:focus-visible,:is(.tracker-page, .agents-page) summary:focus-visible {
  outline:2px solid var(--color-accent);
  outline-offset:3px;
}

:is(.tracker-page, .agents-page) [hidden] {
  display:none!important;
}

:is(.tracker-page, .agents-page).large {
  font-size:1.2rem;
}

:is(.tracker-page, .agents-page).large :is(label,input,select,textarea,.muted,.area,.pill,.status) {
  font-size:1em;
}

:is(.tracker-page, .agents-page) .button[aria-pressed=true] {
  background:var(--color-accent);
  color:var(--color-background);
  border-color:var(--color-accent);
}

:is(.tracker-page, .agents-page) table {
  display:block;
  max-width:100%;
  overflow-x:auto;
  border-collapse:collapse;
}

:is(.tracker-page, .agents-page) th,:is(.tracker-page, .agents-page) td {
  text-align:left;
  padding:.5rem;
  border-bottom:1px solid var(--color-border);
}

:is(.tracker-page, .agents-page) .dialog-card {
  overflow-wrap:anywhere;
}

:is(.tracker-page, .agents-page) .masthead {
  flex-wrap:wrap;
}

:is(.tracker-page, .agents-page) .top-actions {
  flex-shrink:1;
}

:is(.tracker-page, .agents-page) .file-button:focus-within {
  outline:2px solid var(--color-accent);
  outline-offset:3px;
}

:is(.tracker-page, .agents-page) .file-button {
  position:relative;
}

:is(.tracker-page, .agents-page) .file-button input {
  display:block;
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}

:is(.tracker-page, .agents-page) [hidden] {
  display:none!important;
}

@media(max-width:900px) {
  :is(.tracker-page, .agents-page) .toolbar {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  :is(.tracker-page, .agents-page) .search-field {
    grid-column:1/-1;
  }

}

@media(max-width:600px) {
  :is(.tracker-page, .agents-page) .page-shell {
    padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left));
  }

  :is(.tracker-page, .agents-page) .masthead {
    align-items:flex-start;
    flex-direction:column;
    gap:1rem;
  }

  :is(.tracker-page, .agents-page) .top-actions {
    width:100%;
  }

  :is(.tracker-page, .agents-page) .toolbar,:is(.tracker-page, .agents-page) .form-grid {
    grid-template-columns:1fr;
  }

  :is(.tracker-page, .agents-page) .search-field {
    grid-column:auto;
  }

  :is(.tracker-page, .agents-page) .utility-row {
    align-items:flex-start;
    display:block;
  }

  :is(.tracker-page, .agents-page) .utility-buttons {
    margin-top:.75rem;
  }

  :is(.tracker-page, .agents-page) .card {
    padding:1rem;
  }

  :is(.tracker-page, .agents-page) dl {
    grid-template-columns:1fr;
  }

  :is(.tracker-page, .agents-page) .tour-question { grid-template-columns:1fr; }

  :is(.tracker-page, .agents-page) input,
  :is(.tracker-page, .agents-page) textarea,
  :is(.tracker-page, .agents-page) select { font-size:16px; }

  :is(.tracker-page, .agents-page) dt {
    padding-bottom:.1rem;
    border-bottom:0;
  }

}

@media print {
  :is(.tracker-page, .agents-page) {
    color-scheme:light;
    --color-background:#fff;
    --color-surface:#fff;
    --color-text:#111;
    --color-muted:#444;
    --color-accent:#111;
    --color-border:#bbb;
    --color-warning:#555;
    background:#fff;
    color:#111;
  }

  :is(.tracker-page, .agents-page) .page-shell {
    width:auto;
    padding:0;
  }

  :is(.tracker-page, .agents-page) .site-header,:is(.tracker-page, .agents-page) .toolbar,:is(.tracker-page, .agents-page) .utility-row,:is(.tracker-page, .agents-page) .top-actions,:is(.tracker-page, .agents-page) .card-actions,:is(.tracker-page, .agents-page) footer,:is(.tracker-page, .agents-page) dialog {
    display:none!important;
  }

  :is(.tracker-page, .agents-page) .card-grid {
    display:block;
  }

  :is(.tracker-page, .agents-page) .card {
    break-inside:avoid;
    margin:1rem 0;
    background:#fff;
    border-color:#bbb;
  }

  :is(.tracker-page, .agents-page) .card .favorite,:is(.tracker-page, .agents-page) .status {
    display:none!important;
  }

  :is(.tracker-page, .agents-page) .card a {
    color:#111;
  }

  :is(.tracker-page, .agents-page) details {
    display:block;
  }

  :is(.tracker-page, .agents-page) details>textarea {
    display:block;
  }

}

.agents-page .page-shell {
  max-width:64rem;
  margin:auto;
}

.agents-page .masthead {
  margin-bottom:2rem;
}

[hidden] {
  display:none!important;
}

@media (max-width: 700px) {
  :is(.tracker-page, .agents-page) .card-grid { grid-template-columns: 1fr; }
}

.shared-copy, .shared-page dd { white-space: pre-wrap; overflow-wrap: anywhere; }
.shared-page .card a { overflow-wrap: anywhere; }
.dialog-status:empty { display: none; }

@media (pointer:coarse), (max-width:1024px) {
  :is(.tracker-page, .agents-page) :is(input, textarea, select) { font-size:16px; }
}

.apartment-map { position:relative; min-width:0; border:1px solid #d9d5cb; border-radius:14px; overflow:hidden; background:#e8eee8; color:#24352c; }
.map-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(20rem,38%); gap:1rem; align-items:start; }
.map-panel { position:sticky; top:1rem; min-width:0; grid-column:2; grid-row:1; }
.map-layout > .card-grid { min-width:0; grid-column:1; grid-row:1; }
.map-list-toggle { display:none; gap:.5rem; margin-bottom:.75rem; }
.map-layout .map-selected { outline:2px solid #234f68; outline-offset:2px; }
.map-toolbar { display:flex; align-items:center; gap:.45rem; position:absolute; z-index:4; inset:.75rem .75rem auto; pointer-events:none; }
.map-toolbar > * { pointer-events:auto; }
.map-title { margin-right:auto; padding:.45rem .65rem; border-radius:7px; background:#fffdf8e8; font-size:.8rem; font-weight:700; }
.map-control { min-width:2.75rem; min-height:2.75rem; height:2.75rem; border:1px solid #c6c4bb; border-radius:7px; background:#fffdf8; color:#24352c; font:inherit; font-weight:700; cursor:pointer; }
.map-control:hover, .map-control:focus-visible { background:#eef5ed; }
.map-fit { padding-inline:.7rem; font-size:.78rem; }
.map-viewport { position:relative; width:100%; aspect-ratio:8 / 5; overflow:hidden; cursor:grab; touch-action:none; background:#dce8df; }
.map-viewport:active { cursor:grabbing; }
.map-tiles { position:absolute; inset:0; transform-origin:top left; }
.map-tile { position:absolute; width:32%; height:51.2%; max-width:none; object-fit:cover; user-select:none; }
.map-markers { position:absolute; inset:0; pointer-events:none; }
.map-marker { position:absolute; transform:translate(-50%,-50%); pointer-events:auto; }
.apartment-marker { width:2rem; height:2rem; border:2px solid #fffdf8; border-radius:50%; transform:translate(-50%,-50%); background:#ba4c38; color:#fff; box-shadow:0 2px 5px #24352c66; font-size:1.4rem; line-height:1rem; cursor:pointer; }
.apartment-marker::first-letter { transform:rotate(45deg); }
.apartment-marker.selected { background:#234f68; outline:3px solid #fff; }
.shuttle-marker { color:#234f68; font-size:1.35rem; text-shadow:0 1px 2px #fff; }
.map-status { position:absolute; z-index:3; bottom:2rem; left:.75rem; color:#6c3328; font-size:.78rem; }
.map-retry { position:absolute; z-index:4; right:.75rem; bottom:1.75rem; border:1px solid #c6c4bb; border-radius:6px; background:#fffdf8; padding:.35rem .55rem; font:inherit; font-size:.75rem; cursor:pointer; }
.map-attribution { position:absolute; right:.5rem; bottom:.2rem; margin:0; color:#34483b; font-size:.65rem; }
.map-unavailable { margin:.7rem 1rem; color:#6c3328; font-size:.85rem; }
@media (max-width:800px) { .map-layout { display:block; } .map-list-toggle { display:flex; } .map-panel { display:none; position:static; } .map-layout.show-map .map-panel { display:block; } .map-layout.show-map > .card-grid { display:none; } }
@media (max-width:700px) { .map-toolbar { inset:.5rem; } .map-title { display:none; } .map-viewport { min-height:0; } .map-fit { margin-left:auto; } }

.map-help { margin:.6rem; font-size:.85rem; }
.map-unit-selector { display:grid; gap:.4rem; margin:.6rem; }
.shuttle-marker.selected { color:var(--color-accent); outline:2px solid var(--color-accent); border-radius:50%; background:var(--color-surface); }
.map-layout > .card-grid { grid-template-columns:minmax(0,1fr); }
.map-attribution { background:var(--color-surface); z-index:3; padding:.1rem .3rem; }

.apartment-marker { padding:0; display:grid; place-items:center; line-height:1; font-size:1rem; }
.apartment-map .map-unit-selector { color:#24352c; }
.stop-detail-panel { color:var(--color-text); overflow-wrap:anywhere; }
.boarding-description { white-space:pre-wrap; }
.map-stop-selector { display:grid; gap:.4rem; margin:.6rem; }
.stop-detail-panel h2 { padding-right:2rem; }
.stop-detail-panel h3 { font-size:.9rem; }
.stop-detail-panel ul { display:grid; gap:.4rem; padding-left:1.2rem; }
.stop-detail-panel li { display:flex; align-items:center; gap:.4rem; }
.shuttle-marker { min-width:2.75rem; min-height:2.75rem; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; }
.shuttle-marker:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.preferred-badge { padding:.15rem .35rem; border-radius:999px; color:var(--color-text); background:color-mix(in srgb,var(--color-accent) 25%,transparent); font-size:.7rem; }
.stop-association-editor { display:grid; gap:.55rem; }
.selected-stops, .catalog-stops { display:grid; gap:.3rem; }
.stop-row { display:flex; align-items:center; gap:.5rem; padding:.3rem 0; }
.stop-row span { min-width:0; overflow-wrap:anywhere; }
.pager { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:.4rem; }
