@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--bg-main: #f6f8fb;--bg-card: #ffffff;--bg-muted: #f1f5f7;--ink: #0d1520;--text-main: #14202b;--text-soft: #61707d;--text-inverse: #f6fbff;--accent: #0a7b7f;--accent-dark: #075d63;--accent-soft: #dff6f4;--amber: #d88900;--danger: #be123c;--border: #dce4ea;--border-strong: #c6d2da;--shadow-soft: 0 14px 34px rgba(17, 31, 45, .08);--shadow-strong: 0 24px 70px rgba(10, 21, 32, .16);--radius: 8px}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{font-family:IBM Plex Sans,sans-serif;color:var(--text-main);background:linear-gradient(rgba(12,28,42,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(12,28,42,.035) 1px,transparent 1px),var(--bg-main);background-size:32px 32px}h1,h2,h3,h4{font-family:Space Grotesk,sans-serif;margin:0;color:var(--ink);letter-spacing:0}p{margin:0}button,input,textarea,select{font:inherit}button{border:0;border-radius:var(--radius);padding:.62rem .9rem;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,background-color .18s ease,border-color .18s ease}button:hover{transform:translateY(-1px)}button:disabled{opacity:.6;cursor:not-allowed;transform:none}.app-frame{min-height:100vh;display:grid;grid-template-rows:auto 1fr;animation:app-enter .42s ease-out}.top-nav{min-height:74px;background:linear-gradient(135deg,#07111b,#0c1a27 62%,#112b36);color:var(--text-inverse);box-shadow:0 18px 45px #07111b38;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand-block{display:flex;align-items:center;gap:.85rem}.brand-mark{width:42px;height:42px;display:inline-grid;place-items:center;flex:0 0 auto;filter:drop-shadow(0 8px 18px rgba(255,151,20,.24))}.brand-mark svg{display:block;width:100%;height:100%}.brand-mark circle{fill:#ff9812}.logo-frame,.logo-plan{fill:none;stroke:#fff;stroke-linecap:square;stroke-linejoin:miter}.logo-frame{stroke-width:4}.logo-plan{stroke-width:2.8}.brand-block h1{color:var(--text-inverse);font-size:clamp(1.05rem,1.8vw,1.35rem)}.nav-actions{display:flex;align-items:center;gap:.35rem}.nav-btn{position:relative;background:transparent;color:#f6fbffc7;border-radius:0;padding:1.55rem .9rem 1.45rem;font-size:.94rem;font-weight:600}.nav-btn:after{content:"";position:absolute;left:.9rem;right:.9rem;bottom:.82rem;height:3px;background:#20d0ca;transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.nav-btn:hover,.nav-btn.active{color:#fff;transform:none}.nav-btn.active:after{transform:scaleX(1)}.view-shell{min-height:0;padding:clamp(1rem,2.2vw,2rem)}.login-screen{min-height:100vh;padding:1.25rem;display:grid;place-items:center}.login-card{width:min(100%,420px);border:1px solid var(--border);border-radius:var(--radius);background:#fffffff0;box-shadow:var(--shadow-strong);padding:clamp(1rem,4vw,1.35rem);display:grid;gap:1rem}.login-brand{display:flex;align-items:center;gap:.85rem}.login-brand h1{font-size:1.35rem}.login-brand p{margin-top:.18rem;color:var(--text-soft);font-size:.92rem}.home-view{min-height:calc(100vh - 74px - clamp(2rem,4.4vw,4rem));display:grid;grid-template-columns:minmax(300px,.78fr) minmax(340px,.68fr) minmax(460px,1.24fr);align-items:stretch;gap:1.15rem}.hero-panel{display:flex;flex-direction:column;justify-content:flex-start;gap:1.4rem;padding:clamp(1rem,2.8vw,2.2rem) .75rem .2rem 0}.hero-copy{display:grid;gap:1.25rem}.hero-copy h2{max-width:12ch;font-size:clamp(2.25rem,3.9vw,4.25rem);line-height:.96;letter-spacing:0}.hero-copy h2 span{display:block}.hero-copy p{max-width:31rem;color:#4e5c68;font-size:clamp(1rem,1.3vw,1.18rem);line-height:1.55}.hero-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.hero-actions-panel{width:100%;display:grid;gap:.65rem}.hero-metrics div,.pipeline-explainer article,.stat-card{border:1px solid var(--border);border-radius:var(--radius);background:#ffffffd1;box-shadow:0 10px 28px #1829380d}.hero-metrics div{padding:.75rem}.hero-metrics strong,.stat-card strong,.pipeline-explainer strong{display:block;color:var(--ink);font-family:Space Grotesk,sans-serif;font-size:1.45rem;line-height:1}.hero-metrics span,.pipeline-explainer span,.pipeline-explainer small,.stat-card p{color:var(--text-soft);font-size:.82rem}.dashboard-link{width:100%;min-height:76px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-main);box-shadow:var(--shadow-soft);display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left}.dashboard-link strong,.dashboard-link small{display:block}.dashboard-link small{margin-top:.18rem;color:var(--text-soft);font-size:.84rem}.upload-card,.dashboard-view,.project-view,.home-inspector{border:1px solid var(--border);border-radius:var(--radius);background:#fffffff0;box-shadow:var(--shadow-soft)}.upload-card{align-self:stretch;display:flex;flex-direction:column;gap:.85rem;padding:1.15rem}.upload-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.upload-header h2,.dashboard-header h2,.project-page-header h2,.home-inspector h2,.project-header h2{font-size:clamp(1.28rem,2vw,1.72rem)}.upload-description{margin-top:.25rem;color:var(--text-soft);font-size:.92rem;line-height:1.45}.field{display:grid;gap:.35rem}.field span{color:#344552;font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.field input,.field textarea,.field select{width:100%;border:1px solid var(--border-strong);border-radius:var(--radius);padding:.68rem .75rem;background:#fff;color:var(--text-main);outline:none;transition:border-color .16s ease,box-shadow .16s ease}.field input:focus,.field textarea:focus,.field select:focus,.sidebar-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0a7b7f1f}.upload-zone{flex:1 1 auto;min-height:166px;border:1.5px dashed #9aabb8;border-radius:var(--radius);background:linear-gradient(rgba(10,123,127,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(10,123,127,.035) 1px,transparent 1px),#fbfdfe;background-size:22px 22px;display:grid;place-items:center;align-content:center;gap:.45rem;padding:1rem;color:var(--accent-dark);text-align:center;cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.upload-zone:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 12px 28px #0a7b7f1a}.upload-zone input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.upload-icon{width:42px;height:42px;border:2px solid currentColor;border-top-color:transparent;border-radius:0 0 8px 8px;position:relative}.upload-icon:before,.upload-icon:after{content:"";position:absolute;left:50%;transform:translate(-50%);background:currentColor}.upload-icon:before{top:-16px;width:2px;height:28px}.upload-icon:after{top:-17px;width:16px;height:16px;border-left:2px solid currentColor;border-top:2px solid currentColor;background:transparent;transform:translate(-50%) rotate(45deg)}.upload-zone small{color:var(--text-soft);max-width:100%;overflow-wrap:anywhere}.upload-footer{border-top:1px solid var(--border);padding-top:.8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.upload-footer span{color:var(--text-soft);font-size:.83rem}.home-inspector{overflow:hidden;display:grid;grid-template-rows:auto auto auto 1fr}.home-inspector>header{min-height:58px;border-bottom:1px solid var(--border);padding:.95rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.home-inspector>header span{color:var(--accent);font-weight:700;font-size:.9rem}.home-inspector>header .pipeline-status{color:#15945f}.home-inspector>header span:before{content:"";display:inline-block;width:9px;height:9px;margin-right:.48rem;border-radius:999px;background:var(--accent);box-shadow:0 0 0 5px #0a7b7f1f}.home-inspector>header .pipeline-status:before{background:#16a66a;box-shadow:0 0 0 5px #16a66a24}.pipeline-steps{list-style:none;margin:0;padding:1.25rem 1.35rem;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem}.pipeline-steps li{position:relative;display:grid;justify-items:start;gap:.24rem}.pipeline-steps li:before{content:"";position:absolute;top:17px;left:36px;right:calc(-100% + 46px);height:2px;background:#b9c6cf}.pipeline-steps li:last-child:before{display:none}.pipeline-steps span{z-index:1;width:34px;height:34px;border:2px solid #b9c6cf;border-radius:999px;background:#ffffffb8;color:#61707d;display:grid;place-items:center;font-weight:700}.pipeline-steps li.current span,.pipeline-steps li:first-child span,.pipeline-steps li:nth-child(2) span{border-color:var(--accent);background:#ffffffb8;color:var(--accent)}.pipeline-steps strong{font-size:.9rem}.pipeline-steps small{color:var(--text-soft);font-size:.78rem}.pipeline-explainer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding:0 1rem 1rem}.pipeline-explainer article{padding:.85rem;display:grid;align-content:start;gap:.38rem}.pipeline-explainer span{color:var(--accent-dark);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.pipeline-explainer strong{font-size:1rem;line-height:1.15}.pipeline-explainer small{line-height:1.35}.floorplan-preview{margin:0 1rem 1rem;min-height:330px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(rgba(13,21,32,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(13,21,32,.045) 1px,transparent 1px),#fbfcfd;background-size:20px 20px;position:relative;overflow:hidden;display:grid;place-items:center;padding:clamp(.9rem,2vw,1.35rem)}.floorplan-preview:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 16%,rgba(10,123,127,.06),transparent 24%),linear-gradient(135deg,#ffffffdb,#f2f6f947);pointer-events:none}.floorplan-image{position:relative;z-index:1;width:min(100%,760px);height:auto;max-height:100%;object-fit:contain;border:1px solid rgba(153,167,179,.52);border-radius:6px;background:#fff;filter:drop-shadow(0 18px 24px rgba(16,28,39,.12))}.dashboard-view,.project-view{padding:clamp(1rem,2vw,1.45rem);display:grid;gap:1rem;min-height:0}.dashboard-header,.project-page-header,.project-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.dashboard-header p,.project-page-header p,.project-header p{margin-top:.24rem;color:var(--text-soft);line-height:1.45}.dashboard-actions,.project-page-actions,.project-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.stat-card{padding:.85rem;display:grid;gap:.32rem}.dashboard-filter-row{border:1px solid var(--border);border-radius:var(--radius);background:#ffffffc7;padding:.52rem;display:flex;align-items:center;justify-content:space-between;gap:.7rem}.filter-label{min-width:122px;padding:0 .45rem;display:grid;gap:.05rem}.filter-label strong{color:var(--ink);font-size:.9rem}.filter-label span{color:var(--text-soft);font-size:.78rem}.filter-tabs{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.28rem;padding:.25rem;border:1px solid var(--border);border-radius:var(--radius);background:#edf3f6}.filter-tab{min-height:42px;padding:.48rem .62rem;border:1px solid transparent;background:transparent;color:#3b4d5a;display:flex;align-items:center;justify-content:center;gap:.45rem;font-size:.86rem;font-weight:700}.filter-tab:hover{transform:none;border-color:#0a7b7f38;background:#ffffff94}.filter-tab.active{background:#fff;border-color:#0a7b7f52;color:var(--accent-dark);box-shadow:0 8px 18px #111f2d14}.filter-tab strong{min-width:1.65rem;height:1.45rem;border-radius:999px;background:#0a7b7f1a;color:var(--accent-dark);display:inline-grid;place-items:center;padding:0 .4rem;font-family:Space Grotesk,sans-serif;font-size:.78rem;line-height:1}.filter-tab.active strong{background:var(--accent);color:#fff}.dashboard-project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.75rem}.dashboard-project-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:.9rem;text-align:left;display:grid;gap:.65rem;box-shadow:0 8px 24px #111f2d0a}.dashboard-project-card:hover{border-color:#0a7b7f8c;box-shadow:0 18px 38px #0a434e1f}.dashboard-project-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}.dashboard-project-card h3{font-size:1.02rem}.dashboard-project-card p{color:var(--text-soft);font-size:.92rem;line-height:1.45}.dashboard-project-card footer{display:flex;flex-wrap:wrap;gap:.45rem .7rem;color:#40515d;font-size:.82rem}.status-pill,.status-chip{display:inline-flex;align-items:center;border-radius:999px;white-space:nowrap}.status-pill{border:1px solid #bdd9d8;background:var(--accent-soft);color:var(--accent-dark);padding:.2rem .52rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.primary-btn{background:linear-gradient(135deg,var(--accent) 0%,#0b8d91 100%);color:#f2fffe;font-weight:700;box-shadow:0 10px 22px #0a7b7f33}.primary-btn:hover{background:linear-gradient(135deg,var(--accent-dark) 0%,#08777a 100%)}.ghost-btn{background:#edf3f6;color:#213442;border:1px solid var(--border-strong);font-size:.88rem;font-weight:700}.ghost-btn.dark{background:#102231;border-color:#1c3948;color:#f6fbff}.project-detail-shell{height:100%;display:grid;gap:.9rem}.project-actions button,.area-detail-card header button{background:var(--accent-soft);color:var(--accent-dark);border:1px solid #b9dddd;font-weight:700}.status-bar-shell{border:1px solid var(--border);border-radius:var(--radius);padding:.8rem;background:#fbfdfe}.status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.55rem;color:#24414b}.status-header span{color:var(--accent-dark);font-weight:700}.status-progress-track{height:9px;border-radius:999px;background:#dce7ec;overflow:hidden}.status-progress-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent) 0%,#23c4bb 100%);transition:width .35s ease}.project-body{display:grid;grid-template-columns:280px minmax(0,1fr);gap:.9rem;min-height:0}.floorplan-sidebar{border:1px solid var(--border);border-radius:var(--radius);background:#fbfdfe;padding:.75rem;display:grid;gap:.55rem;align-content:start;max-height:72vh;overflow:auto}.floorplan-sidebar h3{margin-bottom:.15rem;font-size:1.04rem}.sidebar-search{display:grid;gap:.28rem}.sidebar-search-label{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#536674}.sidebar-search-input{width:100%;border:1px solid var(--border-strong);border-radius:var(--radius);padding:.56rem .65rem;background:#fff;color:var(--text-main);outline:none}.sidebar-item,.sidebar-group-item{width:100%;border:1px solid var(--border);border-radius:var(--radius);text-align:left;background:#fff;color:var(--text-main);display:grid}.sidebar-item{padding:.62rem .68rem;gap:.15rem}.sidebar-item.active,.sidebar-group-item.active{border-color:var(--accent);background:var(--accent-soft)}.sidebar-item small,.sidebar-group-item small{color:var(--text-soft)}.sidebar-layout-item:hover,.sidebar-group-item:hover,.sidebar-group-toggle:hover,.gallery-image-btn:hover{transform:none}.sidebar-groups{display:grid;gap:.5rem}.sidebar-group{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff}.sidebar-group-toggle{width:100%;border:0;border-radius:0;padding:.56rem .62rem;text-align:left;background:#fff;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.5rem}.sidebar-group-toggle:hover,.sidebar-group-toggle.active{background:#f0f8f8}.sidebar-group-label{display:grid;gap:.08rem}.sidebar-group-label strong{font-size:.83rem;letter-spacing:.02em;text-transform:uppercase;color:#213442}.sidebar-group-label small{color:var(--text-soft);font-size:.76rem}.sidebar-group-count{font-size:.74rem;font-weight:700;color:var(--accent-dark);background:var(--accent-soft);border-radius:999px;padding:.13rem .44rem;min-width:1.5rem;text-align:center}.sidebar-group-chevron{width:.5rem;height:.5rem;border-right:2px solid #536674;border-bottom:2px solid #536674;transform:rotate(45deg);transition:transform .16s ease;margin-right:.12rem}.sidebar-group-chevron.open{transform:rotate(225deg)}.sidebar-group-items{border-top:1px solid var(--border);background:#fbfdfe;padding:.5rem;display:grid;gap:.36rem}.sidebar-group-item{padding:.52rem .55rem;gap:.12rem}.sidebar-empty,.empty-state{color:var(--text-soft);font-size:.9rem}.project-content{min-height:0;display:grid;gap:.9rem;overflow:auto;padding-right:.2rem}.layout-viewer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.image-panel,.area-detail-card,.area-gallery{border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:.8rem}.image-panel header,.area-gallery-header,.area-detail-card header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.65rem}.image-panel img,.gallery-card img{width:100%;border-radius:var(--radius);border:1px solid var(--border);object-fit:contain;background:linear-gradient(rgba(13,21,32,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(13,21,32,.035) 1px,transparent 1px),#fbfdfe;background-size:18px 18px}.area-meta-grid{margin:.4rem 0 .7rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.area-meta-grid p{padding:.55rem .62rem;background:var(--bg-muted);border-radius:var(--radius);font-size:.88rem;line-height:1.4}.area-gallery-header span{color:var(--text-soft);font-size:.86rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.gallery-card{border:1px solid var(--border);border-radius:var(--radius);padding:.65rem;background:#fbfdfe;display:grid;gap:.5rem}.gallery-image-btn{border:0;padding:0;background:transparent;border-radius:var(--radius);overflow:hidden;cursor:pointer}.gallery-card footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.status-chip{padding:.18rem .48rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.status-chip.pending,.status-chip.processing{background:#fff3d6;color:#8a5200}.status-chip.completed{background:#d9f8eb;color:#056044}.status-chip.failed{background:#ffe4e6;color:#9f1239}details summary{cursor:pointer;font-weight:700;color:#274653}pre{margin:.42rem 0 0;background:#edf3f6;border-radius:var(--radius);padding:.6rem;max-height:220px;overflow:auto;font-size:.77rem;line-height:1.35}.form-error{color:var(--danger);font-size:.88rem;font-weight:600}.lightbox-overlay{position:fixed;inset:0;background:#07111bc2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:1rem;z-index:60}.lightbox-dialog{width:min(1120px,100%);max-height:92vh;background:#fbfdfe;border:1px solid var(--border-strong);border-radius:var(--radius);padding:.8rem;box-shadow:0 24px 70px #040c1361;display:grid;gap:.7rem}.lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.lightbox-header p{margin-top:.15rem;color:var(--text-soft);font-size:.82rem}.lightbox-content{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:.7rem;min-height:360px}.lightbox-image-stage{position:relative;min-height:360px;display:grid;place-items:center}.lightbox-main-image{width:100%;max-height:calc(92vh - 220px);object-fit:contain;border-radius:var(--radius);border:1px solid var(--border-strong);background:#fff;cursor:zoom-in}.lightbox-zoom-preview{position:relative;width:100%;min-height:260px;border-radius:var(--radius);border:1px solid var(--border-strong);background:#fff;overflow:hidden}.lightbox-zoom-preview:empty:before{content:"Hover image to zoom";position:absolute;inset:0;display:grid;place-items:center;color:var(--text-soft);font-size:.82rem}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:999px;border:1px solid rgba(255,255,255,.55);background:#102231d1;color:#f6fbff;font-size:1.35rem;line-height:1;padding:0;z-index:2}.lightbox-nav:hover{background:#07111bf2}.lightbox-nav.prev{left:.55rem}.lightbox-nav.next{right:.55rem}.lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.lightbox-zoom-hint{color:var(--text-soft);font-size:.82rem}.lightbox-download-btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:.62rem .95rem}@keyframes app-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:1280px){.home-view{grid-template-columns:minmax(300px,.9fr) minmax(380px,1.1fr)}.hero-panel{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.76fr);align-items:end;padding-right:0}.hero-copy h2{max-width:14ch;font-size:clamp(2.05rem,3.55vw,3.55rem)}}@media(max-width:980px){.top-nav,.dashboard-header,.project-page-header,.project-header{flex-direction:column;align-items:flex-start}.nav-actions{width:100%;overflow-x:auto}.view-shell{padding:1rem}.home-view,.hero-panel{grid-template-columns:1fr}.hero-copy h2{max-width:11ch;font-size:clamp(1.9rem,7.2vw,2.45rem)}.dashboard-stats,.pipeline-explainer{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-filter-row{align-items:stretch;flex-direction:column}.filter-label{min-width:0;padding:0 .25rem}.pipeline-steps{grid-template-columns:repeat(5,minmax(92px,1fr));overflow-x:auto}.layout-viewer,.project-body{grid-template-columns:1fr}.floorplan-sidebar{max-height:280px}.area-meta-grid,.lightbox-content{grid-template-columns:1fr}.lightbox-image-stage{min-height:220px}.lightbox-main-image{max-height:calc(90vh - 220px)}.lightbox-zoom-preview{min-height:180px}}@media(max-width:640px){.top-nav{padding:.9rem 1rem}.nav-btn{padding:.8rem .7rem .95rem}.nav-btn:after{bottom:.35rem;left:.7rem;right:.7rem}.hero-metrics,.dashboard-stats,.pipeline-explainer{grid-template-columns:1fr}.filter-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-footer,.lightbox-footer{flex-direction:column;align-items:stretch}.dashboard-actions,.project-page-actions,.project-actions,.dashboard-actions button,.project-page-actions button,.project-actions button,.upload-footer button{width:100%}.floorplan-preview{min-height:260px}.dashboard-project-grid{grid-template-columns:1fr}.lightbox-nav{width:34px;height:34px;font-size:1.1rem}}
