:root{--bg:#e7eee8;--bg-2:#d5e2da;--panel:#fffcf7f5;--panel-ink:#1a2a24;--muted:#5a6b62;--line:#1a2a241f;--gold:#b8923f;--gold-soft:#d4b56a;--moss:#1f4d3d;--moss-deep:#14352c;--moss-mid:#2f6b54;--warn:#8a3b12;--warn-bg:#f4e2d4;--danger:#7a1f1f;--ok:#2f6b4f;--shadow:0 18px 42px #14352c1f;--radius:18px;--font-display:"Kanit", sans-serif;--font-body:"IBM Plex Sans Thai", sans-serif;--chrome-ink:#14352c;--chrome-muted:#14352cad}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--panel-ink);background:var(--bg);margin:0}button,a{font:inherit}.app{min-height:100vh;color:var(--chrome-ink);position:relative}.atmosphere{z-index:-1;background:radial-gradient(90% 55% at 8% -5%,#b8923f38,#0000 52%),radial-gradient(70% 50% at 100% 5%,#2f6b542e,#0000 48%),radial-gradient(60% 40% at 50% 100%,#d5e2dae6,#0000 55%),linear-gradient(168deg,#f3f7f4 0%,#e4ede7 38%,#d8e6de 72%,#eaf0eb 100%);position:fixed;inset:0}.atmosphere:after{content:"";opacity:.045;background-image:url("data:image/svg+xml,%3Csvg width='72' height='72' viewBox='0 0 72 72' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%2314352c' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");position:absolute;inset:0}.topbar{padding:1rem 1.25rem;padding-top:max(1rem, env(safe-area-inset-top));padding-left:max(1.25rem, env(safe-area-inset-left));padding-right:max(1.25rem, env(safe-area-inset-right));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;background:#fffcf7b8;border-bottom:1px solid #14352c1a;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.topbar__side{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;max-width:min(28rem,55%);display:flex}.brand{align-items:center;gap:.85rem;min-width:0;display:flex}.brand__mark{background:linear-gradient(145deg, var(--gold-soft), var(--gold)), var(--moss);border-radius:.7rem;flex:none;width:2.5rem;height:2.5rem;box-shadow:inset 0 0 0 2px #14352c59}.brand__name{font-family:var(--font-display);letter-spacing:.02em;margin:0;font-size:1.35rem;font-weight:700;line-height:1.1}.brand__role,.topbar__meta{color:var(--chrome-muted);margin:.15rem 0 0;font-size:.9rem}.topbar__meta--short{display:none}.topbar__meta{text-align:right;overflow-wrap:anywhere;word-break:break-word;margin:0;line-height:1.35}.layout{width:min(1120px,100% - 2rem);padding:1.5rem 0 max(3rem, env(safe-area-inset-bottom));margin:0 auto}.hero{grid-template-columns:1.05fr 1fr;align-items:stretch;gap:1.25rem;min-height:min(62vh,560px);margin-bottom:1.25rem;display:grid}.hero__copy{flex-direction:column;justify-content:center;padding:.5rem .25rem .5rem 0;display:flex}.eyebrow{color:var(--moss-mid);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .6rem;font-size:.85rem;font-weight:600}.hero h1{font-family:var(--font-display);color:var(--moss-deep);margin:0;font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:700;line-height:1.12}.lede{max-width:34rem;color:var(--chrome-muted);margin:1rem 0 1.4rem;font-size:1.05rem;line-height:1.65}.lede--sm{color:var(--muted);margin-top:0;font-size:.98rem}.hero__actions{flex-wrap:wrap;gap:.75rem;display:flex}.btn{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0;border-radius:999px;justify-content:center;align-items:center;min-height:2.75rem;padding:.75rem 1.25rem;text-decoration:none;transition:transform .2s,background .2s,color .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--primary{background:linear-gradient(120deg, var(--gold-soft), var(--gold));color:#1a2a24;font-weight:600}.btn--ghost{color:var(--moss-deep);background:#fffcf7b3;box-shadow:inset 0 0 0 1px #14352c38}.map-shell{border-radius:var(--radius);box-shadow:var(--shadow);min-height:320px;animation:.7s both rise;position:relative;overflow:hidden}.map-canvas{width:100%;height:100%;min-height:360px}.map-shell__links{z-index:400;flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex;position:absolute;bottom:.85rem;right:.85rem}.map-shell__links a{color:var(--gold-soft);background:#14352ceb;border-radius:999px;padding:.45rem .8rem;font-size:.82rem;text-decoration:none}.map-pin__dot{background:var(--gold);border:3px solid #14352c;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 6px #c9a24a40}.metrics{grid-template-columns:repeat(5,1fr);gap:.85rem;margin-bottom:1.25rem;display:grid}.metrics article{background:#fffcf7c7;border:1px solid #14352c1a;border-radius:14px;padding:1rem 1.1rem;animation:.65s both rise;box-shadow:0 8px 24px #14352c0f}.metrics article:nth-child(2){animation-delay:60ms}.metrics article:nth-child(3){animation-delay:.12s}.metrics article:nth-child(4){animation-delay:.18s}.metrics article:nth-child(5){animation-delay:.24s}.metrics span{color:var(--chrome-muted);margin-bottom:.35rem;font-size:.86rem;display:block}.metrics strong{font-family:var(--font-display);color:var(--moss-deep);font-size:1.35rem;font-weight:600}.tabs{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#e7eee8fa 0%,#e7eee8eb 75%,#0000 100%);margin:0 -.25rem .85rem;padding:.35rem .25rem .55rem;position:sticky;top:4.25rem}.tabs__picker{color:var(--chrome-muted);flex-direction:column;gap:.35rem;margin-bottom:.55rem;font-size:.85rem;display:none}.tabs__picker select{width:100%;min-height:2.85rem;font:inherit;color:var(--moss-deep);background:#fffcf7fa;border:1px solid #14352c2e;border-radius:12px;padding:.65rem .85rem;font-size:1rem;font-weight:600}.tabs__hint{color:var(--chrome-muted);margin:.35rem 0 0;font-size:.78rem;display:none}.tabs__track{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:thin;gap:.4rem;padding:.15rem .15rem .35rem;display:flex;overflow-x:auto}.tabs button{color:var(--chrome-muted);cursor:pointer;white-space:nowrap;scroll-snap-align:start;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#fffcf78c;border:0;border-radius:999px;flex:none;min-height:2.75rem;padding:.7rem 1rem;box-shadow:inset 0 0 0 1px #14352c14}.tabs button.is-active{color:var(--moss-deep);background:#fffcf7fa;font-weight:600;box-shadow:0 6px 16px #14352c1a,inset 0 0 0 1px #14352c1f}.panel{background:var(--panel);color:var(--panel-ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.4rem 1.5rem 1.6rem;animation:.5s both rise}.stack h2{font-family:var(--font-display);color:var(--moss-deep);margin:0 0 .85rem;font-size:1.55rem}.stack h3{font-family:var(--font-display);margin:0 0 .65rem;font-size:1.1rem}.address{color:var(--muted);margin:0 0 1rem;line-height:1.6}.kv{gap:.85rem;margin:0;display:grid}.kv>div{border-bottom:1px solid var(--line);grid-template-columns:10rem 1fr;gap:.75rem;padding-bottom:.85rem;display:grid}.kv dt{color:var(--muted);font-size:.92rem}.kv dd{margin:0;line-height:1.55}.callout{border-left:3px solid var(--moss);background:#1f4d3d14;border-radius:12px;margin-top:1.15rem;padding:1rem 1.1rem}.callout--warn{background:var(--warn-bg);border-left-color:var(--warn)}.callout strong{margin-bottom:.35rem;display:block}.callout p{margin:0;line-height:1.55}.finance-grid{grid-template-columns:repeat(3,1fr);gap:.85rem;display:grid}.finance-grid>div{border:1px solid var(--line);background:#14352c0d;border-radius:12px;padding:.95rem 1rem}.finance-grid span{color:var(--muted);margin-bottom:.35rem;font-size:.88rem;display:block}.finance-grid strong{font-family:var(--font-display);color:var(--moss-deep);font-size:1.25rem}.fineprint{color:var(--muted);margin:.9rem 0 0;font-size:.88rem;line-height:1.5}.timeline{margin-top:1.25rem}.timeline ol{margin:0;padding-left:1.2rem;line-height:1.7}.risk-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.risk-list li{border:1px solid var(--line);background:#14352c0a;border-radius:12px;grid-template-columns:3.5rem 1fr;gap:.85rem;padding:.9rem 1rem;display:grid}.risk-list__level{text-align:center;border-radius:8px;align-self:start;padding:.3rem .2rem;font-size:.78rem;font-weight:700}.risk-list li[data-level=สูง] .risk-list__level{color:var(--danger);background:#f3d4d4}.risk-list li[data-level=กลาง] .risk-list__level{color:var(--warn);background:#f4e2d4}.risk-list li[data-level=ต่ำ] .risk-list__level{color:var(--ok);background:#d9ebe2}.risk-list strong{margin-bottom:.25rem;display:block}.risk-list p{color:var(--muted);margin:0;line-height:1.5}.checklist{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.checklist label{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:flex-start;gap:.7rem;padding:.7rem .85rem;display:flex}.checklist input{accent-color:var(--moss);margin-top:.2rem}.lede strong{color:var(--moss-deep);font-weight:600}.panel .lede strong{color:var(--moss-deep)}.spots-board{color:#f4efe4;background:linear-gradient(160deg,#14352c,#1f4d3d);border-radius:14px;margin:.5rem 0 1.25rem;padding:1rem}.spots-board__chargers{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem;display:grid}.spots-board__chargers span{text-align:center;color:var(--gold-soft);background:#c9a24a26;border:1px dashed #e8d3a073;border-radius:8px;padding:.45rem;font-size:.85rem;font-weight:600}.spots-board__grid{grid-template-columns:repeat(4,1fr);gap:.65rem;display:grid}.spot{background:linear-gradient(#ffffff0f,#0000 40%),repeating-linear-gradient(90deg,#0000 0 10px,#ffffff0a 10px 12px);border:2px solid #e8d3a08c;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-height:7.5rem;display:flex}.spot__no{font-family:var(--font-display);font-size:1.05rem;font-weight:700}.spot__label{color:#f4efe4b3;font-size:.78rem}.spots-board__hint{color:#f4efe4b8;margin:.85rem 0 0;font-size:.88rem;line-height:1.5}.layout-meta{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.1rem;display:grid}.layout-meta>div{border:1px solid var(--line);background:#14352c0d;border-radius:12px;padding:.8rem .9rem}.layout-meta span{color:var(--muted);margin-bottom:.3rem;font-size:.82rem;display:block}.layout-meta strong{color:var(--moss-deep);font-size:.95rem;line-height:1.35}.drawing{border:1px solid var(--line);background:#fff;border-radius:14px;margin:0 0 1rem;overflow:hidden}.drawing img{width:100%;height:auto;display:block}.drawing figcaption{color:var(--muted);background:#14352c0a;padding:.65rem .9rem;font-size:.85rem}.drawing figcaption a{color:var(--moss)}.note-list{color:var(--muted);margin:0;padding-left:1.15rem;line-height:1.65}.tenant-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.tenant-card{border:1px solid var(--line);border-top:3px solid var(--accent,var(--gold));background:#14352c08;border-radius:14px;padding:1.1rem 1.15rem 1.2rem}.tenant-card__head h3{font-family:var(--font-display);color:var(--moss-deep);margin:.35rem 0 .15rem;font-size:1.15rem}.tenant-card__head p{color:var(--muted);margin:0;font-size:.9rem}.tenant-card__status{color:var(--moss);background:#1f4d3d1f;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.tenant-card dl{grid-template-columns:1fr 1fr;gap:.65rem;margin:1rem 0;display:grid}.tenant-card dt{color:var(--muted);font-size:.8rem}.tenant-card dd{margin:.15rem 0 0;font-weight:600}.tenant-card__note{color:var(--muted);margin:0 0 .65rem;font-size:.9rem;line-height:1.45}.tenant-card ul{color:var(--muted);margin:0 0 1rem;padding-left:1.1rem;font-size:.9rem;line-height:1.55}.btn--map{background:var(--moss-deep);color:#f4efe4;border-radius:999px;padding:.55rem .9rem;font-size:.88rem;text-decoration:none;display:inline-flex}.compare{background:#14352c0d;border-radius:12px;margin-top:1.25rem;padding:1rem}.compare__row{border-bottom:1px solid var(--line);justify-content:space-between;gap:1rem;padding:.55rem 0;display:flex}.compare__row:last-child{border-bottom:0}@media (width<=900px){.spots-board__grid,.layout-meta{grid-template-columns:1fr 1fr}.tenant-grid{grid-template-columns:1fr}}@media (width<=560px){.layout-meta{grid-template-columns:1fr}}.footer{text-align:center;color:var(--chrome-muted);padding:1rem 1.5rem 2rem;font-size:.88rem}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.form-card{border:1px solid var(--line);background:#14352c08;border-radius:14px;margin:.5rem 0 1.25rem;padding:1.1rem 1.15rem}.form-card h3{font-family:var(--font-display);color:var(--moss-deep);margin:0 0 .85rem}.form-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.88rem;display:flex}.form-grid .span-2{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);font:inherit;color:var(--panel-ink);background:#fff;border-radius:10px;width:100%;max-width:100%;min-height:2.75rem;padding:.7rem .75rem;font-size:1rem}.form-actions{justify-content:flex-end;gap:.6rem;margin-top:1rem;display:flex}.btn--ghost-dark{color:var(--moss-deep);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.65rem 1.1rem;box-shadow:inset 0 0 0 1px #14352c40}.btn--danger{color:var(--danger);cursor:pointer;background:#f3d4d4;border:0;border-radius:999px;padding:.55rem .9rem;font-size:.88rem}.card-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.card-actions .btn,.card-actions a.btn{flex:auto;min-width:6.5rem}.table-wrap{margin-top:1rem;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.92rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.65rem .5rem}.data-table th{color:var(--muted);font-weight:600}.data-table small{color:var(--muted)}.pos{color:var(--ok)}.neg{color:var(--danger)}.linkish{color:var(--moss);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.area-bar{border:1px solid var(--line);background:#eee8dc;border-radius:999px;height:14px;margin:.25rem 0 .5rem;display:flex;overflow:hidden}.area-bar__leased{background:#3d8f6e;min-width:2px}.area-bar__common{background:#c9a24a;min-width:2px}.area-bar__vacant{background:#8a9a84;min-width:2px}.legend{color:var(--muted);align-items:center;gap:.35rem;margin-right:1rem;font-size:.82rem;display:inline-flex}.legend:before{content:"";border-radius:2px;width:10px;height:10px}.legend--leased:before{background:#3d8f6e}.legend--common:before{background:#c9a24a}.legend--vacant:before{background:#8a9a84}.check-row{align-items:center;flex-direction:row!important;gap:.55rem!important}.check-row input{width:auto}.common-card{--accent:#c9a24a}.compare small{color:var(--muted);font-weight:400}.receipt-actions{gap:.6rem;margin:.75rem 0;display:flex}.receipt-sheet{color:#1a2a24;border:1px solid var(--line);background:#fff;border-radius:12px;max-width:720px;padding:1.5rem}.receipt-sheet header{border-bottom:2px solid var(--moss-deep);justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.85rem;display:flex}.receipt-sheet header strong{font-family:var(--font-display);font-size:1.35rem}.receipt-sheet header p{color:var(--muted);margin:.2rem 0 0}.receipt-meta{text-align:right;font-size:.92rem}.receipt-sheet table{border-collapse:collapse;width:100%;margin:1rem 0}.receipt-sheet th,.receipt-sheet td{text-align:left;border:1px solid #d7ddd9;padding:.65rem .75rem}.receipt-sheet .muted{color:var(--muted);margin-top:.25rem;font-size:.85rem}.sign-row{text-align:center;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2.5rem;font-size:.9rem;display:grid}.sign-line{border-bottom:1px solid #333;height:48px;margin-bottom:.5rem}.marketing-layout{grid-template-columns:minmax(220px,.9fr) 1.4fr;gap:1rem;margin-top:.75rem;display:grid}.lead-list{flex-direction:column;gap:.5rem;max-height:640px;display:flex;overflow:auto}.lead-item{text-align:left;border:1px solid var(--line);cursor:pointer;color:inherit;font:inherit;background:#fff;border-radius:12px;padding:.8rem .9rem}.lead-item.is-active{border-color:var(--moss);box-shadow:inset 0 0 0 1px var(--moss)}.lead-item__top{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.lead-item__top .fit{color:var(--moss);background:#1f4d3d1a;border-radius:999px;padding:.15rem .45rem;font-size:.78rem;font-weight:700}.lead-item__meta,.lead-item__rent{color:var(--muted);margin-top:.25rem;font-size:.85rem}.lead-item__rent{color:var(--moss-deep);font-weight:600}.pitch-box{white-space:pre-wrap;border:1px solid var(--line);background:#f7f4ec;border-radius:10px;max-height:280px;padding:.9rem 1rem;font-size:.9rem;line-height:1.55;overflow:auto}.lead-detail label{color:var(--muted);flex-direction:column;gap:.35rem;margin-top:.65rem;font-size:.88rem;display:flex}.lead-detail select,.lead-detail textarea{border:1px solid var(--line);font:inherit;color:var(--panel-ink);background:#fff;border-radius:10px;padding:.55rem .7rem}.contact-dir{margin:.5rem 0 1.25rem}.contact-dir__grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;display:grid}.contact-card{border:1px solid var(--line);background:linear-gradient(160deg,#fffef9 0%,#f3efe4 100%);border-radius:12px;padding:.85rem 1rem}.contact-card strong{color:var(--panel-ink);margin:.2rem 0;display:block}.contact-card p{color:var(--muted);margin:0 0 .55rem;font-size:.82rem;line-height:1.4}.contact-card__tag{letter-spacing:.02em;color:#5a6b4f;background:#e4ecdf;border-radius:4px;padding:.12rem .45rem;font-size:.72rem;display:inline-block}.contact-card__tag--lead{color:#6b5340;background:#efe4d4}.contact-links{flex-direction:column;gap:.25rem;font-size:.88rem;display:flex}.contact-links a,.contact-inline{color:#1f5c45;text-underline-offset:2px;word-break:break-all;text-decoration:underline}.contact-links .muted{color:var(--muted);font-size:.82rem}.tenant-card a{color:#1f5c45;word-break:break-all}.row-muted{opacity:.55}@media (width<=900px){.marketing-layout{grid-template-columns:1fr}}@media print{body{background:#fff!important}.no-print,.atmosphere,.topbar,.hero,.metrics,.tabs,.footer,.form-card,.receipt-actions,.table-wrap{display:none!important}.app,.layout,.panel,.panel--receipt{box-shadow:none!important;color:#000!important;background:#fff!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.receipt-sheet{border:0;max-width:none;padding:0}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.layout{width:min(1120px,100% - 1.5rem)}.metrics{grid-template-columns:repeat(3,1fr)}.net-income__cards{grid-template-columns:1fr}}@media (width<=900px){.hero{grid-template-columns:1fr;gap:1rem;min-height:auto}.hero h1{font-size:clamp(1.7rem,6vw,2.4rem)}.hero__copy{padding:0}.map-shell,.map-canvas{min-height:280px}.metrics{grid-template-columns:1fr 1fr}.metrics article:last-child:nth-child(odd){grid-column:1/-1}.finance-grid,.cash-grid,.cash-summary{grid-template-columns:1fr 1fr}.kv>div{grid-template-columns:1fr;gap:.25rem}.spots-board__grid,.layout-meta{grid-template-columns:1fr 1fr}.tenant-grid,.marketing-layout,.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.panel-head{flex-direction:column;align-items:stretch}.net-income__toggle{width:100%}.net-income__toggle .btn{flex:auto}.tabs{top:4.5rem}.topbar__side{max-width:none}}@media (width<=640px){.layout{width:calc(100% - 1rem);padding-top:1rem}.topbar{padding:.75rem .85rem;padding-top:max(.75rem, env(safe-area-inset-top));flex-direction:column;align-items:stretch;gap:.65rem}.topbar__side{flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;width:100%;max-width:none}.topbar__meta{text-align:left;flex:auto;max-width:none;font-size:.82rem;display:block}.brand{width:100%}.brand__name{font-size:1.15rem}.brand__role{font-size:.8rem}.brand__mark{width:2.2rem;height:2.2rem}.hero{margin-bottom:.85rem}.hero .lede{margin:.65rem 0 .9rem;font-size:.95rem}.hero__actions{gap:.5rem}.hero__actions .btn{flex:calc(50% - .5rem);padding:.7rem .85rem;font-size:.9rem}.metrics{grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:.85rem}.metrics article{padding:.8rem .85rem}.metrics strong{overflow-wrap:anywhere;font-size:1.15rem}.metrics span{font-size:.78rem}.alert-strip{flex-direction:column;align-items:stretch;margin-bottom:.85rem}.alert-strip .btn{width:100%}.tabs{background:#e7eee8fa;margin-left:-.5rem;margin-right:-.5rem;padding:.55rem .5rem .65rem;position:sticky;top:0}.tabs__picker{display:flex}.tabs__track{display:none}.tabs__hint{display:block}.panel{border-radius:14px;padding:1rem .95rem 1.2rem;scroll-margin-top:5.5rem}.stack h2{font-size:1.3rem}.finance-grid,.cash-grid,.cash-summary,.layout-meta,.tenant-card dl{grid-template-columns:1fr}.tenant-card__note,.note-list,.kv dd{overflow-wrap:anywhere;word-break:break-word}.compare__row{flex-direction:column;align-items:flex-start;gap:.25rem}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}.login-wrap{padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom))}.login-card{padding:1.25rem 1.1rem}.login-card input{min-height:2.85rem;font-size:1rem}.map-canvas{min-height:240px}.map-shell__links{justify-content:stretch;bottom:.5rem;left:.5rem;right:.5rem}.map-shell__links a{text-align:center;flex:auto}.drawing img{object-fit:contain;max-height:none}.receipt-sheet{padding:1rem;font-size:.9rem;overflow-x:auto}.sign-row{flex-direction:column;gap:1.25rem}.footer{padding:1rem .75rem max(1.5rem, env(safe-area-inset-bottom))}.table-wrap{-webkit-overflow-scrolling:touch}.net-income__card .kv>div{grid-template-columns:1fr}}@media (width<=380px){.metrics{grid-template-columns:1fr}.hero__actions .btn{flex:100%}}.login-wrap{min-height:100vh;color:var(--chrome-ink);place-items:center;padding:1.5rem;display:grid}.login-card{border-radius:var(--radius);background:var(--panel);width:min(400px,100%);box-shadow:var(--shadow);color:var(--panel-ink);flex-direction:column;gap:.9rem;padding:1.5rem 1.4rem;display:flex}.login-title{font-family:var(--font-display);color:var(--panel-ink);margin:0;font-size:1.35rem;font-weight:600;line-height:1.3}.login-hint{color:var(--muted);margin:0;font-size:.9rem;line-height:1.45}.login-card label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.login-card input{border:1px solid var(--line);font:inherit;color:var(--panel-ink);border-radius:10px;padding:.7rem .8rem;font-size:16px}.login-error{color:var(--danger);margin:0;font-size:.9rem}.topbar-logout{color:inherit;white-space:nowrap;padding:.55rem .95rem;font-size:.88rem}.alert-strip{color:var(--moss-deep);background:linear-gradient(120deg,#f7ebe0 0%,#f3efd8 100%);border:1px solid #8a3b122e;border-radius:14px;justify-content:space-between;align-items:center;gap:1rem;margin:-.4rem 0 1.1rem;padding:.85rem 1.1rem;display:flex;box-shadow:0 8px 20px #14352c0f}.alert-strip p{color:var(--chrome-muted);margin:.2rem 0 0;font-size:.9rem}.alert-strip .btn--ghost{background:#fffcf7e6}.cash-grid{grid-template-columns:repeat(4,1fr)}.cash-summary{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.cash-summary>div{border:1px solid var(--line);background:#faf7f0;border-radius:12px;padding:.85rem 1rem}.cash-summary span{color:var(--muted);margin-bottom:.25rem;font-size:.82rem;display:block}.cash-summary strong{font-size:1.15rem}.alert-list{flex-direction:column;gap:.55rem;display:flex}.alert-row{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .95rem;display:flex}.alert-row span{color:var(--muted);margin-top:.15rem;font-size:.82rem;display:block}.alert-row__amt{text-align:right;white-space:nowrap;flex-direction:column;align-items:flex-end;gap:.3rem;display:flex}.alert-row .badge{color:#5a5040;background:#eee8dc;border-radius:4px;padding:.12rem .45rem;font-size:.72rem;display:inline-block}.alert-row--overdue{background:#fff6f3;border-color:#b0483859}.alert-row--overdue .badge{color:#8a3428;background:#f0d2cb}.alert-row--soon{background:#fffaf0;border-color:#c9a24a73}.alert-row--soon .badge{color:#7a5a20;background:#efe0c0}.alert-row--ok .badge{color:#3d6b45;background:#ddebd8}@media (width<=900px){.cash-grid,.cash-summary{grid-template-columns:1fr 1fr}}@media (width<=640px){.alert-row{flex-direction:column;align-items:flex-start}.alert-row__amt{text-align:left;align-items:flex-start}}.net-income__toggle{flex-wrap:wrap;gap:.5rem;display:flex}.net-income__cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem;display:grid}.net-income__card{border:1px solid var(--line);border-radius:var(--radius);background:#fffcf7b8;padding:1rem 1.1rem}.net-income__card header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.net-income__card h3{font-family:var(--font-display);margin:0;font-size:1.15rem}.net-income__card header p{color:var(--muted);margin:.2rem 0 0;font-size:.88rem}.net-income__card .kv{margin:0}.net-income__card .note-list{margin:.85rem 0 0}.badge--ok{color:var(--ok);background:#d9ebe2}.badge{color:var(--moss-deep);background:#14352c14;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.kv dd.pos{color:var(--ok)}.app--world{color:#e8f0ea;background:#0c1611;grid-template-rows:auto auto 1fr auto auto;height:100dvh;min-height:100dvh;display:grid;overflow:hidden}.app--world .atmosphere{display:none}.world-topbar{padding:.65rem 1rem;padding-top:max(.65rem, env(safe-area-inset-top));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:40;background:#08100cd1;border-bottom:1px solid #ffffff14;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.app--world .brand__name{color:#f2f7f3}.app--world .brand__role{color:#c8dcd0b8}.world-topbar__metrics{color:#c5d6cb;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.82rem;display:flex}.world-topbar__metrics>span{background:#ffffff0f;border:1px solid #ffffff14;border-radius:999px;padding:.28rem .55rem}.world-chip{cursor:pointer;font:inherit;border:0;border-radius:999px;padding:.28rem .55rem}.world-chip--warn{color:#8a3b12;background:#f4e2d4}.world-topbar__hint{color:#9fbfab;font-size:.78rem}.world-banner{color:#f5dede;z-index:35;background:#3a1f1f;flex-wrap:wrap;gap:.5rem 1rem;padding:.45rem 1rem;font-size:.85rem;display:flex}.world-stage{min-height:0;position:relative;overflow:hidden}.world-loading{color:#9fbfab;margin:2rem 1rem}.world-dock{z-index:45;padding:.45rem .65rem;padding-bottom:max(.45rem, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#08100ceb;border-top:1px solid #ffffff14}.world-dock__primary{display:none}.world-dock__track{-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:.35rem;padding:.15rem;display:flex;overflow-x:auto}.world-dock__track button,.world-dock__primary button{color:#d5e4da;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:999px;flex:none;min-height:2.5rem;padding:.45rem .85rem;font-size:.82rem}.world-dock__track button.is-active,.world-dock__primary button.is-active{background:var(--gold);color:#1a2a24;border-color:#0000;font-weight:650}.world-backdrop{z-index:55;cursor:pointer;background:#040a0873;border:0;position:fixed;inset:0}.world-backdrop--more{z-index:52;background:#040a0866}.world-more{z-index:58;max-height:min(70dvh,520px);padding:.35rem .85rem calc(.85rem + env(safe-area-inset-bottom));background:var(--panel);color:var(--panel-ink);border-radius:1.15rem 1.15rem 0 0;animation:.26s ease-out world-sheet-up;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 40px #00000047}.world-more__title{font-family:var(--font-display);color:var(--moss-deep);margin:.15rem 0 .65rem;font-size:1.05rem}.world-more__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.world-more__grid button{text-align:left;border:1px solid var(--line);color:var(--panel-ink);min-height:3rem;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#fff;border-radius:.85rem;padding:.85rem .9rem;font-size:.92rem}.world-more__grid button.is-active{border-color:var(--moss-mid);background:#2f6b541a;font-weight:650}.world-sheet{z-index:60;top:max(3.5rem, env(safe-area-inset-top));background:var(--panel);width:min(42rem,100%);color:var(--panel-ink);border-radius:1.1rem 0 0;flex-direction:column;animation:.28s ease-out world-sheet-in;display:flex;position:fixed;bottom:0;right:0;box-shadow:-18px 0 48px #00000059}.world-sheet__grab{background:#14352c38;border-radius:999px;flex:none;width:2.5rem;height:.28rem;margin:.45rem auto .15rem;display:none}@keyframes world-sheet-in{0%{opacity:.6;transform:translate(1.25rem)}to{opacity:1;transform:none}}@keyframes world-sheet-up{0%{opacity:.6;transform:translateY(1.25rem)}to{opacity:1;transform:none}}.world-sheet__head{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.9rem 1.1rem .65rem;display:flex}.world-sheet__head h2{font-family:var(--font-display);color:var(--moss-deep);margin:.1rem 0 0;font-size:1.25rem}.world-sheet__close{flex:none;min-width:4.5rem}.world-sheet__body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;padding:1rem 1.1rem 2rem;overflow:auto}.topbar-logout__short,.world-footer{display:none}.world-sheet__context{color:var(--muted);border-bottom:1px solid var(--line);background:#2f6b5414;flex:none;margin:0;padding:.45rem 1.1rem;font-size:.82rem}.world-sheet__context strong{color:var(--moss-deep)}.site3d--immersive{flex-direction:column;height:100%;min-height:0;display:flex}.site3d-strip{z-index:3;background:#08100cc7;border-bottom:1px solid #ffffff0f;flex:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;padding:.4rem .55rem;display:grid}.site3d-strip>button{color:inherit;text-align:left;cursor:pointer;font:inherit;background:#ffffff0d;border:1px solid #ffffff14;border-radius:.55rem;flex-direction:column;gap:.08rem;padding:.35rem .5rem;display:flex}.site3d-strip>button:hover{background:#ffffff1a}.site3d-strip span{color:#9fbfab;font-size:.66rem}.site3d-strip strong{color:#f0e6c8;font-size:.8rem;font-weight:600}.site3d-stage{background:radial-gradient(at 30% 20%,#508c6459,#0000 55%),linear-gradient(165deg,#14261c 0%,#0c1611 100%);border:1px solid #ffffff14;border-radius:1rem;height:min(62vh,560px);min-height:min(62vh,560px);position:relative;overflow:hidden}.site3d-stage--immersive{border:0;border-radius:0;flex:auto;height:auto;min-height:0}.site3d-stage--immersive.is-sheet-open .site3d-chrome{opacity:.35;pointer-events:none}.site3d-stage canvas{touch-action:none;display:block;width:100%!important;height:100%!important}.site3d-chrome{z-index:2;pointer-events:none;position:absolute;inset:0}.site3d-chrome>*{pointer-events:auto}.site3d-zones{flex-wrap:wrap;gap:.3rem;max-width:calc(100% - 1.1rem);display:flex;position:absolute;top:.55rem;left:.55rem;right:.55rem}.site3d-zones button{color:#e4efe8;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a120ec7;border:1px solid #ffffff24;border-radius:999px;padding:.32rem .65rem;font-size:.74rem}.site3d-zones__short{display:none}.site3d-zones button.is-active{background:var(--gold);color:#1a2a24;border-color:#0000;font-weight:650}.site3d-plan-btn{margin-left:auto}.site3d-legend{z-index:3;background:#0c1611eb;border:1px solid #ffffff1f;border-radius:.65rem;width:min(14rem,42vw);padding:.35rem;position:absolute;top:2.6rem;left:.55rem}.site3d-legend img{background:#fff;border-radius:.4rem;width:100%;display:block}.site3d-legend__close{color:#d8e4dc;cursor:pointer;width:100%;font:inherit;background:#ffffff1a;border:0;border-radius:.4rem;margin-top:.35rem;padding:.3rem;font-size:.78rem}.site3d-hint{color:#b7c9be;text-align:center;pointer-events:none;background:#0a120eb8;border:1px solid #ffffff14;border-radius:999px;max-width:min(28rem,100% - 2rem);margin:0;padding:.35rem .75rem;font-size:.72rem;position:absolute;bottom:.65rem;left:50%;transform:translate(-50%)}.site3d-hud{color:#e8f0ea;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2;background:#0c1611e0;border:1px solid #ffffff1f;border-radius:.85rem;max-width:22rem;margin-left:auto;padding:.9rem 1rem;position:absolute;bottom:.85rem;left:.85rem;right:.85rem}.site3d-hud--card{width:min(17.5rem,100% - 1.1rem);max-width:none;max-height:calc(100% - 3.5rem);margin:0;inset:2.7rem .55rem auto auto;overflow:auto}.site3d-hud__code{font-family:var(--font-display);margin:0;font-size:1.05rem}.site3d-hud__status{color:#9fbfab;margin:.25rem 0 0;font-size:.88rem}.site3d-hud__rent{color:#f0e6c8;margin:.45rem 0 .55rem;font-size:1rem;font-weight:650}.site3d-hud .note-list{color:#c5d6cb;margin:0 0 .75rem;font-size:.82rem}.site3d-hud .btn{width:100%}.site3d-hud__actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin-bottom:.45rem;display:grid}.site3d-hud__actions .btn{width:auto;padding:.4rem .35rem;font-size:.78rem}.site3d-tag{color:#f2f7f3;white-space:nowrap;background:#0a120ec7;border:1px solid #ffffff24;border-radius:.4rem;flex-direction:column;align-items:center;gap:.1rem;padding:.2rem .45rem;font-size:.68rem;display:flex}.site3d-tag.is-on{color:#1a2a24;background:#b8923feb;border-color:#0000}.site3d-tag strong{color:#e6c87a;font-size:.78rem}.site3d-tag.is-inactive{opacity:.88;color:#d5ddd8;border-style:dashed}.site3d-tag.is-inactive strong{color:#c5b896}.site3d-plan-ref{grid-template-columns:minmax(0,280px) 1fr;align-items:center;gap:.85rem;display:grid}.site3d-plan-ref img{background:#fff;border:1px solid #14352c1f;border-radius:.65rem;width:100%}.site3d-plan-ref p{color:var(--muted);margin:0;font-size:.88rem}@media (width<=720px){.app--world .brand__name{font-size:.95rem}.app--world .brand__role{font-size:.72rem}.world-topbar{padding:.45rem .65rem;padding-top:max(.45rem, env(safe-area-inset-top));flex-wrap:nowrap;gap:.4rem}.world-topbar__metrics{flex:auto;justify-content:flex-end;gap:.3rem;min-width:0}.world-metric-sub{display:none}.world-topbar__metrics>span,.world-chip{padding:.28rem .5rem;font-size:.74rem}.world-topbar .topbar__side{gap:.35rem;max-width:none}.topbar-logout{min-height:2.35rem;padding:.35rem .7rem;font-size:.78rem}.topbar-logout__full{display:none}.topbar-logout__short{display:inline}.world-dock{padding:.35rem .4rem;padding-bottom:max(.35rem, env(safe-area-inset-bottom))}.world-dock__primary{grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;display:grid}.world-dock__primary button{border-radius:.85rem;flex:none;width:100%;min-height:3rem;padding:.55rem .2rem;font-size:.78rem}.world-dock__track--desktop,.site3d-strip{display:none}.site3d-zones{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:.35rem;padding-bottom:.15rem;top:.4rem;left:.4rem;right:.4rem;overflow-x:auto}.site3d-zones::-webkit-scrollbar{display:none}.site3d-zones button{flex:none;min-height:2.4rem;padding:.4rem .75rem;font-size:.8rem}.site3d-zones__full{display:none}.site3d-zones__short{display:inline}.site3d-stage:not(.site3d-stage--immersive){height:52vh;min-height:52vh}.site3d-hud:not(.site3d-hud--card){max-width:none;left:.55rem;right:.55rem}.site3d-hud--card{width:auto;max-height:min(46%,280px);padding:.75rem .85rem;inset:auto .55rem .55rem}.site3d-hud__actions{grid-template-columns:1fr}.site3d-hud__actions .btn,.site3d-hud .btn{min-height:2.65rem;font-size:.88rem}.site3d-plan-ref{grid-template-columns:1fr}.site3d-hint{display:none}.site3d-legend{width:min(12.5rem,58vw);top:3.1rem;left:.4rem}.world-sheet{width:100%;max-height:min(88dvh,720px);padding-bottom:env(safe-area-inset-bottom);border-radius:1.15rem 1.15rem 0 0;animation-name:world-sheet-up;inset:auto 0 0}.world-sheet__grab{display:block}.world-sheet__head{align-items:center;padding:.35rem .9rem .65rem}.world-sheet__head h2{font-size:1.12rem}.world-sheet__close{min-height:2.65rem}.world-sheet__body{padding:.85rem .9rem calc(1.25rem + env(safe-area-inset-bottom))}.world-sheet__body .btn,.world-sheet__body button.btn{min-height:2.75rem}.world-sheet__body input,.world-sheet__body select,.world-sheet__body textarea{min-height:2.75rem;font-size:16px}.world-more .world-sheet__grab{display:block}}@media (width<=380px){.world-dock__primary button{padding:.45rem .1rem;font-size:.7rem}.world-metric-main{font-size:.7rem}}@media print{.app--world{color:#000;background:#fff;height:auto;display:block;overflow:visible}.world-sheet{width:100%;max-height:none;box-shadow:none;border-radius:0;animation:none;position:static}.world-backdrop,.world-dock,.world-stage,.world-topbar,.world-banner{display:none!important}}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}#root{min-height:100vh}
