{"id":795,"date":"2026-05-28T09:43:46","date_gmt":"2026-05-28T09:43:46","guid":{"rendered":"https:\/\/aluseg.com\/?page_id=795"},"modified":"2026-05-29T15:19:28","modified_gmt":"2026-05-29T15:19:28","slug":"tenant-solvency","status":"publish","type":"page","link":"https:\/\/aluseg.com\/en\/tenant-solvency\/","title":{"rendered":"Tenant Solvency"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"795\" class=\"elementor elementor-795\" data-elementor-post-type=\"page\">\n\t\t\t\t<section class=\"elementor-element elementor-element-45cc766 e-con-full e-flex e-con e-parent\" data-id=\"45cc766\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-45652b9 e-flex e-con-boxed e-con e-child\" data-id=\"45652b9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-33726eb animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"33726eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Pre-Lease Tenant Solvency Calculator<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c3fbcdb animated-slow elementor-widget-divider--view-line elementor-invisible elementor-widget elementor-widget-divider\" data-id=\"c3fbcdb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:600}\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a8d9ff elementor-widget__width-initial animated-slow elementor-widget-tablet__width-inherit elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"8a8d9ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Calculate tenant effort rates (<i data-path-to-node=\"7,1,0\" data-index-in-node=\"41\">taxa de esfor\u00e7o<\/i>) and evaluate financial default risk instantly. Whether you are vetting a new applicant or adjusting lease terms, our free tool calculates actual cash exposure and affordability bounds in seconds.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-619ddab animated-slow elementor-invisible elementor-widget elementor-widget-button\" data-id=\"619ddab\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#solvency\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"jki jki-right-arrow-light\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Calculate Tenant Solvency<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b9d406c elementor-widget elementor-widget-heading\" data-id=\"b9d406c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Free \u00b7 No Account Required<\/p>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-ad1b5b1 e-flex e-con-boxed e-con e-parent\" data-id=\"ad1b5b1\" data-element_type=\"container\" data-e-type=\"container\" id=\"solvency\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-07a0840 e-con-full e-flex e-con e-child\" data-id=\"07a0840\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<span class=\"e-be1f094-8680a4e e-paragraph-base\" data-interaction-id=\"be1f094\" data-e-type=\"widget\" data-id=\"be1f094\">How It Works<\/span>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d18758 animated-slow elementor-invisible elementor-widget elementor-widget-jkit_heading\" data-id=\"7d18758\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"jkit_heading.default\">\n\t\t\t\t\t<div  class=\"jeg-elementor-kit jkit-heading  align-left align-tablet- align-mobile- jeg_module___6a300a56906ee\" ><div class=\"heading-section-title  display-inline\"><h2 class=\"heading-title\">Three Steps to <span class=\"style-color\"><span>Evaluate Tenant Risk<\/span><\/span><\/h2><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d762cba animated-slow elementor-invisible elementor-widget elementor-widget-n-accordion\" data-id=\"d762cba\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;default_state&quot;:&quot;all_collapsed&quot;,&quot;max_items_expended&quot;:&quot;multiple&quot;,&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:400,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2250\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2250\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Step 1 \u2014 Input Location &amp; Property Details <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"jki jki-up-arrow-4\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"jki jki-down-arrow-4\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2250\" class=\"elementor-element elementor-element-4cfaf49 e-con-full e-flex e-con e-child\" data-id=\"4cfaf49\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-68de13d animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"68de13d\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tEnter your Portuguese municipality, parish (freguesia), and property typology. This vital data maps real-world lease terms directly across Aluseg&#8217;s local rental database.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2251\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"2\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2251\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Step 2 \u2014 Define Financial Terms &amp; Income <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"jki jki-up-arrow-4\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"jki jki-down-arrow-4\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2251\" class=\"elementor-element elementor-element-e0ee9f4 e-con-full e-flex e-con e-child\" data-id=\"e0ee9f4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-120916d animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"120916d\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Provide the proposed monthly rent, security deposit terms, and the prospective tenant&#8217;s verified monthly gross income along with existing debt obligations.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2252\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"3\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2252\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Step 3 \u2014 Review the Risk Assessment Report <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"jki jki-up-arrow-4\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"jki jki-down-arrow-4\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2252\" class=\"elementor-element elementor-element-400c03a e-con-full e-flex e-con e-child\" data-id=\"400c03a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-13db6d3 animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"13db6d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The tool instantly runs financial calculations to return the tenant\u2019s Simple and Global Effort Rates, your Net Financial Exposure during a default, and a clear risk classification.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d192ea0 e-flex e-con-boxed e-con e-child\" data-id=\"d192ea0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-122068a elementor-widget elementor-widget-html\" data-id=\"122068a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ============================================================== -->\n<!--  AluSeg \u2014 Tenant Solvency Assessment Widget v4               -->\n<!--  Changes vs v3:                                              -->\n<!--    - SVG icons removed from all <button> elements            -->\n<!--    - Collapsible Advanced Options section in Step 1          -->\n<!--      (Size m\u00b2, Floor, Condition, Lease type, extras: Pool,   -->\n<!--       Gym, Storage, Concierge)                               -->\n<!--    - SER\/GER\/Exposure info boxes in report metric cards      -->\n<!--    - Full Supabase INSERT: all 17 columns + FNV UA hash      -->\n<!--    - furnished passed to get_rent_estimate RPC               -->\n<!-- ============================================================== -->\n<div id=\"aluseg-solvency\">\n<style>\n\/* \u2500\u2500 Scoped reset \u2500\u2500 *\/\n#aluseg-solvency *{box-sizing:border-box;margin:0;padding:0}\n\n\/* \u2500\u2500 Design tokens \u2500\u2500 *\/\n#aluseg-solvency{\n  --ac:#005869;--ach:#133B3A;--bg:#f6f8f8;--ln:#dfe5e6;\n  --ink:#1d2730;--mu:#69757c;--mu2:#9aa5ab;\n  --g:#1a7f4b;--gbg:#e8f5ee;--gbd:#a8dbbe;\n  --y:#b07d12;--ybg:#fdf8e8;--ybd:#f0d88a;\n  --r:#c0392b;--rbg:#fdf0ee;--rbd:#f0b8b2;\n  font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n  color:var(--ink);max-width:760px;margin:0 auto;padding:8px;font-size:14px\n}\n\n\/* \u2500\u2500 Card \u2500\u2500 *\/\n#aluseg-solvency .als-card{\n  background:#fff;border:1px solid var(--ln);\n  border-radius:11px;padding:20px\n}\n\n\/* \u2500\u2500 Widget title \u2500\u2500 *\/\n#aluseg-solvency .als-title{\n  font-size:15px;font-weight:700;color:var(--ink);\n  margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--ln)\n}\n\n\/* \u2500\u2500 Stepper \u2500\u2500 *\/\n#aluseg-solvency .stepper{display:flex;margin:0 0 20px}\n#aluseg-solvency .st{flex:1;text-align:center;position:relative;cursor:default}\n#aluseg-solvency .st::after{content:\"\";position:absolute;top:16px;left:50%;width:100%;height:2px;background:var(--ln);z-index:0}\n#aluseg-solvency .st:last-child::after{display:none}\n#aluseg-solvency .st.done::after{background:var(--ac)}\n#aluseg-solvency .dot{position:relative;z-index:1;width:34px;height:34px;border-radius:50%;background:#fff;\n  border:2px solid var(--ln);color:var(--mu);display:flex;align-items:center;justify-content:center;\n  font-weight:700;margin:0 auto 5px;font-size:14px;transition:all .2s}\n#aluseg-solvency .st.on .dot{border-color:var(--ac);color:var(--ac);background:#e8f4f6}\n#aluseg-solvency .st.done .dot{background:var(--ac);border-color:var(--ac);color:#fff}\n#aluseg-solvency .st .lbl{font-size:11px;line-height:1.25;color:var(--mu)}\n#aluseg-solvency .st.on .lbl{color:var(--ac);font-weight:600}\n#aluseg-solvency .st.done .lbl{color:var(--ac)}\n\n\/* \u2500\u2500 Steps \u2500\u2500 *\/\n#aluseg-solvency .step{display:none;animation:als-fade .2s ease}\n#aluseg-solvency .step.active{display:block}\n@keyframes als-fade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}\n#aluseg-solvency .step h3{font-size:14px;font-weight:700;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--ln)}\n\n\/* \u2500\u2500 12-col grid \u2500\u2500 *\/\n#aluseg-solvency .g{display:grid;grid-template-columns:repeat(12,1fr);gap:9px 12px}\n#aluseg-solvency .c4{grid-column:span 4}\n#aluseg-solvency .c6{grid-column:span 6}\n#aluseg-solvency .c8{grid-column:span 8}\n#aluseg-solvency .c12{grid-column:span 12}\n@media(max-width:580px){\n  #aluseg-solvency .c4,#aluseg-solvency .c6,#aluseg-solvency .c8{grid-column:span 12}\n  #aluseg-solvency .st .lbl{display:none}\n}\n\n\/* \u2500\u2500 Labels \u2500\u2500 *\/\n#aluseg-solvency label{display:flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;margin-bottom:3px}\n#aluseg-solvency label .opt{font-weight:400;color:var(--mu);font-size:11px}\n#aluseg-solvency .req{color:#d23b3b}\n\n\/* \u2500\u2500 Inputs & selects \u2500\u2500 *\/\n#aluseg-solvency input,#aluseg-solvency select{\n  width:100%;padding:8px 10px;border:1px solid var(--ln);\n  border-radius:7px;font-size:13.5px;background:#fff;color:var(--ink);height:38px;\n  transition:border-color .15s,box-shadow .15s\n}\n#aluseg-solvency select{\n  appearance:none;\n  background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'\/%3E%3C\/svg%3E\");\n  background-repeat:no-repeat;background-position:right 10px center;\n  padding-right:30px;cursor:pointer\n}\n#aluseg-solvency select:disabled{background:#f7f7f7;color:#bbb;cursor:not-allowed}\n#aluseg-solvency input:focus,#aluseg-solvency select:focus{\n  outline:none;border-color:var(--ac);box-shadow:0 0 0 3px rgba(0,88,105,.12)\n}\n#aluseg-solvency .ef{border-color:#d23b3b!important;box-shadow:0 0 0 3px rgba(210,59,59,.11)!important}\n#aluseg-solvency .hint{font-size:11.5px;color:var(--mu);margin-top:4px;line-height:1.4}\n\n\/* \u2500\u2500 Euro prefix wrapper \u2500\u2500 *\/\n#aluseg-solvency .pw{position:relative}\n#aluseg-solvency .pw .pfx{position:absolute;left:10px;top:50%;transform:translateY(-50%);\n  color:var(--mu);font-size:13px;font-weight:600;pointer-events:none}\n#aluseg-solvency .pw input{padding-left:22px}\n\n\/* \u2500\u2500 Checkbox pills \u2500\u2500 *\/\n#aluseg-solvency .checks{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}\n#aluseg-solvency .chk{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:400;\n  cursor:pointer;padding:7px 11px;border:1.5px solid var(--ln);border-radius:8px;\n  background:#fff;transition:border-color .15s;user-select:none}\n#aluseg-solvency .chk:hover{border-color:var(--ac)}\n#aluseg-solvency .chk input[type=checkbox]{width:15px;height:15px;accent-color:var(--ac);cursor:pointer;flex-shrink:0}\n\n\/* \u2500\u2500 Advanced options toggle \u2500\u2500 *\/\n#aluseg-solvency .adv-tog{\n  background:#fff;border:1.5px dashed var(--ln);border-radius:8px;\n  padding:8px 14px;font-size:12.5px;font-weight:600;\n  color:var(--mu);cursor:pointer;width:100%;text-align:left;\n  transition:all .15s;display:flex;align-items:center;gap:7px;\n  margin-top:4px\n}\n#aluseg-solvency .adv-tog:hover{border-color:var(--ac);color:var(--ac)}\n\n\/* \u2500\u2500 Advanced options panel \u2500\u2500 *\/\n#aluseg-solvency .adv-inner{\n  background:var(--bg);border:1px solid var(--ln);border-radius:8px;\n  padding:14px;margin-top:6px\n}\n\n\/* \u2500\u2500 Add tenant button \u2500\u2500 *\/\n#aluseg-solvency .add-t-btn{\n  font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:8px;\n  display:inline-flex;align-items:center;gap:6px;cursor:pointer;\n  border:1.5px dashed var(--ln);background:transparent;color:var(--ac);\n  transition:all .15s;margin-top:2px\n}\n#aluseg-solvency .add-t-btn:hover{border-color:var(--ac);background:#e8f4f6}\n\n\/* \u2500\u2500 Tenant 2 panel \u2500\u2500 *\/\n#aluseg-solvency .t2-panel{\n  background:var(--bg);border:1px solid var(--ln);border-radius:8px;\n  padding:12px;position:relative\n}\n#aluseg-solvency .t2-panel .rm-btn{\n  position:absolute;top:10px;right:10px;\n  border:none;background:none;cursor:pointer;\n  color:var(--mu);font-size:11px;font-weight:600;\n  display:flex;align-items:center;gap:4px;padding:3px 7px;\n  border-radius:5px;transition:all .15s\n}\n#aluseg-solvency .t2-panel .rm-btn:hover{background:var(--rbg);color:var(--r)}\n\n\/* \u2500\u2500 New parish panel \u2500\u2500 *\/\n#aluseg-solvency .new-parish{\n  background:var(--bg);border:1px solid var(--ln);border-radius:8px;padding:12px;margin-top:2px\n}\n\n\/* \u2500\u2500 Info banner \u2500\u2500 *\/\n#aluseg-solvency .info-box{\n  background:#e8f4f6;border:1px solid #b8dce3;border-radius:7px;\n  padding:9px 12px;font-size:12px;color:var(--ach);line-height:1.5;\n  margin-bottom:12px\n}\n\n\/* \u2500\u2500 Nav \/ buttons \u2500\u2500 *\/\n#aluseg-solvency .nav{display:flex;justify-content:space-between;margin-top:18px;gap:10px}\n#aluseg-solvency button{border:none;border-radius:8px;padding:10px 20px;font-size:13.5px;\n  font-weight:600;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:7px}\n#aluseg-solvency .btn{background:var(--ac);color:#fff}\n#aluseg-solvency .btn:hover{background:var(--ach)}\n#aluseg-solvency .btn:disabled{opacity:.5;cursor:not-allowed}\n#aluseg-solvency .ghost{background:#fff;color:var(--ink);border:1px solid var(--ln)}\n#aluseg-solvency .ghost:hover{border-color:var(--ac);color:var(--ac)}\n\n\/* \u2500\u2500 Error box \u2500\u2500 *\/\n#aluseg-solvency .err-box{\n  background:var(--rbg);border:1px solid var(--rbd);border-radius:8px;\n  padding:10px 12px;color:var(--r);font-size:12.5px;\n  display:none;align-items:flex-start;gap:8px;margin-top:12px\n}\n#aluseg-solvency .err-box.on{display:flex}\n\n\/* \u2500\u2500 Loading spinner \u2500\u2500 *\/\n#aluseg-solvency .sp-wrap{text-align:center;padding:40px 16px;display:none}\n#aluseg-solvency .sp-wrap.on{display:block}\n#aluseg-solvency .spinner{width:36px;height:36px;border:3px solid var(--ln);\n  border-top-color:var(--ac);border-radius:50%;\n  animation:als-spin .9s linear infinite;margin:0 auto 12px}\n@keyframes als-spin{to{transform:rotate(360deg)}}\n#aluseg-solvency .sp-wrap p{color:var(--mu);font-size:13px}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   REPORT\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n#aluseg-solvency .report{display:none;animation:als-fade .3s ease}\n#aluseg-solvency .report.on{display:block}\n\n\/* Risk header *\/\n#aluseg-solvency .rh{border-radius:9px;padding:14px 16px;margin-bottom:12px;\n  display:flex;align-items:flex-start;gap:12px}\n#aluseg-solvency .rh.low{background:var(--gbg);border:1.5px solid var(--gbd)}\n#aluseg-solvency .rh.med{background:var(--ybg);border:1.5px solid var(--ybd)}\n#aluseg-solvency .rh.high{background:var(--rbg);border:1.5px solid var(--rbd)}\n#aluseg-solvency .rb{display:inline-flex;align-items:center;gap:5px;\n  font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;\n  padding:3px 9px;border-radius:20px;margin-bottom:5px}\n#aluseg-solvency .rb.low{background:var(--g);color:#fff}\n#aluseg-solvency .rb.med{background:var(--y);color:#fff}\n#aluseg-solvency .rb.high{background:var(--r);color:#fff}\n#aluseg-solvency .rh h3{font-size:14px;font-weight:700;margin-bottom:3px}\n#aluseg-solvency .rh p{font-size:12.5px;line-height:1.5}\n#aluseg-solvency .rh.low h3{color:var(--g)}\n#aluseg-solvency .rh.med h3{color:var(--y)}\n#aluseg-solvency .rh.high h3{color:var(--r)}\n\n\/* Market comparison *\/\n#aluseg-solvency .mkt{border:1px solid var(--ln);border-radius:9px;padding:14px 16px;\n  margin-bottom:12px;background:var(--bg)}\n#aluseg-solvency .mkt .ph{font-size:10.5px;font-weight:700;text-transform:uppercase;\n  letter-spacing:.05em;color:var(--mu);margin-bottom:10px}\n#aluseg-solvency .mkt-range{display:flex;align-items:flex-end;\n  justify-content:space-around;gap:6px;margin-bottom:10px}\n#aluseg-solvency .mblk{text-align:center;flex:1}\n#aluseg-solvency .mblk .ml{display:block;font-size:10px;font-weight:700;color:var(--mu);\n  text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}\n#aluseg-solvency .mblk .mv{font-size:14px;font-weight:700;color:var(--ac)}\n#aluseg-solvency .mblk .mv.main{font-size:22px;color:var(--ink)}\n#aluseg-solvency .mkt-sep{width:1px;height:32px;background:var(--ln);align-self:center;flex-shrink:0}\n#aluseg-solvency .mkt-cmp{display:flex;align-items:flex-start;gap:10px;\n  padding:10px 13px;border-radius:8px;font-size:12.5px;line-height:1.5}\n#aluseg-solvency .mkt-cmp.above{background:var(--rbg);border:1px solid var(--rbd);color:var(--r)}\n#aluseg-solvency .mkt-cmp.below{background:var(--gbg);border:1px solid var(--gbd);color:var(--g)}\n#aluseg-solvency .mkt-cmp.inline{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a5f}\n#aluseg-solvency .mkt-cmp .cp{font-size:18px;font-weight:800;flex-shrink:0;margin-top:1px}\n#aluseg-solvency .mkt-na{font-size:12px;color:var(--mu);text-align:center;padding:8px;font-style:italic}\n#aluseg-solvency .mkt-src{font-size:10.5px;color:var(--mu2);margin-top:6px}\n\n\/* Metrics grid *\/\n#aluseg-solvency .metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}\n@media(max-width:500px){#aluseg-solvency .metrics{grid-template-columns:1fr 1fr}}\n#aluseg-solvency .mc{background:var(--bg);border:1px solid var(--ln);border-radius:8px;padding:12px;text-align:center}\n#aluseg-solvency .mc .mv{font-size:20px;font-weight:700;color:var(--ink);line-height:1.1;margin-bottom:3px}\n#aluseg-solvency .mc .ml{font-size:10.5px;color:var(--mu);font-weight:500;line-height:1.3}\n#aluseg-solvency .mc .bar{height:4px;border-radius:2px;margin-top:7px;background:var(--ln);overflow:hidden}\n#aluseg-solvency .mc .bar-f{height:100%;border-radius:2px;transition:width .5s ease}\n#aluseg-solvency .mc .mc-info{\n  font-size:9.5px;color:var(--mu);margin-top:7px;line-height:1.45;\n  padding-top:6px;border-top:1px solid var(--ln);text-align:left\n}\n\n\/* Detail tables *\/\n#aluseg-solvency .dtbl{background:var(--bg);border:1px solid var(--ln);border-radius:9px;\n  padding:12px 14px;margin-bottom:12px}\n#aluseg-solvency .dtbl .dh{font-size:10.5px;font-weight:700;text-transform:uppercase;\n  letter-spacing:.05em;color:var(--mu);margin-bottom:8px}\n#aluseg-solvency .dr{display:flex;justify-content:space-between;align-items:center;\n  padding:5px 0;border-bottom:1px solid var(--ln);font-size:12.5px}\n#aluseg-solvency .dr:last-child{border:none;padding-bottom:0}\n#aluseg-solvency .dl{color:var(--mu)}\n#aluseg-solvency .dv{font-weight:600;color:var(--ink)}\n#aluseg-solvency .dv.ok{color:var(--g)}\n#aluseg-solvency .dv.warn{color:var(--y)}\n#aluseg-solvency .dv.bad{color:var(--r)}\n\n\/* Report footer *\/\n#aluseg-solvency .rf{display:flex;justify-content:space-between;align-items:center;\n  padding-top:10px;gap:10px;flex-wrap:wrap}\n#aluseg-solvency .rf small{font-size:11px;color:var(--mu2);line-height:1.4}\n<\/style>\n\n<div class=\"als-card\">\n\n  <!-- \u2500\u2500 Widget Title \u2500\u2500 -->\n  <h2 class=\"als-title\">Tenant Solvency Assessment<\/h2>\n\n  <!-- \u2500\u2500 STEPPER \u2500\u2500 -->\n  <div class=\"stepper\">\n    <div class=\"st on\" id=\"als-st-1\">\n      <div class=\"dot\">1<\/div>\n      <div class=\"lbl\">Property<br>&amp; Location<\/div>\n    <\/div>\n    <div class=\"st\" id=\"als-st-2\">\n      <div class=\"dot\">2<\/div>\n      <div class=\"lbl\">Financial<br>Terms<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       STEP 1 \u2014 Location & Details\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <div class=\"step active\" id=\"als-s1\">\n    <h3>Property Location &amp; Details<\/h3>\n    <div class=\"g\">\n\n      <!-- District -->\n      <div class=\"c6\">\n        <label>District <span class=\"req\">*<\/span><\/label>\n        <select id=\"als-distrito\"><option value=\"\">Select district\u2026<\/option><\/select>\n      <\/div>\n\n      <!-- Municipality -->\n      <div class=\"c6\">\n        <label>Municipality (Concelho) <span class=\"req\">*<\/span><\/label>\n        <select id=\"als-municipio\" disabled><option value=\"\">Select district first<\/option><\/select>\n      <\/div>\n\n      <!-- Parish \u2014 dropdown -->\n      <div class=\"c12\" id=\"als-freq-row\" style=\"display:none\">\n        <label for=\"als-freq\">Parish (Freguesia) <span class=\"opt\">\u2014 optional<\/span><\/label>\n        <select id=\"als-freq\">\n          <option value=\"\">All parishes (municipality average)<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- Parish \u2014 free text -->\n      <div class=\"c12\" id=\"als-free-row\" style=\"display:none\">\n        <label for=\"als-free-freq\">Parish (Freguesia) <span class=\"opt\">\u2014 optional<\/span><\/label>\n        <input type=\"text\" id=\"als-free-freq\" placeholder=\"Enter parish name (optional)\u2026\" autocomplete=\"off\">\n      <\/div>\n\n      <!-- New parish panel -->\n      <div class=\"c12\" id=\"als-newp-row\" style=\"display:none\">\n        <div class=\"new-parish\">\n          <label for=\"als-newp-input\">Parish name <span class=\"req\">*<\/span><\/label>\n          <input type=\"text\" id=\"als-newp-input\" placeholder=\"e.g. Pontinha, Ajuda, Mouraria\u2026\" autocomplete=\"off\">\n          <p class=\"hint\">This parish will be anonymously submitted to improve our estimates database.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Property Type -->\n      <div class=\"c6\">\n        <label>Property Type <span class=\"req\">*<\/span><\/label>\n        <select id=\"als-type\">\n          <option value=\"\">Select type\u2026<\/option>\n          <option value=\"Apartamento\">Apartment<\/option>\n          <option value=\"Moradia\">House \/ Villa<\/option>\n          <option value=\"Studio\/Loft\">Studio \/ Loft<\/option>\n          <option value=\"Quarto\">Room (single room)<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- Typology -->\n      <div class=\"c6\" id=\"als-typo-col\">\n        <label>Typology <span class=\"req\">*<\/span><\/label>\n        <select id=\"als-typo\">\n          <option value=\"\">Select typology\u2026<\/option>\n          <option value=\"T0\">Studio (T0)<\/option>\n          <option value=\"T1\">1 Bed (T1)<\/option>\n          <option value=\"T2\">2 Bed (T2)<\/option>\n          <option value=\"T3\">3 Bed (T3)<\/option>\n          <option value=\"T4+\">4+ Bed (T4+)<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- Furnished toggle -->\n      <div class=\"c12\">\n        <label>Furnished<\/label>\n        <div class=\"checks\">\n          <label class=\"chk\"><input type=\"checkbox\" id=\"als-furnished\"> Furnished apartment \/ room<\/label>\n        <\/div>\n      <\/div>\n\n      <!-- Basic Extras -->\n      <div class=\"c12\">\n        <label>Extras Included <span class=\"opt\">\u2014 select all that apply<\/span><\/label>\n        <div class=\"checks\">\n          <label class=\"chk\"><input type=\"checkbox\" name=\"extras\" value=\"Garage\"> Garage \/ Parking<\/label>\n          <label class=\"chk\"><input type=\"checkbox\" name=\"extras\" value=\"Elevator\"> Elevator<\/label>\n          <label class=\"chk\"><input type=\"checkbox\" name=\"extras\" value=\"Balcony\"> Balcony \/ Terrace<\/label>\n        <\/div>\n      <\/div>\n\n      <!-- \u2500\u2500 Advanced Options toggle \u2500\u2500 -->\n      <div class=\"c12\">\n        <button type=\"button\" class=\"adv-tog\" id=\"als-adv-tog\" onclick=\"alsToggleAdv()\">\n          <span id=\"als-adv-arrow\">\u25bc<\/span> Advanced options\n        <\/button>\n      <\/div>\n\n      <!-- \u2500\u2500 Advanced Options panel (hidden by default) \u2500\u2500 -->\n      <div class=\"c12\" id=\"als-adv-panel\" style=\"display:none\">\n        <div class=\"adv-inner g\">\n\n          <!-- Size m\u00b2 -->\n          <div class=\"c4\">\n            <label>Size <span class=\"opt\">(m\u00b2)<\/span><\/label>\n            <input type=\"number\" id=\"als-m2\" min=\"10\" max=\"1000\" step=\"5\" placeholder=\"e.g. 75\">\n          <\/div>\n\n          <!-- Floor -->\n          <div class=\"c4\">\n            <label>Floor <span class=\"opt\">\u2014 optional<\/span><\/label>\n            <select id=\"als-floor\">\n              <option value=\"\">Any \/ unknown<\/option>\n              <option value=\"0\">Ground (0)<\/option>\n              <option value=\"1\">1st<\/option>\n              <option value=\"2\">2nd<\/option>\n              <option value=\"3\">3rd<\/option>\n              <option value=\"4\">4th<\/option>\n              <option value=\"5\">5th+<\/option>\n            <\/select>\n          <\/div>\n\n          <!-- Condition -->\n          <div class=\"c4\">\n            <label>Condition <span class=\"opt\">\u2014 optional<\/span><\/label>\n            <select id=\"als-cond\">\n              <option value=\"\">Select\u2026<\/option>\n              <option value=\"new\">New<\/option>\n              <option value=\"like_new\">Like new<\/option>\n              <option value=\"good\">Good<\/option>\n              <option value=\"fair\">Fair<\/option>\n              <option value=\"needs_work\">Needs work<\/option>\n            <\/select>\n          <\/div>\n\n          <!-- Lease Duration -->\n          <div class=\"c6\">\n            <label>Lease Duration <span class=\"opt\">\u2014 optional<\/span><\/label>\n            <select id=\"als-lease\">\n              <option value=\"\">Select\u2026<\/option>\n              <option value=\"standard\">Standard (\u2265 1 year)<\/option>\n              <option value=\"short_term\">Short-term (&lt; 1 year)<\/option>\n              <option value=\"student\">Student<\/option>\n              <option value=\"furnished_short\">Furnished short-term<\/option>\n            <\/select>\n          <\/div>\n\n          <!-- Additional Extras -->\n          <div class=\"c12\">\n            <label>Additional Features <span class=\"opt\">\u2014 select all that apply<\/span><\/label>\n            <div class=\"checks\">\n              <label class=\"chk\"><input type=\"checkbox\" id=\"als-pool\"> Swimming pool<\/label>\n              <label class=\"chk\"><input type=\"checkbox\" id=\"als-gym\"> Gym \/ fitness<\/label>\n              <label class=\"chk\"><input type=\"checkbox\" id=\"als-storage\"> Storage room<\/label>\n              <label class=\"chk\"><input type=\"checkbox\" id=\"als-concierge\"> Concierge \/ doorman<\/label>\n            <\/div>\n          <\/div>\n\n        <\/div>\n      <\/div>\n\n    <\/div><!-- \/g -->\n\n    <div class=\"nav\">\n      <div><\/div>\n      <button class=\"btn\" onclick=\"alsNext()\">Next<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       STEP 2 \u2014 Financial Terms\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <div class=\"step\" id=\"als-s2\">\n    <h3>Financial Terms &amp; Tenant Data<\/h3>\n\n    <div class=\"info-box\">\n      All financial data is used solely for solvency analysis and is not stored permanently.\n    <\/div>\n\n    <div class=\"g\">\n\n      <!-- Rent -->\n      <div class=\"c6\">\n        <label>Monthly Rent (\u20ac) <span class=\"req\">*<\/span><\/label>\n        <div class=\"pw\"><span class=\"pfx\">\u20ac<\/span>\n          <input type=\"number\" id=\"als-rent\" min=\"0\" step=\"10\" placeholder=\"e.g. 1200\">\n        <\/div>\n      <\/div>\n\n      <!-- Existing Liabilities -->\n      <div class=\"c6\">\n        <label>Existing Monthly Liabilities (\u20ac) <span class=\"opt\">loans, credits\u2026<\/span><\/label>\n        <div class=\"pw\"><span class=\"pfx\">\u20ac<\/span>\n          <input type=\"number\" id=\"als-liab\" min=\"0\" step=\"10\" placeholder=\"0\" value=\"0\">\n        <\/div>\n      <\/div>\n\n      <!-- Month in Advance -->\n      <div class=\"c6\">\n        <label>Month in Advance <span class=\"req\">*<\/span><\/label>\n        <select id=\"als-adv\">\n          <option value=\"\">Select\u2026<\/option>\n          <option value=\"0\">None<\/option>\n          <option value=\"1\">1 Month<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- Security Deposit -->\n      <div class=\"c6\">\n        <label>Security Deposit <span class=\"req\">*<\/span><\/label>\n        <select id=\"als-dep\">\n          <option value=\"\">Select\u2026<\/option>\n          <option value=\"0\">None<\/option>\n          <option value=\"1\">1 Month<\/option>\n          <option value=\"2\">2 Months<\/option>\n          <option value=\"3\">3 Months<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- Tenant 1 Income -->\n      <div class=\"c12\">\n        <label>Tenant 1 \u2014 Gross Monthly Income (\u20ac) <span class=\"req\">*<\/span><\/label>\n        <div class=\"pw\"><span class=\"pfx\">\u20ac<\/span>\n          <input type=\"number\" id=\"als-income1\" min=\"0\" step=\"50\" placeholder=\"e.g. 3000\">\n        <\/div>\n      <\/div>\n\n      <!-- Add tenant 2 button -->\n      <div class=\"c12\" id=\"als-add-t2-row\">\n        <button type=\"button\" class=\"add-t-btn\" onclick=\"alsToggleTenant2()\">\n          + Add co-tenant income\n        <\/button>\n      <\/div>\n\n      <!-- Tenant 2 Income (hidden by default) -->\n      <div class=\"c12\" id=\"als-t2-row\" style=\"display:none\">\n        <div class=\"t2-panel\">\n          <button type=\"button\" class=\"rm-btn\" onclick=\"alsToggleTenant2()\">\u2715 Remove<\/button>\n          <label style=\"margin-bottom:6px\">Tenant 2 \u2014 Gross Monthly Income (\u20ac) <span class=\"opt\">\u2014 optional<\/span><\/label>\n          <div class=\"pw\"><span class=\"pfx\">\u20ac<\/span>\n            <input type=\"number\" id=\"als-income2\" min=\"0\" step=\"50\" placeholder=\"e.g. 2000\">\n          <\/div>\n          <p class=\"hint\" style=\"margin-top:6px\">Both incomes are combined for solvency calculations.<\/p>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n    <div class=\"nav\">\n      <button class=\"ghost\" onclick=\"alsBack()\">Back<\/button>\n      <button class=\"btn\" id=\"als-sbtn\" onclick=\"alsSubmit()\">Analyse Solvency<\/button>\n    <\/div>\n\n    <div class=\"err-box\" id=\"als-err\">\n      <span id=\"als-errmsg\">An error occurred. Please try again.<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- \u2500\u2500 LOADING \u2500\u2500 -->\n  <div class=\"sp-wrap\" id=\"als-sp\">\n    <div class=\"spinner\"><\/div>\n    <p>Analysing tenant solvency\u2026<\/p>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       REPORT\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <div class=\"report\" id=\"als-rpt\">\n\n    <!-- Risk header -->\n    <div class=\"rh\" id=\"r-hd\">\n      <div id=\"r-ico\" style=\"flex-shrink:0\"><\/div>\n      <div>\n        <div id=\"r-badge\"><\/div>\n        <h3 id=\"r-title\"><\/h3>\n        <p id=\"r-rec\"><\/p>\n      <\/div>\n    <\/div>\n\n    <!-- Market comparison -->\n    <div class=\"mkt\">\n      <div class=\"ph\">Market Comparison<\/div>\n      <div id=\"r-mkt\"><\/div>\n    <\/div>\n\n    <!-- Key metrics -->\n    <div class=\"metrics\">\n      <div class=\"mc\">\n        <div class=\"mv\" id=\"r-ser\">\u2014<\/div>\n        <div class=\"ml\">Simple Effort Rate<\/div>\n        <div class=\"bar\"><div class=\"bar-f\" id=\"r-ser-b\"><\/div><\/div>\n        <div class=\"mc-info\">Rent \u00f7 gross income. \u2264 30% healthy \u00b7 30\u201340% moderate \u00b7 &gt; 40% high risk<\/div>\n      <\/div>\n      <div class=\"mc\">\n        <div class=\"mv\" id=\"r-ger\">\u2014<\/div>\n        <div class=\"ml\">Global Effort Rate<\/div>\n        <div class=\"bar\"><div class=\"bar-f\" id=\"r-ger-b\"><\/div><\/div>\n        <div class=\"mc-info\">(Rent + debts) \u00f7 income. \u2264 40% safe \u00b7 40\u201345% borderline \u00b7 &gt; 45% exceeds Banco de Portugal limits<\/div>\n      <\/div>\n      <div class=\"mc\">\n        <div class=\"mv\" id=\"r-exp\">\u2014<\/div>\n        <div class=\"ml\">Net Financial Exposure<\/div>\n        <div class=\"bar\" style=\"background:transparent\"><\/div>\n        <div class=\"mc-info\">Max landlord loss if default: 6-month eviction + \u20ac1,500 legal costs, minus collected guarantees<\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Calculation breakdown -->\n    <div class=\"dtbl\">\n      <div class=\"dh\">Calculation Breakdown<\/div>\n      <div class=\"dr\"><span class=\"dl\">Monthly Rent<\/span><span class=\"dv\" id=\"rd-rent\">\u2014<\/span><\/div>\n      <div class=\"dr\"><span class=\"dl\">Existing Monthly Liabilities<\/span><span class=\"dv\" id=\"rd-liab\">\u2014<\/span><\/div>\n      <div class=\"dr\"><span class=\"dl\">Tenant(s) Combined Income<\/span><span class=\"dv\" id=\"rd-inc\">\u2014<\/span><\/div>\n      <div class=\"dr\"><span class=\"dl\">Month in Advance (\u20ac)<\/span><span class=\"dv\" id=\"rd-adv\">\u2014<\/span><\/div>\n      <div class=\"dr\"><span class=\"dl\">Security Deposit (\u20ac)<\/span><span class=\"dv\" id=\"rd-dep\">\u2014<\/span><\/div>\n      <div class=\"dr\"><span class=\"dl\">Simple Effort Rate<\/span><span class=\"dv\" id=\"rd-ser\">\u2014<\/span><\/div>\n      <div class=\"dr\"><span class=\"dl\">Global Effort Rate<\/span><span class=\"dv\" id=\"rd-ger\">\u2014<\/span><\/div>\n      <div class=\"dr\">\n        <span class=\"dl\">Net Exposure <span style=\"font-weight:400;font-size:11px\">(6-month eviction + \u20ac1,500 legal)<\/span><\/span>\n        <span class=\"dv\" id=\"rd-exp\">\u2014<\/span>\n      <\/div>\n    <\/div>\n\n    <!-- Property summary -->\n    <div class=\"dtbl\">\n      <div class=\"dh\">Property Summary<\/div>\n      <div class=\"dr\"><span class=\"dl\">Location<\/span><span class=\"dv\" id=\"rd-loc\">\u2014<\/span><\/div>\n      <div class=\"dr\"><span class=\"dl\">Type &amp; Typology<\/span><span class=\"dv\" id=\"rd-prop\">\u2014<\/span><\/div>\n      <div class=\"dr\"><span class=\"dl\">Extras<\/span><span class=\"dv\" id=\"rd-ext\">\u2014<\/span><\/div>\n    <\/div>\n\n    <!-- Footer -->\n    <div class=\"rf\">\n      <small>Generated by AluSeg \u00b7 <span id=\"r-ts\"><\/span><br>For informational use only. Not a substitute for professional legal advice.<\/small>\n      <button class=\"btn\" onclick=\"alsReset()\">New Assessment<\/button>\n    <\/div>\n  <\/div><!-- \/report -->\n\n<\/div><!-- \/als-card -->\n<\/div><!-- \/aluseg-solvency -->\n\n<script>\n(function(){\n'use strict';\n\n\/* \u2500\u2500 Config \u2500\u2500 *\/\nconst WEBHOOK = 'https:\/\/n8n.musko.io\/webhook\/aluseg-solvency';\nconst SB_URL  = 'https:\/\/ujbxjihbytloinjcannx.supabase.co';\nconst SB_ANON = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVqYnhqaWhieXRsb2luamNhbm54Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3Nzk0MjY4MTAsImV4cCI6MjA5NTAwMjgxMH0.0el6NhpshaeRAcrz2AX-YaPVcPxaY7-JGDNe3WGfVk8';\nconst SB_H    = {'Content-Type':'application\/json','apikey':SB_ANON,'Authorization':'Bearer '+SB_ANON};\n\n\/* \u2500\u2500 Property type display labels \u2500\u2500 *\/\nconst TYPE_LABELS = {\n  'Apartamento': 'Apartment',\n  'Moradia':     'House \/ Villa',\n  'Studio\/Loft': 'Studio \/ Loft',\n  'Quarto':      'Room'\n};\n\n\/* \u2500\u2500 FNV-1a hash (for user_agent_hash) \u2500\u2500 *\/\nfunction hashStr(str) {\n  let h = 2166136261 >>> 0;\n  for (let i = 0; i < str.length; i++) {\n    h ^= str.charCodeAt(i);\n    h = Math.imul(h, 16777619) >>> 0;\n  }\n  return h.toString(16);\n}\n\n\/* \u2500\u2500 Location data \u2500\u2500 *\/\nconst MUNICIPIOS = {\n  \"Aveiro\":[\"\u00c1gueda\",\"Albergaria-a-Velha\",\"Anadia\",\"Arouca\",\"Aveiro\",\"Castelo de Paiva\",\"Espinho\",\"Estarreja\",\"\u00cdlhavo\",\"Mealhada\",\"Murtosa\",\"Oliveira de Azem\u00e9is\",\"Oliveira do Bairro\",\"Ovar\",\"Santa Maria da Feira\",\"S\u00e3o Jo\u00e3o da Madeira\",\"Sever do Vouga\",\"Vagos\",\"Vale de Cambra\"],\n  \"Beja\":[\"Aljustrel\",\"Beja\",\"Castro Verde\",\"Ferreira do Alentejo\",\"Moura\",\"Odemira\"],\n  \"Braga\":[\"Amares\",\"Barcelos\",\"Braga\",\"Cabeceiras de Basto\",\"Celorico de Basto\",\"Esposende\",\"Fafe\",\"Guimar\u00e3es\",\"P\u00f3voa de Lanhoso\",\"Terras de Bouro\",\"Vieira do Minho\",\"Vila Nova de Famalic\u00e3o\",\"Vila Verde\",\"Vizela\"],\n  \"Bragan\u00e7a\":[\"Bragan\u00e7a\",\"Macedo de Cavaleiros\",\"Mirandela\",\"Mogadouro\",\"Vila Flor\"],\n  \"Castelo Branco\":[\"Belmonte\",\"Castelo Branco\",\"Covilh\u00e3\",\"Fund\u00e3o\",\"Sert\u00e3\"],\n  \"Coimbra\":[\"Arganil\",\"Cantanhede\",\"Coimbra\",\"Condeixa-a-Nova\",\"Figueira da Foz\",\"Lous\u00e3\",\"Mealhada\",\"Mira\",\"Miranda do Corvo\",\"Montemor-o-Velho\",\"Oliveira do Hospital\",\"Pampilhosa da Serra\",\"Penacova\",\"Soure\",\"T\u00e1bua\",\"Vila Nova de Poiares\"],\n  \"\u00c9vora\":[\"Arraiolos\",\"Borba\",\"Estremoz\",\"\u00c9vora\",\"Montemor-o-Novo\",\"Redondo\",\"Reguengos de Monsaraz\",\"Vendas Novas\",\"Vila Vi\u00e7osa\"],\n  \"Faro\":[\"Albufeira\",\"Aljezur\",\"Castro Marim\",\"Faro\",\"Lagoa\",\"Lagos\",\"Loul\u00e9\",\"Monchique\",\"Olh\u00e3o\",\"Portim\u00e3o\",\"S\u00e3o Br\u00e1s de Alportel\",\"Silves\",\"Tavira\",\"Vila do Bispo\",\"Vila Real de Santo Ant\u00f3nio\"],\n  \"Guarda\":[\"Gouveia\",\"Guarda\",\"Sabugal\",\"Seia\",\"Trancoso\",\"Vila Nova de Foz C\u00f4a\"],\n  \"Leiria\":[\"Alcoba\u00e7a\",\"Alvai\u00e1zere\",\"Ansi\u00e3o\",\"Batalha\",\"Bombarral\",\"Caldas da Rainha\",\"Leiria\",\"Marinha Grande\",\"Nazar\u00e9\",\"\u00d3bidos\",\"Peniche\",\"Pombal\",\"Porto de M\u00f3s\"],\n  \"Lisboa\":[\"Alenquer\",\"Amadora\",\"Arruda dos Vinhos\",\"Azambuja\",\"Cadaval\",\"Cascais\",\"Lisboa\",\"Loures\",\"Lourinh\u00e3\",\"Mafra\",\"Odivelas\",\"Oeiras\",\"Sintra\",\"Sobral de Monte Agra\u00e7o\",\"Torres Vedras\",\"Vila Franca de Xira\"],\n  \"Madeira\":[\"Funchal\"],\n  \"Portalegre\":[\"Campo Maior\",\"Elvas\",\"Ponte de Sor\",\"Portalegre\"],\n  \"Porto\":[\"Amarante\",\"Bai\u00e3o\",\"Felgueiras\",\"Gondomar\",\"Lousada\",\"Maia\",\"Marco de Canaveses\",\"Matosinhos\",\"Pa\u00e7os de Ferreira\",\"Paredes\",\"Penafiel\",\"Porto\",\"P\u00f3voa de Varzim\",\"Santo Tirso\",\"Trofa\",\"Valongo\",\"Vila do Conde\",\"Vila Nova de Gaia\"],\n  \"Santar\u00e9m\":[\"Abrantes\",\"Alcanena\",\"Almeirim\",\"Benavente\",\"Cartaxo\",\"Chamusca\",\"Coruche\",\"Entroncamento\",\"Ferreira do Z\u00eazere\",\"Our\u00e9m\",\"Rio Maior\",\"Salvaterra de Magos\",\"Santar\u00e9m\",\"Tomar\",\"Torres Novas\",\"Vila Nova da Barquinha\"],\n  \"Set\u00fabal\":[\"Alc\u00e1cer do Sal\",\"Alcochete\",\"Almada\",\"Barreiro\",\"Gr\u00e2ndola\",\"Moita\",\"Montijo\",\"Palmela\",\"Santiago do Cac\u00e9m\",\"Seixal\",\"Sesimbra\",\"Set\u00fabal\",\"Sines\"],\n  \"Viana do Castelo\":[\"Arcos de Valdevez\",\"Caminha\",\"Melga\u00e7o\",\"Mon\u00e7\u00e3o\",\"Paredes de Coura\",\"Ponte da Barca\",\"Ponte de Lima\",\"Valen\u00e7a\",\"Viana do Castelo\",\"Vila Nova de Cerveira\"],\n  \"Vila Real\":[\"Chaves\",\"Peso da R\u00e9gua\",\"Valpa\u00e7os\",\"Vila Pouca de Aguiar\",\"Vila Real\"],\n  \"Viseu\":[\"Carregal do Sal\",\"Castro Daire\",\"Cinf\u00e3es\",\"Lamego\",\"Mangualde\",\"Moimenta da Beira\",\"Mort\u00e1gua\",\"Nelas\",\"Oliveira de Frades\",\"Resende\",\"Santa Comba D\u00e3o\",\"S\u00e3o Pedro do Sul\",\"S\u00e1t\u00e3o\",\"Tondela\",\"Viseu\",\"Vouzela\"]\n};\n\nconst FREGUESIAS = {\n  \"Lisboa\":        [\"Alvalade\",\"Arroios\",\"Avenidas Novas\",\"Bel\u00e9m\",\"Benfica\",\"Campolide\",\"Campo de Ourique\",\"Carnide\",\"Estrela\",\"Lumiar\",\"Marvila\",\"Miseric\u00f3rdia\",\"Olivais\",\"Parque das Na\u00e7\u00f5es\",\"Penha de Fran\u00e7a\",\"Santa Clara\",\"Santa Maria Maior\",\"Santo Ant\u00f3nio\"],\n  \"Porto\":         [\"Aldoar, Foz do Douro e Nevogilde\",\"Bonfim\",\"Campanh\u00e3\",\"Cedofeita, Santo Ildefonso, S\u00e9, Miragaia, S\u00e3o Nicolau e Vit\u00f3ria\",\"Lordelo do Ouro e Massarelos\",\"Paranhos\",\"Ramalde\"],\n  \"Cascais\":       [\"Alcabideche\",\"Birre\",\"Cascais e Estoril\",\"Parede\",\"S\u00e3o Domingos de Rana\"],\n  \"Braga\":         [\"Braga (S\u00e3o Jos\u00e9 de S\u00e3o L\u00e1zaro e S\u00e3o Jo\u00e3o do Souto)\",\"Gualtar\",\"Maximinos, S\u00e9 e Cividade\",\"Nogueir\u00f3 e Ten\u00f5es\"],\n  \"Vila Nova de Gaia\":[\"Canelas\",\"Mafamude e Vilar do Para\u00edso\",\"Oliveira do Douro\",\"Santa Marinha e S\u00e3o Pedro da Afurada\"],\n  \"Matosinhos\":    [\"Matosinhos e Le\u00e7a da Palmeira\",\"Perafita, Lavra e Santa Cruz do Bispo\",\"Senhora da Hora\"],\n  \"Coimbra\":       [\"Eiras e S\u00e3o Paulo de Frades\",\"Santo Ant\u00f3nio dos Olivais\",\"S\u00e3o Martinho do Bispo e Ribeira de Frades\",\"S\u00e9 Nova, Santa Cruz, Almedina e S\u00e3o Bartolomeu\"],\n  \"Loul\u00e9\":         [\"Almancil\",\"Loul\u00e9 (S\u00e3o Clemente)\",\"Quarteira\"],\n  \"Faro\":          [\"Montenegro\",\"S\u00e9 e S\u00e3o Pedro\"],\n  \"Albufeira\":     [\"Albufeira e Olhos de \u00c1gua\",\"Paderne\"],\n  \"Sintra\":        [\"Agualva e Mira Sintra\",\"Cac\u00e9m e S\u00e3o Marcos\",\"Rio de Mouro\",\"Sintra (Santa Maria e S\u00e3o Miguel, S\u00e3o Martinho e S\u00e3o Pedro de Penaferrim)\"],\n  \"Oeiras\":        [\"Alg\u00e9s, Linda-a-Velha e Cruz Quebrada-Dafundo\",\"Oeiras e S\u00e3o Juli\u00e3o da Barra, Pa\u00e7o de Arcos e Caxias\",\"Porto Salvo\"]\n};\n\n\/* \u2500\u2500 DOM helpers \u2500\u2500 *\/\nconst $ = id => document.getElementById(id);\nlet curStep = 1;\n\n\/* \u2500\u2500 Step navigation \u2500\u2500 *\/\nfunction showStep(n) {\n  curStep = n;\n  [1,2].forEach(i => {\n    const s = $('als-s' + i);\n    const st = $('als-st-' + i);\n    if (s)  s.classList.toggle('active', i === n);\n    if (st) { st.classList.remove('on','done'); st.classList.add(i === n ? 'on' : i < n ? 'done' : ''); }\n  });\n  hideErr();\n}\n\nfunction alsNext() { if (validateS1()) showStep(2); }\nfunction alsBack() { showStep(1); }\n\n\/* \u2500\u2500 Tenant 2 toggle \u2500\u2500 *\/\nfunction alsToggleTenant2() {\n  const t2 = $('als-t2-row');\n  const isOpen = t2.style.display !== 'none';\n  t2.style.display = isOpen ? 'none' : '';\n  if (isOpen) $('als-income2').value = '';\n  else $('als-income2').focus();\n}\n\n\/* \u2500\u2500 Advanced options toggle \u2500\u2500 *\/\nfunction alsToggleAdv() {\n  const panel = $('als-adv-panel');\n  const arrow = $('als-adv-arrow');\n  const isOpen = panel.style.display !== 'none';\n  panel.style.display = isOpen ? 'none' : '';\n  arrow.textContent = isOpen ? '\u25bc' : '\u25b2';\n}\n\n\/* \u2500\u2500 Validation \u2500\u2500 *\/\nfunction setEF(el, isErr) { if (el) el.classList.toggle('ef', isErr); }\n\nfunction validateS1() {\n  let ok = true;\n  const d = $('als-distrito').value, m = $('als-municipio').value;\n  const t = $('als-type').value;\n  const isQuarto = t === 'Quarto';\n  const ty = isQuarto ? 'T1' : $('als-typo').value;\n  setEF($('als-distrito'), !d); if (!d) ok = false;\n  setEF($('als-municipio'), !m); if (!m) ok = false;\n  setEF($('als-type'), !t); if (!t) ok = false;\n  if (!isQuarto) { setEF($('als-typo'), !ty); if (!ty) ok = false; }\n  if ($('als-newp-row').style.display !== 'none') {\n    const np = $('als-newp-input').value.trim();\n    setEF($('als-newp-input'), !np); if (!np) ok = false;\n  }\n  return ok;\n}\n\nfunction validateS2() {\n  let ok = true;\n  const rent  = parseFloat($('als-rent').value);\n  const adv   = $('als-adv').value;\n  const dep   = $('als-dep').value;\n  const inc1  = parseFloat($('als-income1').value);\n  const liab  = parseFloat($('als-liab').value);\n  setEF($('als-rent'),    !(rent > 0));    if (!(rent > 0)) ok = false;\n  setEF($('als-adv'),     adv === '');     if (adv === '')  ok = false;\n  setEF($('als-dep'),     dep === '');     if (dep === '')  ok = false;\n  setEF($('als-income1'), !(inc1 > 0));   if (!(inc1 > 0)) ok = false;\n  setEF($('als-liab'),    isNaN(liab));   if (isNaN(liab)) ok = false;\n  return ok;\n}\n\n\/* \u2500\u2500 Submit \u2500\u2500 *\/\nasync function alsSubmit() {\n  if (!validateS2()) return;\n\n  const distrito  = $('als-distrito').value;\n  const municipio = $('als-municipio').value;\n\n  \/* resolve parish *\/\n  let freguesia   = '';\n  let isNewParish = false;\n  if ($('als-freq-row').style.display !== 'none') {\n    const v = $('als-freq').value;\n    if (v === '__other__') { freguesia = $('als-newp-input').value.trim(); isNewParish = true; }\n    else { freguesia = v; }\n  } else if ($('als-free-row').style.display !== 'none') {\n    freguesia = $('als-free-freq').value.trim();\n  }\n\n  \/* combined income *\/\n  const income1 = parseFloat($('als-income1').value) || 0;\n  const income2 = $('als-t2-row').style.display !== 'none' ? (parseFloat($('als-income2').value) || 0) : 0;\n  const grossMonthlyIncome = income1 + income2;\n\n  \/* property type \u2014 Quarto forces T1 typology *\/\n  const propType = $('als-type').value;\n  const typology = propType === 'Quarto' ? 'T1' : $('als-typo').value;\n\n  \/* extras \u2014 basic checkboxes *\/\n  const extrasBasic = Array.from(document.querySelectorAll('#aluseg-solvency input[name=\"extras\"]:checked')).map(c => c.value);\n\n  \/* extras \u2014 advanced features *\/\n  const hasPool     = $('als-pool').checked;\n  const hasGym      = $('als-gym').checked;\n  const hasStorage  = $('als-storage').checked;\n  const hasConcierge= $('als-concierge').checked;\n\n  \/* combined extras for payload \/ report *\/\n  const isFurnishedCheck = $('als-furnished').checked;\n  const allExtras = isFurnishedCheck ? ['Furnished', ...extrasBasic] : [...extrasBasic];\n  if (hasPool)      allExtras.push('Pool');\n  if (hasGym)       allExtras.push('Gym');\n  if (hasStorage)   allExtras.push('Storage');\n  if (hasConcierge) allExtras.push('Concierge');\n\n  \/* advanced fields *\/\n  const sizeM2  = parseFloat($('als-m2').value) || null;\n  const floorVal= $('als-floor').value !== '' ? parseInt($('als-floor').value) : null;\n  const condVal = $('als-cond').value  || null;\n  const leaseVal= $('als-lease').value || null;\n\n  const payload = {\n    distrito,\n    municipio,\n    freguesia:              freguesia || null,\n    propertyType:           propType,\n    typology,\n    extras:                 allExtras,\n    monthlyRent:            parseFloat($('als-rent').value),\n    monthInAdvanceMonths:   parseInt($('als-adv').value) || 0,\n    securityDepositMonths:  parseInt($('als-dep').value) || 0,\n    grossMonthlyIncome,\n    tenant1Income:          income1,\n    tenant2Income:          income2 > 0 ? income2 : null,\n    monthlyLiabilities:     parseFloat($('als-liab').value) || 0\n  };\n\n  \/* hide step 2, show spinner *\/\n  $('als-s2').style.display = 'none';\n  $('als-sp').classList.add('on');\n  $('als-sbtn').disabled = true;\n  hideErr();\n\n  \/* \u2500\u2500 Non-blocking: save new parish \u2500\u2500 *\/\n  if (isNewParish && freguesia) {\n    fetch(SB_URL + '\/rest\/v1\/parish_suggestions', {\n      method: 'POST',\n      headers: Object.assign({}, SB_H, {'Prefer':'return=minimal'}),\n      body: JSON.stringify({ distrito, municipio, freguesia, created_at: new Date().toISOString() })\n    }).catch(() => {});\n  }\n\n  \/* \u2500\u2500 Non-blocking: save to rental_prices_crowdsourced (all columns) \u2500\u2500 *\/\n  const now = new Date();\n  fetch(SB_URL + '\/rest\/v1\/rental_prices_crowdsourced', {\n    method: 'POST',\n    headers: Object.assign({}, SB_H, {'Prefer':'return=minimal'}),\n    body: JSON.stringify({\n      distrito,\n      municipio,\n      freguesia:          freguesia || null,\n      property_type:      propType,\n      typology,\n      size_m2:            sizeM2,\n      floor:              floorVal,\n      condition:          condVal,\n      lease_type:         leaseVal,\n      furnished:          isFurnishedCheck,\n      parking:            extrasBasic.includes('Garage'),\n      outdoor:            extrasBasic.includes('Balcony'),\n      nolift:             !extrasBasic.includes('Elevator'),\n      pool:               hasPool,\n      gym:                hasGym,\n      storage:            hasStorage,\n      concierge:          hasConcierge,\n      rent_monthly:       payload.monthlyRent,\n      lease_start_month:  now.getMonth() + 1,\n      lease_start_year:   now.getFullYear(),\n      user_agent_hash:    hashStr(navigator.userAgent)\n    })\n  }).catch(() => {});\n\n  try {\n    \/* \u2500\u2500 Parallel: solvency webhook + market RPC \u2500\u2500 *\/\n    const mktTypology = propType === 'Quarto' ? 'T1' : typology;\n    const isFurnished = $('als-furnished').checked;\n\n    const [solvR, mktR] = await Promise.allSettled([\n      fetch(WEBHOOK, {\n        method: 'POST',\n        headers: {'Content-Type':'application\/json'},\n        body: JSON.stringify(payload)\n      }).then(r => { if (!r.ok) throw new Error('HTTP ' + r.status); return r.json(); }),\n\n      fetch(SB_URL + '\/rest\/v1\/rpc\/estimate_rent_v2', {\n        method: 'POST',\n        headers: SB_H,\n        body: JSON.stringify({\n          distrito,\n          municipio,\n          property_type: propType,\n          typology:      mktTypology,\n          furnished:     isFurnished,\n          ...(freguesia && !isNewParish ? { freguesia } : {})\n        })\n      }).then(r => r.ok ? r.json() : null).catch(() => null)\n    ]);\n\n    $('als-sp').classList.remove('on');\n\n    if (solvR.status === 'rejected') throw new Error(solvR.reason?.message || 'Solvency analysis failed');\n\n    const mktRow = (() => {\n      if (mktR.status !== 'fulfilled' || !mktR.value) return null;\n      const v = mktR.value;\n      return Array.isArray(v) ? v[0] : v;\n    })();\n\n    renderReport(solvR.value, payload, mktRow);\n\n  } catch(e) {\n    $('als-sp').classList.remove('on');\n    $('als-s2').style.display = 'block';\n    $('als-sbtn').disabled = false;\n    showErr(e.message || 'Connection error. Please check your connection and try again.');\n  }\n}\n\n\/* \u2500\u2500 Render report \u2500\u2500 *\/\nfunction renderReport(d, p, mkt) {\n  const tier    = (d.riskTier || '').toLowerCase();\n  const tierKey = tier === 'medium' ? 'med' : tier;\n  const fmt     = v => '\u20ac' + Math.round(v).toLocaleString('pt-PT');\n  const rent    = p.monthlyRent;\n\n  \/* Risk header *\/\n  const hd = $('r-hd');\n  hd.className = 'rh ' + tierKey;\n\n  const ICONS = {\n    low:  '<svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" fill=\"none\"><circle cx=\"19\" cy=\"19\" r=\"17\" fill=\"#e8f5ee\" stroke=\"#a8dbbe\" stroke-width=\"1.5\"\/><path d=\"M12 19l5 5 9-9\" stroke=\"#1a7f4b\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>',\n    med:  '<svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" fill=\"none\"><circle cx=\"19\" cy=\"19\" r=\"17\" fill=\"#fdf8e8\" stroke=\"#f0d88a\" stroke-width=\"1.5\"\/><path d=\"M19 12v10M19 26v.5\" stroke=\"#b07d12\" stroke-width=\"2.2\" stroke-linecap=\"round\"\/><\/svg>',\n    high: '<svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" fill=\"none\"><circle cx=\"19\" cy=\"19\" r=\"17\" fill=\"#fdf0ee\" stroke=\"#f0b8b2\" stroke-width=\"1.5\"\/><path d=\"M19 12v10M19 26v.5\" stroke=\"#c0392b\" stroke-width=\"2.2\" stroke-linecap=\"round\"\/><\/svg>'\n  };\n  $('r-ico').innerHTML = ICONS[tierKey] || ICONS.med;\n\n  const BLABELS = { low:'Low Risk', med:'Medium Risk', high:'High Risk' };\n  $('r-badge').innerHTML = '<span class=\"rb ' + tierKey + '\">' + (BLABELS[tierKey] || d.riskTier) + '<\/span>';\n\n  const TITLES = {\n    low:  'Tenant appears financially solvent.',\n    med:  'Caution \u2014 moderate solvency risk detected.',\n    high: 'High risk \u2014 elevated probability of default.'\n  };\n  $('r-title').textContent = TITLES[tierKey] || '';\n  $('r-rec').textContent   = d.recommendation || '';\n\n  \/* Market comparison *\/\n  const mktEl = $('r-mkt');\n  const typeLabel = TYPE_LABELS[p.propertyType] || p.propertyType;\n\n  if (mkt && mkt.rent_median != null) {\n    const med    = parseFloat(mkt.rent_median);\n    const min    = parseFloat(mkt.rent_min);\n    const max    = parseFloat(mkt.rent_max);\n    const diff   = rent - med;\n    const pctRaw = (diff \/ med) * 100;\n    const absPct = Math.abs(pctRaw).toFixed(1);\n    const absDiff= Math.abs(diff);\n    const loc    = p.freguesia ? p.freguesia + ', ' + p.municipio : p.municipio;\n\n    let cls, cp, txt;\n    if (Math.abs(pctRaw) <= 7.5) {\n      cls = 'inline'; cp = '\u2248 In line';\n      txt = 'The rent of <strong>' + fmt(rent) + '\/mo<\/strong> is within 7.5% of the local median (<strong>' + fmt(med) + '\/mo<\/strong>) for a ' + p.typology + ' ' + typeLabel + ' in <strong>' + loc + '<\/strong>. Pricing is fair and market-aligned.';\n    } else if (diff > 0) {\n      cls = 'above'; cp = '\u2191 ' + absPct + '% above';\n      txt = 'The rent of <strong>' + fmt(rent) + '\/mo<\/strong> is <strong>' + fmt(absDiff) + ' above<\/strong> the local median (<strong>' + fmt(med) + '\/mo<\/strong>) for a ' + p.typology + ' ' + typeLabel + ' in <strong>' + loc + '<\/strong>. Above market \u2014 may increase affordability pressure on the tenant.';\n    } else {\n      cls = 'below'; cp = '\u2193 ' + absPct + '% below';\n      txt = 'The rent of <strong>' + fmt(rent) + '\/mo<\/strong> is <strong>' + fmt(absDiff) + ' below<\/strong> the local median (<strong>' + fmt(med) + '\/mo<\/strong>) for a ' + p.typology + ' ' + typeLabel + ' in <strong>' + loc + '<\/strong>. Competitive rent \u2014 well within the tenant\\'s reach.';\n    }\n\n    const yoyStr = (mkt.yoy_pct != null) ? ' \u00b7 YoY: ' + (mkt.yoy_pct >= 0 ? '+' : '') + parseFloat(mkt.yoy_pct).toFixed(1) + '%' : '';\n    const srcLine = (mkt.data_period || mkt.data_source)\n      ? '<div class=\"mkt-src\">Source: ' + (mkt.data_source || 'INE') + (mkt.data_period ? ' \u2014 ' + mkt.data_period : '') + (mkt.resolved_at ? ' \u00b7 ' + ({freguesia:'Parish level',munic\u00edpio:'Municipality level',municipio:'Municipality level',distrito:'District level'}[mkt.resolved_at] || mkt.resolved_at) : '') + yoyStr + '<\/div>'\n      : '';\n\n    mktEl.innerHTML =\n      '<div class=\"mkt-range\">' +\n        '<div class=\"mblk\"><span class=\"ml\">Minimum<\/span><span class=\"mv\">' + fmt(min) + '<\/span><\/div>' +\n        '<div class=\"mkt-sep\"><\/div>' +\n        '<div class=\"mblk\"><span class=\"ml\">Median<\/span><span class=\"mv main\">' + fmt(med) + '<\/span><\/div>' +\n        '<div class=\"mkt-sep\"><\/div>' +\n        '<div class=\"mblk\"><span class=\"ml\">Maximum<\/span><span class=\"mv\">' + fmt(max) + '<\/span><\/div>' +\n      '<\/div>' +\n      '<div class=\"mkt-cmp ' + cls + '\"><span class=\"cp\">' + cp + '<\/span><span>' + txt + '<\/span><\/div>' +\n      srcLine;\n  } else {\n    mktEl.innerHTML = '<p class=\"mkt-na\">Market data not yet available for this location and property combination.<\/p>';\n  }\n\n  \/* Key metrics *\/\n  const ser = parseFloat(d.simpleEffortRate) || 0;\n  const ger = parseFloat(d.globalEffortRate) || 0;\n  const exp = parseFloat(d.netExposure)      || 0;\n\n  $('r-ser').textContent = ser.toFixed(1) + '%';\n  $('r-ger').textContent = ger.toFixed(1) + '%';\n  $('r-exp').textContent = fmt(exp);\n\n  \/* Bar colors *\/\n  const serC = ser <= 30 ? '#1a7f4b' : ser <= 40 ? '#b07d12' : '#c0392b';\n  const gerC = ger <= 40 ? '#1a7f4b' : ger <= 45 ? '#b07d12' : '#c0392b';\n  $('r-ser-b').style.cssText = 'width:' + Math.min(ser, 100) + '%;background:' + serC;\n  $('r-ger-b').style.cssText = 'width:' + Math.min(ger, 100) + '%;background:' + gerC;\n\n  \/* Breakdown table *\/\n  const advAmt = (p.monthInAdvanceMonths || 0) * rent;\n  const depAmt = (p.securityDepositMonths || 0) * rent;\n  const serCls = ser <= 30 ? 'ok' : ser <= 40 ? 'warn' : 'bad';\n  const gerCls = ger <= 40 ? 'ok' : ger <= 45 ? 'warn' : 'bad';\n\n  const incDisplay = (p.tenant2Income > 0)\n    ? fmt(p.tenant1Income) + ' + ' + fmt(p.tenant2Income) + ' = ' + fmt(p.grossMonthlyIncome)\n    : fmt(p.grossMonthlyIncome);\n\n  $('rd-rent').textContent = fmt(rent);\n  $('rd-liab').textContent = fmt(p.monthlyLiabilities);\n  $('rd-inc').textContent  = incDisplay;\n  $('rd-adv').textContent  = fmt(advAmt) + (p.monthInAdvanceMonths > 0 ? ' (' + p.monthInAdvanceMonths + 'mo)' : ' (none)');\n  $('rd-dep').textContent  = fmt(depAmt) + (p.securityDepositMonths > 0 ? ' (' + p.securityDepositMonths + 'mo)' : ' (none)');\n  $('rd-ser').innerHTML    = '<span class=\"dv ' + serCls + '\">' + ser.toFixed(1) + '%<\/span>';\n  $('rd-ger').innerHTML    = '<span class=\"dv ' + gerCls + '\">' + ger.toFixed(1) + '%<\/span>';\n  $('rd-exp').textContent  = fmt(exp);\n\n  \/* Property summary *\/\n  const locParts = [p.freguesia, p.municipio, p.distrito].filter(Boolean);\n  $('rd-loc').textContent  = locParts.join(', ') || '\u2014';\n  $('rd-prop').textContent = typeLabel + (p.typology && p.propertyType !== 'Quarto' ? ' \u00b7 ' + p.typology : '');\n  $('rd-ext').textContent  = (p.extras && p.extras.length) ? p.extras.join(', ') : 'None';\n\n  \/* Timestamp *\/\n  const now = new Date();\n  $('r-ts').textContent = now.toLocaleDateString('en-GB',{day:'2-digit',month:'short',year:'numeric'}) + ' at ' + now.toLocaleTimeString('en-GB',{hour:'2-digit',minute:'2-digit'});\n\n  $('als-rpt').classList.add('on');\n  $('als-rpt').scrollIntoView({ behavior:'smooth', block:'nearest' });\n}\n\n\/* \u2500\u2500 Reset \u2500\u2500 *\/\nfunction alsReset() {\n  $('als-rpt').classList.remove('on');\n  document.querySelectorAll('#aluseg-solvency input[type=text]').forEach(el => { el.value = ''; });\n  document.querySelectorAll('#aluseg-solvency input[type=number]').forEach(el => { el.value = el.id === 'als-liab' ? '0' : ''; });\n  document.querySelectorAll('#aluseg-solvency select').forEach(el => { el.selectedIndex = 0; });\n  document.querySelectorAll('#aluseg-solvency input[type=checkbox]').forEach(el => { el.checked = false; });\n  document.querySelectorAll('#aluseg-solvency .ef').forEach(el => el.classList.remove('ef'));\n  $('als-municipio').disabled = true;\n  $('als-municipio').innerHTML = '<option value=\"\">Select district first<\/option>';\n  $('als-freq').innerHTML = '<option value=\"\">All parishes (municipality average)<\/option>';\n  $('als-freq-row').style.display  = 'none';\n  $('als-free-row').style.display  = 'none';\n  $('als-newp-row').style.display  = 'none';\n  $('als-t2-row').style.display    = 'none';\n  $('als-typo-col').style.display  = '';\n  $('als-adv-panel').style.display = 'none';\n  $('als-adv-arrow').textContent   = '\u25bc';\n  $('als-s2').style.display = '';\n  $('als-sbtn').disabled = false;\n  hideErr();\n  showStep(1);\n}\n\n\/* \u2500\u2500 Error helpers \u2500\u2500 *\/\nfunction showErr(msg) { $('als-errmsg').textContent = msg; $('als-err').classList.add('on'); }\nfunction hideErr()    { $('als-err').classList.remove('on'); }\n\n\/* \u2500\u2500 Location cascade \u2500\u2500 *\/\nconst selD = $('als-distrito');\nconst selM = $('als-municipio');\nconst selF = $('als-freq');\n\nObject.keys(MUNICIPIOS).sort().forEach(d => {\n  const o = document.createElement('option');\n  o.value = o.textContent = d;\n  selD.appendChild(o);\n});\n\nselD.addEventListener('change', () => {\n  const d = selD.value;\n  selM.innerHTML = '';\n  selF.innerHTML = '<option value=\"\">All parishes (municipality average)<\/option>';\n  $('als-freq-row').style.display = 'none';\n  $('als-free-row').style.display = 'none';\n  $('als-newp-row').style.display = 'none';\n  setEF(selD, false);\n  if (!d) { selM.innerHTML = '<option value=\"\">Select district first<\/option>'; selM.disabled = true; return; }\n  const ph = document.createElement('option'); ph.value = ''; ph.textContent = 'Select municipality\u2026'; selM.appendChild(ph);\n  MUNICIPIOS[d].forEach(m => { const o = document.createElement('option'); o.value = o.textContent = m; selM.appendChild(o); });\n  selM.disabled = false;\n});\n\nselM.addEventListener('change', () => {\n  const m = selM.value;\n  selF.innerHTML = '<option value=\"\">All parishes (municipality average)<\/option>';\n  $('als-freq-row').style.display = 'none';\n  $('als-free-row').style.display = 'none';\n  $('als-newp-row').style.display = 'none';\n  setEF(selM, false);\n  if (!m) return;\n  if (FREGUESIAS[m]) {\n    FREGUESIAS[m].forEach(f => { const o = document.createElement('option'); o.value = o.textContent = f; selF.appendChild(o); });\n    const oo = document.createElement('option');\n    oo.value = '__other__'; oo.textContent = '\u2014 My parish is not listed (add it)';\n    selF.appendChild(oo);\n    $('als-freq-row').style.display = '';\n  } else {\n    $('als-free-row').style.display = '';\n  }\n});\n\nselF.addEventListener('change', () => {\n  const isOther = selF.value === '__other__';\n  $('als-newp-row').style.display = isOther ? '' : 'none';\n  if (isOther) $('als-newp-input').focus();\n});\n\n\/* \u2500\u2500 Quarto: hide typology \u2500\u2500 *\/\n$('als-type').addEventListener('change', () => {\n  const isQuarto = $('als-type').value === 'Quarto';\n  $('als-typo-col').style.display = isQuarto ? 'none' : '';\n  if (isQuarto) $('als-typo').value = '';\n  setEF($('als-type'), false);\n});\n\n\/* \u2500\u2500 Live error removal \u2500\u2500 *\/\n['als-distrito','als-municipio','als-type','als-typo',\n 'als-rent','als-adv','als-dep','als-income1','als-liab'].forEach(id => {\n  const el = $(id);\n  if (!el) return;\n  const clear = () => setEF(el, false);\n  el.addEventListener('input',  clear);\n  el.addEventListener('change', clear);\n});\n$('als-newp-input').addEventListener('input', () => setEF($('als-newp-input'), false));\n$('als-free-freq').addEventListener('input',  () => setEF($('als-free-freq'),  false));\n\n\/* \u2500\u2500 Expose to onclick \u2500\u2500 *\/\nwindow.alsNext          = alsNext;\nwindow.alsBack          = alsBack;\nwindow.alsSubmit        = alsSubmit;\nwindow.alsReset         = alsReset;\nwindow.alsToggleTenant2 = alsToggleTenant2;\nwindow.alsToggleAdv     = alsToggleAdv;\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-ceacccf e-flex e-con-boxed e-con e-parent\" data-id=\"ceacccf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cedca3f animated-slow elementor-invisible elementor-widget elementor-widget-jkit_heading\" data-id=\"cedca3f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"jkit_heading.default\">\n\t\t\t\t\t<div  class=\"jeg-elementor-kit jkit-heading  align-center align-tablet- align-mobile- jeg_module__1_6a300a5696177\" ><div class=\"heading-section-title  display-inline\"><h2 class=\"heading-title\">Institutional <span class=\"style-color\"><span>Risk Threshold Tiers<\/span><\/span><\/h2><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cc206e animated-slow elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"4cc206e\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Aluseg filters tenant financial data through standard banking and insurance risk thresholds utilized across the Portuguese property sector. Assess where your applicant falls:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15ebb71 elementor-widget elementor-widget-html\" data-id=\"15ebb71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n  .aluseg-table-container {\n    width: 100%;\n    margin: 20px 0;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  }\n  .aluseg-matrix-table {\n    width: 100%;\n    border-collapse: collapse;\n    background-color: #ffffff;\n    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);\n    border-radius: 8px;\n    overflow: hidden;\n  }\n  .aluseg-matrix-table th {\n    background-color: #f8f9fa;\n    color: #1a1a1a;\n    font-weight: 600;\n    text-align: left;\n    padding: 16px;\n    font-size: 14px;\n    border-bottom: 2px solid #e9ecef;\n  }\n  .aluseg-matrix-table td {\n    padding: 16px;\n    color: #4a5568;\n    font-size: 14px;\n    border-bottom: 1px solid #edf2f7;\n  }\n  .aluseg-matrix-table tbody tr:nth-of-type(even) {\n    background-color: #fcfcfc;\n  }\n  .aluseg-matrix-table tbody tr:hover {\n    background-color: #f7fafc;\n  }\n  .risk-badge {\n    display: inline-block;\n    padding: 4px 8px;\n    border-radius: 4px;\n    font-size: 12px;\n    font-weight: 600;\n  }\n  .risk-badge.low {\n    background-color: #dcfce7;\n    color: #15803d;\n  }\n  .risk-badge.medium {\n    background-color: #fef9c3;\n    color: #a16207;\n  }\n  .risk-badge.high {\n    background-color: #fee2e2;\n    color: #b91c1c;\n  }\n\n  \/* --- RESPONSIVE MOBILE STYLES --- *\/\n  @media screen and (max-width: 600px) {\n    \/* Hide the traditional table header row entirely *\/\n    .aluseg-matrix-table thead {\n      display: none;\n    }\n    \n    \/* Make rows look like individual cards *\/\n    .aluseg-matrix-table tr {\n      display: block;\n      border: 1px solid #edf2f7;\n      border-radius: 8px;\n      margin-bottom: 16px;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.02);\n      background: #ffffff;\n    }\n    \n    \/* Reset alternating background colors for mobile cards *\/\n    .aluseg-matrix-table tbody tr:nth-of-type(even) {\n      background-color: #ffffff;\n    }\n\n    \/* Transform cells into flex rows with labels on the left, data on the right *\/\n    .aluseg-matrix-table td {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      text-align: right;\n      padding: 12px 16px;\n      border-bottom: 1px solid #edf2f7;\n    }\n    \n    .aluseg-matrix-table td:last-child {\n      border-bottom: none;\n    }\n\n    \/* Dynamically insert column labels using data-label attributes *\/\n    .aluseg-matrix-table td::before {\n      content: attr(data-label);\n      font-weight: 600;\n      color: #718096;\n      text-align: left;\n      padding-right: 10px;\n      font-size: 13px;\n    }\n  }\n<\/style>\n\n<div class=\"aluseg-table-container\">\n  <table class=\"aluseg-matrix-table\">\n    <thead>\n      <tr>\n        <th>Underwriting Grade<\/th>\n        <th>Simple Effort Rate<\/th>\n        <th>Global Debt Profile<\/th>\n        <th>Recommended Landlord Action<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr>\n        <td data-label=\"Underwriting Grade\">\n          <span class=\"risk-badge low\">Grade A (Low Risk)<\/span>\n        <\/td>\n        <td data-label=\"Simple Effort Rate\"><strong>&le; 30%<\/strong><\/td>\n        <td data-label=\"Global Debt Profile\"><strong>&le; 40%<\/strong><\/td>\n        <td data-label=\"Recommended Landlord Action\">Safe to issue lease agreement under standard terms. Strong liquid buffers.<\/td>\n      <\/tr>\n      <tr>\n        <td data-label=\"Underwriting Grade\">\n          <span class=\"risk-badge medium\">Grade B (Moderate Risk)<\/span>\n        <\/td>\n        <td data-label=\"Simple Effort Rate\"><strong>30.1% - 40%<\/strong><\/td>\n        <td data-label=\"Global Debt Profile\"><strong>40.1% - 45%<\/strong><\/td>\n        <td data-label=\"Recommended Landlord Action\">Conditional approval: Reaches maximum bank credit safety limits. Require a Portuguese <em>Fiador<\/em> (Guarantor).<\/td>\n      <\/tr>\n      <tr>\n        <td data-label=\"Underwriting Grade\">\n          <span class=\"risk-badge high\">Grade C (High Risk)<\/span>\n        <\/td>\n        <td data-label=\"Simple Effort Rate\"><strong>&gt; 40%<\/strong><\/td>\n        <td data-label=\"Global Debt Profile\"><strong>&gt; 45%<\/strong><\/td>\n        <td data-label=\"Recommended Landlord Action\">Critical danger. Breaches Banco de Portugal macroprudential boundaries. Do not proceed without advanced default insurance.<\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-fed15a5 e-flex e-con-boxed e-con e-parent\" data-id=\"fed15a5\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-50abf50 e-con-full e-flex e-con e-child\" data-id=\"50abf50\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<span class=\"e-7edde7a-b552630 e-paragraph-base\" data-interaction-id=\"7edde7a\" data-e-type=\"widget\" data-id=\"7edde7a\">Underwriting Metrics<\/span>\n\t\t\t\t<div class=\"elementor-element elementor-element-52bd55e animated-slow elementor-invisible elementor-widget elementor-widget-jkit_heading\" data-id=\"52bd55e\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"jkit_heading.default\">\n\t\t\t\t\t<div  class=\"jeg-elementor-kit jkit-heading  align-left align-tablet- align-mobile- jeg_module__2_6a300a56972b3\" ><div class=\"heading-section-title  display-inline\"><h2 class=\"heading-title\">Protecting Capital in the <span class=\"style-color\"><span>Portuguese Rental Framework<\/span><\/span><\/h2><\/div><\/div>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1af7d4d e-con-full e-flex e-con e-child\" data-id=\"1af7d4d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3459c49 animated-slow elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"3459c49\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In Portugal, property cash flow management requires strict upfront vetting. Because resolving non-payment through the <i data-path-to-node=\"27,1,0\" data-index-in-node=\"129\">Balc\u00e3o do Arrendat\u00e1rio e do Senhorio<\/i> (BAS) or local courts can tie up your asset for months, defensive underwriting is your highest-leverage task. Aluseg ensures you never sign a lease blindly.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d01babb e-con-full e-grid e-con e-child\" data-id=\"d01babb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-76b9064 e-con-full e-transform animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"76b9064\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;_transform_translateY_effect_hover&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:-0.25,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;animation&quot;:&quot;fadeInUp&quot;,&quot;_transform_translateX_effect_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c9c8824 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"c9c8824\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" id=\"Capa_1\" height=\"512\" viewBox=\"0 0 508.747 508.747\" width=\"512\"><path d=\"m164.255 370.837 15.271-1.58-5.549 35.738c-.704 4.534 2.797 8.652 7.42 8.652 3.635 0 6.827-2.647 7.402-6.35l6.13-39.479c1.219-7.849-5.326-14.692-13.18-13.87l-16.349 1.691-.68-3.74 24.469-21.478c3.961-3.478 5.21-9.062 3.108-13.895l-3.638-8.368c-2.566-5.9-9.294-8.755-15.319-6.493l-20.248 7.593-8.281-1.439 7.069-32.045h3.313c5.365 0 10.012-3.451 11.564-8.59l19.956-66.181c1.196-3.965-1.05-8.15-5.016-9.346-3.961-1.196-8.149 1.049-9.346 5.016l-19.329 64.102h-3.488c-5.624 0-10.585 3.986-11.797 9.478l-8.232 37.318c-1.481 6.711 2.95 13.327 9.729 14.505 18.715 3.253 11.706 4.011 36.776-5.39l1.682 3.869c-31.423 27.582-29.793 22.677-26.566 40.431 1.125 6.169 6.883 10.499 13.129 9.851z\"><\/path><path d=\"m374.521 53.331-18.687-13.496v-12.767c0-6.289-4.724-11.461-10.987-12.03l-35.089-3.19c-3.367-.305-6.739.826-9.239 3.109-4.759 4.346-3.935 9.326-3.935 15.976l-13.008 2.855c-1.443-4.764-5.749-8.294-10.973-8.55l-10.801-.527c-8.188-.39-11.092 6.065-14.359 11.136l-5.705-4.51 4.842-7.302c2.959-4.463 2.602-10.427-.867-14.502l-4.485-5.274c-3.82-4.491-10.278-5.57-15.349-2.572l-8.571 5.066-8.602-1.036c-4.536-.549-8.927 1.467-11.472 5.254l-16.953 25.22c-2.781 4.138-2.714 9.652.168 13.722l6.47 9.134c-4.006 5.547-8.282 9.867-5.722 16.943l15.089 41.643-15.352 50.793c-1.198 3.965 1.045 8.151 5.01 9.349 3.968 1.2 8.15-1.044 9.35-5.009l15.632-51.724c.747-2.474.674-5.175-.206-7.607l-14.893-41.101 4.474-6.196c3.027-4.19 3.054-9.839.065-14.056l-6.512-9.194 14.831-22.064c13.321 1.605 10.763 2.09 22.709-4.972l1.469 1.727-5.11 7.706c-3.444 5.193-2.313 12.289 2.575 16.154l10.338 8.171c5.578 4.409 13.78 3.065 17.646-2.936l4.444-6.899 6.663.325c1.481 6.271 7.776 10.442 14.347 9.003l18.328-4.023c5.499-1.208 9.49-6.17 9.49-11.799v-6.206l29.25 2.659v11.593c0 3.869 1.872 7.53 5.007 9.793l18.404 13.292-3.947 21.706-30.521 20.355-12.855 3.461c-5.264 1.417-8.939 6.214-8.939 11.665v7.938c0 4.28 2.297 8.279 5.993 10.435l10.496 6.122 3.14 32.961-11.113 4.763c-4.212 1.804-7.08 5.927-7.308 10.5-.79 15.783-1.193 13.839 11.699 24.798l-3.946 12.28-8.546 8.545-17.819-3.96c-9.394-2.088-17.351 7.146-13.896 16.129l16.23 42.198c1.354 3.521 4.329 6.241 7.955 7.277l11.445 3.27.764 13.758c-2.357 1.109-6.921 2.719-8.719 8.381-1.919 6.045 1.103 9.786 4.362 15.529l-7.272-1.581c-8.715-1.9-16.427 5.997-14.298 14.682l6.113 24.922c1.33 5.417 6.154 9.2 11.731 9.2h11.941l.275 8.537-24.862 11.357c-2.441 1.114-4.467 3.04-5.706 5.426l-7.846 15.124c-1.386 2.675-1.724 5.751-.95 8.661l9.447 35.566-34.558 19.304-75.52-11.794 7.555-45.067c.686-4.085-2.071-7.952-6.156-8.637-4.085-.682-7.952 2.072-8.637 6.157l-7.642 45.585c-1.24 7.978 4.241 15.481 12.219 16.728 82.217 12.841 76.587 12.041 78.229 12.041 2.494 0 4.976-.636 7.162-1.859l34.898-19.495c5.852-3.27 8.736-10.077 7.016-16.554l-9.227-34.735 6.86-13.223 25.718-11.748c4.442-2.03 7.211-6.496 7.054-11.377l-.429-13.306c-.213-6.555-5.516-11.689-12.074-11.689h-12.479l-4.452-18.153 9.086 1.975c4.651 1.011 9.478-.813 12.297-4.646 2.82-3.833 3.124-8.984.775-13.122l-5.024-8.852 1.278-.602c4.477-2.106 7.192-6.66 6.918-11.601l-.988-17.8c-.285-5.133-3.799-9.531-8.743-10.944l-12.042-3.44-13.754-35.758 14.071 3.127c4.053.901 8.227-.313 11.164-3.25 14.712-14.712 11.151-8.843 17.894-29.828 1.502-4.664.06-9.729-3.675-12.904l-8.262-7.023.252-5.04 11.398-4.885c4.846-2.076 7.767-6.998 7.267-12.249l-3.482-36.572c-.368-3.862-2.587-7.335-5.939-9.291l-10.341-6.032v-4.024c12.058-3.246 12.589-3.197 14.718-4.618l31.948-21.307c2.712-1.807 4.602-4.682 5.187-7.891l4.499-24.739c.829-4.547-1.06-9.239-4.811-11.948z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tSimple Taxa de Esfor\u00e7o\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tIdentifies if the property\u2019s baseline asking rent strains the tenant household's verifiable income pool.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d5ba7ef e-con-full e-transform animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"d5ba7ef\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_transform_translateY_effect_hover&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:-0.25,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;animation&quot;:&quot;fadeInUp&quot;,&quot;animation_delay&quot;:100,&quot;_transform_translateX_effect_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-39e13c6 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"39e13c6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" id=\"Capa_1\" height=\"512\" viewBox=\"0 0 500.107 500.107\" width=\"512\"><path d=\"m252.788.019c-107.179-1.499-194.768 85.217-194.768 192.015 0 65.353 32.784 125.626 87.698 161.231 6.695 4.34 12.25 10.198 16.067 16.941l66.272 117.071c9.682 17.101 34.301 17.115 43.992 0l22.364-39.506c2.041-3.605.772-8.181-2.832-10.222-3.604-2.04-8.181-.772-10.222 2.832l-22.363 39.506c-3.937 6.953-13.947 6.958-17.886 0l-66.271-117.07c-5.001-8.834-12.25-16.49-20.961-22.137-50.631-32.828-80.858-88.396-80.858-148.645 0-97.616 79.416-177.033 177.032-177.033 96.265 0 175.641 78.965 177.016 174.421.879 60.397-28.772 117.515-80.875 151.28-8.686 5.628-15.921 13.274-20.924 22.112l-29.13 51.458c-2.041 3.604-.772 8.181 2.832 10.222 3.605 2.041 8.182.773 10.222-2.832l29.13-51.458c3.818-6.745 9.36-12.594 16.027-16.914 54.938-35.602 87.737-95.884 87.737-161.256 0-104.833-84.912-190.562-189.299-192.016z\"><\/path><path d=\"m133.292 244.941c-1.832-4.02-6.576-5.792-10.598-3.962-4.021 1.833-5.794 6.577-3.962 10.598 23.392 51.322 74.938 84.484 131.321 84.484 103.81 0 173.958-107.13 132.092-202.287-1.779-4.044-6.501-5.881-10.544-4.101-4.044 1.779-5.88 6.5-4.101 10.544 39.872 90.618-34.305 190.485-132.347 178.957v-51.294c38.895-3.781 69.399-36.653 69.399-76.524s-30.504-72.744-69.399-76.524v-50.394c47.231-5.491 91.898 15.647 118.235 51.406 2.621 3.558 7.627 4.317 11.186 1.697 3.558-2.62 4.317-7.628 1.697-11.186-13.131-17.83-30.445-32.615-50.069-42.759-106.747-55.177-232.338 38.199-207.345 157.858.905 4.333 5.151 7.097 9.467 6.195 4.325-.904 7.099-5.142 6.195-9.467-14.456-69.195 29.538-135.241 95.635-151.087v47.737c-38.89 3.785-69.39 36.656-69.39 76.524s30.499 72.738 69.39 76.523v48.609c-37.848-9.121-70.297-35.203-86.862-71.547zm32.472-53.585c0-34.129 27.766-61.895 61.895-61.895s61.895 27.766 61.895 61.895c0 34.128-27.764 61.893-61.891 61.895-.003 0-.005 0-.008 0-.002 0-.003 0-.005 0-34.125-.006-61.886-27.77-61.886-61.895z\"><\/path><path d=\"m271.439 204.559v-48.019c0-4.142-3.358-7.5-7.5-7.5h-72.561c-4.142 0-7.5 3.358-7.5 7.5v48.019c0 24.141 19.64 43.78 43.781 43.78s43.78-19.64 43.78-43.78zm-72.561 0v-40.519h57.561v40.519c0 15.87-12.911 28.78-28.78 28.78s-28.781-12.911-28.781-28.78z\"><\/path><path d=\"m215.092 191.184h-7.44c-1.208 0-2.188.979-2.188 2.188v5.631c0 3.263 2.645 5.908 5.908 5.908s5.908-2.645 5.908-5.908v-5.631c0-1.208-.98-2.188-2.188-2.188z\"><\/path><path d=\"m227.659 204.911c3.263 0 5.908-2.645 5.908-5.908v-5.631c0-1.208-.98-2.188-2.188-2.188h-7.44c-1.208 0-2.188.979-2.188 2.188v5.631c0 3.263 2.645 5.908 5.908 5.908z\"><\/path><path d=\"m227.659 186.087c3.263 0 5.908-2.645 5.908-5.908v-5.631c0-1.208-.98-2.188-2.188-2.188h-7.44c-1.208 0-2.188.979-2.188 2.188v5.631c0 3.263 2.645 5.908 5.908 5.908z\"><\/path><path d=\"m233.567 217.828v-5.631c0-1.208-.98-2.188-2.188-2.188h-7.44c-1.208 0-2.188.98-2.188 2.188v5.631c0 3.263 2.645 5.908 5.908 5.908s5.908-2.645 5.908-5.908z\"><\/path><path d=\"m243.946 204.911c3.263 0 5.908-2.645 5.908-5.908v-5.631c0-1.208-.98-2.188-2.188-2.188h-7.44c-1.208 0-2.188.979-2.188 2.188v5.631c0 3.263 2.645 5.908 5.908 5.908z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tResponsabilidades Crosscheck\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tAnalyzes the true budget impact of existing car loans, personal credits, and lines of credit affecting their liquid payment capacity.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-70d2ec1 e-con-full e-transform animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"70d2ec1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_transform_translateY_effect_hover&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:-0.25,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;animation&quot;:&quot;fadeInUp&quot;,&quot;_transform_translateX_effect_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16edb6b elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"16edb6b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" id=\"Capa_1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 512.001 512.001\" style=\"enable-background:new 0 0 512.001 512.001;\" xml:space=\"preserve\">  <g>\t<g>\t\t<path d=\"M503.28,44.897c4.817,0,8.721-3.905,8.721-8.721V8.721c0-4.816-3.903-8.721-8.721-8.721H108.633   c-4.816,0-8.721,3.905-8.721,8.721v394.645c0,4.816,3.905,8.721,8.721,8.721h394.645c4.817,0,8.721-3.905,8.721-8.721V65.245   c0-4.816-3.903-8.721-8.721-8.721c-4.817,0-8.721,3.905-8.721,8.721v149.416h-34.634c-4.817,0-8.721,3.905-8.721,8.721   s3.903,8.721,8.721,8.721h34.634v162.543H245.393v-42.197c0-4.816-3.905-8.721-8.721-8.721c-4.816,0-8.721,3.905-8.721,8.721   v42.197H117.354V17.442h110.598v272.218c0,4.816,3.905,8.721,8.721,8.721c4.816,0,8.721-3.905,8.721-8.721v-57.557h155.229   c4.817,0,8.721-3.905,8.721-8.721s-3.903-8.721-8.721-8.721H245.393V17.442h249.166v18.734   C494.559,40.992,498.462,44.897,503.28,44.897z\"><\/path>\t<\/g><\/g>  <g>\t<g>\t\t<path d=\"M73.679,50.331L44.902,4.112C43.31,1.555,40.51,0,37.499,0c-3.012,0-5.811,1.555-7.403,4.112L1.318,50.331   c-1.674,2.689-1.759,6.074-0.221,8.843s4.457,4.487,7.624,4.487h20.057v36.468c0,4.816,3.905,8.721,8.721,8.721   c4.816,0,8.721-3.905,8.721-8.721V63.661h20.057c3.167,0,6.086-1.717,7.624-4.487S75.354,53.019,73.679,50.331z M24.424,46.219   l13.074-20.998l13.074,20.998H24.424z\"><\/path>\t<\/g><\/g>  <g>\t<g>\t\t<path d=\"M73.9,352.914c-1.538-2.769-4.457-4.486-7.624-4.486H46.219V123.384c0-4.816-3.905-8.721-8.721-8.721   c-4.816,0-8.721,3.905-8.721,8.721v225.043H8.721c-3.167,0-6.086,1.717-7.624,4.487c-1.538,2.77-1.453,6.155,0.221,8.843   l28.777,46.219c1.592,2.557,4.391,4.112,7.403,4.112c3.013,0,5.812-1.555,7.403-4.112l28.777-46.219   C75.354,359.067,75.439,355.683,73.9,352.914z M37.499,386.868L24.424,365.87h26.148L37.499,386.868z\"><\/path>\t<\/g><\/g>  <g>\t<g>\t\t<path d=\"M507.889,467.099l-46.219-28.777c-2.689-1.674-6.074-1.758-8.843-0.221c-2.769,1.538-4.486,4.457-4.486,7.624v20.057   H163.573v-20.057c0-3.167-1.717-6.086-4.486-7.624c-2.769-1.537-6.153-1.453-8.844,0.221l-46.219,28.777   c-2.557,1.592-4.112,4.391-4.112,7.403s1.555,5.811,4.112,7.403l46.219,28.777c1.408,0.877,3.008,1.317,4.609,1.317   c1.457,0,2.915-0.364,4.234-1.096c2.77-1.538,4.487-4.457,4.487-7.624v-20.057H448.34v20.057c0,3.167,1.719,6.086,4.486,7.624   c1.32,0.733,2.778,1.096,4.235,1.096c1.601,0,3.201-0.441,4.609-1.317l46.219-28.777c2.557-1.592,4.112-4.391,4.112-7.403   C512.001,471.489,510.446,468.691,507.889,467.099z M146.131,487.576l-20.998-13.074l20.998-13.074V487.576z M465.782,487.576   v-26.148l21,13.074L465.782,487.576z\"><\/path>\t<\/g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g>  <g><\/g><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tNet Cash Exposure Projection\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tCalculates your worst-case legal, administrative, and turn costs balanced against the held deposit during a standard 6-month Portuguese eviction cycle.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-56d054d e-con-full e-transform animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"56d054d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_transform_translateY_effect_hover&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:-0.25,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;rem&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;animation&quot;:&quot;fadeInUp&quot;,&quot;animation_delay&quot;:100,&quot;_transform_translateX_effect_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8c21f88 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"8c21f88\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" id=\"Capa_1\" height=\"512\" viewBox=\"0 0 512.594 512.594\" width=\"512\"><g><path d=\"m353.879 285.635h-13.312c-3.7-14.695-9.52-28.735-17.319-41.775l9.425-9.424c9.37-9.37 9.37-24.618 0-33.988l-20.074-20.075c-9.371-9.369-24.618-9.369-33.989 0l-9.425 9.425c-13.042-7.8-27.081-13.62-41.774-17.318v-13.312c0-13.253-10.782-24.034-24.034-24.034h-28.388c-13.252 0-24.034 10.781-24.034 24.034v13.312c-14.694 3.7-28.734 9.521-41.774 17.319l-9.424-9.425c-9.371-9.369-24.618-9.369-33.989 0l-20.074 20.074c-9.371 9.371-9.371 24.619 0 33.99l9.424 9.423c-7.799 13.04-13.619 27.079-17.318 41.775h-13.315c-13.253 0-24.035 10.781-24.035 24.034v28.388c0 13.253 10.782 24.035 24.035 24.035h13.312c3.7 14.694 9.521 28.734 17.318 41.774l-9.424 9.424c-9.371 9.371-9.371 24.619 0 33.99l20.074 20.072c9.372 9.37 24.619 9.37 33.989 0l9.423-9.424c13.037 7.797 27.076 13.617 41.775 17.318v13.313c0 13.252 10.782 24.033 24.034 24.033h28.388c13.252 0 24.034-10.781 24.034-24.033v-13.313c14.696-3.7 28.735-9.521 41.775-17.318l9.424 9.424c9.372 9.37 24.619 9.37 33.989 0l20.073-20.072c9.371-9.371 9.371-24.619 0-33.989l-9.425-9.426c.901-1.516 1.827-3.142 2.856-5.018 1.993-3.632.664-8.19-2.967-10.184-3.633-1.993-8.191-.664-10.184 2.967-1.215 2.215-2.261 4.03-3.291 5.716-3.16 5.17-2.375 11.771 1.907 16.053l10.497 10.498c3.522 3.522 3.522 9.253 0 12.775l-20.073 20.072c-3.522 3.523-9.254 3.523-12.776 0l-10.496-10.495c-4.283-4.283-10.885-5.067-16.055-1.907-12.506 7.645-26.05 13.26-40.254 16.688-5.888 1.42-10 6.642-10 12.699v14.83c0 4.98-4.053 9.033-9.034 9.033h-28.388c-4.981 0-9.034-4.053-9.034-9.033v-14.83c0-6.058-4.112-11.279-9.999-12.699-14.208-3.43-27.753-9.044-40.256-16.688-5.171-3.161-11.773-2.377-16.054 1.906l-10.497 10.496c-3.522 3.523-9.254 3.523-12.776 0l-20.074-20.072c-3.522-3.522-3.522-9.253 0-12.776l10.499-10.497c4.283-4.283 5.067-10.885 1.907-16.055-7.646-12.507-13.26-26.051-16.688-40.255-1.42-5.888-6.643-9.999-12.699-9.999h-14.83c-4.982 0-9.035-4.053-9.035-9.035v-28.388c0-4.981 4.053-9.034 9.035-9.034h14.83c6.056 0 11.278-4.111 12.699-9.998 3.428-14.207 9.043-27.751 16.689-40.257 3.16-5.17 2.375-11.771-1.907-16.055l-10.497-10.496c-3.522-3.522-3.522-9.253 0-12.776l20.074-20.073c3.522-3.523 9.253-3.523 12.776-.001l10.496 10.497c4.283 4.284 10.885 5.069 16.055 1.908 12.507-7.646 26.051-13.262 40.254-16.689 5.888-1.42 10-6.642 10-12.698v-14.83c0-4.981 4.053-9.034 9.034-9.034h28.388c4.981 0 9.034 4.053 9.034 9.034v14.83c0 6.056 4.111 11.277 9.999 12.699 14.203 3.427 27.747 9.041 40.255 16.688 5.17 3.159 11.772 2.376 16.054-1.907l10.497-10.497c3.522-3.523 9.253-3.524 12.776 0l20.073 20.073c3.522 3.522 3.522 9.255 0 12.776l-10.497 10.496c-4.283 4.283-5.067 10.885-1.906 16.056 7.646 12.507 13.26 26.051 16.688 40.256 1.421 5.887 6.643 9.998 12.698 9.998h14.83c4.981 0 9.034 4.053 9.034 9.034v28.388c0 4.982-4.053 9.035-9.034 9.035h-14.83c-6.056 0-11.278 4.111-12.698 9.997-.47 1.945-1.042 4.066-1.75 6.485-1.164 3.975 1.115 8.142 5.09 9.306 3.976 1.16 8.141-1.115 9.305-5.091.604-2.061 1.121-3.938 1.568-5.697h13.315c13.252 0 24.034-10.782 24.034-24.035v-28.388c.002-13.252-10.779-24.033-24.032-24.033z\"><\/path><path d=\"m189.182 420.824c-22.043 0-42.815-7.209-60.07-20.849-3.25-2.569-7.966-2.018-10.535 1.233-2.569 3.249-2.017 7.966 1.233 10.534 19.93 15.754 43.918 24.081 69.372 24.081 61.735 0 111.961-50.226 111.961-111.961s-50.226-111.961-111.961-111.961-111.961 50.227-111.961 111.962c0 22.478 6.638 44.161 19.196 62.705 2.324 3.431 6.986 4.329 10.416 2.005 3.43-2.322 4.327-6.985 2.004-10.415-10.871-16.053-16.616-34.827-16.616-54.295 0-53.465 43.497-96.961 96.961-96.961s96.961 43.496 96.961 96.961-43.497 96.961-96.961 96.961z\"><\/path><path d=\"m490.445 129.247h-10.61c-3.142-12.163-7.966-23.801-14.364-34.648l7.511-7.511c8.46-8.46 8.46-22.227 0-30.688l-17.238-17.238c-8.461-8.459-22.227-8.459-30.687 0l-7.511 7.512c-10.846-6.397-22.482-11.222-34.648-14.364v-10.611c-.002-11.965-9.736-21.699-21.701-21.699h-24.379c-11.965 0-21.699 9.734-21.699 21.699v10.608c-12.165 3.143-23.802 7.968-34.649 14.365l-7.511-7.512c-8.461-8.459-22.227-8.459-30.687 0l-17.238 17.24c-4.098 4.099-6.355 9.548-6.355 15.344s2.257 11.245 6.356 15.343l7.511 7.512c-4.295 7.291-7.924 15.052-10.798 23.103-1.393 3.901.64 8.192 4.541 9.586 3.9 1.393 8.192-.64 9.585-4.541 2.772-7.764 6.33-15.221 10.574-22.162 2.971-4.859 2.234-11.064-1.792-15.088l-9.014-9.016c-1.266-1.265-1.962-2.947-1.962-4.736 0-1.79.697-3.473 1.962-4.737l17.238-17.238c2.612-2.613 6.862-2.612 9.474-.001l9.013 9.015c4.026 4.026 10.23 4.763 15.089 1.793 10.644-6.508 22.173-11.287 34.265-14.206 5.534-1.335 9.399-6.242 9.399-11.935v-12.737c0-3.694 3.005-6.699 6.699-6.699h24.379c3.694 0 6.699 3.005 6.699 6.699v12.735c0 5.692 3.865 10.6 9.397 11.935 12.093 2.919 23.622 7.698 34.267 14.206 4.858 2.969 11.063 2.231 15.088-1.792l9.015-9.015c2.613-2.614 6.862-2.612 9.474 0l17.238 17.237c2.612 2.612 2.612 6.863 0 9.476l-9.013 9.013c-4.027 4.024-4.765 10.229-1.793 15.09 6.507 10.646 11.287 22.174 14.205 34.264 1.334 5.534 6.242 9.399 11.935 9.399h12.736c3.694 0 6.699 3.005 6.699 6.699v24.379c0 3.693-3.005 6.698-6.699 6.698h-12.735c-5.692 0-10.6 3.865-11.935 9.397-2.918 12.092-7.698 23.621-14.206 34.267-2.97 4.858-2.233 11.063 1.792 15.089l9.014 9.014c1.265 1.265 1.962 2.947 1.962 4.736 0 1.79-.697 3.473-1.962 4.737l-17.239 17.238c-1.265 1.266-2.947 1.963-4.737 1.963s-3.472-.697-4.737-1.963l-9.014-9.014c-4.024-4.023-10.226-4.762-15.089-1.792-6.878 4.204-14.258 7.735-21.937 10.494-3.898 1.401-5.923 5.696-4.522 9.595 1.4 3.898 5.699 5.923 9.594 4.522 7.958-2.859 15.635-6.459 22.85-10.71l7.512 7.512c4.23 4.23 9.786 6.346 15.343 6.345 5.556 0 11.114-2.115 15.343-6.345l17.239-17.238c8.461-8.461 8.461-22.228 0-30.688l-7.511-7.51c6.398-10.848 11.223-22.485 14.364-34.649h10.609c11.965 0 21.699-9.733 21.699-21.698v-24.379c0-11.965-9.734-21.699-21.698-21.699z\"><\/path><path d=\"m426.77 189.821c-5.31 15.472-15.038 28.903-28.135 38.844-13.324 10.112-29.203 15.85-45.92 16.591-4.138.183-7.344 3.687-7.161 7.824.178 4.025 3.498 7.168 7.487 7.168.112 0 .225-.002.338-.008 19.776-.876 38.562-7.663 54.325-19.627 15.476-11.746 26.975-27.626 33.254-45.923 1.345-3.918-.742-8.184-4.659-9.528-3.918-1.348-8.185.741-9.529 4.659z\"><\/path><path d=\"m446.174 160.366c-.711-25.382-11.134-49.131-29.349-66.872-18.25-17.776-42.335-27.566-67.817-27.566-25.298 0-49.256 9.669-67.461 27.225-18.155 17.508-28.69 41.004-29.665 66.161-.16 4.139 3.065 7.624 7.205 7.784 4.116.171 7.624-3.065 7.785-7.204.824-21.269 9.733-41.137 25.088-55.944 15.395-14.846 35.655-23.021 57.049-23.021 21.55 0 41.917 8.279 57.351 23.312 15.405 15.005 24.22 35.087 24.821 56.547.114 4.069 3.448 7.29 7.493 7.29.071 0 .143-.001.214-.003 4.139-.118 7.402-3.568 7.286-7.709z\"><\/path><\/g><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tCompliance-Ready Recommendations\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tDelivers automated, legally sound safeguards customized to the applicant\u2019s specific metric scores.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-1a7b170 e-flex e-con-boxed e-con e-parent\" data-id=\"1a7b170\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<span class=\"e-99f03ee-5d25a43 e-paragraph-base\" data-interaction-id=\"99f03ee\" data-e-type=\"widget\" data-id=\"99f03ee\">FAQs<\/span>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc58e2f animated-slow elementor-invisible elementor-widget elementor-widget-jkit_heading\" data-id=\"fc58e2f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"jkit_heading.default\">\n\t\t\t\t\t<div  class=\"jeg-elementor-kit jkit-heading  align-center align-tablet- align-mobile- jeg_module__3_6a300a569827c\" ><div class=\"heading-section-title  display-inline\"><h2 class=\"heading-title\">Risk Management and <span class=\"style-color\"><span>Asset Protection Queries<\/span><\/span><\/h2><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d5f1db2 animated-slow elementor-invisible elementor-widget elementor-widget-n-accordion\" data-id=\"d5f1db2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;default_state&quot;:&quot;expanded&quot;,&quot;max_items_expended&quot;:&quot;one&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:400,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2240\" class=\"e-n-accordion-item\" open>\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"true\" aria-controls=\"e-n-accordion-item-2240\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Why does the assessment calculate a 6-month exposure timeline? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"jki jki-down-arrow1-light\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"jki jki-up-arrow1-light\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2240\" class=\"elementor-element elementor-element-e1c200a e-con-full e-flex e-con e-child\" data-id=\"e1c200a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-68d725c elementor-widget elementor-widget-text-editor\" data-id=\"68d725c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>While the modern BAS system is designed to streamline tenant defaults, contested evictions, legal backlogs, and notification timelines in Portugal conservatively average 6 months to completely execute. The tool models this reality to protect your cash reserves.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2241\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"2\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2241\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> How should I verify the \"Existing Monthly Liabilities\" field? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"jki jki-down-arrow1-light\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"jki jki-up-arrow1-light\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2241\" class=\"elementor-element elementor-element-9d25281 e-con-full e-flex e-con e-child\" data-id=\"9d25281\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-844bb6d elementor-widget elementor-widget-text-editor\" data-id=\"844bb6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Request that the applicant provide their latest <i data-path-to-node=\"30,3,1,0,0\" data-index-in-node=\"51\">Central de Responsabilidades de Cr\u00e9dito<\/i> map, downloadeable directly from the Banco de Portugal website. This document details their exact active monthly debt obligations.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2242\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"3\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2242\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Why does Aluseg collect my property data during this check? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"jki jki-down-arrow1-light\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"jki jki-up-arrow1-light\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2242\" class=\"elementor-element elementor-element-cc73584 e-con-full e-flex e-con e-child\" data-id=\"cc73584\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0d5a5d8 elementor-widget elementor-widget-text-editor\" data-id=\"0d5a5d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>By securely collecting property types, features, and actual lease values indexed by parish (<i data-path-to-node=\"30,4,1,0,0\" data-index-in-node=\"95\">freguesia<\/i>), Aluseg is building an independent, real-world rental database. This dataset feeds our advanced valuation engines to help you perfectly optimize your portfolio prices over time.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Why does the assessment calculate a 6-month exposure timeline?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"While the modern BAS system is designed to streamline tenant defaults, contested evictions, legal backlogs, and notification timelines in Portugal conservatively average 6 months to completely execute. The tool models this reality to protect your cash reserves.\"}},{\"@type\":\"Question\",\"name\":\"How should I verify the \\\"Existing Monthly Liabilities\\\" field?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Request that the applicant provide their latest Central de Responsabilidades de Cr\\u00e9dito map, downloadeable directly from the Banco de Portugal website. This document details their exact active monthly debt obligations.\"}},{\"@type\":\"Question\",\"name\":\"Why does Aluseg collect my property data during this check?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"By securely collecting property types, features, and actual lease values indexed by parish (freguesia), Aluseg is building an independent, real-world rental database. This dataset feeds our advanced valuation engines to help you perfectly optimize your portfolio prices over time.\"}}]}<\/script>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Pre-Lease Tenant Solvency Calculator Calculate tenant effort rates (taxa de esfor\u00e7o) and evaluate financial default risk instantly. Whether you are vetting a new applicant or adjusting lease terms, our free tool calculates actual cash exposure and affordability bounds in seconds. Calculate Tenant Solvency Free \u00b7 No Account Required How It Works Three Steps to Evaluate [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-795","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/aluseg.com\/en\/wp-json\/wp\/v2\/pages\/795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aluseg.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aluseg.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aluseg.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aluseg.com\/en\/wp-json\/wp\/v2\/comments?post=795"}],"version-history":[{"count":43,"href":"https:\/\/aluseg.com\/en\/wp-json\/wp\/v2\/pages\/795\/revisions"}],"predecessor-version":[{"id":5243,"href":"https:\/\/aluseg.com\/en\/wp-json\/wp\/v2\/pages\/795\/revisions\/5243"}],"wp:attachment":[{"href":"https:\/\/aluseg.com\/en\/wp-json\/wp\/v2\/media?parent=795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}