/* ============================================================================
   PUBLIC-SKY-PAGES — the interior "flow" pages (book a tour, tour confirmed,
   tenant application, tenant portal, application submitted) restyled onto the
   SAME liquid-glass design system as the index / home page.

   Loaded per-page (via {% block extra_css %}) AFTER public-sky.css and
   public-glass.css, so it shares every token here. Everything is scoped to
   `.sky-public` (the <body> class in base_sky.html) so it can never touch the
   app. Nothing in here uses !important — cascade order does the work.

   Widget prefix: `.skp-*`  (sky pages).
   ============================================================================ */

/* Alpine: hide [x-cloak] elements until Alpine initializes (base_sky has no rule). */
.sky-public [x-cloak] { display: none !important; }

/* ── Page shell ─────────────────────────────────────────────────────────── */
.sky-public .skp-shell { max-width: 1120px; margin: 0 auto; padding: 48px 24px 96px; }
.sky-public .skp-shell--wide { max-width: 1320px; }
.sky-public .skp-shell--narrow { max-width: 760px; }
@media (min-width: 768px) { .sky-public .skp-shell { padding: 72px 40px 120px; } }

/* ── Breadcrumbs ────────────────────────────────────────────────────────── */
.sky-public .skp-crumbs {
  display: flex; flex-wrap: wrap; align-items: center; gap: .55em;
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: .16em; color: var(--color-muted); margin-bottom: 26px;
}
.sky-public .skp-crumbs a { color: var(--color-muted); transition: color .2s ease; }
.sky-public .skp-crumbs a:hover { color: var(--color-foreground); }
.sky-public .skp-crumbs .skp-sep { opacity: .5; }
.sky-public .skp-crumbs [aria-current] { color: var(--color-foreground); }

/* ── Section heading helpers ────────────────────────────────────────────── */
.sky-public .skp-title { font-family: var(--font-sans); font-weight: 380; letter-spacing: -.03em; line-height: 1.04; }
.sky-public .skp-section-title {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--font-sans); font-weight: 480; letter-spacing: -.01em; font-size: 20px;
}
.sky-public .skp-section-title svg { color: var(--color-cyan); }

/* ── Glass panel ────────────────────────────────────────────────────────── */
.sky-public .skp-panel {
  background: var(--glass-fill);
  -webkit-backdrop-filter: var(--glass-filter);
  backdrop-filter: var(--glass-filter);
  border: 1px solid var(--glass-border);
  border-radius: var(--r-lg);
  box-shadow: var(--glass-hi), var(--glass-hi-lo), var(--glass-shadow);
}
.sky-public .skp-panel-pad { padding: 26px; }
@media (min-width: 768px) { .sky-public .skp-panel-pad { padding: 32px; } }

/* ── Forms (inputs are already glass-styled globally in public-glass.css) ── */
.sky-public .skp-label {
  display: block; font-family: var(--font-mono); font-size: 10.5px;
  text-transform: uppercase; letter-spacing: .16em; color: var(--color-muted-foreground);
  margin-bottom: 8px;
}
.sky-public .skp-label .skp-opt { text-transform: none; letter-spacing: .02em; color: var(--color-muted); }
.sky-public .skp-input { width: 100%; padding: 12px 15px; font-size: 14.5px; }
.sky-public textarea.skp-input { min-height: 92px; resize: vertical; }
.sky-public .skp-grid-2 { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 560px) { .sky-public .skp-grid-2 { grid-template-columns: 1fr 1fr; } }
.sky-public .skp-col-2 { grid-column: 1 / -1; }
.sky-public .skp-field + .skp-field { margin-top: 16px; }

/* Consent / fine print */
.sky-public .skp-consent { display: flex; gap: 12px; align-items: flex-start; font-size: 12.5px; color: var(--color-muted-foreground); line-height: 1.6; }
.sky-public .skp-consent input[type=checkbox] { margin-top: 3px; flex: 0 0 auto; width: 16px; height: 16px; accent-color: var(--color-accent); }
.sky-public .skp-consent a { color: var(--color-cyan); text-decoration: underline; text-underline-offset: 2px; }
.sky-public .skp-footnote { margin-top: 16px; font-size: 12px; color: var(--color-muted); text-align: center; line-height: 1.6; }

/* ── Buttons (block / spinner) ──────────────────────────────────────────── */
.sky-public .skp-btn-block { width: 100%; }
.sky-public .skp-spin { animation: skpSpin 1s linear infinite; }
@keyframes skpSpin { to { transform: rotate(360deg); } }
.sky-public .g-btn[disabled], .sky-public button[disabled].g-btn--accent { opacity: .5; cursor: not-allowed; transform: none; }

