:root{color-scheme:light;--ink:#14251d;--green:#175536;--line:#83948a}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:18px/1.5 system-ui,sans-serif}header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border-bottom:2px solid var(--ink)}a{color:var(--green)}.brand{font-weight:900;text-decoration:none;line-height:1.15}.brand small{display:block;font-size:12px;letter-spacing:2px;margin-top:6px}label{font-size:14px;font-weight:700}select,input,button{font:inherit;min-height:50px;border:2px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:10px}select{display:block}main{max-width:960px;margin:auto;padding:22px 18px 110px}h1{font-size:32px;line-height:1.1}h2{font-size:23px}.preview{padding:8px 18px;background:#fff1c2;color:#523b00;font-size:14px;font-weight:700}nav{position:fixed;bottom:0;left:0;right:0;background:white;display:flex;border-top:2px solid var(--ink);padding-bottom:env(safe-area-inset-bottom)}nav a{flex:1;text-align:center;padding:18px 4px;font-weight:800;text-decoration:none;min-height:60px}.actions,.tabs{display:flex;gap:10px;flex-wrap:wrap}.actions a,button,.tabs a{padding:15px;border:2px solid var(--green);border-radius:9px;font-weight:750;text-decoration:none}.actions a{flex:1;min-width:140px}.card{display:block;border:2px solid var(--line);border-radius:12px;padding:18px;margin:12px 0;text-decoration:none;color:var(--ink)}.card strong{display:block;font-size:21px}.meta{font-size:15px;color:#3c5144}.badge{display:inline-block;font-weight:800;padding:3px 9px;background:#e6f0e9;border-radius:5px}.search{width:100%;margin:12px 0}.note{padding:14px;border-left:5px solid #9a6500;background:#fff8e8}dt{font-weight:800}dd{margin:0 0 14px;overflow-wrap:anywhere}svg{width:100%;height:60vh;border:2px solid var(--line);background:#fff}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:4px solid #bd6500;outline-offset:3px}.tabs a[aria-current]{background:var(--green);color:white}@media(max-width:400px){header{padding:12px}.brand{font-size:15px}main{padding:16px 12px 100px}.tabs{gap:5px}.tabs a{font-size:15px;padding:10px}}
figure{margin:20px 0}figure img{width:100%;border:1px solid #536b5c}figcaption{font-size:15px}form label{display:block;margin:14px 0}form input,textarea{display:block;width:100%;font:inherit}textarea{min-height:85px;padding:12px;border:2px solid var(--line);border-radius:8px}button:disabled{opacity:.6}
.sat-map{height:420px;position:relative;overflow:hidden;background:#e0e5df;border:2px solid #243a2b;border-radius:10px;touch-action:pan-y pinch-zoom;cursor:default}.map-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.map-controls button{padding:8px 14px}.prop-marker,.survey-marker{position:absolute;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;min-width:32px;height:32px;background:#a50021;color:white;text-align:center;font:bold 18px/26px system-ui;box-shadow:0 0 0 2px #111;pointer-events:none}.survey-marker{background:#fff;color:#151515;border:2px solid #111;min-width:23px;height:23px;font-size:11px;line-height:19px}.map-credit{font-size:12px;background:#fff;color:#14251d;margin:0;padding:6px}.map-message{font-weight:700}summary{padding:16px 0;font-weight:800;cursor:pointer}
.prop-thumb{display:block;width:100%;height:140px;object-fit:contain;object-position:center;background:#fff;margin-bottom:12px;border-bottom:1px solid var(--line)}
.drawing-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;border:0;background:white;color:var(--ink)}.drawing-viewer[open]{display:flex;flex-direction:column}.drawing-viewer::backdrop{background:#fff}.drawing-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-bottom:2px solid var(--line);padding-bottom:10px}.drawing-toolbar strong{flex:1;min-width:120px}.drawing-toolbar button{padding:10px}.drawing-viewer>p{font-size:14px;margin:8px 0}.drawing-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}.drawing-scroll img{display:block;width:100%;height:auto}.drawing-scroll img{max-width:none}.drawing-scroll p{font-size:15px;max-width:800px}.drawing-scroll:focus-visible{outline:3px solid #bd6500;outline-offset:-3px}
.card,.drawing-toolbar strong{overflow-wrap:anywhere}.drawing-toolbar strong{flex-basis:100%}.drawing-toolbar button{flex:1}.tabs a{min-height:48px}
.site-plan{height:50vh;min-height:280px;touch-action:pan-y pinch-zoom}.site-plan [role=button],.site-plan a{cursor:pointer}.map-list-number{font-weight:800;margin-bottom:-8px}#map-section{margin:8px 0 14px;width:100%}
.drawing-scroll img[hidden]{display:none}

.controller-peer{display:block;min-height:50px;padding:12px;border:2px solid var(--green);border-radius:9px;font-weight:750;text-decoration:none}

#reference-measurements label{display:block;margin:16px 0}#reference-measurements select,#stage-section,#map-section,.site-drawing-sheets select,#site,form select{appearance:none;-webkit-appearance:none;display:block;width:100%;max-width:100%;min-width:0;min-height:50px;font:inherit;padding:12px 30px 12px 10px;background:linear-gradient(45deg,transparent 50%,#175536 50%) calc(100% - 17px) 22px/6px 6px no-repeat,linear-gradient(135deg,#175536 50%,transparent 50%) calc(100% - 11px) 22px/6px 6px no-repeat;overflow:hidden;text-overflow:ellipsis}#reference-measurements [data-measure=selected]{overflow-wrap:anywhere}
/* Edge-to-edge photo viewer. Only the image surface captures pinch gestures. */
.drawing-viewer{box-sizing:border-box;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);overflow:hidden}
.drawing-toolbar{flex-wrap:nowrap;padding:8px;gap:5px}.drawing-toolbar strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px}.drawing-toolbar button{min-width:44px;min-height:44px;padding:8px}
.drawing-viewer>p{padding:0 10px;margin:5px 0;font-size:12px}.drawing-scroll{position:relative;overflow:hidden;touch-action:none;background:#eef1ee;cursor:grab;user-select:none;-webkit-user-select:none}.drawing-scroll:active{cursor:grabbing}.drawing-scroll img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;transform-origin:center}.drawing-scroll>p,.drawing-scroll>button{position:relative;z-index:1;margin:16px}.drawing-caption{max-height:48px;overflow:auto;flex-shrink:0}
.drawing-toolbar button{flex-shrink:0}.drawing-toolbar strong{flex:1 1 0;width:0}
.drawing-notes{flex-shrink:0;max-height:35dvh;overflow:auto;overscroll-behavior:contain;border-top:1px solid var(--line);padding:0 10px;background:white;color:var(--ink)}.drawing-notes summary{min-height:44px;box-sizing:border-box;padding:12px 0;font-size:14px;font-weight:bold;cursor:pointer}.drawing-notes .drawing-caption{max-height:none;overflow:visible;font-size:14px;line-height:1.45;margin:8px 0 12px}.drawing-full-title{font-size:15px;font-weight:bold;overflow-wrap:anywhere;margin:8px 0}.drawing-notes summary:focus-visible{outline:3px solid #bd6500;outline-offset:-3px}

.drawing-choices select{width:100%;max-width:100%;min-width:0}.drawing-choices>button{max-width:100%;overflow-wrap:anywhere}

#build-drawings select{width:100%;max-width:100%;min-width:0;font-size:16px;text-overflow:ellipsis}#build-drawings label{display:block}#build-drawings select:focus-visible{outline:4px solid #bd6500;outline-offset:3px}
#build-drawings select{appearance:none;-webkit-appearance:none;min-height:50px;padding:12px 30px 12px 10px;background:linear-gradient(45deg,transparent 50%,#175536 50%) calc(100% - 17px) 22px/6px 6px no-repeat,linear-gradient(135deg,#175536 50%,transparent 50%) calc(100% - 11px) 22px/6px 6px no-repeat}

.card[hidden]{display:none}

.back-bar{position:sticky;top:0;z-index:20;background:white;border-bottom:1px solid var(--line);padding:6px 12px;padding-top:max(6px,env(safe-area-inset-top));}.back-bar button{min-height:48px;padding:8px 22px}.back-bar button:disabled{opacity:.5}

/* Keep the title readable and all four image controls reachable on small phones. */
@media(max-width:480px){.drawing-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.drawing-toolbar strong{grid-column:1/-1;width:auto;min-width:0;font-size:16px;line-height:1.4}.drawing-toolbar button{min-width:0;min-height:48px;padding:8px 4px;white-space:nowrap}}

/* Inline artwork belongs to the page; gestures are isolated only in full-screen. */
main img,svg.placement{touch-action:pan-y pinch-zoom;-webkit-user-drag:none}svg.placement{cursor:zoom-in}

.open-build-drawing,.drawing-choices~div img,.site-plan,svg.placement{touch-action:manipulation}

.drawing-map{position:absolute;left:50%;top:50%;transform-origin:center;overflow:hidden;background:#e0e5df;pointer-events:none}.drawing-map img{transform:none;max-width:none;max-height:none}.sat-map{touch-action:manipulation}

.site-drawing-sheets label{display:block;margin-bottom:12px}.site-drawing-sheets .map-controls a{display:flex;align-items:center;min-height:48px;padding:10px 12px;border:2px solid var(--green);border-radius:9px;font-weight:700}.site-drawing-sheets select:focus-visible{outline:4px solid #bd6500;outline-offset:3px}

.site-drawing-sheets select,#site{font-size:16px}#site{max-width:170px}header>label{min-width:0}

form input,form textarea,form select{font-size:16px;max-width:100%;min-width:0}form select:focus-visible{outline:4px solid #bd6500;outline-offset:3px}

/* Phone-first scan layout (Sept 28): compact thumbnail rows, grouped repeats, sticky prop tabs, active nav. */
.prop-card,.prop-group>summary{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;align-items:center}
.prop-card{padding:10px 12px;margin:8px 0}
.prop-card .prop-thumb,.prop-group .prop-thumb{width:84px;height:84px;margin:0;border:1px solid var(--line);border-radius:8px;background:#fff}
.prop-thumb-empty{display:block;background:repeating-linear-gradient(45deg,#f1f4f2 0 6px,#e6ece8 6px 12px)!important}
.prop-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.prop-card-text .badge{align-self:flex-start;font-size:14px;padding:1px 8px}
.prop-card-text strong,.prop-card strong{font-size:18px;line-height:1.25}
.prop-card-text .meta{font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.prop-group{padding:0;margin:8px 0}
.prop-group>summary{list-style:none;padding:10px 12px;cursor:pointer;min-height:64px}
.prop-group>summary::-webkit-details-marker{display:none}
.prop-group[open]>summary{border-bottom:1px solid var(--line)}
.count-pill{display:inline-block;font-weight:800;color:#fff;background:var(--green);border-radius:999px;padding:0 9px;margin-right:4px}
.location-list{list-style:none;margin:0;padding:4px 10px 10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.location-list a{display:flex;align-items:center;min-height:48px;padding:8px;border:2px solid var(--green);border-radius:9px;font-weight:750;text-decoration:none;font-size:14px;font-variant-numeric:tabular-nums;letter-spacing:-.01em;overflow-wrap:anywhere}
.result-section{font-size:19px;margin:22px 0 4px;padding-bottom:4px;border-bottom:2px solid var(--ink)}
.result-section .meta{font-weight:600}
.result-count{font-weight:750;margin:6px 0}
.show-more{display:block;width:100%;margin:14px 0}
.section-index{list-style:none;margin:0;padding:0}
.section-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;margin:6px 0;padding:10px 12px;border:2px solid var(--line);border-radius:10px;background:#fff;font-weight:600}
.section-code{font-weight:900;font-size:19px;color:var(--green)}
.section-names{font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.section-count{font-size:14px;font-weight:800;background:#e6f0e9;border-radius:999px;padding:2px 10px;font-variant-numeric:tabular-nums}
.search-form label{display:block}
.search-row{display:flex;gap:8px;align-items:center;margin:8px 0 12px}
.search-row .search{flex:1;min-width:0;margin:0;font-size:16px}
.search-row button{flex-shrink:0;padding:10px 14px}
.home-title{margin:6px 0 10px}.home-title span{color:var(--green)}
.home-search{margin-bottom:6px}
.gaps-link{padding:12px 14px;font-weight:700}
.prop-title{margin:8px 0 4px}.prop-sub{margin:0 0 4px}.rev{margin:0 0 8px;font-size:13px}
.prop-tabs{position:sticky;top:var(--back-h,62px);z-index:15;background:#fff;padding:8px 0;margin:0 0 6px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.prop-tabs a{text-align:center;padding:10px 4px;min-height:48px;display:flex;align-items:center;justify-content:center}
nav a[aria-current]{background:var(--green);color:#fff}
@media(max-width:400px){.prop-tabs a{font-size:15px;padding:8px 2px}.prop-card,.prop-group>summary{grid-template-columns:72px minmax(0,1fr)}.prop-card .prop-thumb,.prop-group .prop-thumb{width:72px;height:72px}}
.progress-link{display:flex;flex-direction:column;gap:2px;border-left:5px solid var(--green);margin:8px 0 12px}

/* Long option text must never widen the page (Section parts assembly-detail picker has no #build-drawings wrapper). */
#app select{max-width:100%;min-width:0}#app label:has(>select){display:block;max-width:100%}
#stage-list select{width:100%;font-size:16px;text-overflow:ellipsis}
