:root{--deep:#074351;--teal:#176473;--ink:#173c43;--cream:#faf8ed;--paper:#fffdf7;--sage:#e6edda;--gold:#cfb56b;--rose:#d59d9b;--lavender:#a993b9;--line:#cedbd2;--shadow:0 14px 42px rgba(19,58,58,.12)}*{box-sizing:border-box}html{font-size:18px}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #dd8d46;outline-offset:3px}a{color:var(--teal)}.skip{position:absolute;top:-100px;left:10px;background:#fff;padding:12px;z-index:30}.skip:focus{top:10px}.topbar{background:var(--deep);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(18px,4vw,64px);gap:10px;min-height:84px}.brand{color:#fff;display:flex;align-items:center;gap:12px;background:none;border:0;font-family:Georgia,serif;font-size:1.2rem;letter-spacing:.08em;text-align:left;line-height:1.05}.brand small{display:block;font:700 .54rem Arial,sans-serif;letter-spacing:.23em;margin-top:5px;color:#c9d8cb}.brandflower{font-size:2.3rem;color:#c4ae83;line-height:1}.topbar nav{display:flex;flex-wrap:wrap;gap:6px}.topbar nav button{background:transparent;border:0;color:#fff;padding:10px 9px;border-radius:8px;font-weight:700;font-size:.76rem}.topbar nav button:hover,.topbar nav button.active{background:rgba(255,255,255,.16)}.view[hidden]{display:none!important}.eyebrow{font-size:.7rem;letter-spacing:.2em;font-weight:800;color:var(--teal);margin:0 0 14px}.hero{background:linear-gradient(120deg,rgba(7,67,81,.97),rgba(11,90,99,.93)),radial-gradient(circle at 85% 15%,#aac8b7,transparent 35%);color:#fff;padding:clamp(55px,8vw,130px) 24px 100px}.hero-inner{max-width:900px;margin:auto;text-align:center}.hero .eyebrow{color:#d9c893}.hero h1,.page h1,.map-head h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.35rem,5vw,4.2rem);line-height:1.06;margin:0 0 22px;font-weight:500}.hero-copy{font-size:clamp(1.05rem,2vw,1.3rem);max-width:700px;margin:0 auto 38px;color:#e1ece8}.searchbox{text-align:left;background:var(--paper);padding:20px 22px;border-radius:16px;box-shadow:var(--shadow);color:var(--ink);max-width:780px;margin:auto}.searchbox label{display:block;font-weight:800;margin-bottom:8px}.searchrow{display:flex;gap:8px;align-items:center}.searchrow input{width:100%;padding:16px 18px;border:2px solid #aabeb7;border-radius:10px;background:#fff;color:var(--ink);min-height:56px}.searchrow input::placeholder{color:#637a79}.clear-search{background:#e9eee8;color:var(--ink);border:0;border-radius:9px;min-height:50px;padding:0 16px}.home-choices{max-width:1040px;margin:-48px auto 30px;padding:0 20px;position:relative;display:grid;grid-template-columns:1fr 1fr;gap:20px}.choice{background:var(--paper);text-align:left;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:26px 28px;display:grid;grid-template-columns:66px 1fr 30px;grid-template-rows:auto auto;column-gap:16px;align-items:center;color:var(--ink);min-height:142px}.choice:hover{transform:translateY(-3px);border-color:var(--teal)}.choice-icon{grid-row:span 2;background:var(--sage);border-radius:16px;font-size:2rem;display:grid;place-items:center;width:60px;height:60px;color:var(--teal)}.choice strong{font-family:Georgia,serif;font-size:1.45rem}.choice span:not(.choice-icon){font-size:.88rem}.choice b{grid-column:3;grid-row:1/3;font-size:1.5rem}.privacy-note{text-align:center;color:#607674;font-size:.82rem;padding:10px 24px 35px}.page{max-width:1460px;margin:auto;padding:42px clamp(18px,4vw,64px) 80px}.page-head{text-align:center;margin-bottom:32px}.page-head h1{margin-bottom:12px}.page-head>p:last-child{margin-top:0;color:#5f7775}.compact{max-width:820px}.alphabet{display:flex;justify-content:center;flex-wrap:wrap;gap:5px;margin:26px 0}.alphabet button{min-width:42px;min-height:44px;padding:4px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--ink);font-weight:700}.alphabet button.active{background:var(--deep);color:#fff}.results{max-width:900px;margin:22px auto}.hero .results:not(:empty){color:var(--ink);text-align:left;background:var(--paper);border-radius:16px;padding:18px 20px;margin-top:14px;box-shadow:var(--shadow)}.result-count{font-weight:800;color:var(--teal);margin:0 0 14px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:18px}.household-card,.unavailable-card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:22px;box-shadow:0 5px 18px rgba(20,55,55,.07);text-align:left}.household-card h2,.unavailable-card h2{font-family:Georgia,serif;font-size:1.55rem;line-height:1.15;margin:0 0 5px}.address{font-size:1rem;color:var(--teal);font-weight:800;margin:0 0 15px}.member{border-top:1px solid var(--line);padding:12px 0 3px}.member strong{display:block}.member a{display:block;overflow-wrap:anywhere;margin:5px 0;text-decoration-thickness:1px}.card-actions{margin-top:14px}.primary,.secondary,.map-action{min-height:48px;padding:10px 18px;border-radius:9px;font-weight:800}.primary,.map-action{background:var(--deep);color:#fff;border:1px solid var(--deep)}.secondary{background:#fff;color:var(--deep);border:1.5px solid var(--deep)}.primary:hover,.map-action:hover{background:var(--teal)}.empty{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px;text-align:center}.map-page{padding:28px clamp(12px,2vw,30px) 50px;max-width:1800px;margin:auto}.map-head{display:flex;justify-content:space-between;align-items:end;gap:12px;padding:0 12px 18px}.map-head h1{font-size:2.25rem;margin:0}.map-layout,.lofts-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,370px);gap:20px}.map-shell{position:relative;background:#e4e9d8;border-radius:16px;overflow:hidden;border:1px solid #bdcfc4}.map-viewport{height:min(74vh,800px);min-height:480px;overflow:hidden;touch-action:none;cursor:grab;position:relative}.map-viewport.dragging{cursor:grabbing}.map-canvas{position:absolute;width:3520px;height:4005px;transform-origin:0 0;will-change:transform}.map-canvas svg{display:block;width:100%;height:100%}.map-controls{position:absolute;z-index:4;top:16px;left:16px;display:flex;flex-direction:column;gap:5px}.map-controls button{background:#fff;color:var(--deep);border:1px solid #adbfba;border-radius:10px;min-width:52px;min-height:52px;font-size:1.5rem;box-shadow:var(--shadow)}.map-controls button:last-child{font-size:.88rem}.map-help{position:absolute;bottom:0;left:0;right:0;text-align:center;padding:8px;margin:0;background:rgba(255,253,247,.9);font-size:.78rem;color:#496463}.map-canvas .parcel{cursor:pointer}.map-canvas .parcel.selected{stroke:#d16827!important;stroke-width:12!important;filter:drop-shadow(0 0 7px #fff)}.lofts-feature{cursor:pointer}.lofts-footprint{fill:#0d5360;stroke:#e8f1e9;stroke-width:4}.lofts-label{pointer-events:none}.lofts-feature:hover .lofts-footprint,.lofts-feature:focus-visible .lofts-footprint{fill:#176473;stroke:#fffaf0;stroke-width:5}.detail-panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;min-height:300px;max-height:80vh;overflow:auto;padding:20px;box-shadow:0 5px 18px rgba(20,55,55,.07)}.detail-panel .household-card{border:0;box-shadow:none;padding:0}.panel-empty{text-align:center;color:#5b7370;padding:50px 10px}.panel-empty span{font-size:2.8rem;color:var(--teal)}.panel-empty h2{font-family:Georgia,serif;color:var(--ink)}.close-panel{float:right;border:0;background:#e7eee9;border-radius:8px;font-size:1.4rem;width:42px;height:42px}.lofts-head{text-align:center}.lofts-head h1{font-size:2.7rem;margin-bottom:10px}.back-link{display:block;margin:0 auto 30px;border:0;background:none;color:var(--teal);font-weight:800;text-decoration:underline;min-height:44px}.floor-tabs{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:25px auto}.floor-tabs button{min-height:55px;padding:10px 24px;border:2px solid #aebfba;border-radius:11px;background:#fff;color:var(--deep);font-weight:800}.floor-tabs button[data-floor="1"].active{background:var(--gold)}.floor-tabs button[data-floor="2"].active{background:var(--rose)}.floor-tabs button[data-floor="3"].active{background:var(--lavender)}.lofts-map{background:#f5f1e5;border:1px solid var(--line);border-radius:14px;overflow:auto;min-height:390px}.lofts-map svg{display:block;width:100%;height:auto}.lofts-map .unit{cursor:pointer}.lofts-map .unit.selected{stroke:#d16827!important;stroke-width:9!important;filter:drop-shadow(0 0 7px #fff)}.admin-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:25px 0}.admin-overview button{border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px;text-align:left;color:var(--ink)}.admin-overview strong{display:block;font-size:1.8rem;color:var(--teal)}.admin-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,1fr);gap:24px}.admin-tools,.admin-editor,.import-panel,.audit-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:24px}.admin-tools .results{margin:20px 0}.admin-tools .household-card{margin-bottom:12px}.queue-buttons{display:flex;gap:8px;flex-wrap:wrap}.queue-buttons button{border:1px solid var(--teal);background:#fff;border-radius:8px;padding:9px;color:var(--deep)}.review-item{border-bottom:1px solid var(--line);padding:10px 0}.admin-editor label{display:block;font-weight:700;margin:12px 0 4px}.admin-editor input{width:100%;padding:11px;border:1px solid #9eb5ae;border-radius:8px}.admin-editor fieldset{border:1px solid var(--line);border-radius:10px;margin:16px 0;padding:12px}.admin-editor button{margin-top:12px}.import-panel input{display:block;margin:12px 0}.status{color:var(--teal);font-weight:700}.error{color:#a12d26;font-weight:700}#toast{position:fixed;z-index:99;bottom:20px;left:50%;transform:translateX(-50%);background:var(--deep);color:#fff;padding:12px 20px;border-radius:10px;box-shadow:var(--shadow);display:none}#toast.show{display:block}@media(max-width:900px){.topbar{display:block}.topbar nav{justify-content:space-between;margin-top:12px}.map-layout,.lofts-layout,.admin-layout{grid-template-columns:1fr}.detail-panel{max-height:none}.map-viewport{height:65vh}.home-choices{grid-template-columns:1fr;max-width:600px}}@media(max-width:600px){html{font-size:17px}.topbar{padding:12px 15px}.topbar nav button{font-size:.74rem;padding:10px 6px;min-height:45px}.hero{padding:56px 16px 78px}.hero h1{font-size:2.5rem}.home-choices{margin-top:-34px;gap:12px;padding:0 14px}.choice{padding:16px;grid-template-columns:54px 1fr 20px;min-height:110px}.choice-icon{width:48px;height:48px;font-size:1.5rem}.choice strong{font-size:1.18rem}.page{padding:28px 15px 60px}.map-head{display:block}.map-viewport{height:60vh;min-height:390px}.map-layout .detail-panel,.lofts-layout .detail-panel{position:fixed;z-index:20;left:0;right:0;bottom:0;max-height:62vh;overflow:auto;border-radius:18px 18px 0 0;box-shadow:0 -12px 34px rgba(0,0,0,.23)}.detail-panel:has(.panel-empty){display:none}.floor-tabs button{flex:1;min-width:30%;padding:8px}.lofts-head h1{font-size:2.2rem}}
.login-body{min-height:100vh;background:linear-gradient(145deg,#074351,#176473 48%,#e6edda 48%)}.login-wrap{max-width:620px;margin:0 auto;padding:35px 18px 65px}.login-brand{color:#fff;display:flex;align-items:center;gap:14px;font:1.65rem Georgia,serif;letter-spacing:.07em;margin-bottom:45px}.login-brand small{display:block;font:700 .62rem Arial,sans-serif;letter-spacing:.2em;color:#d9e6d7}.login-card{background:var(--paper);border-radius:20px;padding:clamp(24px,5vw,48px);box-shadow:var(--shadow)}.login-card h1{font:normal clamp(2.1rem,6vw,3.2rem) Georgia,serif;line-height:1.08;margin:0 0 18px}.login-card>p:not(.eyebrow){font-size:1.05rem}.login-card label{display:block;font-weight:800;margin:22px 0 7px}.login-card input{display:block;width:100%;min-height:58px;border:2px solid #9cb4aa;border-radius:10px;padding:12px 15px;background:#fff;color:var(--ink)}.login-code{display:flex;gap:7px}.login-code button{min-width:78px;border:1px solid var(--deep);color:var(--deep);background:#fff;border-radius:10px;font-weight:800}.sign-in{width:100%;min-height:58px;margin:28px 0 6px}.login-note{border-top:1px solid var(--line);padding-top:19px;color:#526b68;font-size:.9rem!important}.login-foot{text-align:center;color:#fff;font-size:.82rem}.login-foot a{color:#fff}.my-household{max-width:920px}.code-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#eef2e6;border:1px solid #b7c7b7;border-radius:12px;padding:16px}.code-box strong{font-size:1.45rem;letter-spacing:.12em;margin-right:auto}.code-box button{min-height:48px}.household-access{border:1px solid var(--line);background:#f4f6ed;border-radius:12px;padding:18px;margin:20px 0}.household-access h3{margin-top:0}.access-actions{display:flex;gap:8px;flex-wrap:wrap}.access-actions button{min-height:44px}.access-list{padding-left:20px}.access-list li{margin:8px 0}.session-item{border-top:1px solid var(--line);padding:10px 0}.session-item button{margin-left:12px}

@media (hover:hover) and (pointer:fine){.map-canvas .parcel:hover:not(.selected){stroke:#317c7c!important;stroke-width:8!important;filter:none}}
@media(max-width:600px){
  .map-layout .detail-panel{left:10px;right:10px;bottom:max(8px,env(safe-area-inset-bottom));max-height:min(36dvh,300px);overflow-y:auto;overscroll-behavior:contain;padding:14px 18px;border-radius:18px}
  .map-layout .close-panel{position:sticky;top:0;z-index:1;min-width:44px;min-height:44px}
}

.map-canvas .parcel:focus-visible{outline:3px solid #dd8d46;outline-offset:2px}
.detail-panel.closing-touch{opacity:0;pointer-events:auto!important;display:block!important}
.map-head .map-return{margin:0 0 12px;text-align:left}

.map-return[hidden]{display:none!important}
