:root{--ink:#142339;--muted:#7a879a;--muted2:#99a5b5;--stroke:#e8edf3;--paper:#f7f9fc;--white:#fff;--blue:#2869e8;--medical:#da5364;--luxury:#13966d;--corporate:#447bc6;--shadow:0 8px 36px rgba(26,45,76,.09);font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;height:100%;font:14px 'DM Sans',sans-serif;color:var(--ink);background:var(--paper)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,sans-serif;letter-spacing:-.045em}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #96baff;outline-offset:2px}button{transition:transform .16s,background .16s,box-shadow .16s}button:hover{transform:translateY(-1px)}.hidden{display:none!important}.topbar{height:66px;display:flex;align-items:center;padding:0 32px;gap:48px;background:#fff;border-bottom:1px solid var(--stroke);position:relative;z-index:1000}.brand{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font:800 18px Manrope;letter-spacing:-.06em}.logo{height:34px;width:34px;border-radius:10px;display:grid;place-items:center;background:#2167e6;color:#fff;font-size:14px;transform:rotate(-8deg)}.brand-sub{font-weight:500;font-size:13px;color:#8fa0b7;letter-spacing:.02em}.nav{height:100%;display:flex;gap:8px;align-items:center}.nav a{display:flex;align-items:center;gap:9px;padding:11px 17px;border-radius:9px;color:#778599;font-weight:700;font-size:13px}.nav a.active{background:#edf4ff;color:#2463dc}.nav a:hover{color:#2463dc;background:#f5f8ff}.top-meta{margin-left:auto;display:flex;align-items:center;gap:9px;color:#98a5b5;font-size:12px}.online-dot{width:7px;height:7px;background:#42bd9b;border-radius:50%}.vbadge{font-size:9px;font-weight:800;padding:4px 7px;border-radius:5px;color:#5274b2;background:#edf3ff;letter-spacing:.08em}.map-layout{height:calc(100dvh - 66px);position:relative;overflow:hidden}.map-shell,#map{position:absolute;inset:0}.map-shell{background:#e7eef1}#map{z-index:1}.leaflet-container{font:inherit;background:#edf3f6}.leaflet-control-zoom{border:1px solid #e3e8ec!important;box-shadow:var(--shadow)!important;border-radius:11px!important;overflow:hidden}.leaflet-control-zoom a{border:0!important;color:#44546a!important}.leaflet-bottom.leaflet-right{margin-bottom:90px}.leaflet-control-attribution{font-size:10px!important}.map-floating{position:absolute;z-index:450;pointer-events:none}.map-floating>*{pointer-events:auto}.top-left{top:20px;left:22px;max-width:calc(100% - 110px)}.selector-row{display:flex;gap:9px;flex-wrap:wrap}.selector{display:flex;flex-direction:column;gap:5px;padding:10px 13px;background:#fff;border:1px solid #e5ebf2;border-radius:12px;box-shadow:var(--shadow);min-width:153px}.selector span,.filters label span{font-size:9px;letter-spacing:.12em;color:#94a1b1;font-weight:800}.selector select{border:0;outline:0;background:#fff;color:#1b2b42;font-weight:800;padding:1px 20px 0 0;cursor:pointer;max-width:190px}.top-right{right:22px;top:20px}.icon-button,.float-button,.close-button{border:1px solid #e8edf3;background:#fff;box-shadow:var(--shadow);border-radius:12px;color:#52647c}.icon-button{height:48px;width:48px;font-size:17px}.floating-menu{position:absolute;right:0;top:57px;width:276px;background:#fff;border:1px solid var(--stroke);border-radius:15px;padding:19px;box-shadow:0 20px 55px rgba(17,36,67,.16);display:flex;flex-direction:column;gap:11px}.menu-title{font:800 14px Manrope}.floating-menu label{font-size:12px;color:#5b6c80;display:flex;justify-content:space-between}.floating-menu select{width:100%;border:1px solid var(--stroke);padding:9px;border-radius:8px}.floating-menu input[type=range]{accent-color:#3174eb}.floating-menu .checkline{display:flex;justify-content:flex-start;align-items:center;gap:8px}.menu-note{padding-top:8px;color:#8b99a8;font-size:11px;line-height:1.5}.bottom-left{bottom:20px;left:22px}.range-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--stroke);padding:12px 17px;border-radius:13px;box-shadow:var(--shadow);min-width:198px}.range-symbol{border-radius:10px;background:#eaf2ff;color:#2a6deb;padding:12px}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:800;color:#95a3b2}.range-card strong{font:800 24px Manrope;letter-spacing:-.05em}.range-card .unit{margin-left:5px;color:#7d8ca1;font-weight:700}.footnote{font-size:10px;color:#9eabba;margin-top:3px}.bottom-center{bottom:24px;left:50%;transform:translateX(-50%)}.legend{display:flex;align-items:center;gap:9px;border:1px solid var(--stroke);box-shadow:var(--shadow);border-radius:10px;padding:12px 16px;background:#fff;white-space:nowrap}.legend-dot{height:10px;width:10px;border-radius:50%;background:var(--medical)}.legend strong{font-size:12px}.legend-line{width:1px;background:#e2e8f0;height:18px;margin:0 4px}.legend small{color:#8b98aa}.legend-demo{font-size:9px;font-weight:800;color:#bc8b3c;background:#fff6e8;border-radius:5px;padding:4px 7px}.bottom-right{bottom:20px;right:22px;display:flex;gap:9px}.float-button{height:46px;padding:0 16px;display:flex;align-items:center;gap:10px;color:#3f526a;font-weight:700}.float-button span:last-child{background:#f0f4fb;color:#59759f;border-radius:6px;padding:4px 6px;font-size:11px}.float-button span:first-of-type{background:none;color:inherit;padding:0;font-size:13px}.drawer{width:408px;max-width:calc(100vw - 22px);height:calc(100% - 40px);position:absolute;top:20px;right:20px;z-index:550;border:1px solid #e8ecf2;box-shadow:0 22px 60px rgba(20,39,69,.13);border-radius:18px;background:#fff;display:flex;flex-direction:column;transform:translateX(calc(100% + 44px));transition:transform .28s cubic-bezier(.23,.9,.26,1);overflow:hidden}.drawer.open{transform:translateX(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:24px 23px 18px;border-bottom:1px solid var(--stroke)}.drawer-head h2{font-size:20px;margin-top:4px}.drawer-handle{display:none}.close-button{box-shadow:none;height:31px;width:31px;font-size:14px}.drawer-content,#drawer-content{padding:20px 22px;overflow:auto;flex:1}.loading{color:#91a0b1;padding:28px 0}.summary-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:21px}.summary-tile{background:#f5f8fc;border-radius:10px;padding:12px 10px}.summary-tile strong{font:800 17px Manrope;display:block}.summary-tile small{font-size:10px;color:#90a0b0}.search-field{display:flex;align-items:center;gap:10px;border:1px solid var(--stroke);border-radius:10px;padding:11px 13px;color:#9aacc0}.search-field input{border:0;outline:0;min-width:0;width:100%;color:var(--ink)}.panel-caption{display:flex;justify-content:space-between;align-items:center;margin:16px 0 10px;color:#8190a3;font-size:11px}.panel-caption b{color:#33445c}.airport-item{display:flex;align-items:center;gap:12px;background:#fff;width:100%;padding:13px 2px;border:0;border-bottom:1px solid #f0f2f6;text-align:left}.airport-icon{height:36px;width:36px;display:grid;place-items:center;border-radius:9px;background:#eff3f9;color:#6381aa;font-size:13px}.airport-txt{flex:1;min-width:0}.airport-txt b,.airport-txt small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.airport-txt b{font-size:13px}.airport-txt small{font-size:11px;color:#94a2b2;margin-top:4px}.score-pill{min-width:45px;text-align:center;padding:7px 5px;font-weight:800;border:1px solid currentColor;border-radius:8px;font-size:12px}.back-link{border:0;background:transparent;color:#4777cf;padding:0;margin-bottom:17px;font-weight:700;font-size:12px}.detail-name{font-size:22px;font-weight:800;margin-bottom:5px;line-height:1.3}.detail-sub{color:#8795a7;font-size:12px;margin-bottom:21px}.big-score{display:flex;align-items:center;justify-content:space-between;padding:19px;border:1px solid var(--stroke);border-radius:13px;margin-bottom:15px}.big-score .score-value{font:800 32px Manrope;letter-spacing:-.06em}.big-score small{color:#8290a3}.rating-kind{background:#fff4df;color:#a57b32;padding:6px 8px;border-radius:7px;font-size:10px;font-weight:800}.detail-cards{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:15px}.detail-cards>div{background:#f7f9fc;padding:14px;border-radius:10px}.detail-cards b{display:block;font-size:15px}.detail-cards small{font-size:10px;color:#8997a8}.detail-block{padding:15px 0;border-top:1px solid var(--stroke)}.detail-block h4{margin:0 0 9px;font-size:12px}.detail-block p{font-size:12px;color:#77869a;line-height:1.65}.detail-block a,.text-link{color:#286bdc;font-weight:700;font-size:12px}.status{font-size:10px;font-weight:800;padding:5px 7px;border-radius:6px;background:#f2f5fa;color:#8590a0}.status.review{color:#a76c17;background:#fff4dd}.status.restricted{color:#b3444f;background:#fff0f2}.status.documented{color:#248b6e;background:#e7f7f0}.air-score{font:800 12px Manrope;color:#fff;background:var(--medical);border:2px solid #fff;border-radius:50%;box-shadow:0 2px 10px #0003;display:flex;align-items:center;justify-content:center}.air-hub{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#2069e8;border:3px solid #fff;box-shadow:0 3px 12px #0004;color:#fff;font-size:12px}.map-fallback{position:absolute;inset:0;z-index:2;background:#e9f0f4;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#64778e}.map-fallback i{font-size:35px}.map-fallback p{margin-top:10px}.toast{position:absolute;z-index:1200;left:50%;bottom:105px;transform:translateX(-50%);padding:12px 19px;border-radius:9px;background:#1f3047;color:#fff;box-shadow:var(--shadow);max-width:90vw}
.page-view{min-height:100%;height:auto}.report{max-width:1220px;margin:0 auto;padding:47px 32px 40px}.report-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:30px}.eyebrow.blue{color:#3670e8}.report-head h1{font-size:39px;margin:8px 0 10px}.report-head p{line-height:1.7;color:#8491a4;max-width:700px}.outline-btn{border:1px solid #e2e9f1;color:#52637a;border-radius:9px;background:#fff;padding:11px 15px;font-size:12px;font-weight:700;white-space:nowrap}.outline-btn i{margin-right:7px}.filters{display:flex;align-items:end;gap:12px;padding:15px;background:#fff;border:1px solid var(--stroke);border-radius:13px;margin-bottom:28px}.filters label{min-width:215px;display:flex;flex-direction:column;gap:5px}.filters select{border:0;padding:6px 9px 3px 0;outline:none;color:#263955;font-weight:700;background:#fff}.filter-date{margin-left:auto;color:#9aa5b4;font-size:11px;padding-bottom:8px}.section-line{display:flex;align-items:center;justify-content:space-between;margin:23px 0 16px}.section-line h2{font-size:19px}.subnote{color:#91a0af;font-size:11px}.subnote i{margin-right:5px}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.kpi{background:#fff;border:1px solid var(--stroke);padding:22px;border-radius:14px}.kpi-heading{font-size:10px;letter-spacing:.065em;color:#8999ac;font-weight:800;display:flex;justify-content:space-between;align-items:center;gap:10px}.kpi-heading i{font-size:17px;color:#b6c6df}.kpi-number{font:800 33px Manrope;margin:20px 0 6px;letter-spacing:-.04em}.kpi p{font-size:11px;color:#99a5b3}.inline-alert{display:flex;align-items:center;gap:10px;background:#fff7e8;color:#967243;border:1px solid #faeacc;border-radius:10px;padding:14px 17px;font-size:12px;margin:16px 0 26px;line-height:1.5}.research-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;margin:16px 0 30px}.span-7{grid-column:span 7}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.report-card{background:#fff;border:1px solid var(--stroke);padding:24px;border-radius:14px;min-width:0}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:12px}.card-heading h3{font-size:17px;margin-top:6px}.card-heading>i{font-size:19px;color:#9eb2cc}.neutral-pill{background:#f3f6fa;color:#77889f;font-size:10px;font-weight:800;padding:7px 9px;border-radius:6px}.metric-row{border-top:1px solid #eef1f5;padding:17px 0;display:flex;align-items:center;justify-content:space-between;gap:15px}.metric-row:first-child{border:0}.metric-row h4{font-size:13px;margin:0 0 5px}.metric-row p{font-size:11px;color:#97a4b4;line-height:1.5;max-width:410px}.metric-right{text-align:right;white-space:nowrap}.metric-right strong{font:800 21px Manrope}.metric-right small{font-size:10px;color:#91a1b2;display:block;margin:4px 0}.metric-right a{font-size:11px;color:#3974d9}.method-steps{display:flex;flex-direction:column;gap:20px;margin-top:3px}.method-steps>div{display:flex;gap:14px;align-items:center}.method-steps span{height:34px;width:34px;flex:none;background:#f0f5ff;border-radius:9px;display:grid;place-items:center;color:#4375d6;font-weight:800;font-size:12px}.method-steps p{display:flex;flex-direction:column;gap:5px}.method-steps small{color:#98a5b5;font-size:11px}.streams{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:0 0 32px}.stream{padding:24px;background:#fff;border:1px solid var(--stroke);border-radius:14px;display:flex;flex-direction:column;min-height:236px}.stream>i{font-size:19px;margin-bottom:17px}.stream.medical>i{color:var(--medical)}.stream.luxury>i{color:var(--luxury)}.stream.corporate>i{color:var(--corporate)}.stream h3{font-size:15px;margin-bottom:9px}.stream p{color:#8e9cac;line-height:1.6;font-size:11px}.stream-bottom{display:flex;justify-content:space-between;border-top:1px solid #f0f1f5;padding-top:14px;margin-top:auto;gap:10px;font-size:10px}.stream-bottom span{color:#9eabb9;font-weight:800}.stream-bottom b{color:#8190a3}.source-entry{border-top:1px solid #eef1f5;padding:15px 0}.source-entry:first-child{border:0}.source-entry a{font-weight:800;font-size:12px;color:#3570cf;line-height:1.6}.source-entry p{margin-top:5px;line-height:1.5;color:#8a99ac;font-size:11px}.source-entry small{color:#9daaba;font-size:10px}.question-list{padding-left:19px;color:#79899c;font-size:12px;line-height:1.65}.question-list li{padding:0 0 11px 3px}.report-footer{padding:20px 0 0;text-align:center;color:#9ca9b8;font-size:10px;border-top:1px solid var(--stroke)}.admin-main{max-width:1120px}.admin-actions{display:flex;justify-content:space-between;align-items:center;margin:4px 0}.login-card{max-width:460px;margin:auto}.form-stack{display:flex;flex-direction:column;gap:13px}.form-stack label{font-size:11px;font-weight:800;color:#69798e;display:flex;flex-direction:column;gap:7px}.form-stack input,.form-stack select,.form-stack textarea,.setup-card input{border:1px solid #e3eaf2;border-radius:8px;padding:11px 12px;background:#fff;color:#23334b;width:100%;outline-color:#91b3f1}.form-stack textarea{resize:vertical}.primary{background:#286be8;border:1px solid #286be8;color:#fff;border-radius:8px;padding:12px 16px;font-weight:800;font-size:12px}.primary:hover{background:#1f5fd1}.hint,.card-intro{font-size:11px;color:#91a0b0;line-height:1.65;margin:15px 0}.hint a{color:#316cde}.two-fields,.three-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.three-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.setup-page{min-height:100%;display:grid;place-items:center}.setup-card{max-width:440px;padding:36px;background:#fff;border:1px solid var(--stroke);border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:22px}.setup-card h1{font-size:27px}.setup-card p{color:#77889c;line-height:1.5}.setup-card form{display:flex;flex-direction:column;gap:12px}.setup-card label{font-weight:700;font-size:12px}.setup-card a{color:#286be8;font-weight:700}.notice{padding:12px;background:#e9faf2;color:#2c8e6a!important;border-radius:9px}
@media(max-width:1000px){.top-meta{display:none}.topbar{gap:22px;padding:0 17px}.bottom-center{left:auto;right:16px;bottom:83px;transform:none}.legend-demo{display:none}.drawer{height:calc(100% - 28px);top:14px;right:14px}.report{padding:28px 20px}.streams{grid-template-columns:1fr 1fr}.span-7,.span-5{grid-column:span 12}}
@media(max-width:650px){.topbar{height:58px;padding:0 13px;gap:12px;justify-content:space-between}.brand{font-size:15px}.brand-sub{font-size:10px}.logo{height:28px;width:28px}.nav{gap:2px}.nav a{font-size:11px;padding:8px 9px}.nav a i{display:none}.map-layout{height:calc(100dvh - 58px)}.top-left{top:11px;left:10px;right:62px;max-width:calc(100% - 80px)}.selector-row{gap:5px;flex-wrap:nowrap}.selector{min-width:0;flex:1;padding:8px 6px;border-radius:9px;max-width:33.333%}.selector span{font-size:7px;white-space:nowrap}.selector select{max-width:100%;width:100%;font-size:10px;overflow:hidden;text-overflow:ellipsis;padding-right:6px}.top-right{right:10px;top:11px}.icon-button{height:41px;width:41px}.floating-menu{width:min(275px,calc(100vw - 22px))}.bottom-left{left:11px;bottom:13px}.range-card{min-width:0;padding:9px;gap:8px}.range-symbol{padding:8px}.range-card strong{font-size:17px}.footnote{font-size:9px}.bottom-right{bottom:72px;right:12px;flex-direction:column}.float-button{height:39px;padding:0 11px}.bottom-center{bottom:13px;right:10px}.legend{padding:9px;gap:6px}.legend strong{font-size:10px}.legend small,.legend-line{display:none}.drawer{height:70%;top:auto;bottom:0;right:0;max-width:100%;width:100%;border-radius:18px 18px 0 0;transform:translateY(105%)}.drawer.open{transform:translateY(0)}.drawer-handle{display:block;width:32px;height:4px;border-radius:3px;background:#d8e0e9;margin:9px auto -8px}.drawer-head{padding:19px 20px 12px}.drawer-content,#drawer-content{padding:12px 20px}.report{padding:28px 15px}.report-head h1{font-size:29px}.report-head p{font-size:12px}.report-actions{display:none}.filters{flex-wrap:wrap}.filters label{min-width:0;flex:1}.filter-date{width:100%;margin:5px 0 0}.kpi-grid{grid-template-columns:1fr;gap:8px}.kpi{padding:16px}.kpi-number{margin:7px 0 3px}.streams{grid-template-columns:1fr}.stream{min-height:185px}.span-6{grid-column:span 12}.two-fields,.three-fields{grid-template-columns:1fr}.section-line{align-items:start;gap:10px}.subnote{font-size:10px}}
@media print{.topbar,.report-actions,.filters,.admin-actions{display:none!important}.report{max-width:none;padding:0}.report-card,.kpi,.stream{break-inside:avoid}.inline-alert{break-inside:avoid}}
