@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300&family=DM+Mono:wght@300;400;500&family=Playfair+Display:wght@500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base:#14151a;--bg-surface:#1a1c23;--bg-card:#1e2029;--bg-card-hover:#22252f;--bg-input:#191b22;--border-subtle:#ffffff0e;--border-medium:#ffffff17;--border-strong:#ffffff24;--border-accent:#9cdcf038;--border-gold:#c9a84c33;--accent:#9cdcf0;--accent-dim:#9cdcf01a;--accent-glow:#9cdcf00f;--accent-text:#9cdcf0;--gold:#c9a84c;--gold-dim:#c9a84c1a;--text-primary:#e8eaed;--text-secondary:#8b8fa8;--text-muted:#52566a;--text-accent:#9cdcf0;--success:#4ade80;--success-dim:#4ade801a;--warning:#f59e0b;--warning-dim:#f59e0b1a;--danger:#f87171;--danger-dim:#f871711a;--info:#67c9e0;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-pill:999px;--font-sans:"DM Sans",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"DM Mono","Fira Mono",monospace;--font-display:"Playfair Display",Georgia,serif;--ease:cubic-bezier(.4,0,.2,1);--transition:all .2s var(--ease);--transition-slow:all .35s var(--ease);--primary-bg:var(--bg-base);--secondary-bg:var(--bg-surface);--primary-heading:var(--accent);--primary-text:var(--text-primary);--secondary-text:var(--text-secondary);--placeholder-brace:#dcb862;--placeholder-currency:var(--text-secondary);--placeholder-navbar--home:var(--accent);--placeholder-args:#4a9cd6;--placeholder-initials:var(--text-primary)}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background-color:var(--bg-base);font-family:var(--font-sans);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-size:14px;line-height:1.65}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#9cdcf004 1px,#0000 1px),linear-gradient(90deg,#9cdcf004 1px,#0000 1px);background-size:60px 60px;position:fixed;inset:0}main,footer,header{z-index:1;position:relative}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--text-primary);margin-bottom:.75rem;font-weight:500;line-height:1.3}h1{font-size:1.75rem;font-family:var(--font-display)}h2{font-size:1.4rem}h3{font-size:1.15rem}h4{font-size:1rem}h5{font-size:.9rem}h6{font-size:.8rem}p{color:var(--text-secondary);margin-bottom:.85rem}p:last-child{margin-bottom:0}a{color:var(--accent);transition:var(--transition);text-decoration:none}a:hover{color:var(--text-primary)}ul{padding:0;list-style:none}code,pre{font-family:var(--font-mono);font-size:.85em}.grid-container{grid-template-areas:"header""article""footer";min-height:100vh;display:grid}header{grid-area:header}article{grid-area:article}footer{grid-area:footer}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:var(--transition);position:relative;overflow:hidden}.card:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(160deg,#ffffff06 0%,#0000 55%);position:absolute;inset:0}.card:hover{border-color:var(--border-medium);background:var(--bg-card-hover);transform:translateY(-1px);box-shadow:0 8px 32px #00000059,0 0 0 .5px #9cdcf012}.card-body{padding:1.4rem 1.5rem}.card-title{font-size:10.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);align-items:center;gap:6px;margin-bottom:0;font-weight:500;display:flex}.card-title i{color:var(--text-secondary);font-size:12px}.card-accent-blue{border-color:var(--border-accent)}.card-accent-blue:after{content:"";background:linear-gradient(90deg,transparent,var(--accent),transparent);border-radius:var(--radius-lg)var(--radius-lg)0 0;height:1px;position:absolute;top:0;left:0;right:0}.card-accent-gold{border-color:var(--border-gold)}.card-accent-gold:after{content:"";background:linear-gradient(90deg,transparent,var(--gold),transparent);border-radius:var(--radius-lg)var(--radius-lg)0 0;height:1px;position:absolute;top:0;left:0;right:0}.bg-secondary{background-color:var(--bg-card)!important;color:var(--text-primary)!important}.section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);align-items:center;gap:10px;margin-bottom:1rem;font-size:10px;font-weight:500;display:flex}.section-label:after{content:"";background:var(--border-subtle);flex:1;height:1px}.btn-ghost{font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);background:0 0;align-items:center;gap:4px;padding:4px 10px;line-height:1.5;text-decoration:none;display:inline-flex}.btn-ghost:hover{color:var(--accent);border-color:var(--border-accent);background:var(--accent-glow)}.btn-outline-light{font-size:11px;font-family:var(--font-mono);transition:var(--transition);border-color:var(--border-medium)!important;color:var(--text-secondary)!important}.btn-outline-light:hover{background:var(--accent-dim)!important;border-color:var(--border-accent)!important;color:var(--accent)!important}.list-group-item{justify-content:space-between;align-items:center;gap:8px;padding:.5rem 0;font-size:12px;display:flex;border-color:var(--border-subtle)!important;color:var(--text-secondary)!important;background:0 0!important}.list-group-item strong{color:var(--text-primary);font-weight:500}.list-group-item-action{margin-bottom:2px;border-radius:var(--radius-sm)!important}.list-group-item-action:hover{color:var(--text-primary)!important;background:#ffffff08!important}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom:0}.badge{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:2px 8px;font-size:10px;font-weight:500}.badge.bg-success{border:1px solid #4ade8033;background:var(--success-dim)!important;color:var(--success)!important}.badge.bg-danger{border:1px solid #f8717133;background:var(--danger-dim)!important;color:var(--danger)!important}.badge.bg-warning{border:1px solid #f59e0b33;background:var(--warning-dim)!important;color:var(--warning)!important}.badge.bg-secondary{border:1px solid var(--border-subtle);color:var(--text-secondary)!important;background:#ffffff0f!important}.badge.bg-dark{color:var(--text-secondary)!important;background:#0006!important}.badge.bg-light{background:var(--border-medium)!important;color:var(--text-primary)!important}.scroll-area{max-height:320px;padding-right:4px;overflow-y:auto}.scroll-area::-webkit-scrollbar{width:3px}.scroll-area::-webkit-scrollbar-track{background:0 0}.scroll-area::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:2px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}.placeholder-glow .placeholder{background:var(--border-subtle);border-radius:var(--radius-sm);opacity:1;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%,to{opacity:.3}50%{opacity:.6}}.status-dot{background:var(--success);width:6px;height:6px;box-shadow:0 0 6px var(--success);border-radius:50%;flex-shrink:0}.panel-coming-soon,.cs-card{opacity:.55;pointer-events:none;user-select:none;filter:grayscale(20%);transition:var(--transition)}.coming-soon-badge,.cs-badge{font-size:9px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);z-index:1;background:#ffffff0f;padding:2px 8px;font-weight:500;position:absolute;top:10px;right:10px}.logo{width:100px;height:auto;margin:10px}.text-accent{color:var(--accent)!important}.text-muted{color:var(--text-muted)!important}.text-secondary{color:var(--text-secondary)!important}.mono{font-family:var(--font-mono)}.display{font-family:var(--font-display)}.mortgage-trigger{background:var(--accent-dim);border:1px solid var(--border-accent);color:var(--accent);font-family:var(--font-mono);cursor:pointer;transition:var(--transition);align-items:center;gap:.4rem;padding:0 .85rem;font-size:11px;display:inline-flex}.mortgage-trigger:hover{border-color:var(--accent);background:#9cdcf029}.mortgage-form-wrap{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;gap:.65rem;margin-top:.75rem;padding:.85rem;display:flex}.mortgage-price-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:10px}.mortgage-fields{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.mortgage-field label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:3px;font-size:9px;display:block}.mortgage-input,.mortgage-select{background:var(--bg-input);width:100%;color:var(--text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-family:var(--font-mono);appearance:none;outline:none;padding:.3rem .5rem;font-size:12px;transition:border-color .15s,box-shadow .15s}.mortgage-input:focus,.mortgage-select:focus{border-color:var(--border-accent);box-shadow:0 0 0 2px var(--accent-glow)}.mortgage-input.is-valid{border-color:var(--success)}.mortgage-input.is-invalid{border-color:var(--danger)}.mortgage-input::placeholder{color:var(--text-muted);opacity:1}.mortgage-calc-btn{background:var(--accent-dim);border:1px solid var(--border-accent);border-radius:var(--radius-pill);color:var(--accent);font-family:var(--font-mono);cursor:pointer;transition:var(--transition);align-self:flex-start;padding:.3rem .85rem;font-size:11px}.mortgage-calc-btn:hover{border-color:var(--accent);background:#9cdcf029}.mortgage-results{border-top:1px solid var(--border-subtle);padding-top:.5rem}.finance-row{border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:baseline;padding:.28rem 0;display:flex}.finance-row:last-child{border-bottom:none}.finance-label{font-family:var(--font-mono);color:var(--text-secondary);font-size:11px}.finance-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:12px}.finance-highlight{color:var(--accent);font-size:13px}.mortgage-schedule-link{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;transition:var(--transition);font-size:10px;text-decoration:none}.mortgage-schedule-link:hover{color:var(--accent)}.pd-action-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.pd-action-row:has(.tenant-only:not(.d-none)){justify-content:space-between}.tool-btn-row{flex-wrap:wrap;gap:.5rem;display:flex}.tool-btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);color:var(--text-primary);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:.4rem .5rem;font-size:1rem;line-height:1;display:inline-flex;position:relative}.tool-btn--mortgage{border-color:var(--success)}.tool-btn--mortgage i{color:var(--success)}.tool-btn--mortgage:not(.tool-btn--inactive):hover{background:var(--success-dim)}.tool-btn--gis{border-color:var(--accent)}.tool-btn--gis i{color:var(--accent)}.tool-btn--gis:not(.tool-btn--inactive):hover{background:var(--accent-dim)}.tool-btn--neighbourhood{border-color:var(--gold)}.tool-btn--neighbourhood i{color:var(--gold)}.tool-btn--neighbourhood:not(.tool-btn--inactive):hover{background:var(--gold-dim)}.tool-btn--inactive{cursor:default;opacity:.55}.tool-btn--chat{border-color:var(--accent)}.tool-btn--chat i{color:var(--accent)}.tool-btn--chat:not(.tool-btn--inactive):hover{background:var(--accent-dim)}.pd-breadcrumb{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;transition:var(--transition);align-items:center;gap:.3rem;margin-bottom:1rem;font-size:11px;text-decoration:none;display:inline-flex}.pd-breadcrumb i{font-size:10px}.pd-breadcrumb:hover{color:var(--text-primary)}.detail-kv-grid{grid-template-columns:1fr 1fr;gap:.5rem 1rem;display:grid}.detail-label{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;align-self:center;font-size:10px;line-height:1.4}.detail-value{font-family:var(--font-mono);color:var(--text-secondary);word-break:break-word;align-self:center;font-size:11px;line-height:1.4}.profile-hero{flex-wrap:wrap;align-items:flex-start;gap:1.5rem;margin-bottom:1.75rem;display:flex}.profile-avatar-lg{background:var(--accent-dim);border:1px solid var(--border-accent);width:80px;height:80px;font-size:1.6rem;font-weight:600;font-family:var(--font-mono);color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.profile-identity{flex-direction:column;gap:.3rem;display:flex}.profile-identity h1{font-family:var(--font-display);color:var(--text-primary);margin-bottom:0;font-size:1.6rem;font-weight:500;line-height:1.2}.profile-identity .profile-company{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;font-size:11px}.profile-edit-form{flex-direction:column;gap:.6rem;margin-top:.5rem;display:flex}.profile-edit-form input{background:var(--bg-input);width:100%;color:var(--text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-family:var(--font-mono);outline:none;padding:.35rem .6rem;font-size:12px;transition:border-color .15s,box-shadow .15s}.profile-edit-form input:focus{border-color:var(--border-accent);box-shadow:0 0 0 2px var(--accent-glow)}.profile-edit-form input::placeholder{color:var(--text-muted);opacity:1}.cta-login-banner{z-index:100;background:var(--bg-surface);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.cta-login-banner__text{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.03em;font-size:11px}.cta-login-banner__actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.cta-login-banner__dismiss{color:var(--text-muted);cursor:pointer;transition:color var(--transition);background:0 0;border:none;padding:2px 4px;font-size:14px;line-height:1}.cta-login-banner__dismiss:hover{color:var(--text-secondary)}.auth-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;min-width:340px;max-width:420px;padding:2rem}.auth-brand{justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.auth-brand i{color:var(--accent);font-size:1.3rem}.auth-brand span{font-family:var(--font-mono);color:var(--accent);letter-spacing:.06em;font-size:13px}.auth-title{font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;text-align:center;margin-bottom:1.5rem;font-size:14px;font-weight:500}.auth-label{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.3rem;font-size:11px;font-weight:500;display:block}.auth-input{background:var(--bg-input);width:100%;color:var(--text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-family:var(--font-sans);outline:none;padding:.55rem .75rem;font-size:14px;transition:border-color .15s,box-shadow .15s}.auth-input:focus{border-color:var(--border-accent);box-shadow:0 0 0 2px var(--accent-glow)}.auth-input::placeholder{color:var(--text-muted);opacity:1}.btn-auth-submit{background:var(--accent-dim);width:100%;color:var(--accent);border:1px solid var(--border-accent);border-radius:var(--radius-sm);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:var(--transition);padding:.6rem 1rem;font-size:12px;font-weight:500}.btn-auth-submit:hover{background:var(--accent);color:var(--bg-base)}.auth-error{color:var(--danger);background:var(--danger-dim);border-radius:var(--radius-sm);font-family:var(--font-mono);border:1px solid #f8717133;padding:.5rem .75rem;font-size:11px}.auth-link{font-family:var(--font-mono);color:var(--text-muted);transition:color var(--transition);font-size:11px;text-decoration:none}.auth-link:hover{color:var(--accent)}.btn-landing-primary{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--bg-base);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-pill);cursor:pointer;transition:var(--transition);white-space:nowrap;justify-content:center;align-items:center;padding:.6rem 1.4rem;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.btn-landing-primary:hover{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-base)}.btn-landing-secondary{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--gold);background:var(--gold-dim);border:1px solid var(--border-gold);border-radius:var(--radius-pill);cursor:pointer;transition:var(--transition);white-space:nowrap;justify-content:center;align-items:center;padding:.6rem 1.4rem;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.btn-landing-secondary:hover{background:var(--gold);border-color:var(--gold);color:var(--bg-base)}