/* ════════════════════════════════════════════════════════════════════════
   CONFIRMATION HERO + META + NUMBERED STEPS  (application_confirmation)
   ════════════════════════════════════════════════════════════════════════ */
.sky-public .skp-hero { text-align: center; margin-bottom: 44px; }
.sky-public .skp-hero-badge {
  width: 78px; height: 78px; border-radius: var(--r-pill); margin: 0 auto 22px;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(158deg, rgba(52,211,153,.28), rgba(52,211,153,.07));
  border: 1px solid rgba(52,211,153,.42); color: #6ee7b7;
  box-shadow: var(--glass-hi), 0 22px 46px -20px rgba(16,185,129,.55);
}
.sky-public .skp-hero-badge svg { width: 36px; height: 36px; }

.sky-public .skp-metarow { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 0; }
.sky-public .skp-metarow + .skp-metarow { border-top: 1px solid var(--glass-border); }
.sky-public .skp-metakey { display: inline-flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--color-muted-foreground); }
.sky-public .skp-metakey svg { color: var(--color-cyan); width: 16px; height: 16px; flex: 0 0 auto; }
.sky-public .skp-metaval { font-weight: 500; font-size: 14px; color: var(--color-foreground); }
.sky-public .skp-code {
  font-family: var(--font-mono); font-size: 12px; color: var(--color-foreground);
  background: rgba(255,255,255,.06); border: 1px solid var(--glass-border);
  padding: 5px 11px; border-radius: 9px;
}
.sky-public .skp-status {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .12em;
  padding: 6px 13px; border-radius: var(--r-pill);
  background: rgba(96,165,250,.14); border: 1px solid rgba(96,165,250,.35); color: #bcd9ff;
}
.sky-public .skp-status svg { width: 13px; height: 13px; }

.sky-public .skp-step { display: flex; gap: 16px; padding: 17px 0; }
.sky-public .skp-step + .skp-step { border-top: 1px solid var(--glass-border); }
.sky-public .skp-step-num {
  flex: 0 0 auto; width: 36px; height: 36px; border-radius: var(--r-pill);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; color: var(--color-cyan);
  border: 1px solid var(--glass-border); background: rgba(255,255,255,.04);
}
.sky-public .skp-step-name { font-weight: 500; font-size: 15px; }
.sky-public .skp-step-desc { margin-top: 4px; font-size: 13.5px; color: var(--color-muted-foreground); line-height: 1.6; }

/* ════════════════════════════════════════════════════════════════════════
   TOUR CONFIRMATION — success check, countdown, boarding pass, map, checklist
   ════════════════════════════════════════════════════════════════════════ */
