/* SunPath IQ - Stage 1 stylesheet
   Original design, warm sunset palette on a deep night-sky background. */

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: linear-gradient(180deg, #0b1226 0%, #142042 60%, #23325c 100%);
  color: #e6ebf5;
  min-height: 100vh;
}

.fsiq-app {
  max-width: 1180px;
  margin: 0 auto;
  padding: 28px 20px 60px;
}

.fsiq-header {
  text-align: center;
  margin-bottom: 28px;
}

.fsiq-header h1 {
  margin: 0;
  font-size: 2.4rem;
  letter-spacing: 0.5px;
  background: linear-gradient(90deg, #fde047, #fb923c, #f97316);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.fsiq-tag {
  margin: 6px 0 0;
  color: #9fb0d0;
  font-size: 0.95rem;
}

.fsiq-layout {
  display: grid;
  grid-template-columns: 1.1fr 1.3fr 1.1fr;
  gap: 20px;
  align-items: start;
}

@media (max-width: 980px) {
  .fsiq-layout { grid-template-columns: 1fr; }
}

.fsiq-panel {
  background: rgba(15, 23, 42, 0.55);
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 14px;
  padding: 20px;
  backdrop-filter: blur(6px);
}

.fsiq-panel h2 {
  margin: 0 0 16px;
  font-size: 1.05rem;
  color: #fbbf24;
  font-weight: 600;
}

.fsiq-field-group {
  margin-bottom: 16px;
}

.fsiq-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

label {
  display: block;
  font-size: 0.82rem;
  color: #b7c3dc;
  margin-bottom: 6px;
}

input[type="text"],
input[type="number"],
input[type="date"],
select {
  width: 100%;
  padding: 9px 10px;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(8, 14, 30, 0.7);
  color: #e6ebf5;
  font-size: 0.92rem;
}

input[type="range"] {
  width: 100%;
  accent-color: #fb923c;
}

.fsiq-inline {
  display: flex;
  gap: 8px;
}

.fsiq-inline input { flex: 1; }

.fsiq-inline button,
.fsiq-shortcuts button {
  background: linear-gradient(90deg, #f97316, #fb923c);
  color: #1a1200;
  border: none;
  border-radius: 8px;
  padding: 9px 14px;
  font-weight: 600;
  font-size: 0.85rem;
  cursor: pointer;
}

.fsiq-inline button:hover,
.fsiq-shortcuts button:hover {
  filter: brightness(1.08);
}

.fsiq-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.fsiq-shortcuts button {
  flex: 1 1 auto;
  padding: 8px 10px;
  font-size: 0.78rem;
}

.fsiq-hint {
  color: #7c8bab;
  font-size: 0.76rem;
  margin-top: 6px;
}

.fsiq-visual {
  text-align: center;
}

#fsiq-canvas {
  max-width: 100%;
  border-radius: 12px;
  background: #0b1730;
}

.fsiq-legend {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 12px;
  font-size: 0.78rem;
  color: #b7c3dc;
  flex-wrap: wrap;
}

.fsiq-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
}

.fsiq-dot-path { background: #fbbf24; }
.fsiq-dot-now { background: #ffffff; border: 1px solid #111827; }
.fsiq-dot-wall { background: #38bdf8; }

.fsiq-score-circle {
  text-align: center;
  margin-bottom: 18px;
}

#fsiq-score-value {
  font-size: 3.2rem;
  font-weight: 800;
  color: #fde047;
  line-height: 1;
}

.fsiq-score-label {
  color: #9fb0d0;
  font-size: 0.85rem;
  margin-top: 4px;
}

.fsiq-components {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
}

.fsiq-components li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 7px 0;
  border-bottom: 1px solid rgba(148, 163, 184, 0.15);
  font-size: 0.9rem;
}

.fsiq-components b {
  color: #fbbf24;
  margin-left: auto;
  margin-right: 4px;
}

.fsiq-components i {
  color: #7c8bab;
  font-style: normal;
}

.fsiq-times {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 16px;
}

.fsiq-times div {
  background: rgba(8, 14, 30, 0.6);
  border-radius: 8px;
  padding: 8px 10px;
}

.fsiq-times span {
  display: block;
  font-size: 0.72rem;
  color: #7c8bab;
}

.fsiq-times b {
  font-size: 0.92rem;
  color: #e6ebf5;
}

.fsiq-note {
  font-size: 0.74rem;
  color: #8493b3;
  line-height: 1.4;
}

.fsiq-footer {
  text-align: center;
  color: #6b7aa0;
  font-size: 0.76rem;
  margin-top: 34px;
}

/* Stage 2 additions: search bar, view toggle, 3D scene */

.fsiq-searchbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 4px;
}

