:root{
  --bg:#f4f7fb;
  --surface:#ffffff;
  --surface-alt:#eef4fb;
  --ink:#163042;
  --muted:#5f7283;
  --line:#d7e1ea;
  --primary:#184f8c;
  --primary-dark:#12395f;
  --accent:#0f7a70;
  --success:#2f855a;
  --warning:#c05621;
  --danger:#c53030;
  --shadow:0 18px 46px rgba(11,34,58,.08);
  --radius:22px;
  --radius-sm:16px;
  --radius-xs:12px;
}

*{box-sizing:border-box}
html{font-size:18px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  margin:0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(24,79,140,.08), transparent 34%),
    radial-gradient(circle at top right, rgba(15,122,112,.08), transparent 26%),
    var(--bg);
  line-height:1.65;
}
body.font-large{font-size:1.08rem}
body.font-largest{font-size:1.18rem}
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{
  animation:none!important;
  transition:none!important;
  scroll-behavior:auto!important;
}
body.contrast-high{
  --surface:#fff;
  --surface-alt:#fff9d7;
  --ink:#111;
  --muted:#1f2933;
  --line:#222;
  --shadow:none;
}
body.contrast-dark{
  --bg:#0f1720;
  --surface:#16202a;
  --surface-alt:#0b2d30;
  --ink:#eff7ff;
  --muted:#c6d4df;
  --line:#375063;
  --primary:#67a9ff;
  --primary-dark:#dcecff;
  --accent:#5de0ce;
  --shadow:none;
}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
img,svg{display:block;max-width:100%;height:auto}
p{margin:0 0 1rem}
code{
  padding:.1rem .35rem;
  border-radius:8px;
  background:rgba(11,34,58,.06);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.skip-link{
  position:absolute;
  left:12px;
  top:-60px;
  z-index:100;
  background:#fff;
  color:#111;
  border-radius:12px;
  padding:10px 14px;
  border:2px solid var(--primary);
}
.skip-link:focus{top:12px}
.container{
  width:min(1220px, calc(100% - 32px));
  margin:0 auto;
}
.site-header{
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(215,225,234,.85);
}
body.contrast-dark .site-header{background:rgba(22,32,42,.96)}
.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 0;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:14px;
  color:var(--ink);
  min-width:0;
}
.brand:hover{text-decoration:none}
.brand-mark{
  display:inline-grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--primary), var(--accent));
  color:#fff;
  font-size:17px;
  box-shadow:0 10px 18px rgba(24,79,140,.2);
}
.brand-logo,.footer-logo{
  display:block;
  max-height:44px;
  width:auto;
  border-radius:10px;
}
.brand-text{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.brand-text strong{
  font-size:1.02rem;
  line-height:1.2;
}
.brand-text small{
  color:var(--muted);
  font-size:.82rem;
}
.nav-cluster{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.language-switcher{
  display:flex;
  align-items:center;
  gap:10px;
}
.language-switcher label{
  margin:0;
  font-size:.86rem;
  white-space:nowrap;
}
.language-switcher select{
  min-height:42px;
  width:auto;
  max-width:180px;
  padding:8px 12px;
  border-radius:999px;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}
.nav-links a,.link-button{
  font-size:.94rem;
  font-weight:700;
  color:var(--ink);
}
.inline-form{display:inline}
.link-button{
  border:0;
  background:none;
  padding:0;
  cursor:pointer;
  font:inherit;
}
.accessibility-bar{position:relative}
.chip-btn{
  min-height:42px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--ink);
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.a11y-panel{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  width:min(280px, 88vw);
  padding:16px;
  border-radius:18px;
  border:1px solid var(--line);
  background:var(--surface);
  box-shadow:var(--shadow);
}
.a11y-panel > * + *{margin-top:10px}
.inline-toggle{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:0;
}
.page-shell{padding:30px 0 44px}
.site-footer{
  padding:22px 0 34px;
  color:var(--muted);
  font-size:.95rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr .7fr;
  gap:20px;
  align-items:start;
}
.footer-block{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.footer-brand-row{
  display:flex;
  align-items:center;
  gap:12px;
}
.footer-links,.footer-contact{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
.footer-company-meta{display:flex;flex-direction:column;gap:4px}
.footer-copyright{font-size:.78rem;line-height:1.45}
.equal-housing-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  color:var(--ink);
  flex-wrap:wrap;
}
.equal-housing-badge svg{
  width:34px;
  height:34px;
}
.hero{
  display:grid;
  grid-template-columns:1.03fr .97fr;
  gap:28px;
  align-items:start;
}
.hero-copy{padding:18px 0 8px}
.eyebrow{
  margin:0 0 10px;
  font-size:.92rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--accent);
}
h1,h2,h3{
  margin:0 0 10px;
  line-height:1.15;
  color:var(--ink);
}
h1{font-size:clamp(2rem, 4vw, 3.4rem)}
h2{font-size:1.45rem}
h3{font-size:1.06rem}
.hero-text,.subtle,.fine-print{color:var(--muted)}
.hero-text{max-width:42rem;font-size:1.08rem}
.panel{
  background:var(--surface);
  border:1px solid rgba(215,225,234,.9);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:24px;
}
.panel-form{padding:28px}
.install-panel{max-width:980px;margin:0 auto}
.auth-wrap,.install-wrap{display:grid;place-items:center;min-height:62vh}
.auth-panel{max-width:560px;width:100%}
.legal-panel{max-width:940px;margin:0 auto}
.stack-xl>*+*{margin-top:28px}
.stack-lg>*+*{margin-top:18px}
.stack-md>*+*{margin-top:12px}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
}
.form-grid-tight{align-items:end}
label{
  display:block;
  margin-bottom:8px;
  font-weight:700;
  color:var(--ink);
}
input,select,textarea{
  width:100%;
  min-height:56px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  color:#102433;
  font:inherit;
  box-shadow: inset 0 1px 1px rgba(17,37,55,.03);
}
body.contrast-dark input,body.contrast-dark select,body.contrast-dark textarea{
  background:#101820;
  color:#eff7ff;
}
textarea{min-height:150px;resize:vertical}
input::placeholder,textarea::placeholder{color:#8ca0b0}
input:focus,select:focus,textarea:focus,button:focus,a:focus,summary:focus{
  outline:3px solid rgba(24,79,140,.22);
  outline-offset:2px;
  border-color:rgba(24,79,140,.55);
}
fieldset{
  margin:0;
  padding:0;
  border:0;
  min-width:0;
}
.fieldset-card{
  background:var(--surface-alt);
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px;
}
.fieldset-card legend{
  padding:0 6px;
  font-weight:800;
}
.choice-chip,.check-row{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:0;
  background:var(--surface);
  border:1px solid rgba(215,225,234,.95);
  border-radius:16px;
  padding:13px 16px;
}
.choice-chip input,.check-row input,.inline-toggle input{
  width:22px;
  height:22px;
  min-height:22px;
  margin-top:2px;
  flex:0 0 auto;
}
.compact-check{padding:10px 14px}
.segmented-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.title-holder-card,.detail-card,.helper-panel,.template-card{
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#fff;
}
body.contrast-dark .title-holder-card,
body.contrast-dark .detail-card,
body.contrast-dark .helper-panel,
body.contrast-dark .template-card{
  background:#111b24;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:52px;
  padding:12px 20px;
  border-radius:16px;
  border:0;
  cursor:pointer;
  font:inherit;
  font-weight:800;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg, var(--primary), var(--accent)); color:#fff}
.btn-secondary{background:#eaf2fb; color:var(--primary-dark)}
.btn-ghost{background:#fff; color:var(--danger); border:1px solid #f0c1c1}
.btn-block{width:100%}
.feature-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:16px;
}
.feature-card{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(215,225,234,.95);
  border-radius:20px;
  padding:18px;
  box-shadow:var(--shadow);
}
.support-strip,.success-box,.note-box,.disclosure-box{
  border-radius:18px;
  padding:16px 18px;
}
.support-strip{
  background:#e6f7f3;
  color:#16594f;
  border:1px solid rgba(15,122,112,.18);
}
.support-inline{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:8px;
}
.success-box{
  background:#edf8f0;
  color:#1d5f3e;
  border:1px solid rgba(47,133,90,.18);
}
.note-box{
  background:#f7fafc;
  border:1px solid var(--line);
}
.disclosure-box{
  background:#fff9e8;
  border:1px solid rgba(192,111,0,.16);
  color:#604200;
}
.flash{
  border-radius:18px;
  padding:16px 18px;
  margin-bottom:22px;
  box-shadow:var(--shadow);
  border:1px solid transparent;
}
.flash-success{background:#edf8f0;border-color:rgba(47,133,90,.18);color:#1d5f3e}
.flash-info{background:#eef4fb;border-color:rgba(24,79,140,.12);color:#1a466f}
.flash-error{background:#fff5f5;border-color:rgba(197,48,48,.16);color:#7b2626}
.error-list{margin:10px 0 0;padding-left:20px}
.section-title{
  font-size:1rem;
  font-weight:800;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.06em;
  padding-top:4px;
}
.check-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
  margin-bottom:22px;
}
.check-item{
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
  background:#f9fbfd;
}
.check-item.ok{border-color:rgba(47,133,90,.2);background:#edf8f0}
.check-item.fail{border-color:rgba(197,48,48,.2);background:#fff5f5}
.check-dot{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#fff;
  font-weight:900;
}
.split-heading{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-end;
  flex-wrap:wrap;
}
.split-heading-sm{align-items:flex-start}
.button-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:16px;
}
.stat-card{
  background:linear-gradient(180deg, #fff, #f7fbff);
  border:1px solid rgba(215,225,234,.95);
  border-radius:22px;
  padding:22px;
  box-shadow:var(--shadow);
}
body.contrast-dark .stat-card{background:#15212c}
.stat-label{font-weight:700;color:var(--muted)}
.stat-value{font-size:2.25rem;font-weight:900;color:var(--primary-dark);margin-top:6px}
.filter-panel{padding:18px 20px}
.board{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:18px;
}
.board-column{
  background:rgba(255,255,255,.75);
  border:1px solid rgba(215,225,234,.95);
  border-radius:22px;
  padding:16px;
  box-shadow:var(--shadow);
  min-height:260px;
}
.board-heading h2{margin:0;font-size:1.15rem}
.board-heading p{margin:4px 0 12px;color:var(--muted)}
.mini-card{
  display:block;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px;
  box-shadow:0 10px 24px rgba(11,34,58,.05);
  color:inherit;
}
body.contrast-dark .mini-card{background:#111b24}
.mini-card:hover{text-decoration:none;border-color:rgba(24,79,140,.45)}
.mini-card + .mini-card{margin-top:12px}
.mini-card-empty{color:var(--muted);text-align:center}
.mini-card-title{font-weight:800}
.mini-card-sub{font-size:.94rem;color:var(--muted);margin-top:4px}
.mini-card-meta{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:10px;
  color:var(--muted);
  font-size:.88rem;
}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:900px}
th,td{
  padding:15px 14px;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:top;
}
th{font-size:.92rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
tr:last-child td{border-bottom:0}
.status-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  font-size:.88rem;
  font-weight:800;
  line-height:1;
}
.status-new{background:#fff5e7;color:#8b4b14}
.status-working{background:#eef4fb;color:#174b88}
.status-qualified{background:#edf8f0;color:#215c3d}
.status-home-value-low{background:#fff0f1;color:#8f1d2c}
.status-closed{background:#f3f4f6;color:#374151}
.status-default{background:#f7fafc;color:#44566a}
.two-column{
  display:grid;
  grid-template-columns:1.16fr .92fr;
  gap:22px;
}
.two-column-equal{grid-template-columns:1fr 1fr}
.detail-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px 18px;
}
.top-divider{
  padding-top:18px;
  border-top:1px solid var(--line);
}
.copy-box{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
}
.progress-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:#e6f7f3;
  color:#16594f;
  font-weight:800;
}
.progress-bar{
  width:100%;
  height:14px;
  border-radius:999px;
  background:#e6edf4;
  overflow:hidden;
}
.progress-bar span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, var(--primary), var(--accent));
}
.checklist-row,.doc-row,.user-row{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#fff;
}
body.contrast-dark .checklist-row,
body.contrast-dark .doc-row,
body.contrast-dark .user-row{
  background:#111b24;
}
.checklist-row-stack{display:block}
.checklist-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
}
.doc-row-compact{padding:14px 16px}
.doc-list,.message-thread{display:flex;flex-direction:column;gap:12px}
.empty-state{
  border:1px dashed var(--line);
  border-radius:18px;
  padding:20px;
  text-align:center;
  color:var(--muted);
  background:#fafcff;
}
.message-bubble{
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px 16px;
  background:#fff;
}
body.contrast-dark .message-bubble{background:#111b24}
.message-applicant{border-left:6px solid var(--accent)}
.message-staff{border-left:6px solid var(--primary)}
.message-meta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:8px;
  color:var(--muted);
  font-size:.9rem;
}
.timeline{
  position:relative;
  padding-left:8px;
}
.timeline-item{
  display:grid;
  grid-template-columns:20px 1fr;
  gap:14px;
  align-items:flex-start;
  padding:8px 0;
}
.timeline-dot{
  width:14px;
  height:14px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--primary), var(--accent));
  margin-top:6px;
}
.support-panel{background:linear-gradient(180deg, #fff, #f8fcfb)}
.support-list>*+*{margin-top:8px}
.mini-heading{margin:0;color:var(--ink)}
.align-end{display:flex;align-items:end}
.upload-card{display:block}
.accordion-card{
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  background:#fff;
}
body.contrast-dark .accordion-card{background:#111b24}
.accordion-card summary{
  list-style:none;
  cursor:pointer;
}
.accordion-card summary::-webkit-details-marker{display:none}
.accordion-body{
  padding:0 16px 16px;
}
.helper-panel{
  background:var(--surface-alt);
}
.brand-preview{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.brand-preview img{
  max-height:56px;
  max-width:180px;
  width:auto;
  object-fit:contain;
}
.template-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
}
.template-card > * + *{margin-top:8px}
.footer-logo{max-height:38px}
.legal-copy p + p{margin-top:1rem}
.cookie-modal{
  position:fixed!important;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  min-height:100vh;
  min-height:100dvh;
  overflow:auto;
  background:rgba(9,18,28,.62);
  z-index:999;
}
.cookie-modal.is-visible{display:flex}
body.modal-open{overflow:hidden}
.cookie-card{
  width:min(620px, 100%);
  background:var(--surface);
  border-radius:22px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  padding:24px;
}
.helper-note{font-size:.92rem;color:var(--muted)}
@media (max-width: 1160px){
  .board{grid-template-columns:repeat(2, minmax(0,1fr))}
  .stats-grid{grid-template-columns:repeat(3, minmax(0,1fr))}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 980px){
  .hero,.two-column,.two-column-equal,.feature-grid,.detail-grid,.template-grid,.check-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 760px){
  html{font-size:17px}
  .container{width:min(100% - 20px, 1220px)}
  .nav-row,.nav-cluster,.nav-links,.footer-brand-row,.footer-links,.footer-contact,.split-heading,.copy-box,.checklist-head,.checklist-row,.doc-row,.user-row,.button-row,.language-switcher{
    flex-direction:column;
    align-items:flex-start;
  }
  .hero,.two-column,.two-column-equal,.board,.stats-grid,.feature-grid,.form-grid,.detail-grid,.check-grid,.template-grid,.footer-grid{
    grid-template-columns:1fr;
  }
  .panel,.panel-form,.stat-card,.board-column,.cookie-card{padding:18px}
  .btn,.btn-block{width:100%}
  .a11y-panel{
    position:fixed;
    right:12px;
    left:12px;
    top:72px;
    width:auto;
  }
}

.visually-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.brand-group{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.brand-logo-link{flex:0 0 auto}
.brand-text-link{min-width:0}
.a11y-trigger{
  min-width:46px;
  min-height:46px;
  padding:8px;
}
.a11y-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  color:var(--a11y-icon);
}
.a11y-icon svg{width:100%;height:100%}
.estimate-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
}
.metric-card{
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface-alt);
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.metric-card span{
  font-size:.92rem;
  color:var(--muted);
  font-weight:700;
}
.metric-card strong{
  font-size:1.35rem;
  line-height:1.2;
}
.equal-housing-logo{
  max-height:36px;
  width:auto;
}
.footer-block .equal-housing-badge img,
.footer-block .equal-housing-badge svg{
  width:auto;
  height:36px;
}
@media (max-width: 980px){
  .estimate-grid{grid-template-columns:1fr}
}
.a11y-custom-icon{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.a11y-default-icon{
  display:inline-flex;
  width:100%;
  height:100%;
}
.icon-preview-box{
  width:72px;
  height:72px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface-alt);
  display:grid;
  place-items:center;
  color:var(--a11y-icon);
  padding:12px;
}
.icon-preview-box svg{
  width:100%;
  height:100%;
}
.accessibility-preview-image{
  max-height:72px;
  max-width:72px;
  width:auto;
  object-fit:contain;
}
.equal-housing-preview{
  color:var(--primary-dark);
}

html[dir="rtl"] body{direction:rtl}
html[dir="rtl"] input,
html[dir="rtl"] textarea,
html[dir="rtl"] select{direction:rtl;text-align:right}
html[dir="rtl"] .copy-box input{direction:ltr;text-align:left}
html[dir="rtl"] .nav-row,
html[dir="rtl"] .nav-cluster,
html[dir="rtl"] .nav-links,
html[dir="rtl"] .support-inline,
html[dir="rtl"] .button-row,
html[dir="rtl"] .footer-links,
html[dir="rtl"] .footer-contact,
html[dir="rtl"] .footer-brand-row,
html[dir="rtl"] .split-heading,
html[dir="rtl"] .checklist-head,
html[dir="rtl"] .doc-row,
html[dir="rtl"] .language-switcher{direction:rtl}

/* Secure Portal v3: validation, security center, and account protection */
.form-section{
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--surface-alt);
  padding:18px;
}
.form-section h3{margin:0 0 4px;color:var(--ink)}
.required-note{margin:0;color:var(--muted);font-size:.9rem;font-weight:700}
.required-note span,label span[aria-hidden="true"]{color:#9d0716}
.form-grid-address{grid-template-columns:minmax(0,1.2fr) minmax(190px,.9fr) minmax(130px,.55fr)}
.warning-panel{
  border:2px solid #ba6b00;
  border-radius:18px;
  background:#fff8e8;
  color:#513100;
  padding:16px;
}
.warning-panel > * + *{margin-top:10px}
body.contrast-dark .warning-panel{background:#2b2212;color:#fff3cf;border-color:#ffd166}
/* Anti-spam honeypot: intentionally available to automated form fillers but never visible to applicants. */
.trap-field{
  position:fixed!important;
  left:-10000px!important;
  top:-10000px!important;
  width:1px!important;
  height:1px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
}
.trap-field label,.trap-field input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
.auth-links{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.auth-links a{font-weight:700}
.code-display{
  display:inline-block;
  border:1px dashed var(--line-strong, var(--line));
  border-radius:12px;
  padding:10px 14px;
  background:var(--surface-alt);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.06em;
  overflow-wrap:anywhere;
}
.recovery-code-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.recovery-code-grid code{
  display:block;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface-alt);
  text-align:center;
  font-weight:800;
}
.security-status-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
}
.session-current{border:2px solid var(--primary);background:var(--surface-alt)}
.security-stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.stat-value-text{font-size:1.35rem;line-height:1.2;overflow-wrap:anywhere}
.text-success{color:#12673c!important}
.text-danger{color:#a21c28!important}
body.contrast-dark .text-success{color:#8de2af!important}
body.contrast-dark .text-danger{color:#ff9da7!important}
.stat-card-link{
  color:inherit;
  text-decoration:none;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.stat-card-link:hover,.stat-card-link:focus-visible{
  transform:translateY(-2px);
  box-shadow:var(--shadow);
  border-color:var(--primary);
}
.security-lead-card,.rule-card{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface);
  padding:16px;
}
.rule-card{display:block}
.rule-card > * + *{margin-top:12px}
.rule-inactive{opacity:.72;background:var(--surface-alt)}
.severity-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:.78rem;
  line-height:1;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.035em;
  background:#edf1f5;
  color:#344150;
}
.severity-info{background:#eaf3ff;color:#154f86}
.severity-notice{background:#e9f8ef;color:#12673c}
.severity-warning{background:#fff3d3;color:#714700}
.severity-critical{background:#ffe7e9;color:#941d28}
body.contrast-dark .severity-badge{border:1px solid currentColor;background:transparent}
.metadata-pre{
  max-width:520px;
  max-height:230px;
  overflow:auto;
  margin-top:8px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface-alt);
  white-space:pre-wrap;
  word-break:break-word;
  font-size:.78rem;
}
.security-event-table table{min-width:1120px}
.security-lead-panel{
  border:2px solid var(--primary);
  border-radius:22px;
  background:linear-gradient(180deg,var(--surface),var(--surface-alt));
  padding:20px;
}
.security-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.security-summary-card{
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
  padding:14px;
  min-width:0;
}
.security-summary-card span{display:block;color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.security-summary-card strong{display:block;margin-top:5px;font-size:1.05rem;overflow-wrap:anywhere}
.risk-bar{height:9px;margin-top:9px;border-radius:999px;background:#e7e9ed;overflow:hidden}
.risk-bar span{display:block;height:100%;background:linear-gradient(90deg,#278c55,#d39a10,#b51f2d);border-radius:inherit}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}
.security-filter-row{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.security-filter-row > *{flex:1 1 190px}
.security-database-status{border-left:5px solid var(--primary)}
.table-wrap td{vertical-align:top}

@media (max-width:1160px){
  .security-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .security-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .form-grid-address,.security-stats-grid,.security-summary-grid,.recovery-code-grid{grid-template-columns:1fr}
  .security-lead-card,.security-status-row{flex-direction:column;align-items:stretch}
  .security-lead-card .button-row{width:100%}
  .security-lead-card .btn{width:100%}
}

/* v3.1 private-page checklist, collapsible uploads, and lender proposals */
section[id],details[id]{scroll-margin-top:112px}
.portal-task-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.portal-task-row{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:64px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
  color:var(--ink);
  transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.portal-task-row:hover,.portal-task-row:focus-visible{
  text-decoration:none;
  border-color:var(--primary);
  transform:translateY(-1px);
  box-shadow:0 8px 24px rgba(11,34,58,.07);
}
.portal-task-icon{
  display:inline-grid;
  place-items:center;
  width:30px;
  height:30px;
  border:2px solid var(--line);
  border-radius:50%;
  background:var(--surface);
  color:var(--muted);
  font-weight:900;
  line-height:1;
}
.task-complete .portal-task-icon{
  border-color:var(--success);
  background:var(--success);
  color:#fff;
}
.task-incomplete .portal-task-icon::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--line)}
.task-waiting .portal-task-icon{border-style:dashed;background:var(--surface-alt);font-size:1.1rem}
.task-complete{background:#f4fbf6;border-color:rgba(47,133,90,.28)}
.task-waiting{background:var(--surface-alt)}
.portal-task-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.portal-task-copy strong{overflow-wrap:anywhere}
.portal-task-copy .subtle{font-size:.9rem;line-height:1.4}
.portal-task-status{
  white-space:nowrap;
  color:var(--muted);
  font-size:.82rem;
  font-weight:800;
}
.task-complete .portal-task-status{color:var(--success)}
.task-incomplete .portal-task-status{color:var(--primary)}
body.contrast-dark .task-complete{background:#123225}

.upload-card-collapsible{
  display:block;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  background:var(--surface);
}
.upload-card-collapsible[open]{box-shadow:0 10px 26px rgba(11,34,58,.05)}
.upload-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 24px;
  align-items:center;
  gap:12px;
  min-height:66px;
  padding:14px 16px;
  cursor:pointer;
  list-style:none;
}
.upload-summary::-webkit-details-marker{display:none}
.upload-summary-title{font-weight:800;overflow-wrap:anywhere}
.upload-summary-chevron{
  display:inline-grid;
  place-items:center;
  font-size:1.2rem;
  color:var(--muted);
  transition:transform .16s ease;
}
.upload-card-collapsible[open] .upload-summary-chevron{transform:rotate(180deg)}
.upload-card-collapsible[open] .upload-summary{background:var(--surface-alt);border-bottom:1px solid var(--line)}
.upload-card-body{padding:16px}
body.contrast-dark .upload-card-collapsible{background:#111b24}

.proposal-card{
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--surface);
}
.proposal-card.proposal-selected{
  border:2px solid var(--success);
  background:linear-gradient(180deg,#fff,#f4fbf6);
}
.proposal-bank{margin-bottom:7px}
.proposal-sign-panel summary,.proposal-upload-panel summary{
  padding:15px 16px;
  font-weight:800;
}
.proposal-sign-panel[open] summary,.proposal-upload-panel[open] summary{
  background:var(--surface-alt);
  border-bottom:1px solid var(--line);
}
.proposal-sign-panel .accordion-body,.proposal-upload-panel .accordion-body{padding-top:16px}
.proposal-admin-card{padding:17px}
body.contrast-dark .proposal-card{background:#111b24}
body.contrast-dark .proposal-card.proposal-selected{background:#123225}

@media (max-width:760px){
  .portal-task-row{grid-template-columns:32px minmax(0,1fr);align-items:start}
  .portal-task-status{grid-column:2;white-space:normal}
  .upload-summary{grid-template-columns:minmax(0,1fr) auto}
  .upload-summary-chevron{display:none}
  .upload-summary-status{justify-self:end}
  .proposal-card .button-row .btn,.proposal-card .button-row form,.proposal-card .button-row form .btn{width:100%}
}

[dir="rtl"] .portal-task-row,[dir="rtl"] .upload-summary{text-align:right}

/* v3.2 conditional document and condominium association controls */
.conditional-question-card{
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:clamp(1rem,2vw,1.35rem);
  background:var(--surface-alt);
}
.condo-association-list{margin-top:.25rem}
.condo-association-card{
  min-width:0;
  margin:0;
}
.condo-association-card legend{
  padding:0 .4rem;
  font-weight:800;
  color:var(--ink);
}
.not-applicable-form{
  padding:1rem;
  border:1px dashed var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface-alt);
}
.not-applicable-form .btn{align-self:flex-start}

/* v3.2.1 automatic Not Applicable status saving */
.task-not-applicable{
  background:#f4fbf6;
  border-color:rgba(47,133,90,.28);
}
.task-not-applicable .portal-task-status{color:var(--success)}
.not-applicable-save-state{display:block;min-height:1.25em;font-weight:700}
.not-applicable-form[aria-busy="true"]{opacity:.82;pointer-events:none}
body.contrast-dark .task-not-applicable{background:#123225}

/* v3.3 modern white-label email settings */
.email-settings-panel{overflow:hidden}
.email-sender-preview{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:18px;
  border:1px solid rgba(24,79,140,.18);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(24,79,140,.07),rgba(15,122,112,.08));
}
.email-sender-preview-icon{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  flex:0 0 48px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  color:#fff;
  font-size:1.25rem;
  font-weight:900;
}
.email-sender-preview-label{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.email-sender-preview strong{display:block;color:var(--ink);font-size:1.12rem;word-break:break-word}
.email-sender-preview p{margin:.45rem 0 0;color:var(--muted);font-size:.93rem;line-height:1.5}
.notice-card{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface-alt);
}
.notice-card > * + *{margin-top:6px}
.notice-warning{border-color:rgba(192,86,33,.28);background:#fff8ed;color:#7a421a}
.notice-warning code{font-size:.92em}
.check-row small{display:block;margin-top:4px;color:var(--muted);font-weight:500;line-height:1.45}
.email-design-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  gap:24px;
  align-items:center;
  padding:20px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--surface-alt);
}
.email-design-summary h3{margin:8px 0 6px}
.email-design-summary p{margin:0;color:var(--muted)}
.email-design-chip{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(15,122,112,.12);
  color:var(--accent);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.email-mini-preview{
  padding:14px;
  border:1px solid rgba(24,79,140,.16);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 22px rgba(15,23,42,.08);
}
.email-mini-header{height:18px;margin:-14px -14px 14px;border-radius:15px 15px 0 0;background:linear-gradient(135deg,var(--primary),var(--accent))}
.email-mini-line{height:7px;width:68%;margin:8px 0;border-radius:99px;background:#dce5ee}
.email-mini-line.wide{width:92%;height:10px;background:#b9cadd}
.email-mini-card{height:42px;margin:14px 0;border-radius:9px;background:#eff5fb;border:1px solid #dbe6f0}
.email-mini-button{height:26px;width:58%;border-radius:8px;background:var(--primary)}
.restore-email-defaults{border-color:rgba(24,79,140,.22);background:#f5f9fd}
.email-template-card{padding:0;overflow:hidden}
.email-template-card > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  cursor:pointer;
  list-style:none;
  font-weight:850;
}
.email-template-card > summary::-webkit-details-marker{display:none}
.email-template-card[open] > summary{background:var(--surface-alt);border-bottom:1px solid var(--line)}
.template-card-action{color:var(--primary);font-size:.83rem;font-weight:850;white-space:nowrap}
.template-card-fields{padding:18px}
.template-card-fields > * + *{margin-top:8px}
body.contrast-dark .email-sender-preview,
body.contrast-dark .email-design-summary,
body.contrast-dark .restore-email-defaults,
body.contrast-dark .email-template-card[open] > summary{background:#13202b}
body.contrast-dark .email-mini-preview{background:#111b24}
body.contrast-dark .notice-warning{background:#2b2212;color:#fff3cf}

@media (max-width:760px){
  .email-sender-preview{flex-direction:column}
  .email-design-summary{grid-template-columns:1fr}
  .email-mini-preview{max-width:240px;width:100%}
  .email-template-card > summary{align-items:flex-start}
}
.email-template-card > * + *{margin-top:0}