.sky-public .skp-check-svg { width: 92px; height: 92px; margin: 0 auto 6px; display: block; }
.sky-public .skp-check-circle { fill: none; stroke: rgba(52,211,153,.45); stroke-width: 2; stroke-dasharray: 166; stroke-dashoffset: 166; animation: skpStroke .7s cubic-bezier(.65,0,.45,1) forwards; }
.sky-public .skp-check-mark { fill: none; stroke: #6ee7b7; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 48; stroke-dashoffset: 48; animation: skpStroke .5s .55s cubic-bezier(.65,0,.45,1) forwards; }
@keyframes skpStroke { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .sky-public .skp-check-circle, .sky-public .skp-check-mark { animation: none; stroke-dashoffset: 0; } }

.sky-public .skp-countdown {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 16px;
  padding: 8px 18px; border-radius: var(--r-pill);
  font-family: var(--font-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: .14em;
  background: var(--glass-fill-strong); border: 1px solid var(--glass-border-strong); color: #eef1f6;
}
.sky-public .skp-countdown svg { width: 14px; height: 14px; }
.sky-public .skp-countdown.today { background: rgba(96,165,250,.16); border-color: rgba(96,165,250,.42); color: #bcd9ff; }
.sky-public .skp-countdown.soon  { background: rgba(52,211,153,.14); border-color: rgba(52,211,153,.35); color: #a7f3d0; }

/* Boarding pass */
.sky-public .skp-pass { margin-top: 8px; overflow: hidden; }
.sky-public .skp-pass-head {
  padding: 14px 24px; border-bottom: 1px solid var(--glass-border);
  font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .22em; font-size: 11px; color: var(--color-muted-foreground);
}
.sky-public .skp-pass-body { display: grid; grid-template-columns: 1fr; }
@media (min-width: 640px) { .sky-public .skp-pass-body { grid-template-columns: 1fr 40px 1.15fr; } }
.sky-public .skp-pass-left { padding: 26px; }
.sky-public .skp-pass-right { padding: 26px; display: flex; flex-direction: column; gap: 18px; }
.sky-public .skp-pass-img, .sky-public .skp-pass-img-ph {
  width: 100%; height: 150px; border-radius: var(--r-sm); object-fit: cover; margin-bottom: 16px;
  border: 1px solid var(--glass-border);
}
.sky-public .skp-pass-img-ph { display: flex; align-items: center; justify-content: center; color: var(--color-muted); background: rgba(255,255,255,.03); }
.sky-public .skp-pass-name { font-size: 18px; font-weight: 500; letter-spacing: -.01em; }
.sky-public .skp-pass-addr { display: inline-flex; align-items: flex-start; gap: 7px; margin-top: 8px; font-size: 13px; color: var(--color-muted-foreground); }
.sky-public .skp-pass-addr svg { color: var(--color-cyan); width: 15px; height: 15px; margin-top: 1px; flex: 0 0 auto; }
/* Perforated divider (horizontal on mobile, vertical on desktop) */
.sky-public .skp-pass-perf { position: relative; }
@media (min-width: 640px) {
  .sky-public .skp-pass-perf::before { content: ""; position: absolute; inset: 12px 50% 12px auto; border-left: 2px dashed var(--glass-border-strong); }
  .sky-public .skp-pass-perf::after,
  .sky-public .skp-pass-perf .skp-notch-top { display: none; }
}
@media (max-width: 639px) {
  .sky-public .skp-pass-perf { height: 0; border-top: 2px dashed var(--glass-border-strong); margin: 0 26px; }
}
.sky-public .skp-pass-row { display: flex; gap: 14px; align-items: flex-start; }
.sky-public .skp-pass-ico {
  flex: 0 0 auto; width: 38px; height: 38px; border-radius: var(--r-sm);
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(96,165,250,.12); border: 1px solid rgba(96,165,250,.28); color: #9ec9ff;
}
.sky-public .skp-pass-ico svg { width: 17px; height: 17px; }
.sky-public .skp-pass-label { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .16em; color: var(--color-muted); }
.sky-public .skp-pass-value { margin-top: 3px; font-size: 14.5px; font-weight: 500; }
.sky-public .skp-pass-ref { margin-top: auto; font-family: var(--font-mono); font-size: 12px; letter-spacing: .1em; color: var(--color-muted-foreground); padding-top: 6px; }

/* Map */
.sky-public .skp-map-wrap { margin-top: 22px; }
.sky-public .skp-map { height: 320px; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--glass-border); box-shadow: var(--glass-shadow); }
.sky-public .skp-map-static { display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.03); }
.sky-public .skp-map-static-inner { display: flex; align-items: center; gap: 10px; color: var(--color-muted-foreground); font-size: 14px; }
.sky-public .skp-map-static-inner svg { color: var(--color-cyan); }
.sky-public .skp-map-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }

/* Checklist */
.sky-public .skp-tips-head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.sky-public .skp-tips-count { margin-left: auto; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--color-cyan); }
.sky-public .skp-tip { display: flex; gap: 14px; padding: 14px; border-radius: var(--r-sm); cursor: pointer; transition: background .25s ease; }
.sky-public .skp-tip:hover { background: rgba(255,255,255,.035); }
.sky-public .skp-tip-check {
  flex: 0 0 auto; width: 24px; height: 24px; border-radius: 8px; margin-top: 1px;
  display: inline-flex; align-items: center; justify-content: center; color: transparent;
  border: 1px solid var(--glass-border-strong); transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.sky-public .skp-tip-check svg { width: 14px; height: 14px; }
.sky-public .skp-tip.checked .skp-tip-check { background: var(--color-accent); border-color: transparent; color: #06131f; }
.sky-public .skp-tip.checked .skp-tip-title { text-decoration: line-through; opacity: .55; }
.sky-public .skp-tip-title { font-weight: 500; font-size: 14.5px; }
.sky-public .skp-tip-desc { margin-top: 3px; font-size: 13px; color: var(--color-muted-foreground); line-height: 1.55; }

.sky-public .skp-actions-grid { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 22px; }
@media (min-width: 560px) { .sky-public .skp-actions-grid { grid-template-columns: 1fr 1fr; } }

/* ════════════════════════════════════════════════════════════════════════
   TOUR BOOKING — banner, calendar, time slots, tour-type selector
   ════════════════════════════════════════════════════════════════════════ */
.sky-public .skp-banner { display: flex; gap: 20px; align-items: center; margin-bottom: 26px; }
.sky-public .skp-banner-thumb { flex: 0 0 auto; width: 96px; height: 96px; border-radius: var(--r-md); object-fit: cover; border: 1px solid var(--glass-border); }
.sky-public .skp-banner-sub { margin-top: 6px; font-size: 14px; color: var(--color-muted-foreground); }
.sky-public .skp-banner-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.sky-public .skp-chip {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 13px; border-radius: var(--r-pill);
  font-size: 12.5px; color: #eef1f6; background: var(--glass-fill-strong); border: 1px solid var(--glass-border);
}
.sky-public .skp-chip svg { width: 14px; height: 14px; color: var(--color-cyan); }

.sky-public .skp-book-grid { display: grid; grid-template-columns: 1fr; gap: 22px; align-items: start; }
@media (min-width: 940px) { .sky-public .skp-book-grid { grid-template-columns: 1.15fr .95fr; } }

.sky-public .skp-cal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.sky-public .skp-cal-nav { display: flex; align-items: center; gap: 8px; }
.sky-public .skp-cal-month { font-size: 14px; font-weight: 500; min-width: 128px; text-align: center; }
.sky-public .skp-icon-btn {
  width: 34px; height: 34px; border-radius: var(--r-pill); display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--glass-border); background: rgba(255,255,255,.04); color: var(--color-foreground);
  cursor: pointer; transition: background .2s ease, border-color .2s ease;
}
.sky-public .skp-icon-btn:hover { background: rgba(255,255,255,.08); border-color: var(--glass-border-strong); }

.sky-public .skp-weekdays, .sky-public .skp-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.sky-public .skp-weekday { text-align: center; font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--color-muted); padding-bottom: 8px; }
.sky-public .skp-cell {
  position: relative; aspect-ratio: 1 / 1; border-radius: var(--r-sm); padding: 6px 4px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border: 1px solid transparent; color: var(--color-muted-foreground); font-size: 13.5px;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.sky-public .skp-cell.faded { opacity: .28; }
.sky-public .skp-cell.clickable { cursor: pointer; background: rgba(255,255,255,.03); border-color: var(--glass-border); color: var(--color-foreground); }
.sky-public .skp-cell.clickable:hover { transform: translateY(-1px); border-color: var(--glass-border-strong); background: rgba(255,255,255,.06); }
.sky-public .skp-cell.today { box-shadow: inset 0 0 0 1px rgba(96,165,250,.4); }
.sky-public .skp-cell.avail-low  { border-color: rgba(96,165,250,.22); }
.sky-public .skp-cell.avail-med  { border-color: rgba(96,165,250,.4); background: rgba(96,165,250,.08); }
.sky-public .skp-cell.avail-high { border-color: rgba(52,211,153,.4); background: rgba(52,211,153,.08); }
.sky-public .skp-cell.selected { background: var(--color-accent); border-color: transparent; color: #06131f; }
.sky-public .skp-cell.selected .skp-cell-slots { color: rgba(6,19,31,.7); }
.sky-public .skp-cell-day { font-weight: 500; }
.sky-public .skp-cell-slots { font-family: var(--font-mono); font-size: 8.5px; letter-spacing: .04em; color: var(--color-cyan); }
.sky-public .skp-cell-best { position: absolute; top: 4px; right: 4px; color: #fbbf24; }
.sky-public .skp-cell-best svg { width: 11px; height: 11px; }

.sky-public .skp-slots { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--glass-border); }
.sky-public .skp-slots-title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; margin-bottom: 14px; }
.sky-public .skp-slots-title svg { color: var(--color-cyan); }
.sky-public .skp-slots-group { font-family: var(--font-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: .12em; color: var(--color-muted); margin: 14px 0 8px; display: flex; align-items: center; gap: 7px; }
.sky-public .skp-slots-group svg { width: 13px; height: 13px; }
.sky-public .skp-slots-wrap { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.sky-public .skp-slot {
  padding: 10px 8px; border-radius: var(--r-sm); font-size: 13px; text-align: center; cursor: pointer;
  border: 1px solid var(--glass-border); background: rgba(255,255,255,.03); color: var(--color-foreground);
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.sky-public .skp-slot:hover { transform: translateY(-1px); border-color: var(--glass-border-strong); background: rgba(255,255,255,.06); }
.sky-public .skp-slot.active { background: var(--color-accent); border-color: transparent; color: #06131f; font-weight: 500; }

.sky-public .skp-noslots { text-align: center; padding: 34px 16px; color: var(--color-muted); }
.sky-public .skp-noslots svg { color: var(--color-muted); margin: 0 auto 10px; }

/* Tour-type selector */
.sky-public .skp-typesel { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.sky-public .skp-type {
  display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 14px 6px; cursor: pointer;
  border-radius: var(--r-sm); border: 1px solid var(--glass-border); background: rgba(255,255,255,.03);
  color: var(--color-muted-foreground); font-size: 12px; transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.sky-public .skp-type svg { width: 20px; height: 20px; }
.sky-public .skp-type:hover { border-color: var(--glass-border-strong); color: var(--color-foreground); }
.sky-public .skp-type.active { border-color: rgba(96,165,250,.5); background: rgba(96,165,250,.1); color: #bcd9ff; }

/* Confirm summary box */
.sky-public .skp-confirm-box { margin-top: 18px; padding: 16px; border-radius: var(--r-md); background: rgba(96,165,250,.08); border: 1px solid rgba(96,165,250,.28); }
.sky-public .skp-confirm-box-label { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .16em; color: var(--color-cyan); margin-bottom: 12px; }
.sky-public .skp-confirm-row { display: flex; gap: 12px; align-items: flex-start; }
.sky-public .skp-confirm-row + .skp-confirm-row { margin-top: 12px; }
.sky-public .skp-confirm-row svg { color: var(--color-cyan); width: 17px; height: 17px; margin-top: 2px; flex: 0 0 auto; }
.sky-public .skp-confirm-main { font-weight: 500; font-size: 14px; }
.sky-public .skp-confirm-sub { font-size: 13px; color: var(--color-muted-foreground); }

/* ════════════════════════════════════════════════════════════════════════
   TENANT APPLICATION — wizard stepper
   ════════════════════════════════════════════════════════════════════════ */
.sky-public .skp-apphead { margin-bottom: 26px; }
.sky-public .skp-stepbar { display: flex; align-items: center; margin: 0 auto 28px; max-width: 620px; }
.sky-public .skp-stepitem { display: flex; flex-direction: column; align-items: center; gap: 8px; flex: 0 0 auto; }
.sky-public .skp-stepnum {
  width: 38px; height: 38px; border-radius: var(--r-pill); display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 13px; color: var(--color-muted);
  border: 1px solid var(--glass-border); background: rgba(255,255,255,.03); transition: all .3s ease;
}
.sky-public .skp-stepnum.active { border-color: transparent; background: var(--color-accent); color: #06131f; box-shadow: 0 0 0 4px rgba(96,165,250,.16); }
.sky-public .skp-stepnum.done { border-color: rgba(52,211,153,.5); background: rgba(52,211,153,.16); color: #6ee7b7; }
.sky-public .skp-steplabel { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--color-muted); }
.sky-public .skp-steplabel.active { color: var(--color-foreground); }
.sky-public .skp-steplabel.done { color: #6ee7b7; }
.sky-public .skp-stepconn { flex: 1 1 auto; height: 2px; margin: 0 6px; margin-bottom: 26px; background: var(--glass-border); border-radius: 2px; position: relative; overflow: hidden; }
.sky-public .skp-stepconn-fill { position: absolute; inset: 0; width: 0; background: linear-gradient(90deg, #34d399, #60a5fa); transition: width .4s ease; }
.sky-public .skp-stepconn-fill.done { width: 100%; }

.sky-public .skp-checkbox-card {
  display: flex; align-items: center; gap: 10px; cursor: pointer; width: 100%; padding: 12px 14px;
  border-radius: var(--r-sm); border: 1px solid var(--glass-border); background: rgba(255,255,255,.03);
  font-size: 14px; font-weight: 500;
}
.sky-public .skp-checkbox-card input { width: 16px; height: 16px; accent-color: var(--color-accent); }

.sky-public .skp-review { border-radius: var(--r-md); border: 1px solid var(--glass-border); overflow: hidden; }
.sky-public .skp-review-row { padding: 16px 18px; }
.sky-public .skp-review-row + .skp-review-row { border-top: 1px solid var(--glass-border); }
.sky-public .skp-review-label { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .14em; color: var(--color-muted); margin-bottom: 5px; }
.sky-public .skp-review-value { font-size: 15px; font-weight: 500; }

.sky-public .skp-wizard-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--glass-border); }

/* ════════════════════════════════════════════════════════════════════════
   TENANT PORTAL
   ════════════════════════════════════════════════════════════════════════ */
.sky-public .skp-portal-head { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; justify-content: space-between; margin-bottom: 30px; }
.sky-public .skp-userbox { display: flex; align-items: center; gap: 14px; padding: 12px 16px; border-radius: var(--r-md); }
.sky-public .skp-avatar { width: 46px; height: 46px; border-radius: var(--r-pill); display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-size: 18px; color: #06131f; background: var(--color-accent); }
.sky-public .skp-user-name { font-weight: 500; font-size: 14.5px; }
.sky-public .skp-signout { font-size: 12.5px; color: var(--color-cyan); }
.sky-public .skp-signout:hover { text-decoration: underline; }

.sky-public .skp-subnav { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; }
.sky-public .skp-subnav a { padding: 8px 16px; border-radius: var(--r-pill); font-size: 12.5px; color: var(--color-muted-foreground); border: 1px solid var(--glass-border); background: rgba(255,255,255,.03); transition: all .2s ease; }
.sky-public .skp-subnav a:hover { color: var(--color-foreground); border-color: var(--glass-border-strong); }

.sky-public .skp-stats { display: grid; grid-template-columns: 1fr; gap: 14px; margin-bottom: 40px; }
@media (min-width: 640px) { .sky-public .skp-stats { grid-template-columns: repeat(3, 1fr); } }
.sky-public .skp-stat { display: flex; align-items: center; gap: 14px; padding: 18px 20px; }
.sky-public .skp-stat-ico { flex: 0 0 auto; width: 42px; height: 42px; border-radius: var(--r-md); display: inline-flex; align-items: center; justify-content: center; background: rgba(96,165,250,.12); border: 1px solid rgba(96,165,250,.28); color: #9ec9ff; }
.sky-public .skp-stat-val { font-size: 19px; font-weight: 500; letter-spacing: -.01em; }
.sky-public .skp-stat-label { font-size: 12px; color: var(--color-muted); margin-top: 2px; }

.sky-public .skp-portal-section { margin-bottom: 44px; }
.sky-public .skp-section-head { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; justify-content: space-between; margin-bottom: 18px; }
.sky-public .skp-section-desc { margin-top: 5px; font-size: 13.5px; color: var(--color-muted-foreground); max-width: 60ch; }
.sky-public .skp-link { font-size: 13px; color: var(--color-cyan); white-space: nowrap; }
.sky-public .skp-link:hover { text-decoration: underline; }

.sky-public .skp-saved-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 560px) { .sky-public .skp-saved-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .sky-public .skp-saved-grid { grid-template-columns: repeat(4, 1fr); } }
.sky-public .skp-saved { overflow: hidden; }
.sky-public .skp-saved-img { position: relative; aspect-ratio: 4 / 3; }
.sky-public .skp-saved-img img { width: 100%; height: 100%; object-fit: cover; }
.sky-public .skp-saved-heart { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border-radius: var(--r-pill); display: inline-flex; align-items: center; justify-content: center; background: rgba(8,8,10,.55); border: 1px solid var(--glass-border-strong); color: #fb7185; cursor: pointer; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.sky-public .skp-saved-price { position: absolute; left: 10px; bottom: 10px; padding: 5px 12px; border-radius: var(--r-pill); font-weight: 600; font-size: 14px; color: #06131f; background: rgba(255,255,255,.92); }
.sky-public .skp-saved-price small { font-weight: 500; font-size: 11px; opacity: .7; }
.sky-public .skp-saved-body { padding: 14px 16px; }
.sky-public .skp-saved-hood { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--color-muted); }
.sky-public .skp-saved-hood svg { width: 12px; height: 12px; color: var(--color-cyan); }
.sky-public .skp-saved-title { margin-top: 6px; font-size: 14.5px; font-weight: 500; line-height: 1.3; }
.sky-public .skp-saved-specs { display: flex; gap: 14px; margin-top: 10px; font-size: 12.5px; color: var(--color-muted-foreground); }
.sky-public .skp-saved-specs span { display: inline-flex; align-items: center; gap: 5px; }
.sky-public .skp-saved-specs svg { width: 14px; height: 14px; }

/* Portal application steps (horizontal) */
.sky-public .skp-psteps { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.sky-public .skp-pstep { display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: var(--r-pill); font-size: 12.5px; border: 1px solid var(--glass-border); background: rgba(255,255,255,.03); color: var(--color-muted); }
.sky-public .skp-pstep .skp-pstep-dot { width: 20px; height: 20px; border-radius: var(--r-pill); display: inline-flex; align-items: center; justify-content: center; font-size: 11px; border: 1px solid var(--glass-border); }
.sky-public .skp-pstep.done { color: #6ee7b7; border-color: rgba(52,211,153,.4); }
.sky-public .skp-pstep.done .skp-pstep-dot { background: rgba(52,211,153,.18); border-color: transparent; color: #6ee7b7; }
.sky-public .skp-pstep.active { color: #bcd9ff; border-color: rgba(96,165,250,.42); background: rgba(96,165,250,.1); }
.sky-public .skp-pstep.active .skp-pstep-dot { background: var(--color-accent); border-color: transparent; color: #06131f; }
.sky-public .skp-appmeta { display: grid; grid-template-columns: 1fr; gap: 16px; padding: 18px 0; margin-bottom: 18px; border-top: 1px solid var(--glass-border); border-bottom: 1px solid var(--glass-border); }
@media (min-width: 640px) { .sky-public .skp-appmeta { grid-template-columns: repeat(3, 1fr); } }
.sky-public .skp-appmeta .k { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; color: var(--color-muted); margin-bottom: 5px; }
.sky-public .skp-appmeta .v { font-size: 14px; font-weight: 500; }
.sky-public .skp-portal-actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* Credit report */
.sky-public .skp-credit-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 720px) { .sky-public .skp-credit-grid { grid-template-columns: 1fr 1fr; } }
.sky-public .skp-file { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: var(--r-md); border: 1px solid var(--glass-border); background: rgba(255,255,255,.03); }
.sky-public .skp-file-ico { flex: 0 0 auto; width: 40px; height: 40px; border-radius: var(--r-sm); display: inline-flex; align-items: center; justify-content: center; background: rgba(96,165,250,.12); border: 1px solid rgba(96,165,250,.28); color: #9ec9ff; }
.sky-public .skp-file-name { font-size: 14px; font-weight: 500; }
.sky-public .skp-file-meta { font-size: 12px; color: var(--color-muted); margin-top: 2px; }
.sky-public .skp-score { margin-left: auto; text-align: center; }
.sky-public .skp-score-val { font-size: 22px; font-weight: 600; color: #6ee7b7; letter-spacing: -.01em; }
.sky-public .skp-score-lbl { font-family: var(--font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: .14em; color: var(--color-muted); }
.sky-public .skp-dropzone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; padding: 22px; border-radius: var(--r-md); border: 1.5px dashed var(--glass-border-strong); color: var(--color-muted-foreground); font-size: 13px; }
.sky-public .skp-dropzone svg { color: var(--color-cyan); margin-bottom: 4px; }
.sky-public .skp-dropzone small { font-size: 11.5px; color: var(--color-muted); }
.sky-public .skp-secure { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding: 12px 16px; border-radius: var(--r-md); background: rgba(52,211,153,.08); border: 1px solid rgba(52,211,153,.22); font-size: 12.5px; color: #a7f3d0; }
.sky-public .skp-secure svg { flex: 0 0 auto; width: 16px; height: 16px; }

/* ════════════════════════════════════════════════════════════════════════
   LEGAL PAGES (privacy / terms) — re-themed onto the glass system.
   Keeps the existing .lg-* prose markup; only restyles it. MDI icon font is
   re-loaded per-page so the inline <i class="mdi …"> glyphs still render.
   ════════════════════════════════════════════════════════════════════════ */
.sky-public .lg-page { }
.sky-public .lg-hero { text-align: center; padding: 56px 24px 8px; max-width: 820px; margin: 0 auto; }
@media (min-width: 768px) { .sky-public .lg-hero { padding: 80px 40px 8px; } }
.sky-public .lg-hero-icon {
  width: 66px; height: 66px; border-radius: var(--r-pill); margin: 0 auto 20px;
  display: inline-flex; align-items: center; justify-content: center; font-size: 28px; color: #9ec9ff;
  background: var(--glass-fill-strong); border: 1px solid var(--glass-border-strong); box-shadow: var(--glass-hi);
}
.sky-public .lg-hero h1 { font-family: var(--font-sans); font-weight: 380; letter-spacing: -.03em; font-size: clamp(30px, 5vw, 48px); line-height: 1.04; }
.sky-public .lg-hero p { margin-top: 14px; font-size: 15px; color: var(--color-muted-foreground); }
.sky-public .lg-hero-updated {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 20px;
  padding: 8px 16px; border-radius: var(--r-pill); font-family: var(--font-mono);
  font-size: 11px; text-transform: uppercase; letter-spacing: .14em; color: var(--color-muted-foreground);
  background: var(--glass-fill); border: 1px solid var(--glass-border);
}

.sky-public .lg-main { max-width: 820px; margin: 0 auto; padding: 32px 24px 100px; }
@media (min-width: 768px) { .sky-public .lg-main { padding: 40px 40px 120px; } }

.sky-public .lg-quicknav {
  padding: 24px; border-radius: var(--r-lg); margin-bottom: 40px;
  background: var(--glass-fill); border: 1px solid var(--glass-border);
  -webkit-backdrop-filter: var(--glass-filter); backdrop-filter: var(--glass-filter);
  box-shadow: var(--glass-hi), var(--glass-hi-lo), var(--glass-shadow);
}
.sky-public .lg-quicknav-title { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .18em; color: var(--color-muted); margin-bottom: 16px; }
.sky-public .lg-quicknav-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media (min-width: 640px) { .sky-public .lg-quicknav-grid { grid-template-columns: repeat(3, 1fr); } }
.sky-public .lg-quicknav-grid a {
  display: flex; align-items: center; gap: 9px; padding: 10px 13px; border-radius: var(--r-sm);
  font-size: 13px; color: var(--color-muted-foreground); border: 1px solid var(--glass-border); background: rgba(255,255,255,.03);
  transition: all .2s ease;
}
.sky-public .lg-quicknav-grid a:hover { color: var(--color-foreground); border-color: var(--glass-border-strong); background: rgba(255,255,255,.06); }
.sky-public .lg-quicknav-grid a i { color: var(--color-cyan); font-size: 16px; }

.sky-public .lg-section { padding: 30px 0; border-top: 1px solid var(--glass-border); }
.sky-public .lg-section:first-of-type { border-top: 0; }
.sky-public .lg-section-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 16px; }
.sky-public .lg-section-icon {
  flex: 0 0 auto; width: 42px; height: 42px; border-radius: var(--r-md);
  display: inline-flex; align-items: center; justify-content: center; font-size: 20px; color: #9ec9ff;
  background: rgba(96,165,250,.12); border: 1px solid rgba(96,165,250,.28);
}
.sky-public .lg-section-head h2 { font-family: var(--font-sans); font-weight: 480; letter-spacing: -.01em; font-size: 22px; }
.sky-public .lg-section-head > div > p { margin-top: 2px; font-size: 12.5px; color: var(--color-muted); }
.sky-public .lg-section > p { color: var(--color-muted-foreground); line-height: 1.75; font-size: 14.5px; margin-top: 12px; }
.sky-public .lg-section > p strong, .sky-public .lg-list strong { color: var(--color-foreground); font-weight: 600; }

.sky-public .lg-list, .sky-public .lg-sublist { margin: 14px 0 4px; padding-left: 4px; list-style: none; }
.sky-public .lg-list > li { position: relative; padding-left: 22px; margin-bottom: 10px; color: var(--color-muted-foreground); line-height: 1.7; font-size: 14px; }
.sky-public .lg-list > li::before { content: ""; position: absolute; left: 3px; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--color-cyan); }
.sky-public .lg-sublist { margin-top: 8px; padding-left: 18px; }
.sky-public .lg-sublist > li { padding-left: 18px; position: relative; margin-bottom: 7px; color: var(--color-muted); font-size: 13.5px; line-height: 1.6; }
.sky-public .lg-sublist > li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 5px; height: 5px; border-radius: 1px; background: var(--glass-border-strong); }

.sky-public .lg-inline-link { color: var(--color-cyan); text-decoration: underline; text-underline-offset: 2px; }
.sky-public .lg-inline-link:hover { color: #bcd9ff; }

.sky-public .lg-callout {
  display: flex; gap: 12px; align-items: flex-start; margin: 18px 0;
  padding: 16px 18px; border-radius: var(--r-md); font-size: 14px; line-height: 1.65; color: var(--color-muted-foreground);
  background: rgba(96,165,250,.08); border: 1px solid rgba(96,165,250,.24);
}
.sky-public .lg-callout i { color: var(--color-cyan); font-size: 20px; flex: 0 0 auto; }
.sky-public .lg-callout-info { background: rgba(52,211,153,.08); border-color: rgba(52,211,153,.22); }
.sky-public .lg-callout-info i { color: #6ee7b7; }

.sky-public .lg-contact-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.sky-public .lg-contact-links a {
  display: inline-flex; align-items: center; gap: 9px; padding: 11px 18px; border-radius: var(--r-pill);
  font-size: 13.5px; color: #eef1f6; background: var(--glass-fill-strong); border: 1px solid var(--glass-border-strong);
  transition: transform .2s ease, border-color .2s ease;
}
.sky-public .lg-contact-links a:hover { transform: translateY(-1px); border-color: rgba(255,255,255,.34); }
.sky-public .lg-contact-links a i { color: var(--color-cyan); font-size: 16px; }

.sky-public .lg-confirm {
  display: flex; gap: 14px; align-items: flex-start; margin-top: 40px;
  padding: 20px 22px; border-radius: var(--r-lg); color: #a7f3d0; line-height: 1.65; font-size: 14px;
  background: rgba(52,211,153,.08); border: 1px solid rgba(52,211,153,.24);
}
.sky-public .lg-confirm i { color: #6ee7b7; font-size: 24px; flex: 0 0 auto; }
.sky-public .lg-confirm p { color: var(--color-muted-foreground); }
