:root{--font: "Roboto", system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-heading: "Sora", system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-brand: "Noka", "Sora", system-ui, sans-serif;--dark: #525650;--light: #ecf0ee;--gray: #e0e6e0;--green: #8ab5a5;--orange: #f9a350;--blue: #605984;--salmon: #dc8574;--bg: #ecf0ee;--surface: #f7faf8;--surface-2: #eef2f0;--border: #dde3dd;--border-strong: #ccd4cc;--text: #424640;--text-strong: #2f322d;--text-muted: #828a80;--accent: #6f9d8c;--accent-press: #5c8676;--accent-soft: rgba(138, 181, 165, .18);--accent-ring: rgba(138, 181, 165, .45);--pos: #5c8676;--neg: #c66f5c;--r-lg: 16px;--r-md: 11px;--r-sm: 8px;--shadow-sm: 0 1px 2px rgba(82, 86, 80, .05);--shadow-md: 0 6px 20px rgba(82, 86, 80, .06), 0 2px 6px rgba(82, 86, 80, .04);--shadow-lg: 0 14px 40px rgba(82, 86, 80, .1), 0 4px 12px rgba(82, 86, 80, .05);font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@font-face{font-family:Noka;src:url(/fonts/Noka-Light.otf) format("opentype");font-weight:300;font-display:swap}@font-face{font-family:Noka;src:url(/fonts/Noka-Medium.otf) format("opentype");font-weight:500;font-display:swap}@font-face{font-family:Noka;src:url(/fonts/Noka-Semibold.otf) format("opentype");font-weight:600;font-display:swap}*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;color:var(--text);background:var(--bg)}.material-symbols-sharp{font-family:Material Symbols Sharp;font-weight:400;font-style:normal;font-size:20px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;font-feature-settings:"liga";font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(28px,5vw,44px);box-shadow:var(--shadow-lg);max-width:440px;width:100%}.brand{display:inline-flex;align-items:center;gap:12px}.mark{height:26px;width:auto;flex-shrink:0;color:var(--green);display:block}.wordmark{font-family:var(--font-brand);font-size:18px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-strong);white-space:nowrap}.wordmark-accent{color:var(--accent)}.brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.brand-sub{margin-top:4px;overflow:hidden;text-overflow:ellipsis}h1{margin:22px 0 6px;font-family:var(--font-heading);font-size:clamp(22px,4vw,26px);font-weight:600;letter-spacing:-.01em;color:var(--text-strong)}.muted{color:var(--text-muted);font-size:14px;line-height:1.55}.small{font-size:13px}.ok,.error{font-size:14px;line-height:1.5;border-radius:var(--r-sm);padding:10px 12px;margin:4px 0 0}.ok{color:var(--pos);background:var(--accent-soft)}.error{color:var(--neg);background:#dc85741f;word-break:break-word}.form{display:flex;flex-direction:column;gap:9px;margin-top:22px}.form label{font-size:13px;font-weight:500;color:var(--text-muted)}.form input{padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:15px;font-family:inherit;color:var(--text);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.form input::placeholder{color:#a7afa5}.form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.form button{margin-top:6px}button{cursor:pointer;font-family:inherit;font-size:15px;font-weight:500;border-radius:var(--r-sm);border:1px solid transparent;padding:11px 18px;background:var(--dark);color:var(--light);transition:transform .12s ease,box-shadow .2s ease,background-color .15s ease,opacity .15s ease,border-color .15s ease}button:hover{background:#45483f;box-shadow:var(--shadow-sm)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}button.ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}button.ghost:hover{background:var(--surface-2);border-color:var(--accent);color:var(--text-strong)}button.link{background:none;border:none;color:var(--accent);padding:6px 10px;font-size:14px;box-shadow:none}button.link:hover{background:var(--accent-soft)}button.link.danger{color:var(--neg)}button.link.danger:hover{background:#dc85741f}:where(button,input,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--accent-press);background:var(--accent-soft);border:1px solid var(--accent-ring);border-radius:999px;padding:5px 11px;white-space:nowrap}.app{min-height:100dvh;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:18px;padding:12px clamp(16px,4vw,32px);background:#f7faf8d9;-webkit-backdrop-filter:saturate(120%) blur(8px);backdrop-filter:saturate(120%) blur(8px);border-bottom:1px solid var(--border)}.brandbtn{display:inline-flex;align-items:center;gap:10px;background:none;border:none;padding:4px;box-shadow:none}.brandbtn:hover{background:none;transform:none}.brandbtn .mark{height:23px}.brandbtn .wordmark{font-size:15px}.appnav{display:flex;gap:4px;flex:1;overflow-x:auto}.navlink{display:inline-flex;align-items:center;gap:7px;background:none;border:none;box-shadow:none;color:var(--text-muted);font-size:14.5px;font-weight:500;padding:8px 12px;border-radius:var(--r-sm);white-space:nowrap}.navlink:hover{background:var(--surface-2);color:var(--text-strong);transform:none}.navlink.active{background:var(--accent-soft);color:var(--accent-press)}.navlink .material-symbols-sharp{font-size:19px}.appbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.icon-btn{display:inline-flex;align-items:center;gap:7px}.icon-btn .material-symbols-sharp{font-size:19px}.content{width:100%;max-width:980px;margin:0 auto;padding:clamp(20px,4vw,40px) clamp(16px,4vw,32px) 64px}.backlink{display:inline-flex;align-items:center;gap:4px;background:none;border:none;box-shadow:none;color:var(--text-muted);font-size:14px;padding:6px 8px 6px 0}.backlink:hover{background:none;color:var(--accent-press);transform:none}.backlink .material-symbols-sharp{font-size:18px}.area-title{margin:6px 0 18px;font-family:var(--font-heading);font-size:clamp(24px,5vw,30px);font-weight:600;letter-spacing:-.01em}.ov-head{margin-bottom:26px}.ov-eyebrow{margin:0 0 4px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-press)}.ov-title{margin:0 0 6px;font-family:var(--font-heading);font-size:clamp(26px,6vw,34px);font-weight:600;letter-spacing:-.01em}.section-gap{margin-top:34px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.kpi{display:flex;flex-direction:column;gap:6px;padding:20px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.kpi-strong{background:var(--accent-soft);border-color:var(--accent-ring)}.kpi-label{font-size:13px;font-weight:500;color:var(--text-muted)}.kpi-value{font-size:26px;font-weight:600;letter-spacing:-.01em;color:var(--text-strong)}.kpi-sub{font-size:12px;color:var(--text-muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:12px}.tile{display:flex;align-items:center;gap:14px;text-align:left;padding:20px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);box-shadow:none}.tile:hover{background:var(--surface);border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.tile-icon{display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-press);font-size:26px}.tile-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.tile-title{font-family:var(--font-heading);font-size:17px;font-weight:600;color:var(--text-strong)}.tile-sub{font-size:13px;color:var(--text-muted)}.tile-arrow{color:var(--text-muted);font-size:20px}.tile:hover .tile-arrow{color:var(--accent-press)}.tile-disabled{opacity:.55;cursor:default}.tile-disabled:hover{transform:none;border-color:var(--border);box-shadow:none}.inv-layout{display:flex;gap:24px;align-items:flex-start}.inv-sidebar{width:248px;flex-shrink:0;position:sticky;top:80px}.inv-sidebar-head{margin:0 0 8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-press)}.inv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.inv-item{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:none;border:1px solid transparent;box-shadow:none;color:var(--text);padding:10px 12px;border-radius:var(--r-sm)}.inv-item:hover{background:var(--surface-2);transform:none}.inv-item.active{background:var(--accent-soft);border-color:var(--accent-ring)}.inv-item-ic{font-size:22px;color:var(--accent-press);flex-shrink:0}.inv-item-text{display:flex;flex-direction:column;gap:1px;min-width:0}.inv-item-name{font-size:14px;font-weight:600;color:var(--text-strong);line-height:1.25}.inv-item-sub{font-size:12px;color:var(--text-muted)}.inv-main{flex:1;min-width:0}@media (max-width: 820px){.inv-layout{flex-direction:column;gap:16px}.inv-sidebar{width:100%;position:static}.inv-list{flex-direction:row;overflow-x:auto;padding-bottom:4px}.inv-item{width:auto;flex-shrink:0}.inv-item-sub{display:none}}.inv-switch{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.chip{background:var(--surface);color:var(--text);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);font-size:14px;padding:8px 14px}.chip:hover{background:var(--surface-2);transform:none}.chip.active{background:var(--accent-soft);color:var(--accent-press);border-color:var(--accent-ring)}.prop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.prop-name{margin:0;font-family:var(--font-heading);font-size:clamp(19px,3vw,22px);font-weight:600;letter-spacing:-.01em}.prop-addr{margin:4px 0 0}.prop-tags{display:flex;align-items:center;gap:10px;flex-shrink:0}.small-btn{padding:8px 14px;font-size:14px}.usage{font-size:12px;font-weight:600;letter-spacing:.02em;border-radius:999px;padding:5px 11px;white-space:nowrap;border:1px solid transparent}.usage.rented{color:var(--accent-press);background:var(--accent-soft);border-color:var(--accent-ring)}.usage.owner_occupied{color:var(--blue);background:#6059841a;border-color:#60598438}.usage.vacant{color:var(--text-muted);background:var(--surface-2);border-color:var(--border)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:22px 0 6px}.metric{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.metric-strong{background:var(--accent-soft);border-color:var(--accent-ring)}.metric-label{font-size:12.5px;font-weight:500;color:var(--text-muted)}.metric-value{font-size:21px;font-weight:600;letter-spacing:-.01em;color:var(--text-strong)}.metric-sub{font-size:12px;color:var(--text-muted)}.metric-value.pos,.kv-row dd.pos,.line-amount.pos{color:var(--pos)}.metric-value.neg,.kv-row dd.neg,.line-amount.neg{color:var(--neg)}.kpi-value.pos{color:var(--pos)}.kpi-value.neg{color:var(--neg)}.prop-section{margin-top:26px}.prop-section-title{margin:0 0 10px;font-family:var(--font-heading);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-press)}.kv{margin:0}.kv-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border)}.kv-row:last-child{border-bottom:none}.kv-row dt{margin:0;font-size:14px;color:var(--text-muted)}.kv-row dd{margin:0;font-size:15px;font-weight:600;color:var(--text-strong);text-align:right;white-space:nowrap}.kv-row.kv-strong dt{color:var(--text)}.kv-row.kv-strong dd{font-weight:700}.kv-row.kv-dim dt{padding-left:14px;font-size:13px}.kv-row.kv-dim dd{font-weight:500;color:var(--text-muted)}.kv-sub{font-weight:400}.lines{list-style:none;margin:0;padding:0}.lines li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border)}.lines li:last-child{border-bottom:none}.line-label{font-size:14px;color:var(--text)}.line-amount{font-size:15px;font-weight:600;white-space:nowrap}.amort-note{margin:0 0 12px}.amort{max-height:320px;overflow:auto;border:1px solid var(--border);border-radius:var(--r-md)}.amort-table{width:100%;border-collapse:collapse;font-size:14px}.amort-table th,.amort-table td{padding:9px 14px;text-align:right;white-space:nowrap}.amort-table th:first-child,.amort-table td:first-child{text-align:left}.amort-table thead th{position:sticky;top:0;background:var(--surface-2);color:var(--text-muted);font-weight:600;font-size:12.5px;border-bottom:1px solid var(--border)}.amort-table tbody td{color:var(--text-strong);border-bottom:1px solid var(--border)}.amort-table tbody tr:last-child td{border-bottom:none}.amort-table tbody tr.amort-now td{background:var(--accent-soft);font-weight:700}.timeline{list-style:none;margin:0;padding:0}.tl-item{display:flex;gap:12px;padding:4px 0;position:relative}.tl-item:not(:last-child):before{content:"";position:absolute;left:5px;top:18px;bottom:-4px;width:2px;background:var(--border)}.tl-dot{width:12px;height:12px;border-radius:50%;margin-top:4px;flex-shrink:0;background:var(--text-muted);z-index:1}.tl-dot.rented{background:var(--green)}.tl-dot.owner_occupied{background:var(--blue)}.tl-dot.vacant{background:var(--border-strong)}.tl-body{display:flex;flex-direction:column;gap:1px;padding-bottom:10px}.tl-title{font-size:15px;font-weight:600;color:var(--text-strong)}.edit-form{margin-top:18px;padding:18px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface)}.edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.edit-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--text-muted)}.edit-grid input{padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:15px;font-family:inherit;color:var(--text);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.edit-grid input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.edit-actions{margin-top:14px;display:flex;justify-content:flex-end}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 8px}.toolbar .count{margin-left:auto;font-size:13px;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:5px 12px;white-space:nowrap}.upload{position:relative;overflow:hidden;display:inline-flex;border-radius:var(--r-sm)}.upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.upload span{display:inline-flex;align-items:center;gap:8px;background:var(--dark);color:var(--light);border-radius:var(--r-sm);padding:11px 18px;font-size:15px;font-weight:500}.upload:hover span{background:#45483f}.icon{width:17px;height:17px;flex-shrink:0}.files{list-style:none;padding:0;margin:10px 0 0}.files li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 12px;border-radius:var(--r-md);border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease}.files li:hover{background:var(--surface);border-color:var(--border)}.files li+li{margin-top:2px}.file-info{display:flex;flex-direction:column;min-width:0;gap:2px}.fname{font-size:15px;font-weight:500;color:var(--text-strong);word-break:break-all}.fmeta{color:var(--text-muted)}.actions{display:flex;gap:4px;flex-shrink:0}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:44px 20px;margin-top:10px;border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface)}.empty .empty-icon{width:38px;height:38px;color:var(--accent);margin-bottom:6px}.empty p{margin:0}.empty .empty-title{font-size:15px;font-weight:600;color:var(--text-strong)}.doc-group{margin-bottom:16px}.doc-group:last-child{margin-bottom:0}.doc-group-title{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--text)}.docs{list-style:none;margin:0;padding:0}.docs li{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid var(--border)}.docs li:last-child{border-bottom:none}.doc-ic{color:var(--accent-press);font-size:19px;flex-shrink:0}.doc-link{font-size:14px;color:var(--accent-press);text-decoration:none;word-break:break-word}a.doc-link:hover{text-decoration:underline}.shares{list-style:none;margin:16px 0 0;padding:0}.share-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--border);flex-wrap:wrap}.share-info{display:flex;flex-direction:column;gap:2px;min-width:0}.share-link-text{font-size:13px;color:var(--text);word-break:break-all}.share-actions{display:flex;gap:2px;flex-shrink:0}.public-tag{margin-left:auto}.public-footer{text-align:center;padding:24px 16px 40px;border-top:1px solid var(--border);margin-top:24px}.dossier-notes{line-height:1.6}@media (prefers-reduced-motion: reduce){*{transition:none!important}button:hover,.tile:hover,.upload:hover span{transform:none}}@media (max-width: 620px){.navlink-label{display:none}.navlink{padding:8px 10px}.appnav{flex:1}}@media (max-width: 480px){.prop-head{align-items:flex-start}.metric-value{font-size:19px}}
