/* Object passports reuse the Figma type, surfaces and original glyphs. */
.icon-room{--icon-url:url('assets/figma/icons/room.svg')}
.icon-area{--icon-url:url('assets/figma/icons/area.svg')}
.icon-calendar{--icon-url:url('assets/figma/icons/calendar.svg')}
/* Original Figma building 1 icon from the construction year row, node 15:299147. */
.icon-construction-year{--icon-url:url('assets/figma/icons/construction-year.svg')}
.icon-vaad{--icon-url:url('assets/figma/app/management.svg')}
.icon-light-bulb{--icon-url:url('assets/figma/icons/light-bulb.svg')}
.icon-cleaning{--icon-url:url('assets/figma/icons/cleaning.svg')}
.icon-rental{--icon-url:url('assets/figma/icons/rental.svg')}
.icon-owner{--icon-url:url('assets/figma/icons/owner.svg')}
.icon-language{--icon-url:url('assets/figma/icons/language.svg')}
.icon-gas{--icon-url:url('assets/figma/icons/gas.svg')}
.icon-parking{--icon-url:url('assets/figma/icons/parking.svg')}
.icon-storage{--icon-url:url('assets/figma/icons/storage-closet.svg')}
.icon-internet{--icon-url:url('assets/figma/icons/internet.svg')}
.icon-apartment-plan{--icon-url:url('assets/figma/icons/apartment-plan.svg')}
.icon-bath{--icon-url:url('assets/figma/icons/bath.svg')}
.icon-lift{--icon-url:url('assets/figma/icons/elevator.svg')}
.icon-balcony{--icon-url:url('assets/figma/icons/balcony.svg')}
.icon-toilet{--icon-url:url('assets/figma/icons/toilet.svg')}
.icon-shelter{--icon-url:url('assets/figma/icons/shelter.svg')}
.icon-sofa{--icon-url:url('assets/figma/icons/sofa.svg')}
.icon-air-conditioner{--icon-url:url('assets/figma/icons/air-conditioner.svg')}
.icon-flower{--icon-url:url('assets/figma/icons/flower.svg')}
.icon-roof{--icon-url:url('assets/figma/icons/roof.svg')}
.icon-stairs{--icon-url:url('assets/figma/icons/stairs.svg')}
.icon-rooms{--icon-url:url('assets/figma/icons/rooms.svg')}
.icon-bedroom{--icon-url:url('assets/figma/icons/bedroom.svg')}
.icon-water{--icon-url:url('assets/icons/water.svg')}
.icon-drain{--icon-url:url('assets/icons/drain.svg')}
.icon-electricity{--icon-url:url('assets/icons/electricity.svg')}
.icon-ventilation{--icon-url:url('assets/icons/ventilation.svg')}
.icon-wifi{--icon-url:url('assets/icons/wifi.svg')}
[hidden]{display:none!important}
.detail-dialog.passport-dialog{width:min(760px,calc(100% - 32px));max-height:calc(100svh - 32px);max-height:calc(100dvh - 32px)}
.passport-dialog .dialog-inner{padding:24px 28px 6px}
.passport-dialog .dialog-inner>h2{font-size:26px;margin-top:8px}
.passport-dialog #dialog-kicker{display:none}
.passport-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 22px;font-size:14px;color:var(--text)}
.passport-demo{display:inline-flex;padding:5px 9px;border-radius:6px;background:var(--light-background);color:#527184;font-size:12px;line-height:1.3;white-space:nowrap}
.passport-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.passport-stats>div{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:16px 13px;border:1px solid var(--tertiary);border-radius:10px;background:linear-gradient(145deg,#fff,#f5faff)}
.passport-stats dd>.icon{width:23px;height:23px;flex:0 0 23px;color:var(--primary)}
.passport-stats dd{display:flex;align-items:center;gap:9px;min-height:30px;margin:0;font-size:25px;font-weight:500;line-height:1.2;white-space:nowrap}
.passport-stats dt{grid-column:1/-1;font-size:13px;line-height:1.4;min-height:36px}
.passport-stat-action{position:relative}
.passport-stat-link{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:flex-end;padding:12px;border:0;border-radius:10px;background:transparent;color:var(--primary);cursor:pointer}
.passport-stats .passport-stat-link .icon{width:20px;height:20px;flex:0 0 20px;align-self:auto}
.passport-stat-link:hover{background:#0295ff08}
.passport-stat-link:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}
.passport-tabs{position:sticky;top:-1px;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0 0 14px;padding:6px 0 10px;border-bottom:0;background:#fff}
.passport-tab-controls{display:contents}
.passport-tabs button{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px;min-width:0;min-height:44px;padding:8px 4px;border:0;border-radius:7px;background:transparent;color:var(--text);font-size:14px;line-height:1.4;cursor:pointer}
.passport-tabs button>span:not(.icon){white-space:nowrap}
.passport-tabs button>.icon{width:18px;height:18px;flex:0 0 18px}
.passport-tabs button[aria-selected=true]{background:var(--light-background);color:#007bc3;font-weight:500}
.passport-tabs button:focus-visible,.common-zone-button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.municipality-badge{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;margin:5px 0 8px;border:1px solid #d5eafb;border-radius:9px;background:#f2f9ff;color:#17658d;font-size:14px;font-weight:500;line-height:1.4}
.municipality-badge img{width:56px;height:27px;flex:0 0 56px;object-fit:contain}
.common-zone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.house-facilities{margin-top:12px}
.zone-count{display:flex;align-items:center;gap:9px;min-height:30px;font-size:25px;font-weight:500;line-height:1.2;white-space:nowrap}
.zone-count>.icon{width:23px;height:23px;color:var(--primary)}
.zone-count>b{font:inherit}
.landing-floors{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:18px 0 22px}
.landing-floors button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:58px;border:1px solid var(--tertiary);border-radius:10px;background:#f5faff;color:var(--text);font:inherit;cursor:pointer}
.landing-floors button strong{font-size:20px;font-weight:500;line-height:1.1}
.landing-floors button span{font-size:12px}
.landing-floors button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:white}
.landing-floors button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.landing-content h3{font-size:20px;font-weight:500;margin:0 0 12px}
.landing-content h4{font-size:15px;font-weight:500;margin:0 0 10px}
.landing-content .landing-tour-button{margin:0 0 20px;width:100%}
.landing-apartments{margin-bottom:24px}
.landing-apartments .passport-apartments>button{font-size:18px;min-height:50px;border-radius:8px}
.landing-tour-hint{font-size:13px;line-height:1.5;color:#607b8d;margin:9px 0 0}
.viewing-access{padding:24px 0 10px;text-align:center}
.viewing-access-symbol{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 20px;border-radius:18px;background:var(--light-background);color:var(--primary)}
.viewing-access-symbol>.icon{width:30px;height:30px}
.viewing-access h3{font-size:21px;line-height:1.35;font-weight:500;margin:0 0 16px}
.viewing-access>p{font-size:14px;line-height:1.5;margin:12px 0;color:#527184}
.viewing-access>.viewing-access-copy{margin:0 0 24px}
.viewing-access>.button{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px}
.viewing-access>.button:disabled{opacity:.7;cursor:default}
.viewing-access-back{width:100%;min-height:46px;margin-top:10px;border:1px solid var(--tertiary);border-radius:10px;background:white;color:var(--text);font:inherit;font-size:14px;cursor:pointer}
.viewing-access-back:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.viewing-access>.asset-example-note{font-size:12px}
.landing-requests .contact-message{min-height:100px}
.landing-requests .contact-message-list{margin-top:12px}
.common-zone-button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;min-height:88px;padding:12px;border:1px solid var(--tertiary);border-radius:10px;background:linear-gradient(145deg,#fff,#f5faff);color:var(--text);text-align:left;cursor:pointer}
.common-zone-button>.icon{width:23px;height:23px;color:var(--primary)}
.common-zone-button strong{font-size:16px;line-height:1.35;font-weight:500;overflow-wrap:anywhere}
.common-zone-button small{font-size:13px;line-height:1.4;color:#607b8d}
.common-zone-button:hover{border-color:var(--primary)}
.shelter-intro{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px}
.shelter-intro .shelter-location{font-size:14px;line-height:1.5;margin:0}
.shelter-network{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;min-height:52px;padding:8px 10px;border:1px solid var(--tertiary);border-radius:10px;background:var(--light-background);color:var(--text);font:inherit;cursor:pointer}
.shelter-network>span{display:flex;align-items:center;gap:6px;color:#087bb5;font-size:14px;font-weight:500;white-space:nowrap}
.shelter-network .icon{width:18px;height:18px}
.shelter-network>small{font-size:12px;color:#607b8d;line-height:1.4}
.shelter-network:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.shelter-tour-button{margin:0 0 16px}
.cleaning-payments{margin:22px 0 12px}
.cleaning-payments>h3{font-size:18px;font-weight:500;margin:0 0 6px}
.cleaning-month .asset-fields{margin-top:0}
.passport-panel>.passport-levels,.passport-panel>.passport-plan,.passport-panel>.passport-tour-card{margin-top:0}
.tabbed-passport:not(.asset-open):not(.tour-open) .passport-meta-compact{margin:6px 0 4px}
.asset-description{margin:16px 0;font-size:16px;line-height:1.6}
.asset-tour-button{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin:16px 0;font-size:14px}
.asset-tour-button>.icon{width:20px;height:20px;flex:0 0 20px}
.asset-service-scope{font-size:14px;line-height:1.5;margin:10px 0;color:#527184}
.asset-provider-contact{padding:0;border:0;background:none;color:var(--primary);font:inherit;cursor:pointer;text-align:left}
.asset-provider-contact:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.asset-features{display:grid;gap:12px;list-style:none;margin:16px 0;padding:0}
.asset-features>li{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5}
.asset-features .icon{width:22px;height:22px;flex:0 0 22px;color:var(--primary)}
.asset-empty{margin:0 0 14px;font-size:14px;line-height:1.5;color:#607b8d}
.asset-equipment{margin:20px 0}
.asset-equipment h3{margin:0 0 12px;font-size:18px;line-height:1.4}
.asset-notice{padding:12px;border:1px solid var(--tertiary);border-radius:8px;background:#f5faff;font-size:14px;line-height:1.5}
.asset-inventory{margin:20px 0}
.asset-inventory h3{font-size:18px;line-height:1.4;margin:0 0 12px}
.asset-inventory h3>span{color:var(--primary);margin-left:6px}
.asset-inventory table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.4}
.asset-inventory caption{text-align:left;color:#607b8d;font-size:13px;margin-bottom:10px}
.asset-inventory th,.asset-inventory td{padding:10px 5px;border-bottom:1px solid var(--tertiary);text-align:center}
.asset-inventory th:first-child{text-align:left}
.asset-inventory th{font-weight:500}
.asset-expense-total{font-size:14px;margin:0 0 12px}
.asset-expenses,.passport-action-list{display:grid;gap:8px;margin-bottom:16px}
.asset-expense,.passport-list-button{display:flex;align-items:center;gap:10px;width:100%;min-width:0;padding:12px;border:1px solid var(--tertiary);border-radius:9px;background:#f8fbff;text-align:left;color:var(--text);cursor:pointer}
.asset-expense>span,.passport-list-button>span{flex:1;min-width:0}
.asset-expense strong,.passport-list-button strong{display:block;font-size:14px;line-height:1.5;font-weight:500}
.asset-expense small,.passport-list-button small{display:block;margin-top:4px;color:#607b8d;font-size:13px;line-height:1.4}
.asset-expense b{white-space:nowrap;font-size:14px;font-weight:500}
.asset-expense>.icon,.passport-list-button>.icon{color:var(--primary);width:17px;height:17px;flex-basis:17px}
.plan-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:12px}
.plan-toolbar button{display:inline-flex;align-items:center;justify-content:center;align-self:center;gap:6px;flex:none;width:auto;min-height:36px;padding:6px 10px;font:inherit;line-height:20px;white-space:nowrap;color:#007bc3;border:1px solid var(--tertiary);border-radius:8px;background:#edf7ff;cursor:pointer}
.plan-toolbar button>.icon{width:16px;height:16px;flex:0 0 16px}
.plan-toolbar+.passport-plan{margin-top:0}
.apartment-id{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px;margin:10px 0;padding:7px 10px;border-radius:8px;background:var(--light-background);font-size:14px;line-height:1.4;color:var(--text)}
.apartment-id strong{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.passport-meta .apartment-id{margin:0}
.apartment-statuses{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 14px}
.apartment-statuses:empty{display:none}
.apartment-statuses>span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;background:#f3f8fc;border-radius:6px;color:#527184;font-size:13px;line-height:1.4}
.apartment-statuses .icon{width:17px;height:17px;flex:0 0 17px}
.apartment-profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.apartment-profile-stats>div{min-width:0;padding:12px 8px;border:1px solid var(--tertiary);border-radius:10px;background:#f7fbff}
.apartment-profile-stats dd{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:0 0 7px;font-size:22px;font-weight:500;line-height:1.25}
.apartment-profile-stats dd>span:not(.icon){white-space:nowrap}
.apartment-profile-stats dd>.icon{width:19px;height:19px;flex:0 0 19px;color:var(--primary)}
.apartment-profile-stats dt{font-size:14px;line-height:1.4}
.apartment-overview>.asset-example-note{margin:10px 0 18px}
.apartment-tour-note{margin:-8px 0 10px;color:#607b8d;font-size:13px;line-height:1.4}
.apartment-contact{padding-top:18px;margin-top:18px;border-top:1px solid var(--tertiary)}
.apartment-contact h3{font-size:18px;font-weight:500;margin:0 0 12px}
.apartment-contact-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px}
.apartment-contact-heading h3{margin:0}
.contact-multiple-toggle{padding:6px 0;min-height:36px;border:0;background:none;color:#007bc3;font:inherit;font-size:14px;text-align:start}
.apartment-contact-group{margin:0 0 16px}
.apartment-contact-group h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:14px;font-weight:500;color:#627f90}
.apartment-contact-group h4>span{font-size:14px;color:#3b596a}
.apartment-contact-people{border:1px solid #d6e5ef;border-radius:12px;overflow:hidden}
.apartment-contact-person{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:10px 12px;text-align:start;border:0;background:#fff;color:var(--text);font:inherit}
.apartment-contact-person+.apartment-contact-person{border-top:1px solid #e6eff5}
.apartment-contact-person>span:first-child{flex:1;min-width:0;font-size:16px;font-weight:500;overflow-wrap:anywhere}
.apartment-contact-person>.icon{width:21px;height:21px;flex:0 0 21px;color:#008acc}
.apartment-contact-person[aria-pressed=true],.apartment-contact-person[aria-checked=true]{background:#edf8ff}
.apartment-contact-person:hover:not(.is-self){background:#e5f4ff}
.apartment-contact-person:focus-visible,.contact-multiple-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}
.apartment-contact-person>small{font-size:14px;color:#627f90}
.contact-person-check{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border:1px solid #a5c7db;border-radius:5px;font-size:14px;line-height:1;color:#fff}
[aria-checked=true]>.contact-person-check{background:#009bff;border-color:#009bff}
.contact-recipient bdi{font-weight:600}
.parking-apartment{margin:14px 0}
.parking-apartment>.icon{width:20px;height:20px;flex:0 0 20px;color:var(--primary)}
.contact-recipient{font-size:16px;line-height:1.5;margin:20px 0}
.contact-message-label{display:block;font-size:14px;margin-bottom:8px}
.contact-message{display:block;width:100%;min-height:160px;resize:vertical;padding:12px;border:1px solid #bdd4e3;border-radius:9px;font:inherit;font-size:16px;line-height:1.5;color:var(--text);background:white}
.contact-send{width:100%;margin-top:14px;white-space:normal;justify-content:center}
.contact-send-status{font-size:14px;line-height:1.5;color:#007bc3;min-height:20px;margin:10px 0}
.contact-language-note{display:flex;align-items:flex-start;gap:8px;margin:0 0 18px;font-size:14px;line-height:1.5;color:#527184}
.contact-language-note>.icon{width:20px;height:20px;flex:0 0 20px;color:var(--primary)}
.contact-message-list{display:grid;gap:10px}
.contact-message-list:not(:empty){margin-bottom:18px}
.contact-message-example{padding:12px;border-radius:12px 12px 3px 12px;background:var(--light-background);min-width:0}
.contact-message-example>span{font-size:12px;color:#527184}
.contact-message-example>p{font-size:16px;line-height:1.5;margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.plan-toolbar button:focus-visible,.passport-list-button:focus-visible,.asset-expense:focus-visible,.passport-apartments>button:focus-visible,.contact-message:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.passport-systems{margin-top:24px}
.passport-systems h3{margin:0;font-size:18px;line-height:1.4}
.passport-system-list{display:grid;gap:8px;margin-top:14px}
.passport-system-link{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0;min-height:76px;padding:12px 14px;border:1px solid var(--tertiary);border-radius:10px;background:linear-gradient(145deg,#fff,#f5faff);text-align:left;color:var(--text);cursor:pointer}
.passport-system-link>span:not(.icon){min-width:0;flex:1}
.passport-system-link strong{display:block;font-size:16px;font-weight:500;line-height:1.4;overflow-wrap:anywhere}
.passport-system-link small{display:block;margin-top:4px;font-size:14px;line-height:1.4;color:#607b8d}
.passport-system-link>.icon{width:20px;height:20px;flex:0 0 20px;color:var(--primary)}
.passport-system-link:hover{border-color:var(--primary)}
.passport-system-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
/* Equipment and its documents stay inside the same app page. */
.asset-location{margin:8px 0 4px;font-size:14px;line-height:1.5;color:#607b8d}
.asset-model{margin:0;font-size:14px;line-height:1.5}
.asset-service-card{margin:18px 0 8px;padding:16px;border:1px solid #d1e5f3;border-radius:12px;background:var(--light-background)}
.asset-service-card h3{margin:0;font-size:16px;line-height:1.4}
.asset-company{margin:5px 0 14px;font-size:16px;line-height:1.5;font-weight:500}
.asset-next-service{display:flex;align-items:center;gap:10px}
.asset-next-service>.icon{flex:0 0 24px;color:var(--primary)}
.asset-next-service>div{min-width:0}
.asset-next-service span:not(.icon){display:block;font-size:14px;line-height:1.5}
.asset-next-service strong{display:block;margin-top:2px;font-size:18px;line-height:1.4}
.asset-last-service{margin:12px 0 0;font-size:14px;line-height:1.5;color:#527184}
.asset-contact{margin-top:12px}
.asset-contact summary{min-height:44px;display:flex;align-items:center;color:var(--primary);font-size:14px;line-height:1.5;cursor:pointer}
.asset-contact p{margin:0;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.asset-fold{min-width:0;border-bottom:1px solid var(--tertiary)}
.asset-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px;padding:14px 0;list-style:none;cursor:pointer;font-size:16px;font-weight:500;line-height:1.4}
.asset-fold>summary::-webkit-details-marker{display:none}
.asset-fold>summary::marker{content:''}
.asset-fold>summary>.icon{width:18px;height:18px;flex:0 0 18px;color:var(--primary)}
.asset-fold[open]>summary>.icon{transform:rotate(45deg)}
.asset-fold summary small{margin-left:6px;font-size:13px;font-weight:400;color:#607b8d}
.asset-fields{min-width:0;margin:0;padding:0}
.asset-fields>div{padding:10px 0;border-bottom:1px solid var(--tertiary)}
.asset-fields>div:last-child{border-bottom:0}
.asset-fields dt{font-size:14px;line-height:1.5;color:#607b8d}
.asset-fields dd{margin:3px 0 0;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.asset-document-list{padding-bottom:8px}
.asset-document-link,.asset-document-reference{display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:48px;padding:12px 0;text-align:left;border:0;background:transparent;color:var(--text);cursor:pointer}
.asset-document-link+.asset-document-link{border-top:1px solid var(--tertiary)}
.asset-document-link>span:not(.icon),.asset-document-reference>span:not(.icon){min-width:0;flex:1}
.asset-document-link strong,.asset-document-reference strong{display:block;font-size:14px;font-weight:500;line-height:1.5;overflow-wrap:anywhere}
.asset-document-link small{display:block;margin-top:3px;font-size:12px;line-height:1.5;color:#607b8d}
.asset-document-link>.icon,.asset-document-reference>.icon{flex:0 0 20px;width:20px;height:20px;color:var(--primary)}
.asset-document-link:hover strong,.asset-document-reference:hover strong{color:var(--primary)}
.asset-history{list-style:none;margin:0;padding:0}
.asset-history>li{padding:8px 0 18px}
.asset-history>li+li{padding-top:18px;border-top:1px solid var(--tertiary)}
.asset-history time,.asset-history-company{display:block;font-size:13px;line-height:1.5;color:#607b8d}
.asset-history h4{margin:6px 0;font-size:16px;line-height:1.4}
.asset-history p{margin:0 0 8px;font-size:16px;line-height:1.5}
.asset-history-documents{margin-top:4px}
.asset-document-reference{color:#007bc3;padding-block:8px}
.asset-document-sheet{margin-top:16px;padding:16px;border:1px solid var(--tertiary);border-radius:10px;background:#fff}
.asset-document-meta{font-size:14px;line-height:1.5;color:#607b8d}
.asset-document-issuer{margin:6px 0 12px;font-size:16px;font-weight:500;line-height:1.5}
.asset-document-copy{display:grid;gap:12px;margin-top:16px;font-size:16px;line-height:1.6}
.asset-document-copy p{margin:0}
.asset-related{margin-top:18px;padding-top:14px;border-top:1px solid var(--tertiary)}
.asset-related h3{font-size:15px;line-height:1.4;margin:0}
.asset-example-note{margin:18px 0 2px;font-size:12px;line-height:1.6;color:#647f90}
.asset-back-inline{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:8px;padding:4px 0;border:0;background:transparent;color:var(--primary);font-size:14px;line-height:1.5}
.asset-back-inline>.icon{transform:rotate(180deg);width:20px;height:20px;flex-basis:20px}
.app-dialog .asset-back-inline{display:none}
.passport-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}
.passport-section-heading h3,.passport-zones h3{font-size:18px;line-height:1.4;margin:0}
.passport-section-heading>span{font-size:13px;color:#688291}
.passport-levels,.passport-plan,.passport-zones{margin-top:24px}
.passport-level-row{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:14px;min-height:38px;border-bottom:1px solid var(--tertiary);font-size:14px;padding:6px 0}
.passport-level-row strong{font-size:14px;font-weight:400}
.passport-level-row.basement{border-bottom:0;padding-block:12px}
.passport-apartments{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.passport-apartments>button{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;padding:4px 2px;text-align:center;background:#edf7ff;border:1px solid #d9eafa;border-radius:5px;font-size:14px;color:#527184;cursor:pointer}
.passport-apartments>button.chosen{background:var(--primary);border-color:var(--primary);color:white}
.apartment-number{line-height:1;font-variant-numeric:tabular-nums}
.apartment-markers{position:absolute;right:2px;top:2px;display:flex;gap:2px;pointer-events:none}
.apartment-directory{gap:8px;margin:18px 0}
.apartment-directory>button{min-height:52px;font-size:16px;border-radius:8px}
.storage-directory{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:16px 0 10px}
.storage-directory>button{flex-direction:column;gap:5px;min-height:66px;border-radius:8px;padding:8px 2px}
.storage-number{font-size:20px;line-height:1.2;font-weight:500}
.storage-directory small{font-size:12px;line-height:1.3;white-space:nowrap}
.storage-legend,.shelter-location{font-size:14px;line-height:1.5;color:#607b8d;margin:0 0 14px}
.internet-providers{display:grid;gap:8px;margin:16px 0}
.internet-providers .provider-card{margin:0}
.apartment-legends{display:flex;flex-wrap:wrap;gap:4px 16px;margin:14px 0}
.apartment-legends .apartment-legend{margin:0;font-size:13px}
.passport-apartments>button .icon{width:12px;height:12px;flex-basis:12px}
.apartment-legend{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.5;color:var(--text);margin:14px 0}
.apartment-legend .icon{width:18px;height:18px;flex-basis:18px}
.provider-card{display:flex;align-items:center;gap:12px;width:100%;min-width:0;padding:12px;margin:16px 0;border:1px solid #cfe5f6;border-radius:10px;background:#f4faff;color:var(--text);text-align:left;cursor:pointer}
.provider-card>img{width:40px;height:40px;flex:0 0 40px;object-fit:contain;background:white;border-radius:6px}
.provider-card>span:not(.icon){flex:1;min-width:0}
.provider-card small{display:block;font-size:13px;line-height:1.4;color:#607b8d;margin-bottom:3px}
.provider-card strong{display:block;font-size:16px;line-height:1.4;font-weight:500}
.provider-card>.icon{width:20px;height:20px;flex:0 0 20px;color:var(--primary)}
.provider-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.provider-profile{display:flex;align-items:center;gap:16px;margin:20px 0}
.provider-profile>img{width:64px;height:64px;object-fit:contain;border:1px solid var(--tertiary);border-radius:10px;background:white}
.provider-profile p{font-size:18px;line-height:1.4;margin:0 0 5px}
.provider-profile span{font-size:14px;line-height:1.4;color:#607b8d}
.provider-website{display:flex;justify-content:center;width:100%;margin-top:20px;text-decoration:none}
.passport-zones ul{display:grid;grid-template-columns:1fr 1fr;gap:12px;list-style:none;padding:0;margin:14px 0 0}
.passport-zones li{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.4}
.passport-zones .icon{width:21px;height:21px;flex-basis:21px;color:var(--primary)}
.passport-shelter{margin-top:24px;padding:18px;border:1px solid var(--tertiary);border-radius:12px;background:#fff}
.passport-shelter-heading{display:flex;align-items:center;gap:12px}
.passport-shelter-heading>.icon{width:30px;height:30px;flex-basis:30px;color:var(--primary)}
.passport-shelter h3{font-size:18px;line-height:1.4;margin:0}
.passport-shelter-heading p{font-size:14px;margin:3px 0 0;color:#607b8d}
.passport-shelter>p{font-size:14px;line-height:1.6;margin:14px 0}
.passport-shelter ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.passport-shelter li{display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height:1.45}
.passport-shelter li .icon{width:22px;height:22px;flex-basis:22px;color:var(--primary)}
.passport-plan{border:1px solid var(--tertiary);padding:17px 14px 0;border-radius:10px;background:#fff}
.passport-plan svg{display:block;width:100%;max-width:504px;height:auto;margin:0 auto;stroke:none}
.passport-plan .passport-section-heading{flex-wrap:wrap;gap:4px 12px;margin-bottom:6px}
.passport-plan-position{font-size:.875rem;line-height:1.5;color:#527184;margin:0 0 16px}
.passport-plan svg{max-width:440px}
.passport-plan-caption{font-size:.875rem;line-height:1.5;color:#647f90;margin:0 0 16px}
.passport-tour-card{margin:24px 0 4px;padding:18px;background:var(--light-background);border:1px solid #d1eaff;border-radius:12px}
.passport-tour-intro{display:flex;align-items:flex-start;gap:13px;margin-bottom:17px}
.passport-tour-symbol{width:44px;height:44px;flex:0 0 44px;border:1px solid #bce2ff;background:#fff;border-radius:10px;display:grid;place-items:center;color:var(--primary)}
.passport-tour-intro h3{font-size:19px;margin:0 0 5px}
.passport-tour-intro p{margin:0;font-size:14px;line-height:1.5}
.passport-tour-start{display:flex;justify-content:center;width:100%}
.passport-disclaimer{font-size:12px;line-height:1.5;margin:11px 0 0;color:#647f90;text-align:center}
.tour-topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:16px 0 12px}
.tour-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 10px 0 0;color:var(--primary);font-size:14px;background:none;border:0}
.tour-back .icon{transform:rotate(180deg);width:20px;height:20px;flex-basis:20px}
.tour-floor-picker{display:flex;align-items:center;gap:10px;margin:0 0 12px;flex:none}
.tour-floor-picker>span{font-size:14px;line-height:1.25;max-width:65px}
.tour-floor-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;flex:1;min-width:0}
.tour-floor-buttons>button{min-width:0;min-height:40px;padding:6px 2px;border:1px solid var(--tertiary);border-radius:8px;background:white;color:var(--text);font:inherit;font-size:16px;cursor:pointer}
.tour-floor-buttons>button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:white;font-weight:500}
.tour-floor-buttons>button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.tour-viewport{position:relative;overflow:hidden;width:100%;height:400px;height:clamp(280px,48svh,480px);border:1px solid var(--tertiary);border-radius:12px;background:#e7eff3}
.tour-viewport canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px;cursor:grab}
.tour-viewport canvas:active{cursor:grabbing}
.panorama-hotspots{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.panorama-hotspot{position:absolute;display:flex;flex-direction:column;align-items:center;gap:5px;transform:translate(-50%,-50%);pointer-events:auto;border:0;background:none;padding:6px;color:#fff;max-width:140px}
.panorama-hotspot-circle{display:grid;place-items:center;width:46px;height:46px;border:2px solid #fff;border-radius:50%;background:#0295ff;box-shadow:0 2px 14px #1839494d}
.panorama-hotspot-circle .icon{width:24px;height:24px;transform:rotate(-90deg)}
.panorama-hotspot-label{padding:5px 9px;border-radius:6px;background:#fff;color:var(--text);font-size:14px;line-height:1.25;box-shadow:0 2px 12px #18394926;text-align:center}
.panorama-hotspot:hover .panorama-hotspot-circle,.panorama-hotspot:focus-visible .panorama-hotspot-circle{background:#087aca;box-shadow:0 0 0 5px #ffffff55}
.panorama-status{position:absolute;left:50%;top:16px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);padding:9px 14px;border-radius:8px;display:flex;align-items:center;gap:10px;background:#fff;color:var(--text);box-shadow:0 3px 18px #18394926;font-size:.875rem;line-height:1.4;z-index:3}
.panorama-status[data-state=loading]{display:block;text-align:center}
.panorama-status[data-state=error]{flex-wrap:wrap;justify-content:center}
.panorama-status button{border:0;padding:5px 8px;color:var(--primary);background:#edf7ff;border-radius:5px;font-size:14px}
.tour-loading,.tour-unavailable{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:22px;text-align:center;font-size:15px}
.tour-unavailable h3{font-size:19px;margin:0}.tour-unavailable p{font-size:14px;line-height:1.5;margin:0}
.tour-unavailable>.icon{width:32px;height:32px;color:var(--primary)}
.tour-tools{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:10px}
.tour-tools p{font-size:13px;line-height:1.45;margin:0;color:#607b8d}
.tour-zoom{display:flex;gap:6px;flex:0 0 auto}
.tour-zoom button{width:42px;height:42px;border:1px solid var(--tertiary);border-radius:8px;background:white;color:var(--primary);font-size:23px;line-height:1}
.tour-stops{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}
.tour-stops button{min-height:44px;padding:10px 14px;border:1px solid var(--tertiary);border-radius:8px;background:white;color:var(--text);font-family:inherit;font-size:14px}
.tour-stops button[aria-pressed=true]{color:var(--primary);background:var(--light-background);border-color:var(--primary)}
.tour-location{margin:12px 0 6px;font-size:14px;line-height:1.5;min-height:42px;color:#607b8d}
.passport-dialog .dialog-footer{padding-top:14px}
.detail-dialog.passport-dialog.tour-open{width:min(1000px,calc(100% - 32px));height:calc(100svh - 32px);height:calc(100dvh - 32px)}
.tour-open .dialog-inner{display:flex;flex-direction:column;flex:1;overflow:hidden}
.tour-open #dialog-kicker{display:none}
.tour-open .dialog-inner>#dialog-title{font-size:18px;line-height:1.3;flex:0 0 auto;margin-top:0}
.tour-open #dialog-passport,.tour-open #passport-tour-view{display:flex;flex-direction:column;min-height:0;flex:1}
.tour-open .tour-viewport{height:auto;min-height:160px;flex:1}
.tour-open .tour-topbar,.tour-open .tour-tools,.tour-open .tour-stops,.tour-open .tour-location{flex:0 0 auto}
.tour-open .tour-location{min-height:0;font-size:13px}
@media(max-width:760px){
 .detail-dialog.passport-dialog{width:100%;max-width:620px;max-height:calc(100svh - 14px);max-height:calc(100dvh - 14px);margin:auto auto 0;border-radius:28px 28px 0 0}
 .passport-dialog .dialog-inner{padding:20px 20px 4px}
 .passport-dialog .dialog-inner>h2{font-size:23px}
 .passport-meta{margin-bottom:18px;font-size:14px;gap:8px}
 .passport-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .passport-stats>div{padding:13px 12px;column-gap:8px;row-gap:6px}
 .passport-stats dd{font-size:25px}
 .passport-stats dt{font-size:14px;min-height:39px}
 .passport-tour-card{padding:16px 14px}
 .passport-tour-intro h3{font-size:18px}
 .passport-plan{padding:15px 6px 0}
 .passport-plan .passport-section-heading{padding:0 7px}
 .passport-section-heading>span{font-size:12px}
 .passport-levels .passport-section-heading{flex-wrap:wrap;gap:3px 12px}
 .passport-shelter{padding:16px 14px}
 .tour-topbar .passport-demo{font-size:12px}
 .tour-viewport{height:clamp(280px,46svh,470px)}
 .tour-tools{gap:8px}.tour-tools p{font-size:12px}
 .tour-stops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .tour-stops button{padding:9px 5px;font-size:14px}
 .passport-zones ul{gap:13px 8px}.passport-zones li{gap:7px;font-size:14px}
 .detail-dialog.passport-dialog.tour-open{width:100%;height:calc(100svh - 14px);height:calc(100dvh - 14px)}
}
@media(max-width:350px){.passport-dialog .dialog-inner{padding-inline:15px}.passport-stats dd{font-size:23px}.passport-stats>div{padding:12px 9px}.passport-level-row{grid-template-columns:85px minmax(0,1fr);gap:10px}.passport-zones ul,.passport-shelter ul{grid-template-columns:1fr}}
@media(max-height:680px){.tour-open .tour-location{display:none}.tour-open .tour-topbar{margin:6px 0}.tour-open .tour-stops{margin-top:9px}.tour-open .dialog-inner{padding-top:12px}.tour-open .tour-viewport{min-height:120px}}
@media(max-height:520px){.tour-open .tour-tools p{display:none}.tour-open .tour-tools{position:absolute;right:38px;top:104px;z-index:2}.tour-open .tour-stops{display:flex;flex-wrap:nowrap;overflow-x:auto;flex:0 0 auto}.tour-open .tour-stops button{white-space:nowrap;flex:0 0 auto}.tour-open .dialog-footer{padding-block:8px}}

.room-inventory,.room-condition,.room-photos{margin:22px 0}
.room-inventory h3,.room-condition h3,.room-photos h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:17px;line-height:1.4;font-weight:600}
.room-inventory h3>span{font-size:14px;font-weight:400;color:#627f90}
.room-inventory ul{list-style:none;margin:0;padding:0;border:1px solid #d6e5ef;border-radius:12px;overflow:hidden}
.room-inventory li{display:flex;flex-direction:column;gap:4px;padding:12px;background:#f6fbff}
.room-inventory li+li{border-top:1px solid #e0ecf4}
.room-inventory li>strong{font-size:16px;line-height:1.4;font-weight:500}
.room-inventory li>span{font-size:14px;line-height:1.5;color:#627f90}
.room-condition{padding:14px;border:1px solid #d6e5ef;border-radius:12px}
.room-condition p{margin:0 0 6px;font-size:16px}
.room-condition small{font-size:14px;line-height:1.5;color:#627f90}
.room-photo-stages{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border-radius:10px;background:#edf5fb}
.room-photo-stages button{min-height:42px;padding:8px 6px;border:0;border-radius:8px;background:none;color:var(--text);font:inherit;font-size:14px}
.room-photo-stages button[aria-pressed=true]{background:white;color:#007bc3;box-shadow:0 1px 4px #3b546414}
.room-photo-stages button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.room-photo-empty{padding:20px 14px;margin-top:10px;border:1px dashed #bfd7e8;border-radius:12px;text-align:center}
.room-photo-empty strong{font-size:15px;line-height:1.5;font-weight:500}
.room-photo-empty p{margin:8px 0 0;font-size:14px;line-height:1.5;color:#627f90}

.flat-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 22px}
.flat-summary>div{min-width:0;padding:12px 8px;border-radius:10px;background:#f1f8fd}
.flat-summary dd{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:0 0 6px;font-size:22px;font-weight:600;line-height:1.3}
.flat-summary dd>span:not(.icon){white-space:nowrap}
.flat-summary dd>.icon{width:19px;height:19px;flex:0 0 19px;color:var(--primary)}
.flat-summary dt{font-size:14px;line-height:1.4;color:#627f90}
.flat-rooms-heading{font-size:17px;font-weight:600;margin:0 0 12px;line-height:1.4}

.passport-tabs.is-pinned{box-shadow:0 4px 8px rgba(44,67,81,.05)}