.fsiq-searchbar input[type="text"] {
  flex: 1 1 320px;
  min-width: 220px;
  padding: 11px 12px;
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(8, 14, 30, 0.7);
  color: #e6ebf5;
  font-size: 0.95rem;
}

#fsiq-geocode-btn {
  background: linear-gradient(90deg, #f97316, #fb923c);
  color: #1a1200;
  border: none;
  border-radius: 10px;
  padding: 11px 20px;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
}

#fsiq-geocode-btn:hover { filter: brightness(1.08); }
#fsiq-geocode-btn:disabled { opacity: 0.6; cursor: default; }

.fsiq-viewtoggle {
  display: inline-flex;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 10px;
  overflow: hidden;
}

.fsiq-viewtoggle button {
  background: transparent;
  color: #b7c3dc;
  border: none;
  padding: 10px 16px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
}

.fsiq-viewtoggle button.fsiq-active {
  background: linear-gradient(90deg, #f97316, #fb923c);
  color: #1a1200;
}

.fsiq-searchhint { display: block; margin-bottom: 18px; }

.fsiq-stage { min-height: 520px; }

.fsiq-3d-container {
  width: 100%;
  height: 460px;
  border-radius: 12px;
  overflow: hidden;
  background: #0b1730;
}

.fsiq-3d-container canvas { display: block; width: 100%; height: 100%; }

.fsiq-3d-status { margin-top: 10px; min-height: 1.2em; }

/* Feng Shui IQ additions */
.fsiq-dot-facing { background: #f97316; }
.fsiq-dot-sitting { background: #38bdf8; }
.fsiq-explain {
  margin-top: 14px;
  padding: 12px 14px;
  background: rgba(8, 14, 30, 0.6);
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 10px;
  font-size: 0.86rem;
  line-height: 1.5;
  color: #d7dfef;
}
.fsiq-explain h3 {
  margin: 0 0 6px;
  color: #fbbf24;
  font-size: 0.92rem;
}
.fsiq-explain p { margin: 6px 0; }
.fsiq-primary {
  width: 100%;
  margin-top: 8px;
  background: linear-gradient(90deg, #f97316, #fb923c);
  color: #1a1200;
  border: none;
  border-radius: 10px;
  padding: 11px 16px;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
}
.fsiq-primary:hover { filter: brightness(1.08); }

/* ===== Luxury palette overrides (Nikolaenko Property Group alignment) ===== */
body {
  background:
    radial-gradient(1200px 600px at 20% -10%, rgba(184,134,11,0.18), transparent 60%),
    radial-gradient(1000px 500px at 100% 100%, rgba(120,90,40,0.20), transparent 55%),
    linear-gradient(180deg, #14110d 0%, #1c1814 55%, #0f0d0a 100%) !important;
  color: #f5f0ea !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.fsiq-header h1 {
  font-family: 'Playfair Display', Georgia, serif !important;
  background: linear-gradient(90deg, #e8c684, #b8860b 55%, #d4a94a) !important;
  -webkit-background-clip: text; background-clip: text; color: transparent !important;
}
.fsiq-tag { color: #c9bfae !important; }
.fsiq-panel {
  background: linear-gradient(180deg, rgba(28,24,20,0.85), rgba(20,17,13,0.85)) !important;
  border: 1px solid rgba(184,134,11,0.28) !important;
  box-shadow: 0 20px 60px -30px rgba(0,0,0,0.6);
}
.fsiq-panel h2 {
  color: #e8c684 !important;
  font-family: 'Playfair Display', Georgia, serif;
}
label { color: #c9bfae !important; letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.78rem; }
input[type="text"], input[type="number"], input[type="date"], select {
  background: rgba(15,13,10,0.75) !important;
  color: #f5f0ea !important;
  border: 1px solid rgba(184,134,11,0.35) !important;
}
button, #fsiq-geocode-btn, .fsiq-shortcuts button {
  background: linear-gradient(90deg, #b8860b, #e8c684) !important;
  color: #14110d !important;
}
.fsiq-hint, .fsiq-footer { color: #a89a80 !important; }

.fsiq-home-link {
  position: fixed; top: 16px; left: 16px; z-index: 400;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px; border-radius: 999px;
  background: linear-gradient(90deg, #b8860b, #e8c684);
  color: #14110d; text-decoration: none;
  font-weight: 700; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase;
  box-shadow: 0 10px 30px -10px rgba(0,0,0,0.5);
}
.fsiq-home-link:hover { filter: brightness(1.06); } .fsiq-shell{max-width:1180px;margin:0 auto;padding:64px 20px 60px;position:relative}.fsiq-back{position:absolute;top:16px;left:20px;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;background:linear-gradient(90deg,#b8860b,#e8c684);color:#14110d;text-decoration:none;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 10px 30px -12px rgba(0,0,0,.55)}.fsiq-back:hover{filter:brightness(1.06)}.fsiq-header{text-align:center;margin-bottom:26px}.fsiq-brand{font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;color:#c9bfae;margin-bottom:10px}.fsiq-header h1{font-size:clamp(1.9rem,4vw,2.6rem);margin:0 0 10px;line-height:1.15}.fsiq-header p{color:#c9bfae;max-width:760px;margin:0 auto;font-size:.95rem;line-height:1.55}.fsiq-grid{display:grid;grid-template-columns:.95fr 1.15fr;gap:20px;align-items:start;margin-top:20px}.fsiq-main>.fsiq-panel{margin-top:20px}.fsiq-panel h2{margin-top:22px}.fsiq-panel h2:first-child{margin-top:0}.fsiq-address-row{display:flex;gap:10px;flex-wrap:wrap}.fsiq-address-row input{flex:1 1 200px}.fsiq-address-row .fsiq-primary{width:auto;margin-top:0;flex:0 0 auto}#fsiq-facing-slider{margin-top:10px}.fsiq-stage{min-height:0}.fsiq-stage #fsiq-canvas{display:block;margin:0 auto;width:100%;max-width:420px;height:auto;aspect-ratio:1/1}.fsiq-explain{min-height:64px}.fsiq-review-card h3{font-size:.95rem;color:#e8c684;margin:0 0 8px}.fsiq-faq details{border:1px solid rgba(184,134,11,.22);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:rgba(15,13,10,.45)}.fsiq-faq summary{cursor:pointer;color:#f5f0ea}.fsiq-faq details p{color:#c9bfae;font-size:.88rem;line-height:1.55;margin:10px 0 0}.fsiq-method p{color:#d6cdbd;font-size:.9rem;line-height:1.6}.fsiq-footer{margin-top:34px}@media(max-width:980px){.fsiq-grid{grid-template-columns:1fr}}@media(max-width:520px){.fsiq-shell{padding:60px 14px 48px}.fsiq-back{left:14px}}.fsiq-header h1{-webkit-background-clip:text!important;background-clip:text!important}
