[hidden]{display:none!important}
:root {
  --ink: #18212c;
  --navy: #10243f;
  --blue: #19528b;
  --red: #c7353d;
  --paper: #ffffff;
  --mist: #eef2f5;
  --line: #dce2e8;
  --muted: #697583;
  --shadow: 0 18px 55px rgba(21, 34, 50, .15);
  --zoom: .72;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: #e9edf1;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body { min-width: 320px; min-height: 100vh; margin: 0; background: #e9edf1; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }

.app-header {
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 28px;
  background: #fff;
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 30;
}

.app-brand { display: flex; align-items: center; gap: 12px; }
.brand-mark {
  width: 46px; height: 46px; padding: 2px; border: 1px solid #dfe5ea; border-radius: 11px; display: block;
  object-fit: contain; background: #fff; box-shadow: 0 4px 10px rgba(16,36,63,.1);
}
.app-brand strong { display: block; color: var(--navy); font-size: 17px; letter-spacing: -.01em; }
.app-brand span:last-child { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.privacy-note { font-size: 12px; color: #53606d; display: flex; gap: 8px; align-items: center; }
.privacy-note > span { width: 8px; height: 8px; background: #2a9768; border-radius: 50%; box-shadow: 0 0 0 4px #e3f3ec; }
.app-tools { display:flex; align-items:center; gap:12px; }.project-status { color:#71808c; font-size:11px; max-width:230px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.library-button { display:flex; align-items:center; gap:8px; min-height:38px; padding:8px 11px; border:1px solid #cad7e1; border-radius:10px; color:var(--navy); background:#f4f8fa; font-size:11px; font-weight:800; }.library-button b { display:grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border-radius:99px; color:#fff; background:var(--blue); font-size:9px; }

.workspace { display: grid; grid-template-columns: 410px minmax(760px, 1fr); min-height: calc(100vh - 72px); }
.workspace[hidden], .home-screen[hidden] { display: none; }
.editor-panel { background: #f8fafb; border-right: 1px solid var(--line); padding: 22px; overflow-y: auto; height: calc(100vh - 72px); position: sticky; top: 72px; }
.editor-section { background: #fff; border: 1px solid #dfe5ea; border-radius: 16px; padding: 18px; margin-bottom: 14px; box-shadow: 0 4px 12px rgba(15, 28, 45, .035); }
.section-heading { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 15px; }
.section-heading h2 { margin: 1px 0 3px; font-size: 15px; color: var(--navy); }
.section-heading p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.step-number { flex: 0 0 auto; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 9px; background: #edf3f8; color: var(--blue); font-weight: 800; font-size: 12px; }

label { display: block; color: #3d4955; font-size: 12px; font-weight: 700; margin-top: 12px; }
input[type="text"], input[type="email"], input[type="url"], input[type="number"], input[type="date"], textarea, select {
  width: 100%; margin-top: 6px; padding: 10px 11px; color: var(--ink); background: #fbfcfd;
  border: 1px solid #cfd7df; border-radius: 9px; outline: none; font-size: 13px; font-weight: 500;
  transition: border .15s ease, box-shadow .15s ease, background .15s ease;
}
textarea { resize: vertical; line-height: 1.45; }
input:focus, textarea:focus, select:focus { background: #fff; border-color: #3979ae; box-shadow: 0 0 0 3px rgba(37, 99, 153, .11); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.compact-row { grid-template-columns: 1fr 112px; align-items: end; }
.button { border: 0; border-radius: 10px; min-height: 42px; padding: 10px 14px; font-weight: 800; font-size: 13px; }
.button-primary { color: #fff; background: var(--navy); box-shadow: 0 8px 18px rgba(16,36,63,.2); }
.button-primary:hover { background: #173454; }
.button-secondary { color: var(--navy); background: #e9f0f6; border: 1px solid #cddbe7; }
.button-secondary:hover { background: #dfeaf3; }
.button-quiet { color: #5d6772; background: transparent; border: 1px solid #d7dfe6; }
.button-research { width: 100%; margin-top: 14px; color: #fff; background: linear-gradient(135deg, var(--navy), #1d5f93); box-shadow: 0 9px 20px rgba(16,36,63,.18); }
.button-research:disabled { cursor: wait; opacity: .7; }
.button-small { min-height: 32px; padding: 6px 10px; color: #fff; background: var(--blue); border-radius: 8px; font-size: 11px; }
.button-danger { color: #a62f37; background: #fff0f0; border: 1px solid #efc8ca; margin-right: auto; }
.source-section { border-top: 3px solid var(--red); }
.optional-label { color: #8a949d; font-size: 9px; font-weight: 500; }
.connector-note { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 11px; background: #f2f5f7; border-radius: 10px; }
.connector-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: #fff; color: var(--blue); border: 1px solid #dce4eb; }
.connector-note strong, .connector-note small { display: block; }
.connector-note strong { font-size: 12px; color: #354351; }
.connector-note small { font-size: 10px; color: #78838e; margin-top: 2px; line-height: 1.35; }

.research-status { margin-top: 12px; padding: 11px 12px; border-radius: 10px; background: #eef5fa; color: #31536d; font-size: 11px; line-height: 1.45; }
.research-status.is-error { background: #fff1f1; color: #8c363b; }
.research-status.is-loading::before { content:""; display:inline-block; width:10px; height:10px; margin-right:8px; border:2px solid #9bb8ce; border-top-color:var(--blue); border-radius:50%; animation:spin .8s linear infinite; vertical-align:-2px; }
@keyframes spin { to { transform:rotate(360deg); } }
.research-results { margin-top: 12px; padding: 13px; border: 1px solid #cbdbe7; border-radius: 12px; background: #fbfdff; }
.result-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.result-heading > div { display:flex; align-items:center; gap:7px; color:var(--navy); font-size:12px; }
.confidence-badge { padding:3px 6px; border-radius:99px; background:#e7f4eb; color:#2c764d; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.confidence-badge.medium { background:#fff3d8; color:#8a641d; }.confidence-badge.low { background:#ffe4e4; color:#9c353a; }
.research-facts { display:grid; grid-template-columns:1fr 1fr; gap:6px 10px; margin:12px 0; }
.research-facts div { min-width:0; padding:6px 7px; background:#f1f5f7; border-radius:7px; }.research-facts dt { color:#73808b; font-size:8px; text-transform:uppercase; letter-spacing:.05em; }.research-facts dd { margin:2px 0 0; color:#263744; font-size:11px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.research-warnings { margin:8px 0; padding:8px; background:#fff8e9; border-left:3px solid #dda943; color:#715824; font-size:9px; line-height:1.4; }
.source-block { border-top:1px solid #e2e8ed; padding-top:9px; }.source-block > strong { color:#55636f; font-size:9px; text-transform:uppercase; letter-spacing:.07em; }
.source-list { display:grid; gap:5px; margin-top:6px; }.source-list a { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#17588f; font-size:9px; text-decoration:none; }.source-list a:hover { text-decoration:underline; }.source-list a span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.source-list a small { color:#87919a; flex:0 0 auto; }

.home-screen { max-width: 1040px; margin: 0 auto; padding: 36px 24px 60px; }
.home-hero { text-align: center; margin-bottom: 34px; }
.home-hero h1 { margin: 0 0 8px; font-size: 28px; color: var(--navy); }
.home-hero p { margin: 0; color: #5b6874; font-size: 13px; }
.home-section { margin-bottom: 38px; }
.home-section-heading { margin-bottom: 14px; }
.home-section-heading h2 { margin: 0 0 4px; font-size: 17px; color: var(--navy); }
.home-section-heading p { margin: 0; color: #75818b; font-size: 11.5px; }
.home-template-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.home-template-card { text-align: left; padding: 10px; border-radius: 12px; border: 1px solid #d9e0e6; background: #fff; min-width: 0; cursor: pointer; transition: box-shadow .15s ease, border-color .15s ease; }
.home-template-card:hover { border-color: var(--blue); box-shadow: 0 6px 16px rgba(25,82,139,.12); }
.home-template-card .template-thumb { height: 86px; }
.home-template-card > span:last-child { display: block; margin-top: 8px; }
.home-template-card strong, .home-template-card small { display: block; overflow: hidden; text-overflow: ellipsis; }
.home-template-card strong { font-size: 12px; color: #263544; }
.home-template-card small { font-size: 9.5px; color: #7a8691; margin-top: 2px; }
.home-saved-list { display: grid; gap: 9px; margin-bottom: 14px; }
.home-saved-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.home-saved-actions .import-button { display: grid; place-items: center; white-space: nowrap; cursor: pointer; }
.home-saved-actions .import-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }
@media (max-width: 640px) {
  .home-template-picker { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
}

.template-picker { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.template-card { text-align: left; padding: 8px; border-radius: 10px; border: 1px solid #d9e0e6; background: #fff; min-width: 0; }
.template-card.is-active { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(25,82,139,.13); background: #f7fbff; }
.template-card > span:last-child { display: block; margin-top: 7px; }
.template-card strong, .template-card small { display: block; overflow: hidden; text-overflow: ellipsis; }
.template-card strong { font-size: 11px; color: #263544; }
.template-card small { font-size: 9px; color: #7a8691; margin-top: 2px; white-space: nowrap; }
.template-thumb { position:relative; height:72px; display:grid; padding:4px; border-radius:7px; overflow:hidden; background:#eef2f4; box-shadow:inset 0 0 0 1px rgba(16,36,63,.06); }
.template-thumb i { display:block; border-radius:1px; }
.thumb-horizon{grid-template-rows:2.2fr .42fr 1fr;gap:3px}.thumb-horizon i:nth-child(1){background:linear-gradient(135deg,#70848b,#c6ceca)}.thumb-horizon i:nth-child(2){background:#10243f}.thumb-horizon i:nth-child(3){background:linear-gradient(90deg,#fff 0 36%,#dce3e7 36%)}
.thumb-curve{grid-template-rows:2fr 1.25fr;gap:0;background:#f8f6f0}.thumb-curve i:nth-child(1){grid-row:1;background:#8ea1a6;border-radius:0 0 55% 8%}.thumb-curve i:nth-child(2){position:absolute;right:8px;top:27px;width:24px;height:24px;border:3px solid #fff;border-radius:50%;background:#c5cecf}.thumb-curve i:nth-child(3){grid-row:2;margin:7px 8px;background:linear-gradient(90deg,#143f66 0 36%,#fff 36%)}
.thumb-prism{grid-template-columns:.22fr 1fr;grid-template-rows:1.8fr 1fr;gap:3px;background:#fff}.thumb-prism i:nth-child(1){grid-row:1/3;background:#c7353d}.thumb-prism i:nth-child(2){background:#819298;clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}.thumb-prism i:nth-child(3){background:linear-gradient(135deg,#e8edef 0 70%,#10243f 70%)}
.thumb-split{grid-template-columns:.76fr 1.24fr;grid-template-rows:.9fr 1.1fr;gap:3px;background:#fff}.thumb-split i:nth-child(1){grid-row:1/3;background:#71858b}.thumb-split i:nth-child(2){background:#10243f}.thumb-split i:nth-child(3){background:linear-gradient(#f4f0e8 0 38%,#dbe2e5 38%)}
.thumb-portfolio{grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr .8fr;gap:3px;padding:6px;background:#ece8df}.thumb-portfolio i:nth-child(1){grid-row:1/3;background:#75878c;box-shadow:0 2px 5px rgba(0,0,0,.18)}.thumb-portfolio i:nth-child(2){background:#b7c1c2}.thumb-portfolio i:nth-child(3){grid-column:1/3;background:linear-gradient(90deg,#fff 0 30%,#183b5e 30%)}
.thumb-ribbon{grid-template-rows:2.3fr .58fr 1fr;gap:0;padding:0;background:#f5f3ee}.thumb-ribbon i:nth-child(1){background:#84969b}.thumb-ribbon i:nth-child(2){z-index:2;width:84%;margin:-8px auto 0;background:#10243f;box-shadow:0 3px 5px rgba(0,0,0,.2)}.thumb-ribbon i:nth-child(3){margin-top:-5px;background:#fff}
.thumb-sidecar{grid-template-columns:.5fr 1.5fr;grid-template-rows:1.4fr .7fr 1fr;gap:3px;background:#fff}.thumb-sidecar i:nth-child(1){grid-row:1/4;background:#10243f}.thumb-sidecar i:nth-child(2){background:#8a9ba0}.thumb-sidecar i:nth-child(3){grid-row:2/4;background:linear-gradient(#f3efe6 0 40%,#dce3e6 40%)}
.thumb-orbit{background:#f4f1e8}.thumb-orbit i{position:absolute;border-radius:50%;border:3px solid #fff;background:#819398}.thumb-orbit i:nth-child(1){width:46px;height:46px;left:8px;top:8px}.thumb-orbit i:nth-child(2){width:28px;height:28px;right:10px;top:9px;background:#aab7b8}.thumb-orbit i:nth-child(3){width:23px;height:23px;right:17px;bottom:7px;background:#173f65}
.thumb-minimal{grid-template-columns:.8fr 1.2fr;grid-template-rows:1fr .75fr;gap:8px;padding:8px;background:#fff}.thumb-minimal i:nth-child(1){background:#10243f;height:8px;align-self:center}.thumb-minimal i:nth-child(2){grid-row:1/3;grid-column:2;background:#93a2a5}.thumb-minimal i:nth-child(3){background:#eef0ed}
.thumb-panorama{grid-template-rows:1.8fr .55fr 1fr;gap:3px;background:#fff}.thumb-panorama i:nth-child(1){background:#75898e}.thumb-panorama i:nth-child(2){background:repeating-linear-gradient(90deg,#b7c1c2 0 18%,#fff 18% 21%)}.thumb-panorama i:nth-child(3){background:linear-gradient(90deg,#10243f 0 40%,#e8edef 40%)}
.thumb-estate{grid-template-rows:1.8fr .65fr 1fr;gap:3px;padding:7px;background:#e8e1d5}.thumb-estate i:nth-child(1){background:#7e8582;box-shadow:0 2px 5px rgba(0,0,0,.2)}.thumb-estate i:nth-child(2){background:#f9f6ef;border-top:1px solid #8d806d;border-bottom:1px solid #8d806d}.thumb-estate i:nth-child(3){background:linear-gradient(90deg,#fff 0 31%,#29342f 31%)}
.thumb-obsidian{grid-template-columns:1fr .7fr;grid-template-rows:1.5fr 1fr;gap:3px;background:#111923}.thumb-obsidian i:nth-child(1){grid-column:1/3;background:linear-gradient(135deg,#46555a,#9aa4a3);clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}.thumb-obsidian i:nth-child(2){background:#c7353d}.thumb-obsidian i:nth-child(3){background:#26313c}

.upload-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.upload-tile { position: relative; min-height: 100px; margin: 0; border: 1px dashed #aebbc6; border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #f8fafb; cursor: pointer; text-align: center; }
.upload-tile:hover { border-color: var(--blue); background: #f3f8fb; }
.upload-tile input, .small-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.upload-tile span { color: var(--blue); font-size: 21px; line-height: 1; }
.upload-tile strong { color: #344250; font-size: 11px; margin-top: 6px; }
.upload-tile small { color: #87919b; font-size: 9px; margin-top: 2px; }
.upload-tile-compact { min-height: 76px; }.upload-tile-compact span{font-size:17px}.photo-position-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.clear-photo-button{width:100%;margin-top:10px;min-height:36px}
.upload-tile .tile-thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 11px; }
.upload-tile.is-filled { border-style: solid; border-color: var(--blue); }
.upload-tile.is-filled .tile-plus, .upload-tile.is-filled strong, .upload-tile.is-filled small { display: none; }
.tile-pin { position: absolute; top: 4px; left: 4px; z-index: 2; font-size: 8px; padding: 3px 7px; border-radius: 20px; border: 1px solid var(--blue); background: rgba(255,255,255,.92); color: var(--blue); cursor: pointer; line-height: 1.3; font-weight: 600; }
.tile-pin.is-active { background: var(--blue); color: #fff; }
.tile-remove { position: absolute; top: 4px; right: 4px; z-index: 2; width: 18px; height: 18px; padding: 0; border-radius: 50%; border: none; background: rgba(12,28,43,.82); color: #fff; font-size: 10px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.slider-row input { width: 100%; accent-color: var(--blue); }
.photo-candidates { margin-top:13px; padding:11px; border-radius:11px; background:#f4f7f8; border:1px solid #dbe3e7; }
.candidate-heading strong, .candidate-heading small { display:block; }.candidate-heading strong { color:var(--navy); font-size:11px; }.candidate-heading small { color:#7a8690; font-size:9px; margin-top:2px; line-height:1.35; }
.public-photo-slot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;font-size:9px}.public-photo-slot select{width:auto;min-width:145px;margin:0;padding:6px 25px 6px 8px;font-size:9px}
.photo-candidate-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:7px; margin-top:9px; max-height:320px; overflow-y:auto; }.photo-candidate { position:relative; padding:0; min-height:72px; border:2px solid transparent; border-radius:8px; overflow:hidden; background:#dce3e6; }.photo-candidate img { width:100%; height:72px; display:block; object-fit:cover; }.photo-candidate span { position:absolute; inset:auto 4px 4px; padding:3px 5px; border-radius:4px; color:#fff; background:rgba(12,28,43,.78); font-size:7px; }.photo-candidate.is-selected { border-color:var(--blue); box-shadow:0 0 0 2px rgba(25,82,139,.14); }
.permission-check { display:flex; align-items:flex-start; gap:7px; margin-top:9px; color:#596772; font-size:9px; line-height:1.35; }.permission-check input { margin-top:1px; accent-color:var(--blue); }

details.editor-section { padding: 0; }
details summary { list-style: none; padding: 16px 18px; display: grid; grid-template-columns: 26px 1fr auto; align-items: center; gap: 11px; cursor: pointer; }
details summary::-webkit-details-marker { display: none; }
details summary strong, details summary small { display: block; }
details summary strong { font-size: 14px; color: var(--navy); }
details summary small { font-size: 10px; color: var(--muted); margin-top: 3px; }
details summary b { color: #71808d; transition: transform .2s ease; }
details[open] summary b { transform: rotate(180deg); }
.details-body { border-top: 1px solid #e5eaee; padding: 0 18px 18px; }
.details-body h3 { margin: 18px 0 3px; font-size: 12px; color: var(--blue); text-transform: uppercase; letter-spacing: .08em; }
.profile-manager { margin: 8px 0 12px; padding: 11px; border: 1px solid #d8e1e8; border-radius: 10px; background: #f6f9fb; }
.profile-manager label { margin: 0; }
.profile-manager-actions { display: flex; gap: 7px; margin-top: 8px; }
.profile-manager-actions .button { flex: 1; }
.profile-manager > small { display: block; margin-top: 8px; color: #687582; line-height: 1.35; }
.profile-storage-note{margin-top:12px;padding:10px;border-radius:9px;background:#fff7e7;border-left:3px solid #d9a33b}.profile-storage-note strong,.profile-storage-note span{display:block}.profile-storage-note strong{color:#6d5423;font-size:10px}.profile-storage-note span{margin-top:3px;color:#73664e;font-size:8.5px;line-height:1.4}
.compliance-review { margin-top: 13px; padding: 12px; border: 1px solid #b8cad8; border-radius: 10px; background: #f2f7fa; }
.compliance-review > strong { color: var(--navy); font-size: 11px; }
.compliance-review > p { margin: 5px 0 9px; color: #5e6c78; font-size: 9px; line-height: 1.42; }
.compliance-review .permission-check { margin-top: 8px; }
.small-upload { display: grid; place-items: center; min-height: 39px; padding: 8px; border: 1px dashed #aebbc6; background: #f7f9fa; border-radius: 9px; cursor: pointer; }
.toggle-row { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.toggle-row input { width: 17px; height: 17px; accent-color: var(--blue); }
.warning-box { margin-top: 13px; padding: 11px; border-left: 3px solid var(--red); background: #fff5f5; color: #754149; font-size: 11px; line-height: 1.45; }
.loan-builder-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:13px; padding-top:11px; border-top:1px solid #e3e8ec; color:var(--navy); font-size:11px; }.loan-builder-actions{display:flex;gap:6px}.loan-builder-actions .button-secondary{color:var(--navy);background:#e9f0f6;border:1px solid #cddbe7}
.loan-cards { display:grid; gap:7px; margin-top:9px; }.loan-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:9px; padding:9px; border:1px solid #dce3e8; border-radius:9px; background:#f9fbfc; }.loan-card input { width:16px; height:16px; accent-color:var(--blue); }.loan-card strong, .loan-card small { display:block; }.loan-card strong { color:#273846; font-size:11px; }.loan-card small { color:#78848e; font-size:8px; margin-top:2px; }.loan-card button { border:0; color:#17609b; background:transparent; font-size:10px; font-weight:800; }
.editor-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 4px 0 28px; }
.editor-actions .button-primary { grid-column: 1 / -1; }
.editor-actions #resetSample { grid-column: 1 / -1; }

.preview-panel { min-width: 0; padding: 22px 26px 70px; overflow: auto; }
.preview-toolbar { width: min(816px, 100%); margin: 0 auto 14px; display: flex; align-items: center; justify-content: space-between; }
.preview-toolbar strong, .preview-toolbar span { display: block; }
.preview-toolbar strong { color: #31404e; font-size: 13px; }.preview-toolbar span { color: #7a8691; font-size: 10px; margin-top: 2px; }
.preview-toolbar label { display: flex; align-items: center; gap: 7px; margin: 0; }
.preview-toolbar select { width: auto; margin: 0; padding: 7px 28px 7px 9px; background: #fff; }
.canvas-stage { min-width: 816px; height: calc(1056px * var(--zoom)); display: flex; align-items: flex-start; justify-content: center; transition: height .2s ease; }
.preview-tip { text-align: center; color: #71808c; font-size: 11px; margin: 13px auto; }

.flyer {
  flex: 0 0 816px;
  width: 816px;
  height: 1056px;
  transform: scale(var(--zoom));
  transform-origin: top center;
  overflow: hidden;
  background: var(--paper);
  color: #17212b;
  box-shadow: var(--shadow);
  display: grid;
  grid-template-rows: 338px auto 1fr 58px;
  isolation: isolate;
}

.flyer-hero { position: relative; overflow: hidden; background: #cfd8dc; display: grid; grid-template-columns: 1fr; }
.hero-photo { position: relative; overflow: hidden; min-width: 0; }
.hero-photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 50%; }
.hero-photo-secondary { display: none; }
.hero-photo-detail { display:none; }
.flyer.has-detail-1 .hero-photo-detail-1,.flyer.has-detail-2 .hero-photo-detail-2,.flyer.has-detail-3 .hero-photo-detail-3,.flyer.has-detail-4 .hero-photo-detail-4{display:block}
.flyer.has-second-photo .flyer-hero { grid-template-columns: 1.08fr .92fr; gap: 8px; background: #fff; }
.flyer.has-second-photo .hero-photo-secondary { display: block; }
.flyer.has-second-photo .hero-photo-main img { object-position: 18% 50%; }
.flyer.has-second-photo .hero-photo-secondary img { object-position: 82% 50%; }
.hero-accent { position: absolute; left: 0; bottom: 0; width: 100%; height: 6px; background: var(--red); }
.hero-label { position: absolute; left: 36px; top: 30px; display: flex; gap: 10px; align-items: center; color: #fff; font-size: calc(12px * var(--fs-herolabel, 1)); font-weight: 800; letter-spacing: .07em; text-transform: uppercase; text-shadow: 0 2px 10px rgba(0,0,0,.45); }
.hero-label small:empty { display: none; }.hero-label small:not(:empty)::before { content:"•"; margin-right: 10px; }

.flyer-intro { padding: 24px 34px 18px; }
.eyebrow { margin: 0 0 6px; color: var(--red); font-size: 9px; line-height: 1; letter-spacing: .17em; text-transform: uppercase; font-weight: 900; }
/* "Featured Property" label only — kept separate from the generic .eyebrow
   rule above so scaling it doesn't also resize the "Example financing" tag,
   which reuses the same class. */
.flyer-intro .eyebrow { font-size: calc(9px * var(--fs-eyebrow, 1)); }
.flyer-intro h1 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 500; color: var(--navy); font-size: calc(32px * var(--fs-headline, 1)); line-height: 1.02; letter-spacing: -.025em; }
.property-facts { display: flex; align-items: center; gap: 11px; margin-top: 12px; padding: 9px 12px; color: #fff; background: var(--navy); font-size: 13px; }
.property-facts i { width: 1px; height: 15px; background: rgba(255,255,255,.35); }.property-facts strong { margin-left: auto; font-size: 16px; }
.property-description { margin: 12px 0 0; color: #33404c; font-size: 11.3px; line-height: 1.45; }

.flyer-bottom { min-height: 0; display: grid; grid-template-columns: 255px 1fr; gap: 18px; padding: 0 34px 17px; align-items: stretch; }
.people-column { display: grid; grid-template-rows: 1fr 1.18fr; gap: 10px; min-height: 0; }
.person-card { position: relative; display: grid; grid-template-columns: 70px 1fr; gap: 11px; align-items: center; min-height: 0; padding: 11px; border: 1px solid #dfe5e9; background: #fff; }
.person-card > img:first-child { width: 70px; height: 82px; object-fit: cover; object-position: center; align-self: start; }
.person-copy { min-width: 0; align-self: start; padding-top: 2px; }
.person-copy h2 { margin: 0 0 2px; color: var(--navy); font-family: Georgia, "Times New Roman", serif; font-size: calc(17px * var(--fs-names, 1)); line-height: 1; font-weight: 600; }
.person-copy p, .person-copy strong, .person-copy small { display: block; margin: 0; overflow-wrap: anywhere; }
.person-copy p { font-size: 8.4px; line-height: 1.32; color: #3f4a55; }.person-copy strong { font-size: 8.8px; color: var(--blue); margin-top: 4px; }.person-copy small { font-size: 7.7px; color: #65717c; line-height: 1.25; margin-top: 2px; }
.agent-card.has-company-logo { padding-bottom: 45px; }
.agent-logo { position: absolute; left: 12px; bottom: 8px; width: 68px; height: 34px; object-fit: contain; object-position: left center; }
.agent-logo.is-empty { display: none; }
.lender-card { padding-bottom: 45px; }
.lender-logo { position: absolute; left: 12px; bottom: 9px; width: 58px; height: 35px; object-fit: contain; }
.lender-card::after { content:"Mortgage financing"; position:absolute; left:82px; right:11px; bottom:15px; color:var(--navy); font-size:8px; text-transform:uppercase; letter-spacing:.12em; font-weight:800; }

.finance-panel { min-width: 0; border-top: 4px solid var(--navy); padding-top: 10px; }
.finance-heading { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 5px; }
.finance-heading h2 { margin: 0; color: var(--navy); font-family: Georgia, "Times New Roman", serif; font-size: calc(20px * var(--fs-financetitle, 1)); line-height: 1; font-weight: 500; }
.finance-heading span { color: #68747f; font-size: 7.8px; }
.edit-hint { margin: 0 0 5px; color: #7d8790; font-size: 7px; font-style: italic; }
.finance-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 7.7px; }
.finance-table th, .finance-table td { padding: 2.7px 3px; text-align: right; white-space: nowrap; }
.finance-table th:first-child { width: 27%; text-align: left; }.finance-table thead th { color:#fff; background:var(--navy); font-weight:700; }.finance-table thead th:first-child { text-align:left; }
.finance-table tbody tr:nth-child(even):not(.section-row) { background: #f3f5f6; }
.finance-table .section-row th { padding: 3px 5px; color:#fff; background:var(--blue); letter-spacing:.05em; font-weight:700; }
.finance-table .total-row { font-weight: 800; }.finance-table [contenteditable="true"] { outline: none; border-radius: 2px; }.finance-table [contenteditable="true"]:focus { background: #fff0b9; box-shadow: inset 0 0 0 1px #ddbd4b; }
.apr-note { margin: 4px 0 0; font-size: 7.5px; font-weight: 700; }
.finance-table.five-loans { font-size:6.9px; }.finance-table.five-loans th, .finance-table.five-loans td { padding-left:2px; padding-right:2px; }.finance-table.five-loans th:first-child { width:23%; }
.finance-panel.is-hidden { display: none; }
.flyer-bottom.no-finance { grid-template-columns: 1fr; }.flyer-bottom.no-finance .people-column { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }

.flyer-footer { display: grid; grid-template-columns: 52px 1fr; gap: 9px; align-items: center; padding: 8px 28px; background: var(--navy); color: #fff; }
.flyer-footer p { margin: 0; font-size: 6.4px; line-height: 1.22; color: rgba(255,255,255,.9); }
.housing-mark { display: flex; gap: 5px; align-items: center; }.housing-symbol{width:27px;height:27px;flex:0 0 auto}.housing-mark small { font-size: 5.5px; line-height: 1.05; font-weight: 800; }

/* QR badge: an opt-in overlay pinned to the bottom-right corner of Photo 2 ·
   Secondary (.hero-photo already has position:relative). z-index is set high
   enough to stay above the decorative ::after overlays some templates paint
   on top of the hero photos (curve, prism, showcase), which come later in
   paint order but should never hide the QR code once someone adds one. */
.qr-code-badge { position: absolute; right: 8px; bottom: 8px; z-index: 5; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.qr-code-badge img { width: 44px; height: 44px; object-fit: contain; background: #fff; border-radius: 4px; padding: 3px; box-shadow: 0 2px 10px rgba(8,17,25,.4); }
.qr-code-badge small { font-size: 5.6px; line-height: 1.1; font-weight: 700; color: #fff; text-align: center; padding: 1px 4px; border-radius: 3px; background: rgba(8,17,25,.6); }
.qr-code-badge.is-empty { display: none; }
.qr-code-control { margin-top: 14px; padding-top: 12px; border-top: 1px solid #e5e9ec; }
.qr-code-heading { margin-bottom: 8px; }
.qr-code-heading strong { display: block; font-size: 13px; color: #17212b; }
.qr-code-heading small { color: #697583; }

.virtual-staging-control { margin-top: 14px; padding: 12px; border-radius: 11px; background: #f4f7f8; border: 1px solid #dbe3e7; }
.virtual-staging-control .candidate-heading { margin-bottom: 6px; }
.stage-note { margin: 0 0 10px; color: #7a8690; font-size: 9.5px; line-height: 1.4; }
.stage-preview { margin-top: 12px; padding-top: 12px; border-top: 1px solid #dbe3e7; }
.stage-preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.stage-preview-grid figure { margin: 0; }
.stage-preview-grid img { width: 100%; height: 120px; object-fit: cover; border-radius: 9px; background: #e3e8eb; display: block; }
.stage-preview-grid figcaption { margin-top: 5px; text-align: center; font-size: 9.5px; font-weight: 700; color: #55636f; }

/* Luxe Editorial: the refined default with a larger masthead and restrained rules. */
.flyer.template-editorial { grid-template-rows:360px auto 1fr 58px; border-top:10px solid var(--navy); }
.template-editorial .hero-label { top:auto; bottom:24px; padding:8px 12px; background:rgba(15,31,46,.72); text-shadow:none; }
.template-editorial .flyer-intro { padding-top:21px; }.template-editorial .flyer-intro h1{font-size:34px}.template-editorial .property-facts{border-left:6px solid var(--red)}.template-editorial .flyer-bottom{padding-top:12px}

/* Gallery: a photo-led editorial spread with a two-column story block. */
.flyer.template-gallery { grid-template-rows:390px auto 1fr 58px; background:#f7f5f0; }
.template-gallery .flyer-hero { margin:18px 18px 0; gap:10px; background:#f7f5f0; }
.template-gallery.has-second-photo .flyer-hero { grid-template-columns:1.35fr .65fr; }
.template-gallery .hero-accent { left:34px; bottom:0; width:120px; height:9px; }
.template-gallery .hero-label { left:auto; right:24px; top:24px; padding:8px 11px; background:rgba(20,31,39,.72); text-shadow:none; }
.template-gallery .flyer-intro { display:grid; grid-template-columns:1.08fr .92fr; grid-template-areas:"eyebrow description" "headline description" "facts facts"; column-gap:28px; padding:22px 34px 16px; }
.template-gallery .flyer-intro .eyebrow { grid-area:eyebrow; }.template-gallery .flyer-intro h1 { grid-area:headline; font-size:29px; }.template-gallery .property-facts { grid-area:facts; }.template-gallery .property-description { grid-area:description; margin:0; padding-left:18px; border-left:1px solid #cfc8bb; font-size:10.4px; }
.template-gallery .person-card { background:#fbfaf7; border-color:#d9d3c8; }.template-gallery .flyer-footer { background:#27343d; }

/* Private Estate: warm paper, inset photography, and restrained serif typography. */
.flyer.template-estate { grid-template-rows:342px auto 1fr 58px; border:15px solid #e9e2d6; background:#fbf8f1; }
.template-estate .flyer-hero { margin:16px 16px 0; box-shadow:0 10px 28px rgba(37,42,38,.14); }
.template-estate .hero-accent { left:50%; width:76px; height:7px; transform:translateX(-50%); background:#7f1f28; }
.template-estate .hero-label { top:auto; left:50%; bottom:18px; transform:translateX(-50%); white-space:nowrap; padding:8px 14px; background:rgba(25,34,31,.76); text-shadow:none; }
.template-estate .flyer-intro { padding:22px 38px 17px; text-align:center; }
.template-estate .flyer-intro h1 { max-width:680px; margin:auto; color:#29342f; font-size:33px; letter-spacing:.01em; }
.template-estate .property-facts { justify-content:center; background:transparent; color:#29342f; border-top:1px solid #c9bdab; border-bottom:1px solid #c9bdab; }.template-estate .property-facts i{background:#b5a995}.template-estate .property-facts strong{margin-left:20px;color:#7f1f28}
.template-estate .property-description { text-align:left; color:#4a504b; }.template-estate .finance-panel { border-color:#7f1f28; }.template-estate .finance-table thead th{background:#29342f}.template-estate .finance-table .section-row th{background:#766a5b}.template-estate .flyer-footer{background:#29342f}

/* Architectural: graphic red spine with crisp modern spacing. */
.flyer.template-architectural { grid-template-rows:315px auto 1fr 58px; background:#fff; border-left:22px solid var(--red); }
.template-architectural .flyer-hero { margin:24px 34px 0 28px; clip-path:polygon(0 0,100% 0,94% 100%,0 100%); }
.template-architectural .hero-accent { display:none; }.template-architectural .hero-label { top:auto; bottom:18px; left:22px; padding:7px 10px; background:var(--navy); text-shadow:none; }
.template-architectural .flyer-intro { padding:21px 38px 15px 30px; border-bottom:1px solid #d9dfe3; }
.template-architectural .flyer-intro h1 { font-family:Inter,ui-sans-serif,sans-serif; font-weight:300; font-size:34px; letter-spacing:-.045em; }
.template-architectural .property-facts { background:#edf1f3; color:var(--navy); border-left:6px solid var(--red); }.template-architectural .property-facts i{background:#aeb9c0}.template-architectural .property-description{font-size:10.7px}.template-architectural .flyer-bottom{padding-top:15px}.template-architectural .person-card{border:0;background:#f3f5f6}.template-architectural .flyer-footer{background:#111d28}

/* Showcase: oversized photography with a floating white information card. */
.flyer.template-showcase { grid-template-rows:460px 168px 1fr 58px; background:#f4f2ed; }
.template-showcase .flyer-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,17,25,.08),rgba(8,17,25,.48)); pointer-events:none; }
.template-showcase .hero-label { z-index:2; top:32px; left:38px; }.template-showcase .hero-accent{z-index:2;height:8px}
.template-showcase .flyer-intro { z-index:3; margin:-74px 44px 0; padding:22px 28px 17px; background:#fff; box-shadow:0 18px 40px rgba(19,27,34,.18); }
.template-showcase .flyer-intro h1 { font-size:31px; }.template-showcase .property-facts{margin-top:9px}.template-showcase .property-description{font-size:9.8px;line-height:1.35;margin-top:8px}.template-showcase .flyer-bottom{padding:16px 34px 15px}.template-showcase .flyer-footer{background:#101d29}

/* Metropolitan: a genuine side-by-side brochure layout. */
.flyer.template-metropolitan { grid-template-columns:300px 1fr; grid-template-rows:300px 1fr 58px; background:#f6f3ed; }
.template-metropolitan .flyer-hero { grid-column:1; grid-row:1/3; }.template-metropolitan.has-second-photo .flyer-hero{grid-template-columns:1fr;grid-template-rows:1.12fr .88fr;gap:8px}.template-metropolitan .hero-accent{width:9px;height:100%;left:auto;right:0;top:0}.template-metropolitan .hero-label{top:auto;bottom:26px;left:22px;right:22px;display:block;padding:10px;background:rgba(10,25,38,.74);text-shadow:none}.template-metropolitan .hero-label small{display:block;margin-top:5px}.template-metropolitan .hero-label small:not(:empty)::before{display:none}
.template-metropolitan .flyer-intro { grid-column:2; grid-row:1; padding:30px 30px 18px; background:#ece7dd; }.template-metropolitan .flyer-intro h1{font-size:30px}.template-metropolitan .property-facts{display:grid;grid-template-columns:1fr 1fr;margin-top:14px;background:transparent;color:var(--navy);padding:0;gap:4px}.template-metropolitan .property-facts i{display:none}.template-metropolitan .property-facts span,.template-metropolitan .property-facts strong{margin:0;padding:6px 8px;background:#fff;font-size:10px}.template-metropolitan .property-description{font-size:9.7px;line-height:1.37;margin-top:10px}
.template-metropolitan .flyer-bottom { grid-column:2; grid-row:2; display:grid; grid-template-columns:1fr; grid-template-rows:190px 1fr; gap:14px; padding:15px 26px 14px; }.template-metropolitan .people-column{grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:8px}.template-metropolitan .person-card{grid-template-columns:54px 1fr;padding:8px;gap:7px}.template-metropolitan .person-card>img:first-child{width:54px;height:68px}.template-metropolitan .person-copy h2{font-size:13px}.template-metropolitan .person-copy p{font-size:6.8px}.template-metropolitan .person-copy strong{font-size:7px}.template-metropolitan .person-copy small{font-size:6.4px}.template-metropolitan .lender-card,.template-metropolitan .agent-card.has-company-logo{padding-bottom:38px}.template-metropolitan .lender-logo,.template-metropolitan .agent-logo{width:48px;height:27px}.template-metropolitan .lender-card::after{left:65px;font-size:6px}.template-metropolitan .finance-panel{padding-top:7px}.template-metropolitan .finance-heading h2{font-size:17px}.template-metropolitan .finance-table{font-size:6.7px}.template-metropolitan .finance-table th,.template-metropolitan .finance-table td{padding:2px}.template-metropolitan .flyer-footer{grid-column:1/3;grid-row:3;background:#163f68}

/* Coastal: airy, asymmetric, and intentionally less blue. */
.flyer.template-coastal { grid-template-rows: 358px auto 1fr 58px; border: 12px solid #fff; background: #fafaf8; }
.template-coastal .flyer-hero { margin: 18px 18px 0; border-radius: 0 46px 0 0; }
.template-coastal .hero-accent { left: auto; right: 0; width: 36%; height: 8px; background: #7da5b7; }
.template-coastal .hero-label { top: auto; bottom: 24px; left: 24px; background: rgba(16,36,63,.78); padding: 8px 12px; text-shadow: none; }
.template-coastal .flyer-intro { padding: 20px 34px 15px; }
.template-coastal .flyer-intro h1 { color: #253a48; font-size: 30px; }
.template-coastal .property-facts { color: #243746; background: #e5edef; border-left: 5px solid #7da5b7; }
.template-coastal .property-facts i { background: #9baeb7; }
.template-coastal .finance-panel { border-color: #7da5b7; }
.template-coastal .finance-table thead th { background: #335b70; }.template-coastal .finance-table .section-row th { background:#6f94a5; }
.template-coastal .flyer-footer { background:#304b5c; }
.template-coastal .eyebrow { color:#a33b43; }

/* Signature: dramatic top, restrained details, red rule. */
.flyer.template-signature { grid-template-rows: 360px auto 1fr 58px; background:#f7f6f3; }
.template-signature .flyer-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,16,27,.48),transparent 52%,rgba(7,16,27,.08)); pointer-events:none; }
.template-signature .hero-accent { height: 10px; background:#c7353d; z-index:2; }
.template-signature .hero-label { z-index:3; top:35px; left:38px; }
.template-signature .flyer-intro { background:#18212c; padding:21px 34px 18px; }
.template-signature .flyer-intro h1 { color:#fff; }.template-signature .flyer-intro .eyebrow { color:#e26468; }
.template-signature .property-facts { background:transparent; padding:9px 0 0; margin-top:10px; border-top:1px solid rgba(255,255,255,.25); }
.template-signature .property-description { color:#dfe4e8; font-size:10.8px; }
.template-signature .flyer-bottom { padding-top:16px; }
.template-signature .person-card { background:#fff; border:none; box-shadow:inset 0 0 0 1px #e0ded8; }
.template-signature .finance-panel { border-color:#c7353d; }.template-signature .finance-table thead th{background:#18212c}.template-signature .finance-table .section-row th{background:#4b5660}.template-signature .flyer-footer{background:#18212c}

/* Photo arrangements are independent of the flyer style. */
.flyer.photos-feature .flyer-hero{grid-template-columns:1fr;grid-template-rows:1fr;gap:0}.flyer.photos-feature .hero-photo-main{grid-column:1;grid-row:1}.flyer.photos-feature .hero-photo-secondary,.flyer.photos-feature .hero-photo-detail{display:none!important}
.flyer.photos-split .flyer-hero{grid-template-columns:1.08fr .92fr;grid-template-rows:1fr;gap:7px}.flyer.photos-split .hero-photo-main{grid-column:1;grid-row:1}.flyer.photos-split.has-second-photo .hero-photo-secondary{display:block;grid-column:2;grid-row:1}.flyer.photos-split .hero-photo-detail{display:none!important}.flyer.photos-split:not(.has-second-photo) .hero-photo-main{grid-column:1/-1}
.flyer.photos-mosaic .flyer-hero{grid-template-columns:1.35fr .72fr .72fr;grid-template-rows:1fr 1fr;gap:6px}.flyer.photos-mosaic .hero-photo-main{grid-column:1;grid-row:1/3}.flyer.photos-mosaic.has-second-photo .hero-photo-secondary{display:block;grid-column:2/4;grid-row:1}.flyer.photos-mosaic .hero-photo-detail-1{grid-column:2;grid-row:2}.flyer.photos-mosaic .hero-photo-detail-2{grid-column:3;grid-row:2}.flyer.photos-mosaic .hero-photo-detail-3,.flyer.photos-mosaic .hero-photo-detail-4{display:none!important}.flyer.photos-mosaic:not(.has-detail-1).has-second-photo .hero-photo-secondary{grid-row:1/3}.flyer.photos-mosaic.has-detail-1:not(.has-detail-2) .hero-photo-detail-1{grid-column:2/4}.flyer.photos-mosaic:not(.has-second-photo):not(.has-detail-1) .hero-photo-main{grid-column:1/-1}
.flyer.photos-strip .flyer-hero{display:grid;grid-template-columns:repeat(var(--photo-thumbs,1),1fr);grid-template-rows:2.35fr 1fr;gap:5px}.flyer.photos-strip .hero-photo-main{grid-column:1/-1;grid-row:1}.flyer.photos-strip.has-second-photo .hero-photo-secondary{display:block;grid-row:2}.flyer.photos-strip .hero-photo-detail{grid-row:2}.flyer.photos-strip.photo-count-1 .hero-photo-main{grid-row:1/3}
.flyer.photos-gallery .flyer-hero{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:5px}.flyer.photos-gallery .hero-photo-main{grid-column:auto;grid-row:auto}.flyer.photos-gallery.has-second-photo .hero-photo-secondary{display:block}.flyer.photos-gallery.photo-count-1{grid-template-columns:1fr;grid-template-rows:1fr}.flyer.photos-gallery.photo-count-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.flyer.photos-gallery.photo-count-3{grid-template-columns:1.35fr .65fr;grid-template-rows:1fr 1fr}.flyer.photos-gallery.photo-count-3 .hero-photo-main{grid-row:1/3}
.template-metropolitan .flyer-bottom.no-finance{grid-template-rows:1fr}

/* Twelve composition-first flyer systems. Each one changes page architecture, not just color. */
.template-horizon .hero-label,.template-curve .hero-label,.template-prism .hero-label,.template-portfolio .hero-label,.template-ribbon .hero-label,.template-orbit .hero-label,.template-panorama .hero-label,.template-estate .hero-label,.template-obsidian .hero-label{padding:8px 11px;background:rgba(9,24,38,.76);text-shadow:none;backdrop-filter:blur(4px)}

/* Horizon — panoramic image, centered story, balanced lower grid. */
.flyer.template-horizon{grid-template-rows:382px auto 1fr 58px;border-top:9px solid var(--navy);background:#fff}
.template-horizon .flyer-hero{margin:0 24px;box-shadow:0 14px 34px rgba(18,31,43,.16)}
.template-horizon .hero-label{top:auto;bottom:24px}.template-horizon .hero-accent{height:8px;width:118px;left:34px}
.template-horizon .flyer-intro{padding:22px 38px 15px}.template-horizon .flyer-intro h1{font-size:calc(35px * var(--fs-headline, 1));max-width:710px}
.template-horizon .property-facts{border-left:7px solid var(--red)}.template-horizon .property-description{columns:2;column-gap:28px;font-size:10.5px}
.template-horizon .flyer-bottom{padding-top:12px}.template-horizon .person-card{border:0;background:#f3f5f5}.template-horizon .flyer-footer{background:#0f263e}

/* Curved Gallery — sweeping photographic edge with an elevated story card. */
.flyer.template-curve{grid-template-rows:408px 202px 1fr 58px;background:#f6f2e9}
.template-curve .flyer-hero{margin:0 0 0 52px;border-radius:0 0 0 150px;box-shadow:-18px 18px 0 #dce5e6}
.template-curve .flyer-hero::after{content:"";position:absolute;right:-72px;bottom:-96px;width:245px;height:205px;border:34px solid rgba(255,255,255,.88);border-radius:50%;pointer-events:none;z-index:2}
.template-curve .hero-accent{left:auto;right:0;bottom:0;width:38%;height:11px}.template-curve .hero-label{left:34px;top:28px;z-index:3}
.template-curve .flyer-intro{z-index:4;margin:-36px 46px 0 96px;padding:21px 26px 17px;background:#fff;box-shadow:0 18px 44px rgba(37,45,49,.14)}
.template-curve .flyer-intro h1{font-size:calc(31px * var(--fs-headline, 1))}.template-curve .property-facts{margin-left:-54px;background:#24465f;border-left:7px solid var(--red)}
.template-curve .property-description{font-size:10.1px;line-height:1.38}.template-curve .flyer-bottom{padding:13px 40px 16px}.template-curve .finance-panel{border-color:#6f92a2}.template-curve .finance-table thead th{background:#24465f}.template-curve .flyer-footer{background:#24465f}

/* Prism — angular masks, modern type, and a graphic color spine. */
.flyer.template-prism{grid-template-rows:337px auto 1fr 58px;border-left:24px solid var(--red);background:#fff}
.template-prism .flyer-hero{margin:23px 35px 0 27px;clip-path:polygon(0 0,100% 0,92% 100%,0 88%)}
.template-prism .flyer-hero::after{content:"";position:absolute;right:-1px;bottom:-1px;width:118px;height:100%;background:linear-gradient(150deg,transparent 0 48%,rgba(16,36,63,.94) 49%);pointer-events:none;z-index:2}
.template-prism .hero-accent{display:none}.template-prism .hero-label{left:23px;top:auto;bottom:40px;z-index:3;background:var(--navy)}
.template-prism .flyer-intro{padding:17px 42px 15px 29px;border-bottom:1px solid #dce2e5}.template-prism .flyer-intro h1{font-family:Inter,ui-sans-serif,sans-serif;font-weight:300;font-size:calc(35px * var(--fs-headline, 1));letter-spacing:-.045em}
.template-prism .property-facts{background:#eef2f3;color:var(--navy);border-left:7px solid var(--red)}.template-prism .property-facts i{background:#b7c1c7}
.template-prism .property-description{font-size:10.4px}.template-prism .flyer-bottom{padding:14px 38px 16px 29px}.template-prism .person-card{border:0;background:#f2f4f5}.template-prism .flyer-footer{background:#111d28}

/* Editorial Split — full-height photo column and compact right-hand publication grid. */
.flyer.template-split{grid-template-columns:315px 501px;grid-template-rows:318px 680px 58px;background:#f4f0e8}
.template-split .flyer-hero{grid-column:1;grid-row:1/3}.template-split .hero-accent{width:10px;height:100%;left:auto;right:0;top:0}.template-split .hero-label{left:24px;right:25px;top:auto;bottom:30px;display:block;padding:12px;background:rgba(11,28,43,.78);text-shadow:none}.template-split .hero-label small{display:block;margin-top:5px}.template-split .hero-label small:not(:empty)::before{display:none}
.template-split .flyer-intro{grid-column:2;grid-row:1;padding:31px 31px 17px}.template-split .flyer-intro h1{font-size:calc(31px * var(--fs-headline, 1))}.template-split .property-facts{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:0;background:transparent;color:var(--navy)}.template-split .property-facts i{display:none}.template-split .property-facts span,.template-split .property-facts strong{margin:0;padding:7px 8px;background:#fff;font-size:10px}.template-split .property-description{font-size:9.7px;line-height:1.38}
.template-split .flyer-bottom{grid-column:2;grid-row:2;grid-template-columns:1fr;grid-template-rows:192px 1fr;gap:14px;padding:15px 27px}.template-split .people-column{grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:8px}.template-split .person-card{grid-template-columns:54px 1fr;padding:8px;gap:7px}.template-split .person-card>img:first-child{width:54px;height:68px}.template-split .person-copy h2{font-size:calc(13px * var(--fs-names, 1))}.template-split .person-copy p{font-size:6.8px}.template-split .person-copy strong{font-size:7px}.template-split .person-copy small{font-size:6.2px}.template-split .lender-card,.template-split .agent-card.has-company-logo{padding-bottom:38px}.template-split .lender-logo,.template-split .agent-logo{width:47px;height:27px}.template-split .lender-card::after{left:64px;font-size:6px}.template-split .finance-panel{padding-top:7px}.template-split .finance-heading h2{font-size:calc(17px * var(--fs-financetitle, 1))}.template-split .finance-table{font-size:6.7px}.template-split .finance-table th,.template-split .finance-table td{padding:2px}.template-split .flyer-footer{grid-column:1/3;grid-row:3;background:#163f68}

/* Portfolio — inset framed photography and a two-column magazine story. */
.flyer.template-portfolio{grid-template-rows:392px auto 1fr 58px;background:#eeeae2;border:0;box-shadow:var(--shadow),inset 0 0 0 13px #eeeae2}
.template-portfolio .flyer-hero{margin:15px 15px 0;padding:8px;gap:8px;background:#fff;box-shadow:0 15px 34px rgba(45,42,35,.15)}
.template-portfolio .hero-photo{box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.template-portfolio .hero-accent{left:8px;bottom:8px;width:120px;height:8px}.template-portfolio .hero-label{top:24px;left:24px}
.template-portfolio .flyer-intro{display:grid;grid-template-columns:1.05fr .95fr;grid-template-areas:"eyebrow description" "headline description" "facts facts";gap:0 27px;padding:22px 31px 16px}.template-portfolio .eyebrow{grid-area:eyebrow}.template-portfolio .flyer-intro h1{grid-area:headline;font-size:calc(29px * var(--fs-headline, 1))}.template-portfolio .property-facts{grid-area:facts}.template-portfolio .property-description{grid-area:description;margin:0;padding-left:18px;border-left:1px solid #c8c0b2;font-size:10px}
.template-portfolio .flyer-bottom{padding:12px 31px 15px}.template-portfolio .person-card{border-color:#d4cdbf;background:#f9f7f2}.template-portfolio .flyer-footer{background:#263640}

/* Modern Ribbon — dramatic photography with the headline floating across the seam. */
.flyer.template-ribbon{grid-template-rows:430px 190px 378px 58px;background:#f2f1ed}
.template-ribbon .flyer-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,28,.03),rgba(8,18,28,.46));pointer-events:none}.template-ribbon .hero-accent{height:9px;z-index:3}.template-ribbon .hero-label{z-index:3;top:31px;left:39px}
.template-ribbon .flyer-intro{z-index:4;transform:translateY(-62px);margin:0 48px -62px;padding:22px 28px 17px;background:#fff;box-shadow:0 22px 46px rgba(16,26,34,.21);border-top:9px solid var(--navy)}
.template-ribbon .flyer-intro h1{font-size:calc(31px * var(--fs-headline, 1))}.template-ribbon .property-facts{margin:11px -28px 0;padding-left:28px;padding-right:28px;background:var(--navy)}.template-ribbon .property-description{font-size:9.9px;line-height:1.38}
.template-ribbon .flyer-bottom{padding:14px 36px}.template-ribbon .person-card{border:0;box-shadow:inset 0 0 0 1px #dddeda}.template-ribbon .flyer-footer{background:#101d29}

/* Sidecar — a true left profile rail with property and financing on the right. */
.flyer.template-sidecar{grid-template-columns:232px 584px;grid-template-rows:360px 238px 400px 58px;background:#f8f7f3}
.template-sidecar .flyer-hero{grid-column:2;grid-row:1}.template-sidecar .hero-accent{height:9px}.template-sidecar .hero-label{top:auto;bottom:23px;left:25px;padding:8px 10px;background:rgba(10,27,43,.76);text-shadow:none}
.template-sidecar .flyer-intro{grid-column:2;grid-row:2;padding:24px 30px 14px}.template-sidecar .flyer-intro h1{font-size:calc(29px * var(--fs-headline, 1))}.template-sidecar .property-facts{font-size:10px;padding:8px 10px}.template-sidecar .property-description{font-size:9.3px;line-height:1.34;margin-top:9px}
.template-sidecar .flyer-bottom{display:contents}.template-sidecar .people-column{grid-column:1;grid-row:1/4;padding:34px 17px 25px;background:var(--navy);grid-template-rows:1fr 1.08fr;gap:18px}.template-sidecar .person-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:15px 13px 56px;border:0;background:#fff}.template-sidecar .person-card>img:first-child{width:92px;height:108px;border-radius:46px;align-self:center}.template-sidecar .person-copy h2{font-size:calc(18px * var(--fs-names, 1))}.template-sidecar .person-copy p{font-size:8px}.template-sidecar .person-copy strong{font-size:8.3px}.template-sidecar .person-copy small{font-size:7px}.template-sidecar .agent-logo,.template-sidecar .lender-logo{left:14px;bottom:12px;width:68px;height:37px}.template-sidecar .lender-card::after{left:91px;bottom:24px;font-size:6px}
.template-sidecar .finance-panel{grid-column:2;grid-row:3;margin:8px 30px 15px;padding-top:8px}.template-sidecar .finance-heading h2{font-size:calc(18px * var(--fs-financetitle, 1))}.template-sidecar .finance-table{font-size:7px}.template-sidecar .finance-table th,.template-sidecar .finance-table td{padding:2.2px}.template-sidecar .flyer-footer{grid-column:1/3;grid-row:4;background:#0c1c2e}

/* Orbit — circular image collection inspired by luxury lookbooks. */
.flyer.template-orbit{grid-template-rows:400px 205px 1fr 58px;background:#f5f1e8}
.template-orbit .flyer-hero{margin:22px 38px 0;padding:12px 22px 15px;gap:13px;background:transparent;overflow:visible}.template-orbit .hero-photo{border:7px solid #fff;border-radius:50%;box-shadow:0 12px 28px rgba(31,42,47,.18)}.template-orbit .hero-photo-main{z-index:2}.template-orbit .hero-photo-secondary,.template-orbit .hero-photo-detail{transform:scale(.88)}
.template-orbit .hero-accent{left:50%;bottom:4px;width:100px;height:8px;transform:translateX(-50%)}.template-orbit .hero-label{left:50%;top:auto;bottom:22px;transform:translateX(-50%);z-index:4;white-space:nowrap}
.template-orbit .flyer-intro{padding:23px 48px 16px;text-align:center}.template-orbit .flyer-intro h1{font-size:calc(32px * var(--fs-headline, 1))}.template-orbit .property-facts{justify-content:center;background:transparent;color:var(--navy);border-top:1px solid #b8ad9a;border-bottom:1px solid #b8ad9a}.template-orbit .property-facts i{background:#b8ad9a}.template-orbit .property-facts strong{margin-left:20px;color:var(--red)}.template-orbit .property-description{text-align:left;font-size:10px;line-height:1.38}
.template-orbit .flyer-bottom{padding:10px 38px 15px}.template-orbit .person-card{background:#fff;border:0}.template-orbit .flyer-footer{background:#28404b}

/* Quiet Luxury — strong white space with a compact image/content diptych. */
.flyer.template-minimal{grid-template-columns:302px 514px;grid-template-rows:360px 638px 58px;background:#fff}
.template-minimal .flyer-intro{grid-column:1;grid-row:1;padding:43px 24px 24px 38px}.template-minimal .flyer-intro::before{content:"";display:block;width:58px;height:5px;margin-bottom:21px;background:var(--red)}.template-minimal .flyer-intro h1{font-family:Inter,ui-sans-serif,sans-serif;font-weight:300;font-size:calc(31px * var(--fs-headline, 1));letter-spacing:-.04em}.template-minimal .property-facts{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-top:18px;padding:0;background:transparent;color:var(--navy)}.template-minimal .property-facts i{display:none}.template-minimal .property-facts span,.template-minimal .property-facts strong{margin:0;padding:6px 0;font-size:9px;border-bottom:1px solid #d7dde0}.template-minimal .property-description{font-size:8.7px;line-height:1.35}
.template-minimal .flyer-hero{grid-column:2;grid-row:1;margin:30px 31px 22px 0}.template-minimal .hero-accent{width:7px;height:100%;left:0;top:0}.template-minimal .hero-label{left:20px;top:auto;bottom:18px;padding:7px 9px;background:rgba(12,27,41,.72);text-shadow:none}
.template-minimal .flyer-bottom{grid-column:1/3;grid-row:2;padding:24px 38px 18px;border-top:1px solid #e2e5e6}.template-minimal .person-card{border:0;background:#f5f6f5}.template-minimal .finance-panel{border-top:1px solid #8d999e}.template-minimal .flyer-footer{grid-column:1/3;grid-row:3;background:#1d2932}

/* Panorama — cinematic upper image and compact publication-style information. */
.flyer.template-panorama{grid-template-rows:350px auto 1fr 58px;background:#fff}
.template-panorama .flyer-hero{margin:20px 0 0}.template-panorama .hero-accent{height:10px;background:linear-gradient(90deg,var(--navy) 0 67%,var(--red) 67%)}.template-panorama .hero-label{left:37px;top:27px}
.template-panorama .flyer-intro{display:grid;grid-template-columns:.95fr 1.05fr;grid-template-areas:"eyebrow description" "headline description" "facts facts";column-gap:30px;padding:21px 38px 15px}.template-panorama .eyebrow{grid-area:eyebrow}.template-panorama .flyer-intro h1{grid-area:headline;font-size:calc(29px * var(--fs-headline, 1))}.template-panorama .property-facts{grid-area:facts}.template-panorama .property-description{grid-area:description;margin:0;padding-left:18px;border-left:1px solid #d9dfe2;font-size:10px}
.template-panorama .flyer-bottom{padding:11px 38px 16px}.template-panorama .people-column{grid-template-rows:1fr 1fr}.template-panorama .flyer-footer{background:#123450}

/* Private Estate — warm gallery framing and restrained serif detailing. */
.flyer.template-estate{grid-template-rows:350px auto 1fr 58px;border:0;background:#fbf8f1;box-shadow:var(--shadow),inset 0 0 0 14px #e8e0d3}
.template-estate .flyer-hero{margin:15px 15px 0;box-shadow:0 13px 31px rgba(37,42,38,.15)}.template-estate .hero-accent{left:50%;width:78px;height:7px;transform:translateX(-50%);background:#7f1f28}.template-estate .hero-label{top:auto;left:50%;bottom:18px;transform:translateX(-50%);white-space:nowrap}
.template-estate .flyer-intro{padding:22px 38px 16px;text-align:center}.template-estate .flyer-intro h1{max-width:690px;margin:auto;color:#29342f;font-size:calc(33px * var(--fs-headline, 1));letter-spacing:.005em}.template-estate .property-facts{justify-content:center;background:transparent;color:#29342f;border-top:1px solid #c9bdab;border-bottom:1px solid #c9bdab}.template-estate .property-facts i{background:#b5a995}.template-estate .property-facts strong{margin-left:20px;color:#7f1f28}.template-estate .property-description{text-align:left;color:#4a504b;font-size:10.3px}.template-estate .flyer-bottom{padding-top:10px}.template-estate .finance-panel{border-color:#7f1f28}.template-estate .finance-table thead th{background:#29342f}.template-estate .finance-table .section-row th{background:#766a5b}.template-estate .flyer-footer{background:#29342f}

/* Obsidian — dark editorial field, sharp crop, and bright white information cards. */
.flyer.template-obsidian{grid-template-rows:382px 214px 402px 58px;background:#18212c}
.template-obsidian .flyer-hero{margin:0 0 0 42px;clip-path:polygon(0 0,100% 0,91% 100%,0 100%)}.template-obsidian .flyer-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,12,19,.48),transparent 54%,rgba(5,12,19,.08));pointer-events:none}.template-obsidian .hero-accent{height:10px;z-index:3}.template-obsidian .hero-label{z-index:4;top:34px;left:34px}
.template-obsidian .flyer-intro{padding:22px 39px 17px;background:#18212c}.template-obsidian .flyer-intro h1{color:#fff;font-family:Inter,ui-sans-serif,sans-serif;font-weight:300;font-size:calc(34px * var(--fs-headline, 1));letter-spacing:-.035em}.template-obsidian .flyer-intro .eyebrow{color:#ec6b70}.template-obsidian .property-facts{padding:9px 0;background:transparent;border-top:1px solid rgba(255,255,255,.23);border-bottom:1px solid rgba(255,255,255,.23)}.template-obsidian .property-description{color:#d9e0e4;font-size:10px;line-height:1.37}
.template-obsidian .flyer-bottom{padding:15px 37px;background:#f3f2ee}.template-obsidian .person-card{border:0;background:#fff}.template-obsidian .finance-panel{border-color:var(--red)}.template-obsidian .finance-table thead th{background:#18212c}.template-obsidian .finance-table .section-row th{background:#4b5660}.template-obsidian .flyer-footer{background:#0d151d}

/* Compact handling when financing is intentionally hidden in column-based compositions. */
.template-split .flyer-bottom.no-finance{grid-template-rows:1fr}.template-sidecar .finance-panel.is-hidden{display:none}.template-sidecar .flyer-bottom.no-finance .people-column{grid-template-columns:1fr;grid-template-rows:1fr 1.08fr}

.text-style-panel { margin-top: 16px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.text-style-heading { margin-bottom: 9px; }
.text-style-heading strong { display: block; color: var(--navy); font-size: 12px; }
.text-style-heading small { color: #78848f; font-size: 10px; }
.text-style-hint { display: block; margin-top: 9px; color: #78848f; font-size: 9.5px; line-height: 1.4; }

.library-button.signout-button { color: #5b6874; background: transparent; border: 1px solid var(--line); font-weight: 700; }

.toast { position: fixed; right: 24px; bottom: 24px; max-width: 350px; padding: 13px 16px; color: #fff; background: #18212c; border-radius: 10px; box-shadow: 0 14px 30px rgba(0,0,0,.22); font-size: 12px; transform: translateY(18px); opacity: 0; pointer-events: none; transition: .2s ease; z-index: 100; }
.toast.is-visible { transform: translateY(0); opacity: 1; }

.loan-dialog { width:min(650px, calc(100% - 28px)); border:0; border-radius:16px; padding:0; box-shadow:0 28px 80px rgba(13,25,39,.3); }.loan-dialog::backdrop { background:rgba(11,22,34,.62); backdrop-filter:blur(3px); }.loan-dialog form { padding:21px; }.dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; border-bottom:1px solid #e2e7eb; padding-bottom:13px; }.dialog-heading h2 { margin:0; color:var(--navy); font:500 25px/1 Georgia, serif; }.dialog-close { border:0; background:#eef2f4; color:#5b6874; width:31px; height:31px; border-radius:9px; font-size:20px; line-height:1; }.dialog-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; }.dialog-note { margin:15px 0 0; padding:10px; color:#6d5a32; background:#fff8e8; border-radius:8px; font-size:10px; line-height:1.45; }.dialog-actions { display:flex; align-items:center; gap:8px; margin-top:16px; padding-top:14px; border-top:1px solid #e2e7eb; }
.rate-dashboard-dialog { width:min(1040px, calc(100% - 28px)); max-height:calc(100vh - 34px); overflow:auto; border:0; border-radius:16px; padding:21px; box-shadow:0 28px 80px rgba(13,25,39,.3); }.rate-dashboard-dialog::backdrop{background:rgba(11,22,34,.68);backdrop-filter:blur(3px)}
.dashboard-tabs{display:flex;margin:16px 0 0;border-bottom:1px solid #dce3e8}.dashboard-tabs button{padding:10px 16px;border:1px solid transparent;border-bottom:0;border-radius:9px 9px 0 0;background:transparent;color:#5d6872;font-weight:800}.dashboard-tabs button.is-active{color:var(--navy);background:#edf3f7;border-color:#d3dde5}
.dashboard-panel{padding-top:16px}.dashboard-intro{margin-bottom:13px}.dashboard-intro strong{color:var(--navy);font-size:13px}.dashboard-intro p{margin:4px 0 0;color:#6d7984;font-size:10px;line-height:1.45}.dashboard-columns{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.dashboard-card{border:1px solid #dce3e8;border-radius:12px;overflow:hidden;background:#fff}.dashboard-card>h3{margin:0;padding:11px 14px;color:#fff;background:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.dashboard-card>label{margin:12px 14px 0}.dashboard-help{display:block;margin:6px 14px 11px;color:#78848f;font-size:9px;line-height:1.4}.rate-product-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 14px 14px}.rate-product-row{display:grid;grid-template-columns:1fr 70px 70px;gap:5px;align-items:end;padding:8px;border:1px solid #e0e6ea;border-radius:9px;background:#f9fbfc}.rate-product-row strong{align-self:center;color:#2e3d49;font-size:9px}.rate-product-row label{margin:0;color:#7a8690;font-size:7px;text-transform:uppercase}.rate-product-row input{margin-top:3px;padding:7px;font-size:10px}.rate-preview-grid{display:grid;grid-template-columns:1fr 1fr}.rate-preview-item{padding:16px 10px;text-align:center;border-right:1px solid #e1e6e9;border-bottom:1px solid #e1e6e9}.rate-preview-item:nth-child(even){border-right:0}.rate-preview-item strong,.rate-preview-item span,.rate-preview-item small{display:block}.rate-preview-item strong{font-size:10px}.rate-preview-item span{margin-top:5px;color:#146694;font-size:22px;font-weight:800}.rate-preview-item small{margin-top:3px;color:#7b8790;font-size:8px}.dashboard-caution{display:grid;gap:3px;margin:14px;padding:11px;border-left:3px solid var(--red);background:#fff3f3;color:#71454a}.dashboard-caution strong{font-size:10px}.dashboard-caution span{font-size:9px;line-height:1.4}.dashboard-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px;padding-top:14px;border-top:1px solid #e2e7eb}.dashboard-auto{margin:0 0 13px;padding:11px;border-radius:9px;background:#eef4f8}.price-band-list{display:grid;gap:9px}.price-band-row{display:grid;grid-template-columns:115px 115px 1fr auto;gap:9px;align-items:end;padding:10px;border:1px solid #dce3e8;border-radius:11px;background:#fafcfd}.price-band-row label{margin:0}.price-band-products{display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-height:38px}.price-band-products label{display:flex;align-items:center;gap:4px;margin:0;padding:6px 7px;border:1px solid #d7e0e6;border-radius:7px;background:#fff;font-size:8px}.price-band-products input{accent-color:var(--blue)}.remove-price-band{min-height:38px;padding:7px 9px;border:1px solid #e5c7c9;border-radius:8px;color:#9c343b;background:#fff5f5;font-size:10px;font-weight:800}
.project-dialog { width:min(760px, calc(100% - 28px)); max-height:min(760px, calc(100vh - 40px)); border:0; border-radius:16px; padding:20px; box-shadow:0 28px 80px rgba(13,25,39,.3); }.project-dialog::backdrop { background:rgba(11,22,34,.62); backdrop-filter:blur(3px); }.library-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 0; }.library-actions p { margin:0; color:#687581; font-size:10px; line-height:1.4; }.import-button { display:grid; place-items:center; white-space:nowrap; cursor:pointer; }.import-button input { position:absolute; width:1px; height:1px; opacity:0; }.project-list { display:grid; gap:9px; max-height:530px; overflow:auto; padding-right:3px; }.project-empty { padding:35px 15px; border:1px dashed #cbd5dd; border-radius:12px; text-align:center; color:#75818b; font-size:11px; }.project-item { display:grid; grid-template-columns:86px minmax(0,1fr) auto; gap:12px; align-items:center; padding:10px; border:1px solid #dce3e8; border-radius:12px; background:#fbfcfd; }.project-item img { width:86px; height:62px; border-radius:8px; object-fit:cover; background:#e3e8eb; }.project-copy { min-width:0; }.project-copy strong, .project-copy span, .project-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.project-copy strong { color:var(--navy); font-size:12px; }.project-copy span { color:#53616d; font-size:9px; margin-top:3px; }.project-copy small { color:#8a949c; font-size:8px; margin-top:3px; }.project-item-actions { display:grid; grid-template-columns:1fr 1fr; gap:5px; }.project-item-actions button { border:1px solid #d2dce4; border-radius:7px; padding:6px 8px; color:#315470; background:#fff; font-size:9px; font-weight:700; }.project-item-actions .delete-project { color:#9b353b; }

@media (max-width: 1120px) {
  .workspace { grid-template-columns: 380px minmax(700px, 1fr); }
  .editor-panel { padding: 17px; }
  .preview-panel { padding-left: 18px; padding-right: 18px; }
}

@media (max-width: 820px) {
  .app-header { position: static; padding: 0 16px; }.privacy-note, .project-status { display:none; }.library-button { padding:7px 9px; }
  .workspace { display: block; }.editor-panel { position: static; height: auto; border-right:0; padding:14px; }.preview-panel { overflow-x:auto; padding: 18px 0 60px; }
  .preview-toolbar { padding: 0 14px; }.canvas-stage { justify-content: flex-start; padding-left: 14px; }.preview-tip { text-align:left; padding-left:14px; }
  .dialog-grid { grid-template-columns:1fr; }
  .dashboard-columns{grid-template-columns:1fr}.rate-product-grid{grid-template-columns:1fr}.price-band-row{grid-template-columns:1fr 1fr}.price-band-products{grid-column:1/-1}.remove-price-band{grid-column:1/-1}
}

@page { size: Letter portrait; margin: 0; }
@media print {
  html, body { width: 8.5in; height: 11in; margin:0 !important; padding:0 !important; background:#fff !important; }
  .app-header, .home-screen, .editor-panel, .preview-toolbar, .preview-tip, .toast { display:none !important; }
  .workspace, .preview-panel, .canvas-stage { display:block !important; width:8.5in !important; height:11in !important; min-width:0 !important; margin:0 !important; padding:0 !important; overflow:visible !important; }
  .flyer { width:8.5in !important; height:11in !important; transform:none !important; box-shadow:none !important; margin:0 !important; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .edit-hint { visibility:hidden; }
}

/* Temporary buydown (1-0 / 2-1 / 3-2-1) */
.buydown-fields { margin:14px 0 0; padding:10px 12px 12px; border:1px solid #d9e2e8; border-radius:10px; background:#f7fafc; }
.buydown-fields legend { padding:0 6px; color:var(--navy); font-weight:700; font-size:12px; }
.buydown-fields legend small { color:#6b7783; font-weight:500; }
.buydown-preview { grid-column:1 / -1; margin:8px 0 0; padding:9px 10px; border-radius:8px; background:#fff; border:1px dashed #b9c8d3; color:#22384d; font-size:11px; line-height:1.55; white-space:pre-line; }
.buydown-help { margin:8px 0 0; color:#5d6b77; font-size:10px; line-height:1.45; }
.buydown-fields select:disabled, .buydown-fields input:disabled { opacity:.55; }
.finance-table .buydown-row th, .finance-table .buydown-row td { color:#123a5e; }
.finance-table .buydown-pay-row td { font-weight:700; }
.finance-table tbody tr.buydown-row:first-of-type, .finance-table tr.total-row + tr.buydown-row th, .finance-table tr.total-row + tr.buydown-row td { border-top:1.5px solid var(--red, #c7353d); }
.finance-table.has-buydown th, .finance-table.has-buydown td { padding-top:1.1px !important; padding-bottom:1.1px !important; line-height:1.18; }
.finance-table.has-buydown .section-row th { padding-top:1.6px !important; padding-bottom:1.6px !important; }
.finance-table.has-buydown + .apr-note { margin-top:2px; font-size:6.8px; }
.buydown-note { margin:1px 0 0; font-size:6.4px; line-height:1.25; color:#3d4954; }
.buydown-note[hidden] { display:none; }

/* v6 — financing tools parity (Rent vs Own, Pre-Qual, MI, 2nd loans, credits) */
.flyer.hide-agent .agent-card, .flyer.hide-lender .lender-card { display:none !important; }
.flyer.hide-agent .people-column, .flyer.hide-lender .people-column { grid-template-rows:1fr !important; grid-template-columns:1fr !important; }
.finance-table.is-dense th, .finance-table.is-dense td { padding-top:1.1px !important; padding-bottom:1.1px !important; line-height:1.18; }
.finance-table.is-dense .section-row th { padding-top:1.6px !important; padding-bottom:1.6px !important; }
#panelNote { margin-top:2px; }
.limit-status { margin:-2px 0 10px; padding:7px 9px; border-radius:8px; background:#eef4f9; color:#22384d; font-size:11px; line-height:1.4; }
.loan-warning { display:block; color:#b4232d !important; font-weight:700; }
.report-mode-box { margin:10px 0 12px; padding:10px 12px; border:1px solid #d9e2e8; border-radius:10px; background:#f7fafc; }
.mode-options { margin-top:8px; display:grid; gap:6px; }
.mode-options[hidden] { display:none; }
.mode-help { color:#5d6b77; font-size:10.5px; line-height:1.4; }
.rate-fee-row { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3, 1fr); gap:6px; }
.rate-fee-row label { font-size:7px; }
.loan-dialog form { max-height:calc(100vh - 40px); overflow-y:auto; }
.buydown-fields select:disabled, .buydown-fields input:disabled { opacity:.55; }

/* v15 — buydown spotlight (replaces the panel heading when a buydown is shown) */
.finance-panel.has-buydown-banner .finance-heading > div:first-child, .finance-panel.has-buydown-banner .edit-hint { display:none; }
.finance-panel.has-buydown-banner .finance-heading { justify-content:flex-end; margin-bottom:1px; }
.buydown-banner { display:flex; justify-content:space-between; align-items:center; gap:8px; margin:0 0 3px; padding:4px 8px; border-radius:4px; background:var(--navy, #10243f); color:#fff; border-left:4px solid var(--red, #c7353d); print-color-adjust:exact; -webkit-print-color-adjust:exact; }
.buydown-banner[hidden] { display:none; }
.buydown-banner-title { display:grid; gap:1px; }
.buydown-banner-title span { font-size:6.2px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:#ffc9cc; }
.buydown-banner-title strong { font-size:calc(15px * var(--fs-financetitle, 1)); line-height:1.05; font-weight:800; letter-spacing:-.01em; white-space:nowrap; }
.buydown-banner-list { display:grid; gap:2px; }
.buydown-chip { display:grid; grid-template-columns:auto auto; column-gap:5px; align-items:baseline; justify-content:end; font-size:6.5px; line-height:1.2; text-align:right; }
.buydown-chip b { font-weight:800; color:#ffc9cc; }
.buydown-chip span { font-weight:800; }
.buydown-chip small { grid-column:1 / -1; font-size:5.9px; color:#dbe5ef; }
.finance-table .buydown-split-row td { font-weight:800; }
.finance-panel.has-buydown-banner .finance-table .buydown-pay-row td { color:var(--red, #c7353d) !important; }
/* v15.1 — clear separation between "Year 1:" label and the rate */
.buydown-chip .buydown-steps { display:inline-flex; gap:3px; }
.buydown-step { display:inline-flex; align-items:baseline; gap:2px; padding:0 3px; border-radius:2px; background:rgba(255,255,255,.12); white-space:nowrap; }
.buydown-step em { font-style:normal; font-weight:600; font-size:5.6px; color:#c9d6e3; }
.buydown-step strong { font-weight:800; font-size:6.8px; color:#fff; }
.buydown-step:last-child { background:transparent; }
.buydown-step:last-child strong { font-weight:700; color:#dbe5ef; }
