:root{--ink:var(--aiq-fg-1);--muted:var(--aiq-fg-2);--green:var(--aiq-accent);--accent:var(--aiq-accent-text);--line:var(--aiq-line-2);--paper:var(--aiq-bg-1);--white:var(--aiq-bg-2);--red:var(--aiq-danger-text)}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;font:var(--aiq-text-body);color:var(--ink);background:var(--aiq-bg-void)}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;background:none;border:1px solid transparent;transition:background var(--aiq-duration) var(--aiq-ease),border-color var(--aiq-duration) var(--aiq-ease)}button:hover{background:var(--aiq-bg-3)}button:disabled{color:var(--aiq-fg-disabled);cursor:default;background:var(--aiq-bg-3);border-color:var(--aiq-line-2)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--aiq-accent-text);outline-offset:2px;box-shadow:var(--aiq-focus-ring)}h1,h2,h3,p{margin:0}h1{font:var(--aiq-text-heading)}h2,h3{font:var(--aiq-text-title)}label{display:block;font:var(--aiq-text-label);color:var(--aiq-fg-2)}input:not([type=checkbox]):not([type=range]):not([type=file]),textarea,select{width:100%;padding:10px 12px;min-height:var(--aiq-control-h);border:1px solid var(--aiq-line-3);border-radius:var(--aiq-radius-sm);background:var(--aiq-bg-1);color:var(--ink);margin-top:6px}textarea{resize:vertical}input[type=checkbox]{accent-color:var(--aiq-accent);width:18px;height:18px;margin:0}input[type=range]{width:100%;accent-color:var(--aiq-accent)}#login-code,#login-account,input[type=number],input[type=date],output{font-family:var(--aiq-font-mono)}
.primary,.outline,.danger,.floating-button,.menu-option{padding:10px 16px;min-height:var(--aiq-touch-min);border-radius:var(--aiq-radius-sm);font:var(--aiq-text-label);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary{background:var(--aiq-accent);color:var(--aiq-fg-on-accent);border-color:var(--aiq-accent);font-weight:600}.primary:hover{background:var(--aiq-accent);border-color:var(--aiq-accent-hover)}.outline{border:1px solid var(--aiq-line-3);background:var(--aiq-bg-2);color:var(--aiq-fg-1)}.danger{background:var(--aiq-danger-bg);color:var(--aiq-danger-text);border-color:var(--aiq-danger-line)}.text-button{font:var(--aiq-text-label);color:var(--aiq-accent-text);padding:6px 0;min-height:var(--aiq-control-h-sm)}.icon-button{font:var(--aiq-text-heading);width:var(--aiq-touch-min);height:var(--aiq-touch-min);border-radius:var(--aiq-radius-sm);display:grid;place-content:center;flex-shrink:0}.eyebrow{font:var(--aiq-text-overline);letter-spacing:.12em;color:var(--aiq-fg-2)}.fine{font:var(--aiq-text-data-s);color:var(--aiq-fg-2);line-height:1.6}.error{color:var(--aiq-danger-text);font:var(--aiq-text-label);min-height:18px}.error:empty{display:none}
.access-banner{min-height:32px;padding:6px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--aiq-tier-controlled-bg);border-bottom:1px solid var(--aiq-tier-controlled-line);color:var(--aiq-tier-controlled-fg);font:var(--aiq-text-data-s);letter-spacing:.12em;text-transform:uppercase}.access-banner span:first-child:before{content:'■';margin-right:8px}.brand{display:flex;align-items:center;gap:12px;min-width:190px}.brand-mark{display:block;width:96px;height:96px;flex-shrink:0;border-radius:var(--aiq-radius-md)}.brand-mark.small{width:48px;height:48px}.brand strong{font:var(--aiq-text-title);font-weight:700;letter-spacing:.04em;white-space:nowrap}.brand strong span{color:var(--aiq-accent-text)}.brand small{display:block;font:var(--aiq-text-data-s);letter-spacing:.1em;color:var(--aiq-fg-3);margin-top:2px}.topbar{background:var(--aiq-bg-1);border-bottom:1px solid var(--aiq-line-1);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.project-tabs,.view-tabs{display:flex;gap:4px;background:var(--aiq-bg-1);padding:3px;border:1px solid var(--aiq-line-2);border-radius:var(--aiq-radius-sm)}.project-tabs button,.view-tabs button{padding:8px 12px;min-height:var(--aiq-control-h);font:var(--aiq-text-label);border-radius:var(--aiq-radius-xs);color:var(--aiq-fg-2)}.project-tabs button.active,.view-tabs button.active{background:var(--aiq-bg-3);border-color:var(--aiq-line-3);color:var(--aiq-fg-1)}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.local-badge{font:var(--aiq-text-data-s);color:var(--aiq-fg-2);white-space:nowrap;padding:6px 10px;border:1px solid var(--aiq-line-2);background:var(--aiq-bg-2);border-radius:var(--aiq-radius-pill)}.local-badge i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--aiq-ok);margin-right:6px}#account-role{background:var(--aiq-info-bg);color:var(--aiq-info)}#workspace{height:calc(100dvh - 32px);display:flex;flex-direction:column}.layout{display:flex;flex:1;min-height:0}.sidebar{width:300px;flex-shrink:0;background:var(--aiq-bg-1);display:flex;flex-direction:column;z-index:500;border-right:1px solid var(--aiq-line-1);overflow:auto}.project-card{padding:24px}.project-card h1{margin:8px 0}.project-card>p:not(.eyebrow){font:var(--aiq-text-label);color:var(--aiq-fg-2)}.pill{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:4px 10px;border:1px solid var(--aiq-warn-line);border-radius:var(--aiq-radius-pill);font:var(--aiq-text-data-s);background:var(--aiq-warn-bg);color:var(--aiq-warn)}.pill:before{content:'■';font-size:.65em}.side-section{padding:20px;border-top:1px solid var(--aiq-line-1)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.section-heading h2{font:var(--aiq-text-label);font-weight:600}.section-heading>span{font:var(--aiq-text-data-s);color:var(--aiq-fg-3)}.layer-row{display:flex;align-items:center;gap:10px;padding:10px 0;min-height:var(--aiq-touch-min);font:var(--aiq-text-label);color:var(--aiq-fg-1);cursor:pointer}.layer-row small{display:block;font:var(--aiq-text-data-s);color:var(--aiq-fg-3);margin-top:2px}.layer-swatch{width:18px;height:18px;flex-shrink:0}.layer-swatch.boundary{border:2px dashed var(--aiq-annotate);background:var(--aiq-annotate-fill);border-radius:var(--aiq-radius-xs)}.layer-swatch.footprint{border:1px dashed var(--aiq-line-3);border-radius:var(--aiq-radius-xs)}.layer-swatch.note{width:12px;height:12px;margin:0 3px;border:2px solid var(--aiq-annotate);border-radius:50%;background:var(--aiq-annotate-wash)}.layer-swatch.raster{background:var(--aiq-bg-3);border:1px solid var(--aiq-line-3);border-radius:var(--aiq-radius-xs)}.band-select{font:var(--aiq-text-data-s);margin:0 0 8px 36px;width:calc(100% - 36px)}.disclosure{width:100%;padding:0;text-align:left;margin:0}.display-section{padding-top:16px;padding-bottom:16px}#display-controls{padding-top:16px}#display-controls label{margin-bottom:12px}output{float:right;color:var(--aiq-fg-2);font:var(--aiq-text-data-s)}.notes-section{flex:1;min-height:180px}.search{font:var(--aiq-text-label);background:var(--aiq-bg-2)!important;margin:0!important}.note-list{padding-top:12px;display:flex;flex-direction:column;gap:8px}.empty-notes{padding:16px 0;color:var(--aiq-fg-3);font:var(--aiq-text-label);line-height:1.7}.empty-notes strong{display:block;color:var(--aiq-fg-2);font-weight:500;margin-bottom:4px}.note-card{text-align:left;display:block;width:100%;padding:12px;background:var(--aiq-bg-2);border:1px solid var(--aiq-line-2);border-radius:var(--aiq-radius-sm)}.note-card:hover{background:var(--aiq-bg-3)}.note-card strong{display:block;font:var(--aiq-text-label);color:var(--aiq-fg-1)}.note-card span{display:block;font:var(--aiq-text-data-s);color:var(--aiq-fg-2);margin-top:4px}.sidebar-footer{padding:16px 20px;display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--aiq-line-1);background:var(--aiq-bg-1);position:sticky;bottom:0}.sidebar-footer .outline{flex:1}
.map-shell{position:relative;flex:1;min-width:0;min-height:260px;background:var(--aiq-bg-void);overflow:hidden}#map{position:absolute;inset:0;background:var(--aiq-bg-void)}.map-top{position:absolute;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;z-index:600;pointer-events:none}.scene-label,.floating-button,.map-tools,.map-hint{background:var(--aiq-glass);border:1px solid var(--aiq-line-3);border-radius:var(--aiq-radius-sm);box-shadow:var(--aiq-shadow-overlay);color:var(--aiq-fg-1)}.scene-label{padding:10px 12px;font:var(--aiq-text-data-s);max-width:75%;line-height:1.6}.floating-button{pointer-events:auto;white-space:nowrap}.map-tools{position:absolute;right:16px;top:80px;z-index:600;overflow:hidden}.map-tools button{display:block;width:52px;min-height:52px;font:var(--aiq-text-heading);border-bottom:1px solid var(--aiq-line-2);line-height:1}.map-tools button:last-child{border:0}.map-tools button span{display:block;font:var(--aiq-text-data-s);margin-top:4px}.map-tools button.active{background:var(--aiq-accent-wash);color:var(--aiq-accent-text)}.map-hint{position:absolute;bottom:72px;left:50%;transform:translateX(-50%);padding:10px 16px;font:var(--aiq-text-label);z-index:600;max-width:90%;text-align:center}.map-footer{position:absolute;bottom:0;left:0;right:0;min-height:34px;background:var(--aiq-glass);border-top:1px solid var(--aiq-line-2);color:var(--aiq-fg-2);display:flex;gap:16px;align-items:center;padding:8px 16px;font:var(--aiq-text-data-s);z-index:600}.map-footer #source-credit{margin-left:auto;text-align:right}.leaflet-control-zoom{border:1px solid var(--aiq-line-3)!important;border-radius:var(--aiq-radius-sm)!important;box-shadow:var(--aiq-shadow-overlay)!important}.leaflet-control-zoom a{background:var(--aiq-glass)!important;color:var(--aiq-fg-1)!important;min-width:44px;min-height:44px;line-height:44px!important;border-color:var(--aiq-line-2)!important}.leaflet-bottom.leaflet-right{bottom:48px;right:8px}.leaflet-control-scale{margin-left:16px!important;margin-bottom:47px!important}.leaflet-control-scale-line{background:var(--aiq-glass);font:var(--aiq-text-data-s);border-color:var(--aiq-fg-2);color:var(--aiq-fg-1)}.leaflet-container{font-family:var(--aiq-font-sans)}.pin-wrap{background:transparent!important;border:0!important}.pin-dot{height:22px;width:22px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--aiq-annotate);border:2px solid var(--aiq-bg-1);display:grid;place-items:center}.pin-dot:after{content:'';width:5px;height:5px;border-radius:50%;background:var(--aiq-bg-1)}.pin-dot.infrastructure{background:var(--aiq-info)}.pin-dot.maintenance{background:var(--aiq-warn)}.pin-dot.survey{background:var(--aiq-tier-sealed-fg)}.pending-card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:550;width:330px;max-width:80%;padding:24px;background:var(--aiq-glass);border:1px solid var(--aiq-line-3);border-radius:var(--aiq-radius-md);box-shadow:var(--aiq-shadow-overlay);text-align:center}.pending-card strong{display:block;font:var(--aiq-text-title)}.pending-card p{font:var(--aiq-text-label);color:var(--aiq-fg-2);margin:12px 0 20px;line-height:1.7}.pending-icon{font:var(--aiq-text-heading);color:var(--aiq-accent-text);margin-bottom:12px}.pending-card .text-button{display:block;margin:12px auto 0}
.dialog{border:1px solid var(--aiq-line-3);border-radius:var(--aiq-radius-md);background:var(--aiq-bg-2);color:var(--aiq-fg-1);width:500px;max-width:calc(100vw - 32px);max-height:90dvh;overflow:auto;padding:24px;box-shadow:var(--aiq-shadow-overlay)}.dialog::backdrop{background:rgba(8,12,24,.75);backdrop-filter:blur(2px)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.dialog-header h2{font:var(--aiq-text-heading);margin-top:6px}.dialog p{font:var(--aiq-text-label);line-height:1.7;margin-bottom:16px}.dialog .eyebrow{font:var(--aiq-text-overline);margin-bottom:0}.dialog label{margin-top:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dialog-footer{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:24px}.dialog-footer .danger{margin-right:auto}.coordinate-line,.path-box{padding:12px;background:var(--aiq-bg-1);border:1px solid var(--aiq-line-2);border-radius:var(--aiq-radius-sm);font:var(--aiq-text-data-s)!important}.path-box{word-break:break-all;margin-bottom:16px;user-select:all}.menu-option{display:block;width:100%;text-align:left;background:var(--aiq-bg-1);padding:16px;border:1px solid var(--aiq-line-2);margin:16px 0}.menu-option strong{display:block;font:var(--aiq-text-label)}.menu-option span{display:block;font:var(--aiq-text-data-s);color:var(--aiq-fg-2);margin-top:4px}.file-label input{display:block;max-width:100%;margin-top:12px;font:var(--aiq-text-data-s)}.compact{width:400px}.compact h2{margin-bottom:12px}.toast{position:fixed;bottom:48px;left:50%;transform:translateX(-50%);z-index:2500;max-width:90%;background:var(--aiq-info-bg);border:1px solid var(--aiq-line-3);color:var(--aiq-fg-1);padding:12px 20px;border-radius:var(--aiq-radius-md);box-shadow:var(--aiq-shadow-overlay);font:var(--aiq-text-label)}.demo-banner{padding:8px 20px;background:var(--aiq-warn-bg);color:var(--aiq-warn);font:var(--aiq-text-data-s);text-align:center}
.auth-screen{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.auth-card{width:440px;max-width:100%;padding:48px 32px;align-self:center;justify-self:center}.auth-card>.eyebrow{margin:32px 0 16px}.auth-card h1{font:var(--aiq-text-display-l);letter-spacing:-.01em;margin-bottom:16px}.auth-card>p{color:var(--aiq-fg-2)}.auth-card form{margin:24px 0}.auth-card form label{margin-top:16px}.auth-card .primary{width:100%;min-height:48px}.auth-card .error{margin:12px 0}.auth-foot{font:var(--aiq-text-label);line-height:1.8;color:var(--aiq-fg-2);padding-top:20px;border-top:1px solid var(--aiq-line-1);margin-bottom:16px}.auth-art{background:var(--aiq-bg-1);border-left:1px solid var(--aiq-line-1);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;color:var(--aiq-fg-1);padding:32px}.auth-art>img{width:min(300px,70%);height:auto}.auth-art>span{font:var(--aiq-text-display-l);letter-spacing:.04em;text-align:center}.auth-art b{color:var(--aiq-accent-text)}.auth-art small{display:block;font:var(--aiq-text-body);color:var(--aiq-fg-2);letter-spacing:0;margin-top:12px}.auth-art>p{font:var(--aiq-text-overline);letter-spacing:.12em;color:var(--aiq-fg-3)}
.view-tabs{margin:0 20px 16px}.view-tabs button{flex:1;white-space:nowrap}#enhancement-panel label{margin:12px 0}#enhancement-panel select{font:var(--aiq-text-label);padding:10px 8px}#enhancement-panel .pill{margin-top:0}.job-status{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0}.progress-label{display:flex;justify-content:space-between;font:var(--aiq-text-data-s);margin-top:12px}progress{width:100%;height:8px;accent-color:var(--aiq-accent);display:block;margin:8px 0 12px;border-radius:var(--aiq-radius-xs);overflow:hidden;background:var(--aiq-bg-3)}progress::-webkit-progress-bar{background:var(--aiq-bg-3)}progress::-webkit-progress-value{background:var(--aiq-accent)}#enhancement-coverage{margin-bottom:12px}.job-message{font:var(--aiq-text-label);line-height:1.6;padding:12px;background:var(--aiq-info-bg);border:1px solid var(--aiq-line-2);border-radius:var(--aiq-radius-sm);margin-bottom:12px}#enhancement-spec,#enhancement-spend,#enhancement-key{margin-bottom:12px}.check-line{display:flex;align-items:flex-start;gap:8px;font:var(--aiq-text-label);line-height:1.5}.check-line input{flex-shrink:0;margin-top:2px}.enhancement-actions{display:flex;gap:8px;margin:16px 0}.enhancement-actions .primary{flex:1}.enhancement-warning{border-left:2px solid var(--aiq-warn);padding-left:12px;font:var(--aiq-text-data-s);color:var(--aiq-warn);margin:16px 0 0}#method-description{margin:12px 0 16px}.enhanced-view .project-card{padding-top:16px;padding-bottom:12px}.enhanced-view .project-card #project-description,.enhanced-view .project-card .pill{display:none}.enhanced-view .view-tabs{margin-bottom:12px}.patch-dialog{width:1080px;padding:20px}.patch-dialog .dialog-header{margin-bottom:12px}.patch-dialog .dialog-header h2{font:var(--aiq-text-title)}.patch-dialog label{margin-top:0}.patch-dialog .fine{font:var(--aiq-text-data-s);margin-bottom:0}.patch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}.patch-grid figure{margin:0;min-width:0}.patch-grid figcaption{font:var(--aiq-text-data-s);min-height:18px;margin-bottom:8px}.patch-grid img{display:block;width:100%;height:clamp(120px,calc((90dvh - 270px)/var(--comparison-rows,2)),360px);object-fit:contain;border:1px solid var(--aiq-line-2);border-radius:var(--aiq-radius-sm);background:var(--aiq-bg-void)}.viewer-link{white-space:nowrap}#email-connection{padding:16px 0;border-top:1px solid var(--aiq-line-1)}
@media(max-width:1100px){.topbar{gap:12px}.top-actions{flex:1;justify-content:flex-end}.project-tabs{order:3}.sidebar{width:280px}.brand{min-width:0}}
@media(max-width:760px){.auth-screen{display:block}.auth-art{display:none}.auth-card{margin:auto;padding:32px 24px}.access-banner{padding:6px 12px;letter-spacing:.07em;flex-wrap:wrap}.topbar{padding:12px}.brand small{display:none}.top-actions{gap:6px}.top-actions .outline{padding:8px 10px}.project-tabs{width:100%}.project-tabs button{flex:1}.layout{overflow:auto;display:flex;flex-direction:column}.sidebar{width:100%;max-height:42dvh;min-height:180px;border-right:0;border-bottom:1px solid var(--aiq-line-2);flex-shrink:0}.project-card{padding:16px 20px}.project-card h1{font:var(--aiq-text-title);margin:4px 0}.project-card>p:not(.eyebrow){display:none}.project-card .pill{margin-top:6px}.side-section{padding:16px 20px}.sidebar-footer{padding:12px 20px}.map-shell{flex:1;min-height:340px}.map-footer #source-credit{display:none}.scene-label{max-width:65%}.map-top{left:12px;right:12px;top:12px}.map-tools{right:12px}.pending-card{width:280px;padding:20px}.local-badge{padding:4px 8px}.form-row{grid-template-columns:1fr}.dialog{padding:20px}.dialog-footer{gap:8px}}
@media(max-width:480px){.access-banner{font:var(--aiq-text-data-s);font-size:10px}.access-banner span:last-child{letter-spacing:0}.auth-card h1{font:var(--aiq-text-heading)}.brand strong{font:var(--aiq-text-title)}.brand small{font-size:9px}.top-actions{justify-content:flex-start;flex-basis:100%}#local-badge{display:none}.project-tabs button{padding:8px}.map-footer{gap:8px;padding:8px 12px;font-size:10px}#zoom-level{display:none}.scene-label{max-width:62%;font-size:10px}.map-top .floating-button{padding:8px;font-size:11px}.patch-grid{grid-template-columns:1fr}.patch-grid img{height:auto;max-height:360px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

#account-role.expires-soon{background:var(--aiq-warn-bg);color:var(--aiq-warn);border-color:var(--aiq-warn-line)}

#auth-submit{margin-top:16px}
