:root{--primary:#1b3a5c;--primary-light:#2a5580;--accent:#00b4a0;--accent-hover:#009e8c;--text:#374151;--text-light:#6b7280;--text-heading:#111827;--bg:#fff;--bg-subtle:#f8fafb;--bg-panel:#f1f5f9;--border:#e2e8f0;--surface:#fff;--text-muted:#6b7280;--border-light:#f1f5f9;--error-bg:#fef2f2;--error-text:#dc2626;--error-border:#fecaca;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 25px -5px #00000014, 0 8px 10px -6px #0000000a;--radius:8px;--radius-lg:12px;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font-family:var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}#root{min-height:100vh}h1,h2,h3{color:var(--text-heading);margin:0;font-weight:600;line-height:1.25}p{margin:0}a{color:var(--accent);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}input:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root{--react-pdf-annotation-layer:1;--annotation-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:transparent;--input-disabled-border-color:transparent;--input-hover-border-color:black;--link-outline:none}@media screen and (forced-colors:active){:root{--input-focus-border-color:CanvasText;--input-unfocused-border-color:ActiveText;--input-disabled-border-color:GrayText;--input-hover-border-color:Highlight;--link-outline:1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selecteditem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert();backdrop-filter:invert()}}.annotationLayer{pointer-events:none;transform-origin:0 0;z-index:3;position:absolute;top:0;left:0}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg)translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg)translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg)translateY(-100%)}.annotationLayer canvas{width:100%;height:100%;position:absolute}.annotationLayer section{text-align:initial;pointer-events:auto;box-sizing:border-box;transform-origin:0 0;margin:0;position:absolute}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{width:100%;height:100%;font-size:1em;position:absolute;top:0;left:0}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;vertical-align:top;width:100%;height:100%;margin:0}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{border:2px solid var(--input-disabled-border-color);cursor:not-allowed;background:0 0}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline);background:0 0;border-radius:2px}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-color:#0000;background-image:none}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline);border-radius:2px}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{content:"";background-color:canvastext;display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{width:1px;height:80%;left:45%}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;width:50%;height:50%;top:20%;left:30%}.annotationLayer .textWidgetAnnotation input.comb{padding-left:2px;padding-right:0;font-family:monospace}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{appearance:none}.annotationLayer .popupTriggerArea{width:100%;height:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none;position:absolute}.annotationLayer .popup{max-width:calc(180px * var(--total-scale-factor));box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto;background-color:#ff9;position:absolute}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{margin-left:calc(5px * var(--total-scale-factor));display:inline-block}.annotationLayer .popupContent{margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor));border-top:1px solid #333}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{width:100%;height:100%;position:absolute;top:0;left:0}.annotationLayer .annotationTextContent{opacity:0;color:#0000;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;position:absolute}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer:1;--highlight-bg-color:#b400aa;--highlight-selected-bg-color:#006400}@media screen and (forced-colors:active){:root{--highlight-bg-color:Highlight;--highlight-selected-bg-color:ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg)translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg)translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg)translate(-100%)}.textLayer{text-align:initial;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2;line-height:1;position:absolute;inset:0;overflow:hidden}.textLayer :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;margin:0;position:absolute}.textLayer span.markedContent{height:0;top:0}.textLayer .highlight{background-color:var(--highlight-bg-color);border-radius:4px;margin:-1px;padding:1px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:0 0}.textLayer .endOfContent{z-index:-1;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{width:0;height:0;display:none;position:absolute;top:0;left:0}.page-shell{background:var(--bg-subtle);flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{background:var(--bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:100;justify-content:space-between;align-items:center;padding:12px 32px;display:flex;position:sticky;top:0}.app-header-logo{cursor:pointer;height:30px}.app-header-right{align-items:center;gap:16px;display:flex}.app-header-user{color:var(--text);font-size:14px}.app-header-signout{width:auto;padding:6px 14px;font-size:13px}.bg-jobs{position:relative}.bg-jobs-trigger{border:1px solid var(--border);background:var(--bg);cursor:pointer;width:36px;height:36px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.bg-jobs-trigger:hover{background:var(--bg-subtle);box-shadow:var(--shadow-sm)}.bg-jobs-badge{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:600;display:flex;position:absolute;top:-4px;right:-4px}.bg-jobs-dropdown{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:320px;box-shadow:var(--shadow-lg);z-index:200;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.bg-jobs-header{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:12px 16px;font-size:13px;font-weight:600}.bg-jobs-item{border:none;border-bottom:1px solid var(--border-light);background:var(--bg);cursor:pointer;text-align:left;width:100%;font-family:var(--sans);flex-direction:column;gap:8px;padding:12px 16px;transition:background .1s;display:flex}.bg-jobs-item:last-child{border-bottom:none}.bg-jobs-item:hover{background:var(--bg-subtle)}.bg-jobs-item-info{flex-direction:column;gap:2px;display:flex}.bg-jobs-item-name{color:var(--text-heading);font-size:14px;font-weight:500}.bg-jobs-item-status{color:var(--text-light);font-size:12px}.bg-jobs-progress-bar{background:var(--border);border-radius:2px;width:100%;height:4px;overflow:hidden}.bg-jobs-progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.new-project-dropdown{position:relative}.new-project-btn{gap:8px;width:auto;padding:10px 20px}.new-project-chevron{transition:transform .2s}.new-project-chevron.open{transform:rotate(180deg)}.new-project-menu{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:280px;box-shadow:var(--shadow-lg);z-index:200;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.new-project-option{border:none;border-bottom:1px solid var(--border-light);background:var(--bg);cursor:pointer;text-align:left;width:100%;font-family:var(--sans);align-items:center;gap:12px;padding:14px 16px;transition:background .1s;display:flex}.new-project-option:last-child{border-bottom:none}.new-project-option:hover:not(.disabled){background:var(--bg-subtle)}.new-project-option.disabled{opacity:.5;cursor:not-allowed}.new-project-option-icon{border-radius:var(--radius);background:var(--bg-panel);width:36px;height:36px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.new-project-option-text{flex-direction:column;gap:2px;display:flex}.new-project-option-label{color:var(--text-heading);align-items:center;gap:6px;font-size:14px;font-weight:500;display:flex}.pro-badge-inline{color:#fff;letter-spacing:.08em;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:4px;padding:1px 6px;font-size:9px;font-weight:800;line-height:1.4}.new-project-option-desc{color:var(--text-light);font-size:12px}.projects-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:32px 24px}.projects-toolbar{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.projects-title{letter-spacing:-.5px;font-size:28px;font-weight:700}.projects-loading{justify-content:center;padding:80px 0;display:flex}.projects-empty{text-align:center;background:var(--bg);border-radius:var(--radius-lg);border:2px dashed var(--border);padding:80px 24px}.projects-empty-icon{color:#94a3b8;margin-bottom:20px}.projects-empty h2{margin-bottom:8px;font-size:22px}.projects-empty p{color:var(--text-light);margin-bottom:28px;font-size:15px}.projects-empty .new-project-dropdown{display:inline-block}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.project-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;font-family:var(--sans);flex-direction:column;gap:10px;width:100%;padding:20px;transition:all .15s;display:flex}.project-card:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1}.project-card-top{justify-content:space-between;align-items:center;display:flex}.project-status-badge{border:1px solid;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600}.project-type-badge{color:var(--text-light);background:var(--bg-panel);border-radius:4px;padding:3px 8px;font-size:11px;font-weight:500}.project-plan-badge{text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;background:#1e293b;border:1px solid #334155;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:600}.project-plan-badge[data-plan=discovery]{color:#60a5fa;background:#172554;border-color:#1e40af}.project-plan-badge[data-plan=project_pass]{color:#a78bfa;background:#1e1b4b;border-color:#4c1d95}.project-plan-badge[data-plan=professional]{color:#4ade80;background:#14532d;border-color:#166534}.project-plan-badge[data-plan=studio]{color:#fb923c;background:#431407;border-color:#9a3412}.project-card-name{color:var(--text-heading);margin:0;font-size:16px;font-weight:600;line-height:1.3}.project-card-desc{color:var(--text-light);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.project-card-progress{background:var(--border);border-radius:2px;width:100%;height:4px;overflow:hidden}.project-card-progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.project-card-date{color:var(--text-light);font-size:12px}.upload-main{flex:1;justify-content:center;padding:32px 24px;display:flex;overflow-y:auto}.upload-container{width:100%;max-width:640px}.upload-back{color:var(--text-light);cursor:pointer;font-size:14px;font-family:var(--sans);background:0 0;border:none;align-items:center;gap:6px;margin-bottom:24px;padding:0;transition:color .15s;display:inline-flex}.upload-back:hover{color:var(--text-heading)}.upload-title{letter-spacing:-.5px;margin-bottom:8px;font-size:28px;font-weight:700}.upload-subtitle{color:var(--text-light);margin-bottom:32px;font-size:15px;line-height:1.5}.upload-dropzone{border:2px dashed var(--border);border-radius:var(--radius-lg);cursor:pointer;background:var(--bg);text-align:center;padding:48px 24px;transition:all .15s}.upload-dropzone:hover,.upload-dropzone.active{border-color:var(--accent);background:#00b4a00a}.upload-dropzone.has-file{border-style:solid;border-color:var(--accent);background:#00b4a00a}.upload-placeholder{color:var(--text-light);flex-direction:column;align-items:center;gap:12px;display:flex}.upload-placeholder-text{color:var(--text);font-size:15px;font-weight:500}.upload-placeholder-hint{font-size:13px}.upload-file-preview{flex-direction:column;align-items:center;gap:8px;display:flex}.upload-file-name{color:var(--text-heading);word-break:break-all;font-size:15px;font-weight:500}.upload-file-size{color:var(--text-light);font-size:13px}.upload-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.upload-actions .auth-btn{width:auto}.upload-status{text-align:center;background:var(--bg);border-radius:var(--radius-lg);border:1px solid var(--border);flex-direction:column;align-items:center;padding:48px 24px;display:flex}.upload-status h2{margin-top:20px;margin-bottom:8px;font-size:20px}.upload-status-desc{color:var(--text-light);max-width:400px;font-size:14px;line-height:1.5}.upload-progress-bar{background:var(--border);border-radius:3px;width:100%;max-width:300px;height:6px;margin-top:20px;overflow:hidden}.upload-progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .2s}.upload-progress-text{color:var(--text-light);margin-top:8px;font-size:13px}.upload-error-icon{margin-bottom:8px}.upload-reason{background:var(--bg-panel);border-radius:var(--radius);color:var(--text);text-align:left;white-space:pre-wrap;max-width:500px;margin:16px 0 24px;padding:16px 20px;font-size:14px;line-height:1.5}.upload-status .auth-btn{width:auto;margin-top:12px}.project-main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:32px 24px}.project-loading{flex:1;justify-content:center;align-items:center;display:flex}.project-header-section{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:32px;display:flex}.project-name{letter-spacing:-.5px;margin-bottom:6px;font-size:28px;font-weight:700}.project-description{color:var(--text-light);font-size:15px;line-height:1.5}.project-status-pill{white-space:nowrap;border:1px solid;border-radius:99px;flex-shrink:0;align-items:center;gap:6px;padding:5px 14px;font-size:13px;font-weight:600;display:inline-flex}.project-revision-counter{color:#94a3b8;white-space:nowrap;background:#1e293b;border:1px solid #334155;border-radius:99px;flex-shrink:0;align-items:center;padding:5px 12px;font-size:13px;font-weight:500;display:inline-flex}.project-upgrade-btn{white-space:nowrap;flex-shrink:0;padding:5px 14px;font-size:12px}.account-plan-badge{color:#94a3b8;background:#1e293b;border:1px solid #334155;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.account-plan-badge[data-plan=discovery]{color:#60a5fa;background:#172554;border-color:#1e40af}.account-plan-badge[data-plan=project_pass]{color:#a78bfa;background:#1e1b4b;border-color:#4c1d95}.account-plan-badge[data-plan=professional]{color:#4ade80;background:#14532d;border-color:#166534}.account-plan-badge[data-plan=studio]{color:#fb923c;background:#431407;border-color:#9a3412}.account-project-row:hover{background:#1e293b}.project-status-dot{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.project-processing-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:24px;margin-bottom:24px;padding:24px;display:flex}.project-processing-info{flex:1}.project-processing-info h3{margin-bottom:12px;font-size:16px}.project-progress-bar{background:var(--border);border-radius:3px;width:100%;height:6px;overflow:hidden}.project-progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .5s}.project-progress-text{color:var(--text-light);margin-top:6px;font-size:12px;display:block}.project-completed-card{text-align:center;background:var(--bg);border-radius:var(--radius-lg);border:1px solid #d1fae5;margin-bottom:24px;padding:40px 24px}.project-completed-icon{margin-bottom:12px}.project-completed-card h3{margin-bottom:6px;font-size:18px}.project-completed-card p{color:var(--text-light);margin-bottom:20px;font-size:14px}.project-download-btn{width:auto;text-decoration:none;display:inline-flex}.project-failed-card{text-align:center;background:var(--bg);border:1px solid var(--error-border);border-radius:var(--radius-lg);margin-bottom:24px;padding:40px 24px}.project-failed-icon{margin-bottom:12px}.project-failed-card h3{margin-bottom:6px;font-size:18px}.project-failed-card p{color:var(--text-light);font-size:14px;line-height:1.5}.project-failed-progress{color:var(--text-light);margin-top:8px;font-size:13px;font-style:italic}.project-retry-btn{align-items:center;gap:8px;margin-top:16px;display:inline-flex}.spinner-small{border-width:2px;width:16px;height:16px}.project-retry-error{color:var(--error-text);margin-top:8px;font-size:13px}.project-details-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.project-detail-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.project-detail-card h4{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:13px;font-weight:600}.project-file-link{align-items:center;gap:8px;font-size:14px;font-weight:500;display:inline-flex}.project-analysis-card{grid-column:1/-1}.project-analysis-text{color:var(--text);white-space:pre-wrap;font-size:14px;line-height:1.6}.cropper-modal-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cropper-modal{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.cropper-area{flex:1;min-height:0;position:relative;overflow:hidden}.lasso-viewport{background:#1a1a2e;flex:1;min-height:0;position:relative;overflow:hidden}.lasso-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.three-viewport{background:#1a1a2e;flex:1;min-height:0;position:relative;overflow:hidden}.three-viewport canvas{display:block;width:100%!important;height:100%!important}.three-loading,.three-error{color:#ffffffb3;z-index:2;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex;position:absolute;inset:0}.three-error{color:var(--error-text,#ef4444)}.cropper-controls{background:var(--bg);border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 32px;display:flex}.cropper-zoom-label{color:var(--text);align-items:center;gap:12px;font-size:14px;font-weight:500;display:flex}.cropper-zoom-slider{width:200px;accent-color:var(--accent)}.cropper-buttons{gap:12px;display:flex}.cropper-hint{color:var(--text-light);margin:0;font-size:13px}.cropper-buttons .auth-btn{width:auto}.pdf-selector-modal{background:var(--bg);border-radius:var(--radius-lg);flex-direction:column;width:90vw;max-width:1100px;max-height:85vh;display:flex;overflow:hidden}.pdf-selector-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.pdf-selector-header h2{margin:0;font-size:20px;font-weight:600}.pdf-selector-cancel{width:auto}.pdf-selector-rendering{background:var(--bg-panel);color:var(--text-light);align-items:center;gap:12px;padding:12px 24px;font-size:14px;display:flex}.pdf-selector-pages{flex:1;padding:24px;overflow-y:auto}.pdf-selector-pages .react-pdf__Document{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));justify-items:center;gap:20px;display:grid}.pdf-selector-loading{justify-content:center;padding:40px;display:flex}.pdf-page-thumb{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;width:100%;font-family:var(--sans);flex-direction:column;align-items:center;gap:8px;padding:10px;transition:all .15s;display:flex}.pdf-page-thumb:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--shadow-md)}.pdf-page-thumb.selected{border-color:var(--accent);background:#00b4a00a}.pdf-page-thumb:disabled{opacity:.5;cursor:not-allowed}.pdf-page-thumb canvas{border-radius:4px;width:100%!important;height:auto!important}.pdf-page-label{color:var(--text);font-size:13px;font-weight:500}.upload-container-wide{max-width:800px}.elevation-upload-row{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;display:grid}.elevation-upload-single{grid-template-columns:1fr;max-width:480px;margin-left:auto;margin-right:auto}.elevation-upload-grid-4{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;display:grid}.elevation-slot{border:2px dashed var(--border);border-radius:var(--radius-lg);cursor:pointer;background:var(--bg);justify-content:center;align-items:center;min-height:220px;transition:all .15s;display:flex;overflow:hidden}.elevation-slot:hover,.elevation-slot.active{border-color:var(--accent);background:#00b4a00a}.elevation-slot.has-preview{border-style:solid;border-color:var(--accent);cursor:default;padding:0}.elevation-slot-empty{text-align:center;color:var(--text-light);flex-direction:column;align-items:center;gap:10px;padding:32px 16px;display:flex}.elevation-slot-label{color:var(--text);font-size:15px;font-weight:500}.elevation-slot-hint{color:var(--text-light);font-size:12px;line-height:1.4}.elevation-slot-preview{width:100%;height:100%;position:relative}.elevation-slot-preview img{object-fit:cover;width:100%;height:100%;min-height:220px;display:block}.elevation-slot-preview-overlay{opacity:0;background:#0006;flex-direction:column;justify-content:center;align-items:center;gap:6px;transition:opacity .2s;display:flex;position:absolute;inset:0}.elevation-slot-preview:hover .elevation-slot-preview-overlay{opacity:1}.elevation-replace-btn,.elevation-open-area-btn{width:auto;color:var(--text-heading);background:#fffffff2;padding:4px 10px;font-size:11px}.elevation-open-area-btn{color:#fff;background:#2563ebe6;border-color:#0000}.render-type-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.render-type-card{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:center;font-family:var(--sans);flex-direction:column;align-items:center;gap:12px;padding:36px 24px;transition:all .15s;display:flex;position:relative}.render-type-card:hover:not(.disabled){border-color:var(--accent);box-shadow:var(--shadow-md)}.render-type-card.disabled{opacity:.55;cursor:not-allowed}.render-type-icon{background:var(--bg-panel);width:64px;height:64px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;display:flex}.render-type-card h3{color:var(--text-heading);margin:0;font-size:17px;font-weight:600}.render-type-card p{color:var(--text-light);margin:0;font-size:13px;line-height:1.5}.render-type-badge-soon{background:var(--bg-panel);color:var(--text-light);border:1px solid var(--border);border-radius:99px;padding:3px 10px;font-size:11px;font-weight:600;position:absolute;top:12px;right:12px}.project-name-input-group{margin-bottom:20px}.project-name-input-group label{color:var(--text-heading);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.project-name-input-group input{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:15px;font-family:var(--sans);background:var(--bg);color:var(--text-heading);box-sizing:border-box;padding:10px 14px;transition:border-color .15s,box-shadow .15s}.project-name-input-group input::placeholder{color:#9ca3af}.project-name-input-group input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #00b4a01f}.rendered-images-section{margin-bottom:32px}.rendered-images-title{margin-bottom:16px;font-size:20px;font-weight:600}.rendered-images-grid{grid-template-columns:1fr;gap:20px;display:grid}.rendered-image-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.rendered-image-preview{object-fit:contain;background:#f0f0f0;width:100%;max-height:500px;display:block}.rendered-image-actions{justify-content:flex-end;padding:16px;display:flex}.rendered-image-download{width:auto;text-decoration:none}.project-card-thumb{border-radius:var(--radius) var(--radius) 0 0;width:calc(100% + 40px);height:140px;margin:-20px -20px 12px;overflow:hidden}.project-card-thumb img{object-fit:cover;width:100%;height:100%;display:block}.project-originals-list{flex-wrap:wrap;gap:12px;display:flex}.project-original-file{color:var(--text);background:var(--bg-panel);border-radius:var(--radius);align-items:center;gap:6px;padding:6px 12px;font-size:14px;display:inline-flex}.auth-page{min-height:100vh;display:flex}.auth-left{background:linear-gradient(135deg,#1b3a5c 0%,#0f2640 60%,#0a1a2e 100%);flex:1;justify-content:center;align-items:center;padding:48px;display:flex;position:relative;overflow:hidden}.auth-left:before{content:"";background:radial-gradient(circle at 20% 80%,#00b4a026 0%,#0000 50%),radial-gradient(circle at 80% 20%,#00b4a01a 0%,#0000 40%);position:absolute;inset:0}.auth-left-content{z-index:1;color:#fff;max-width:480px;position:relative}.auth-hero-logo{width:240px;margin-bottom:40px}.auth-left-content h1{color:#fff;letter-spacing:-.5px;margin-bottom:16px;font-size:36px;font-weight:700;line-height:1.2}.auth-left-content p{color:#ffffffb3;font-size:18px;line-height:1.6}.auth-right{background:var(--bg-subtle);flex:1;justify-content:center;align-items:center;padding:48px 24px;display:flex}.auth-card{background:var(--bg);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border:1px solid var(--border-light);padding:40px}.auth-card-logo{height:40px;margin-bottom:32px}.auth-card h2{margin-bottom:8px;font-size:24px}.auth-subtitle{color:var(--text-light);margin-bottom:28px;font-size:15px}.auth-error{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);border-radius:var(--radius);margin-bottom:20px;padding:12px 16px;font-size:14px;line-height:1.4}.auth-providers{flex-direction:column;gap:12px;margin-bottom:0;display:flex}.auth-btn{border-radius:var(--radius);font-family:var(--sans);cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:12px 20px;font-size:15px;font-weight:500;line-height:1;transition:all .15s;display:inline-flex}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn-provider{background:var(--bg);color:var(--text-heading);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.auth-btn-provider:hover:not(:disabled){background:var(--bg-subtle);box-shadow:var(--shadow-md);border-color:#cbd5e1}.auth-btn-apple{color:#fff;background:#000;border-color:#000}.auth-btn-apple:hover:not(:disabled){background:#1a1a1a;border-color:#1a1a1a}.auth-btn-primary{background:var(--accent);color:#fff}.auth-btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-md)}.auth-btn-secondary{color:var(--text);border:1px solid var(--border);background:0 0}.auth-btn-secondary:hover:not(:disabled){background:var(--bg-subtle)}.auth-divider{color:var(--text-light);align-items:center;gap:16px;margin:24px 0;font-size:13px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-form{flex-direction:column;gap:6px;display:flex}.auth-form label{color:var(--text-heading);font-size:14px;font-weight:500}.auth-form input{border:1px solid var(--border);border-radius:var(--radius);font-size:15px;font-family:var(--sans);background:var(--bg);color:var(--text-heading);margin-bottom:12px;padding:10px 14px;transition:border-color .15s,box-shadow .15s}.auth-form input::placeholder{color:#9ca3af}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #00b4a01f}.auth-footer{text-align:center;color:var(--text-light);margin-top:24px;font-size:14px}.magic-link-sent{text-align:center;padding:20px 0}.magic-link-icon{margin-bottom:16px;font-size:48px}.magic-link-sent p{color:var(--text-light);margin-bottom:24px;line-height:1.5}.loading-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=900px){.auth-page{flex-direction:column}.auth-left{min-height:auto;padding:40px 24px}.auth-left-content h1{font-size:28px}.auth-left-content p{font-size:16px}.auth-hero-logo{width:140px;margin-bottom:24px}.auth-right{padding:32px 16px}.auth-card{box-shadow:none;background:0 0;border:none;padding:28px 24px}.app-header{padding:10px 16px}.projects-toolbar{flex-direction:column;align-items:flex-start;gap:16px}.projects-grid{grid-template-columns:1fr}.project-header-section{flex-direction:column}.project-details-grid{grid-template-columns:1fr}.project-processing-card{text-align:center;flex-direction:column}.elevation-upload-row,.render-type-grid{grid-template-columns:1fr}.cropper-controls{flex-direction:column;gap:12px;padding:12px 16px}.elevation-upload-grid-4{grid-template-columns:1fr}.cropper-zoom-slider{width:100%}}.model-viewer-section{margin-bottom:32px}.model-viewer-container{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:100%;height:500px;position:relative;overflow:hidden}.model-viewer-container canvas{width:100%;height:100%;display:block}.model-viewer-actions{justify-content:flex-end;gap:12px;margin-top:16px;display:flex}.project-page-top-bar{padding:16px 32px 0}.project-page-title-row{flex-wrap:wrap;align-items:center;gap:16px;margin-top:4px;display:flex}.project-page-title-row .project-name{margin:0}.project-layout{flex:1;gap:24px;min-height:0;padding:16px 32px 32px;display:flex;position:relative;overflow:hidden}.project-main-area{flex-direction:column;flex:1;gap:0;min-width:0;min-height:0;display:flex;overflow:hidden}.project-main-sticky{flex-shrink:0}.project-main-scrollable{flex-direction:column;flex:1;gap:0;min-height:0;padding:4px 0 12px;display:flex;overflow-y:auto}.asset-tray{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:220px;min-width:220px;min-height:0;display:flex;overflow:hidden}.asset-tray-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.asset-tray-title{color:var(--text-heading);letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:.85rem;font-weight:600}.asset-tray-close-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;align-items:center;padding:2px;display:flex}.asset-tray-close-btn:hover{color:var(--text-heading);background:var(--bg)}.asset-tray-list{flex-direction:column;flex:1;gap:4px;padding:8px;display:flex;overflow-y:auto}.asset-tray-empty{text-align:center;color:var(--text-muted);padding:24px 12px;font-size:.85rem}.asset-tray-item{cursor:pointer;text-align:left;background:0 0;border:2px solid #0000;border-radius:8px;align-items:center;gap:10px;width:100%;padding:6px 8px;font-family:inherit;transition:background .15s,border-color .15s;display:flex;position:relative}.asset-tray-item:hover{background:var(--bg)}.asset-tray-item.selected{border-color:var(--accent);background:var(--accent-bg,#6366f10f)}.asset-tray-child{position:relative}.asset-tray-guide{background:var(--border);pointer-events:none;width:1.5px;position:absolute;top:0;bottom:0}.asset-tray-item.failed{opacity:.6}.asset-tray-thumb{background:var(--bg);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:relative;overflow:hidden}.asset-tray-thumb img{object-fit:cover;width:100%;height:100%}.asset-tray-placeholder{color:var(--text-muted);justify-content:center;align-items:center;display:flex}.asset-tray-processing{z-index:1;background:#00000073;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.asset-tray-progress-text{color:#fff;margin-top:2px;font-size:.65rem;font-weight:600}.asset-tray-failed-badge{color:#ef4444;z-index:1;position:absolute;top:2px;right:2px}.asset-tray-fav-badge{z-index:2;filter:drop-shadow(0 1px 3px #f59e0b66);line-height:0;position:absolute;top:4px;right:6px}.asset-tray-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.asset-tray-label{color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:500;overflow:hidden}.asset-tray-structure{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;opacity:.7;font-size:.65rem;overflow:hidden}.asset-tray-date{color:var(--text-muted);align-items:center;gap:4px;font-size:.7rem;display:flex}.asset-tray-approval-badge{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:9px;font-weight:700;display:inline-flex}.asset-tray-approval-badge.approved{color:#fff;background:#10b981}.asset-tray-approval-badge.pending{color:#fff;background:#f59e0b}.asset-tray-toggle{z-index:200;border:1px solid var(--border);background:var(--primary);box-shadow:var(--shadow-md);cursor:pointer;color:#fff;font-size:.78rem;font-weight:600;font-family:var(--sans);letter-spacing:.01em;white-space:nowrap;border-right:none;border-radius:10px 0 0 10px;align-items:center;gap:6px;padding:10px 10px 10px 14px;transition:background .15s,padding-right .15s;display:flex;position:fixed;top:50%;right:0;transform:translateY(-50%)}.asset-tray-toggle:hover{background:var(--primary-light);padding-right:14px}.asset-tray-toggle svg{flex-shrink:0}.asset-tray-backdrop{display:none}.asset-tray-create-btn{border:1px solid var(--border);background:var(--primary);color:#fff;font-size:.72rem;font-weight:600;font-family:var(--sans);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;transition:background .15s;display:flex}.asset-tray-create-btn:hover{background:var(--primary-light)}.asset-tray-footer{border-top:1px solid var(--border);padding:12px}.asset-tray-footer .asset-tray-create-btn{justify-content:center;width:100%;padding:8px 12px;font-size:.78rem}.asset-tray-tabs{border-bottom:1px solid var(--border);flex-shrink:0;padding:0 8px;display:flex}.asset-tray-tab{font-size:.75rem;font-weight:600;font-family:var(--sans);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px 6px;transition:color .15s,border-color .15s;display:flex}.asset-tray-tab:hover{color:var(--text-heading)}.asset-tray-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.asset-tray-tab-count{background:var(--border-light);min-width:18px;height:18px;color:var(--text-muted);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:.65rem;font-weight:700;display:inline-flex}.asset-tray-tab.active .asset-tray-tab-count{background:var(--primary);color:#fff}.asset-tray-section{border-bottom:1px solid var(--border)}.asset-tray-section:last-child{border-bottom:none}.asset-tray-section-header{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:8px 10px 4px;font-size:.7rem;font-weight:700;display:flex}.asset-tray-section-fixed{pointer-events:none}.asset-tray-section-collapsable{cursor:pointer;text-align:left;background:0 0;border:none;width:100%;font-family:inherit}.asset-tray-section-collapsable:hover{color:var(--text-heading)}.asset-tray-section-count{background:var(--border-light);min-width:18px;height:18px;color:var(--text-muted);border-radius:9px;justify-content:center;align-items:center;margin-left:auto;padding:0 5px;font-size:.6rem;font-weight:700;display:inline-flex}.asset-tray-filter-switch{border-bottom:1px solid var(--border);gap:2px;padding:6px 8px 2px;display:flex}.asset-tray-filter-btn{font-size:.72rem;font-weight:600;font-family:var(--sans);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:4px;padding:5px 6px;transition:background .15s,color .15s;display:flex}.asset-tray-filter-btn:hover{background:var(--bg);color:var(--text-heading)}.asset-tray-filter-btn.active{background:var(--accent-bg,#6366f114);color:var(--primary)}.cna-modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.cna-modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:85vh;box-shadow:var(--shadow-lg);overflow-y:auto}.cna-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.cna-modal-header h3{color:var(--text-heading);margin:0;font-size:1rem;font-weight:700}.cna-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:1.4rem;line-height:1}.cna-close:hover{color:var(--text-heading)}.cna-modal-body{padding:20px}.cna-modal-submitting{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 20px;display:flex}.cna-modal-submitting h3{color:var(--text-heading);margin:0;font-size:1rem}.cna-modal-submitting p{color:var(--text-muted);margin:0;font-size:.85rem}.cna-type-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.cna-type-card{border:1px solid var(--border);background:var(--surface);cursor:pointer;font-family:var(--sans);border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.cna-type-card:hover{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb14}.cna-type-card svg{color:var(--primary)}.cna-type-card span{color:var(--text-heading);text-align:center;font-size:.82rem;font-weight:600}.cna-upload-slots{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;display:grid}.cna-upload-single{grid-template-columns:1fr}.cna-elev-slot-wrap{flex-direction:column;gap:8px;display:flex}.cna-elev-toggle{border:1px solid var(--border);border-radius:6px;align-self:center;display:flex;overflow:hidden}.cna-toggle-btn{font-size:.78rem;font-weight:600;font-family:var(--sans);background:var(--surface);color:var(--text-light);cursor:pointer;border:none;flex:1;padding:5px 14px;transition:all .15s}.cna-toggle-btn+.cna-toggle-btn{border-left:1px solid var(--border)}.cna-toggle-btn.active{background:var(--accent);color:#fff}.cna-toggle-btn:hover:not(.active){background:var(--bg-subtle)}.cna-upload-4{grid-template-columns:repeat(2,1fr)}.cna-label-row{margin-bottom:16px}.cna-label-row label{color:var(--text-heading);margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.cna-label-row input{border:1px solid var(--border);width:100%;font-size:.85rem;font-family:var(--sans);background:var(--surface);color:var(--text-heading);box-sizing:border-box;border-radius:8px;padding:8px 12px}.cna-label-row input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.cna-actions{justify-content:flex-end;gap:10px;padding-top:8px;display:flex}.cna-pick-hint{color:var(--text-muted);margin:0 0 12px;font-size:.85rem}.cna-existing-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-bottom:16px;display:grid}.cna-existing-item{aspect-ratio:1;border:2px solid var(--border);cursor:pointer;background:var(--bg);border-radius:8px;padding:0;transition:border-color .15s;position:relative;overflow:hidden}.cna-existing-item:hover{border-color:var(--primary)}.cna-existing-item.selected{border-color:var(--accent)}.cna-existing-item img{object-fit:cover;width:100%;height:100%}.cna-existing-placeholder{width:100%;height:100%;color:var(--text-muted);justify-content:center;align-items:center;font-size:.75rem;display:flex}.cna-existing-check{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.7rem;font-weight:700;display:flex;position:absolute;top:4px;right:4px}.mod-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:280px;min-width:280px;min-height:0;display:flex;overflow:hidden}.mod-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.mod-panel-title{color:var(--text-heading);letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:.85rem;font-weight:600}.mod-panel-close-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;align-items:center;padding:2px;display:flex}.mod-panel-close-btn:hover{color:var(--text-heading);background:var(--bg)}.mod-panel-body{flex-direction:column;flex:1;gap:16px;min-height:0;padding:12px;display:flex;overflow-y:auto}.mod-panel-empty{text-align:center;color:var(--text-muted);padding:24px 12px;font-size:.85rem}.mod-panel-section{flex-direction:column;gap:8px;display:flex}.mod-panel-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border-light);margin:0;padding-bottom:4px;font-size:.75rem;font-weight:700}.mod-section{border:1px solid var(--border-light);border-radius:8px;flex-shrink:0;overflow:hidden}.mod-section-header{background:var(--surface);padding:10px 12px}.mod-section-toggle-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.75rem;font-weight:700}.mod-section-body{border-top:1px solid var(--border-light);flex-direction:column;gap:8px;padding:8px 12px 12px;display:flex}.mod-panel-row{flex-direction:column;gap:4px;display:flex}.mod-panel-label{color:var(--text-heading);font-size:.78rem;font-weight:500}.mod-panel-footer{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:12px;display:flex}.mod-panel-custom-input{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:.8rem;font-family:var(--sans);resize:vertical;background:var(--bg);min-height:36px;max-height:120px;color:var(--text);padding:8px 10px}.mod-panel-custom-input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.mod-panel-apply-btn{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;width:100%;font-size:.85rem;font-weight:600;font-family:var(--sans);border:none;justify-content:center;align-items:center;gap:6px;padding:10px;transition:background .15s;display:flex}.mod-panel-apply-btn:hover{background:var(--accent-hover)}.mod-panel-apply-btn:disabled{opacity:.5;cursor:not-allowed}.mod-panel-toggle{z-index:200;border:1px solid var(--border);background:var(--primary);box-shadow:var(--shadow-md);cursor:pointer;color:#fff;font-size:.78rem;font-weight:600;font-family:var(--sans);letter-spacing:.01em;white-space:nowrap;border-left:none;border-radius:0 10px 10px 0;align-items:center;gap:6px;padding:10px 14px 10px 10px;transition:background .15s,padding-left .15s;display:flex;position:fixed;top:50%;left:0;transform:translateY(-50%)}.mod-panel-toggle:hover{background:var(--primary-light);padding-left:14px}.mod-panel-toggle svg{flex-shrink:0}.mod-panel-backdrop{display:none}.work-area{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;flex:1;min-height:400px;display:flex;overflow:hidden}.work-area-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:400px;font-size:.9rem;display:flex}.work-area-toolbar{border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.work-area-asset-name{color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.work-area-actions{flex-shrink:0;gap:6px;display:flex}.work-area-action-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:36px;height:36px;color:var(--text-heading);border-radius:8px;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex}.work-area-action-btn:hover{background:var(--accent-bg,#6366f10f);border-color:var(--accent);color:var(--accent)}.work-area-content{flex:1;justify-content:center;align-items:center;height:500px;min-height:0;max-height:500px;display:flex;position:relative;overflow:hidden}.work-area-content .model-viewer-container{border:none;border-radius:0;width:100%;height:100%;min-height:0}.work-area-image{object-fit:contain;max-width:100%;max-height:100%;margin:0 auto;padding:16px;display:block}.work-area-loading{background:var(--surface);z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.work-area-processing{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:48px 24px;display:flex}.work-area-processing-info{flex-direction:column;align-items:center;gap:8px;display:flex}.work-area-processing-info h3{color:var(--text-heading);margin:0;font-size:1rem}.work-area-failed{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.mcp-wrap{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mcp-swatch-wrap{display:inline-flex;position:relative}.mcp-swatch{border:2px solid var(--border);cursor:pointer;border-radius:6px;width:28px;height:28px;padding:0;transition:border-color .15s}.mcp-swatch:hover{border-color:var(--accent)}.mcp-hidden-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.mcp-remove{background:var(--error-text);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:10px;line-height:1;display:flex;position:absolute;top:-6px;right:-6px}.mcp-add{border:2px dashed var(--border);cursor:pointer;width:28px;height:28px;color:var(--text-muted);background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:16px;transition:border-color .15s,color .15s;display:flex}.mcp-add:hover{border-color:var(--accent);color:var(--accent)}.mat-sel{flex-direction:column;gap:6px;display:flex}.mat-sel-row{align-items:center;gap:6px;display:flex}.mat-sel-dropdown{border:1px solid var(--border);border-radius:var(--radius);font-size:.8rem;font-family:var(--sans);background:var(--bg);color:var(--text);flex:1;min-width:0;padding:6px 8px}.mat-sel-dropdown:focus{outline:2px solid var(--accent);outline-offset:-1px}.mat-sel-other-row{flex:1;align-items:center;gap:4px;display:flex}.mat-sel-text{border:1px solid var(--border);border-radius:var(--radius);font-size:.8rem;font-family:var(--sans);background:var(--bg);color:var(--text);flex:1;min-width:0;padding:6px 8px}.mat-sel-text:focus{outline:2px solid var(--accent);outline-offset:-1px}.mat-sel-back-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;width:28px;height:28px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.mat-sel-back-btn:hover{color:var(--text-heading);background:var(--bg)}.mat-sel-upload-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;width:28px;height:28px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.mat-sel-upload-btn:hover{color:var(--accent);border-color:var(--accent)}.mat-sel-preview{border:1px solid var(--border);border-radius:6px;width:64px;height:48px;position:relative;overflow:hidden}.mat-sel-preview img{object-fit:cover;width:100%;height:100%}.mat-sel-preview-remove{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-size:12px;display:flex;position:absolute;top:2px;right:2px}.mat-sel-preview-replace{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:600;position:absolute;bottom:4px;left:4px}.mat-sel-preview-replace:hover{background:#000c}.mat-sel-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.mat-sel-mode-tabs{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.mat-sel-mode-tab{font-size:.7rem;font-weight:600;font-family:var(--sans);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:3px 10px;transition:background .1s,color .1s}.mat-sel-mode-tab:hover{background:var(--bg)}.mat-sel-mode-tab.active{background:var(--primary);color:#fff}.mat-sel-mode-tab+.mat-sel-mode-tab{border-left:1px solid var(--border)}.mat-sel-upload-area{border:1px dashed var(--border);background:var(--bg);cursor:pointer;font-size:.78rem;font-family:var(--sans);color:var(--text-muted);border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;transition:border-color .15s,color .15s;display:flex}.mat-sel-upload-area:hover{border-color:var(--primary);color:var(--primary)}.mat-sel-color-toggle{font-size:.72rem;font-weight:600;font-family:var(--sans);color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:4px 0;transition:color .15s;display:flex}.mat-sel-color-toggle:hover,.mat-sel-color-toggle.active{color:var(--primary)}.mat-sel-divider{background:var(--border);height:1px;margin:6px 0}.gutter-ctrl{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:8px 0;display:flex}.gutter-ctrl-btns{gap:6px;display:flex}.amc-wrap{flex-direction:column;gap:8px;display:flex}.amc-entries{flex-direction:column;gap:4px;display:flex}.amc-entry{border:1px solid var(--border);background:var(--bg);border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.amc-entry-info{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.amc-entry-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:28px;height:28px}.amc-entry-desc{color:var(--text-heading);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:.75rem;display:flex;overflow:hidden}.amc-entry-colors{gap:2px;display:inline-flex}.amc-entry-color-dot{border:1px solid #00000026;border-radius:50%;width:10px;height:10px;display:inline-block}.amc-entry-region-badge{background:var(--accent);color:#fff;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:.65rem;font-weight:600}.amc-entry-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1rem;line-height:1}.amc-entry-remove:hover{color:var(--error-text)}.amc-input-section{flex-direction:column;gap:6px;display:flex}.amc-mode-tabs{border:1px solid var(--border);border-radius:6px;align-self:flex-start;display:flex;overflow:hidden}.amc-add-btn{border:1px solid var(--primary);color:var(--primary);font-size:.78rem;font-weight:600;font-family:var(--sans);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;transition:background .15s,color .15s;display:flex}.amc-add-btn:hover:not(:disabled){background:var(--primary);color:#fff}.amc-add-btn:disabled{opacity:.4;cursor:not-allowed}.mst-open-btn{border:1.5px dashed var(--primary);width:100%;color:var(--primary);font-size:.8rem;font-weight:600;font-family:var(--sans);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;transition:background .15s,color .15s;display:flex}.mst-open-btn:hover{background:var(--primary);color:#fff}.mst-open-btn-badge{background:var(--primary);color:#fff;border-radius:10px;padding:1px 6px;font-size:.65rem;font-weight:700}.mst-open-btn:hover .mst-open-btn-badge{color:var(--primary);background:#fff}.mst-sidebar{width:280px;min-width:280px}.mst-material-list{gap:0}.mst-material-item{border-bottom:1px solid var(--border)}.mst-material-item:last-child{border-bottom:none}.mst-material-header{cursor:pointer;align-items:center;gap:6px;padding:8px 10px;transition:background .12s;display:flex}.mst-material-header:hover{background:var(--bg-panel)}.mst-material-item.active>.mst-material-header{background:var(--accent-bg,#6366f10f)}.mst-material-name{color:var(--text-heading);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.78rem;font-weight:600;overflow:hidden}.mst-region-count{color:var(--text-muted);background:var(--bg);border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:.65rem}.mst-material-body{flex-direction:column;gap:8px;padding:0 10px 10px;display:flex}.mst-input-section{flex-direction:column;gap:6px;display:flex}.mst-img-preview{border-radius:6px;max-height:60px;position:relative;overflow:hidden}.mst-img-preview img{object-fit:cover;width:100%;height:60px;display:block}.mst-upload-btn{padding:8px!important;font-size:.72rem!important}.mst-regions-section{flex-direction:column;gap:4px;display:flex}.mst-regions-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:600}.mst-region-row{color:var(--text-heading);border-radius:5px;align-items:center;gap:6px;padding:3px 6px;font-size:.72rem;transition:background .12s;display:flex}.mst-region-row:hover{background:var(--bg-panel)}.mst-region-row.active{background:var(--accent-bg,#6366f114);outline:1px solid var(--accent)}.mst-region-chip{width:12px!important;height:12px!important}.mst-region-name{flex:1;min-width:0;font-size:.72rem}.mst-region-edit{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:2px;display:flex}.mst-region-edit:hover{color:var(--accent);background:var(--accent-bg,#6366f114)}.mst-add-region-btn{margin-top:2px;padding:5px 8px!important;font-size:.7rem!important}.mst-confirm-overlay{z-index:10001;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mst-confirm-dialog{background:#1e1e2e;border:1px solid #ffffff1f;border-radius:12px;width:90%;max-width:380px;padding:24px 28px;box-shadow:0 8px 32px #00000080}.mst-confirm-dialog h4{color:#fff;margin:0 0 8px;font-size:1rem}.mst-confirm-dialog p{color:#ffffffb3;margin:0 0 18px;font-size:.82rem;line-height:1.45}.mst-confirm-actions{justify-content:flex-end;gap:10px;display:flex}.auth-btn-danger{background:var(--error-text,#ef4444)!important;color:#fff!important;border-color:var(--error-text,#ef4444)!important}.auth-btn-danger:hover{opacity:.9}@media (width<=700px){.mst-sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;min-width:0;max-height:220px}}.cam-ctrl{flex-direction:column;gap:8px;display:flex}.cam-ctrl-group{flex-direction:column;gap:4px;display:flex}.cam-ctrl-btns{flex-wrap:wrap;gap:4px;display:flex}.cam-ctrl-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:.72rem;font-family:var(--sans);cursor:pointer;white-space:nowrap;padding:5px 10px;transition:all .15s}.cam-ctrl-btn:hover{border-color:var(--accent);color:var(--accent)}.cam-ctrl-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.aam-wrap{flex-direction:column;gap:6px;display:flex}.aam-actions{flex-wrap:wrap;gap:4px;display:flex}.aam-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:.72rem;font-family:var(--sans);cursor:pointer;white-space:nowrap;padding:5px 10px;transition:all .15s}.aam-btn:hover{border-color:var(--accent);color:var(--accent)}.aam-btn:disabled{opacity:.5;cursor:not-allowed}.aam-btn-remove{color:var(--error-text);border-color:var(--error-border)}.aam-btn-remove:hover{background:var(--error-bg);color:var(--error-text);border-color:var(--error-text)}.aam-btn-add{color:var(--accent);border-color:var(--accent)}.aam-btn-add:hover{background:var(--accent);color:#fff}.aam-hint{color:var(--text-muted);margin:0;font-size:.72rem}.aam-thumbs{flex-wrap:wrap;gap:6px;display:flex}.aam-thumb{border:1px solid var(--border);border-radius:6px;width:48px;height:48px;position:relative;overflow:hidden}.aam-thumb img{object-fit:cover;width:100%;height:100%}.aam-thumb-remove{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:10px;display:flex;position:absolute;top:1px;right:1px}.aam-thumb-add{border:2px dashed var(--border);cursor:pointer;width:48px;height:48px;color:var(--text-muted);background:0 0;border-radius:6px;justify-content:center;align-items:center;font-size:20px;display:flex}.aam-thumb-add:hover{border-color:var(--accent);color:var(--accent)}.obj-toggles{flex-direction:column;gap:8px;display:flex}.obj-toggle-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.obj-toggle-btns{gap:4px;display:flex}.obj-toggle-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:.72rem;transition:all .15s}.obj-toggle-btn:hover{border-color:var(--accent);color:var(--accent)}.obj-toggle-remove.active{background:var(--error-bg);color:var(--error-text);border-color:var(--error-border)}.obj-toggle-add.active{background:var(--accent);color:#fff;border-color:var(--accent)}.obj-toggle-checkbox{color:var(--text-heading);cursor:pointer;align-items:center;gap:6px;font-size:.78rem;display:flex}.obj-toggle-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.obj-toggle-room-type{flex-direction:column;gap:4px;padding-top:4px;display:flex}.gs-env-row{align-items:center;gap:6px;display:flex}.gs-weather-hint{color:var(--text-muted);margin-top:4px;font-size:.72rem;font-style:italic;display:block}.maps-modal{flex-direction:column;display:flex}.maps-layout{flex:1;min-height:0;display:flex}.maps-sidebar{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;width:220px;min-width:220px;display:flex}.maps-sidebar-header{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:12px;display:flex}.maps-sidebar-header h3{color:var(--text-heading);margin:0;font-size:.9rem}.maps-new-btn{justify-content:center;width:100%}.maps-region-list{flex-direction:column;flex:1;gap:4px;padding:8px;display:flex;overflow-y:auto}.maps-region-item{cursor:pointer;border:2px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;transition:background .15s,border-color .15s;display:flex}.maps-region-item:hover{background:var(--bg-panel)}.maps-region-item.active{border-color:var(--accent);background:var(--accent-bg,#6366f10f)}.maps-color-chip{border:1px solid #00000026;border-radius:4px;flex-shrink:0;width:16px;height:16px}.maps-region-name{min-width:0;font-size:.78rem;font-family:var(--sans);color:var(--text-heading);background:0 0;border:none;border-radius:4px;flex:1;padding:2px 4px}.maps-region-name:focus{background:var(--bg);outline:1px solid var(--accent)}.maps-region-delete{cursor:pointer;width:20px;height:20px;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;display:flex}.maps-region-delete:hover{color:var(--error-text);background:var(--error-bg)}.maps-empty{color:var(--text-muted);text-align:center;padding:16px 8px;font-size:.78rem}.maps-viewport-wrap{flex-direction:column;flex:1;min-width:0;display:flex}.room-crop-sidebar{justify-content:flex-start}.room-crop-instructions{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex}.room-crop-instructions p{color:var(--text-muted);margin:0;font-size:.82rem;line-height:1.45}.room-crop-footer{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:12px;display:flex}.room-crop-footer .aam-btn{flex:1;justify-content:center;min-width:0}@media (width<=640px){.maps-layout{flex-direction:column}.maps-sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;min-width:0;max-height:180px}}@media (width<=900px){.project-page-top-bar{padding:12px 16px 0}.project-layout{padding:12px 16px 24px}.asset-tray{z-index:300;border-left:1px solid var(--border);background:var(--surface,#fff);width:260px;min-width:260px;box-shadow:var(--shadow-lg,0 20px 60px #0000004d);border-right:none;border-radius:0;transition:transform .25s;position:fixed;inset:0 0 0 auto;transform:translate(0)}.asset-tray.asset-tray-collapsed{pointer-events:none;transform:translate(100%)}.asset-tray-backdrop{z-index:299;background:#00000059;display:block;position:fixed;inset:0}.mod-panel{z-index:300;border-right:1px solid var(--border);background:var(--surface,#fff);width:280px;min-width:280px;box-shadow:var(--shadow-lg,0 20px 60px #0000004d);border-left:none;border-radius:0;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(0)}.mod-panel.mod-panel-collapsed{pointer-events:none;transform:translate(-100%)}.mod-panel-backdrop{z-index:299;background:#00000059;display:block;position:fixed;inset:0}.work-area-image{padding:8px}}.credit-balance-btn{background:var(--surface,#f8f9fa);border:1px solid var(--border);cursor:pointer;color:var(--text);border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s;display:flex}.credit-balance-btn:hover{background:var(--bg-subtle,#eef1f5);border-color:var(--primary,#2563eb)}.credit-balance-btn svg{color:var(--primary,#2563eb)}.icm-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.icm-modal{background:var(--bg,#fff);text-align:center;width:90%;max-width:400px;box-shadow:var(--shadow-lg,0 20px 60px #0000004d);border-radius:16px;padding:32px;position:relative}.icm-close{color:var(--text-muted,#888);cursor:pointer;background:0 0;border:none;padding:4px;font-size:24px;line-height:1;position:absolute;top:12px;right:16px}.icm-icon{margin-bottom:12px}.icm-title{color:var(--text);margin:0 0 8px;font-size:20px;font-weight:700}.icm-desc{color:var(--text-muted,#666);margin:0 0 24px;font-size:14px;line-height:1.5}.icm-actions{justify-content:center;gap:12px;display:flex}.icm-actions .auth-btn{min-width:120px}.credits-main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:32px;overflow-y:auto}.credits-back-btn{color:var(--text-muted,#666);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-bottom:12px;padding:0;font-size:14px;transition:color .15s;display:inline-flex}.credits-back-btn:hover{color:var(--primary,#2563eb)}.credits-page-title{color:var(--text);margin:0 0 24px;font-size:28px;font-weight:700}.credits-balance-section{margin-bottom:40px}.credits-balance-card{text-align:center;color:#fff;background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);border-radius:16px;padding:32px;box-shadow:0 4px 20px #2563eb40}.credits-balance-number{font-size:56px;font-weight:800;line-height:1}.credits-balance-label{opacity:.85;margin-top:8px;font-size:15px}.credits-pricing-note{text-align:center;color:var(--text-muted,#888);margin-top:12px;font-size:13px}.credits-section-title{color:var(--text);margin:0 0 16px;font-size:18px;font-weight:600}.credits-tiers-section{margin-bottom:40px}.credits-tier-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.credits-tier-card{background:var(--bg,#fff);border:2px solid var(--border,#e2e8f0);text-align:center;cursor:pointer;border-radius:12px;padding:24px 16px;transition:border-color .15s,box-shadow .15s,transform .15s;position:relative}.credits-tier-card:hover{border-color:var(--primary,#2563eb);transform:translateY(-2px);box-shadow:0 4px 16px #2563eb26}.credits-tier-card:disabled{opacity:.6;cursor:not-allowed;transform:none}.credits-tier-featured{border-color:var(--primary,#2563eb)}.credits-tier-tag{background:var(--primary,#2563eb);color:#fff;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:700;position:absolute;top:-10px;right:12px}.credits-tier-price{color:var(--text);margin-bottom:4px;font-size:28px;font-weight:800}.credits-tier-credits{color:var(--text);font-size:15px;font-weight:600}.credits-tier-bonus{color:var(--primary,#2563eb);margin-top:4px;font-size:12px;font-weight:600}.credits-tier-action{color:var(--primary,#2563eb);margin-top:16px;font-size:13px;font-weight:600}.credits-history-section{margin-bottom:40px}.credits-history-loading{justify-content:center;padding:32px;display:flex}.credits-history-empty{text-align:center;color:var(--text-muted,#888);padding:24px;font-size:14px}.credits-history-table-wrap{border:1px solid var(--border);border-radius:12px;overflow-x:auto}.credits-history-table{border-collapse:collapse;width:100%;font-size:14px}.credits-history-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted,#888);background:var(--bg-subtle,#f8f9fa);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600}.credits-history-table td{border-bottom:1px solid var(--border);color:var(--text);padding:12px 16px}.credits-history-table tbody tr:last-child td{border-bottom:none}.txn-positive{color:#10b981;font-weight:600}.txn-negative{color:var(--text-muted,#888)}.checkout-success-main{flex:1;justify-content:center;align-items:center;padding:32px;display:flex}.checkout-success-card{background:var(--bg,#fff);border:1px solid var(--border);text-align:center;width:100%;max-width:460px;box-shadow:var(--shadow-md,0 4px 12px #00000014);border-radius:16px;padding:48px 40px}.checkout-success-icon{margin-bottom:16px}.checkout-success-title{color:var(--text);margin:0 0 8px;font-size:24px;font-weight:700}.checkout-success-desc{color:var(--text-muted,#666);margin:0 0 24px;font-size:15px;line-height:1.5}.checkout-success-balance{background:var(--bg-subtle,#f8f9fa);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 24px;display:flex}.checkout-success-balance-label{color:var(--text-muted,#666);font-size:14px}.checkout-success-balance-number{color:var(--primary,#2563eb);font-size:18px;font-weight:700}.checkout-success-actions{justify-content:center;gap:12px;display:flex}.checkout-modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.checkout-modal-container{background:var(--bg,#fff);border-radius:16px;flex-direction:column;width:100%;max-width:520px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.checkout-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.checkout-modal-title{color:var(--text);margin:0;font-size:18px;font-weight:700}.checkout-modal-close{cursor:pointer;color:var(--text-muted,#888);background:0 0;border:none;padding:0 4px;font-size:28px;line-height:1;transition:color .15s}.checkout-modal-close:hover{color:var(--text)}.checkout-modal-body{flex:1;padding:24px;overflow-y:auto}.checkout-modal-success{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;display:flex}.checkout-modal-success h3{color:var(--text);margin:0;font-size:20px;font-weight:700}.checkout-modal-success p{color:var(--text-muted,#666);margin:0 0 12px;font-size:14px;line-height:1.5}.checkout-modal-error{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:40px 24px;display:flex}.checkout-modal-error p{color:var(--text-muted,#666);margin:0;font-size:14px}.icm-tiers{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.icm-tier-btn{border:1px solid var(--border);background:var(--bg-subtle,#f8f9fa);color:var(--text);cursor:pointer;text-align:center;border-radius:10px;padding:12px 16px;font-size:14px;font-weight:600;transition:all .15s}.icm-tier-btn:hover{border-color:var(--primary,#2563eb);color:var(--primary,#2563eb);background:#2563eb0f}.pro-structure-card{border:1px solid var(--border);background:var(--bg-subtle,#f8f9fa);border-radius:12px;margin-bottom:16px;overflow:hidden}.pro-structure-card-header{background:var(--bg,#fff);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 16px;display:flex}.pro-structure-collapse{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:2px}.pro-structure-title{flex:1;margin:0;font-size:15px;font-weight:600}.pro-structure-remove{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.pro-structure-remove:hover{color:#ef4444}.pro-structure-body{flex-direction:column;gap:16px;padding:16px;display:flex}.pro-section-label{color:var(--text);margin:0;font-size:14px;font-weight:600}.pro-required{color:var(--text-muted);font-size:12px;font-weight:400}.pro-site-section{flex-direction:column;gap:8px;display:flex}.pro-site-toggle{gap:4px;display:flex}.pro-site-preview{border:1px solid var(--border);background:var(--bg,#fff);border-radius:8px;align-items:center;gap:10px;padding:8px;display:flex}.pro-site-preview img{object-fit:cover;border-radius:6px;width:60px;height:60px}.pro-site-thumb{border:1px solid var(--border);background:var(--bg,#fff);border-radius:10px;max-width:400px;margin:0 auto;overflow:hidden}.pro-site-thumb img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.pro-site-thumb-label{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.pro-site-replace-btn{padding:4px 10px;font-size:12px}.pro-site-status{color:#10b981;font-size:12px;font-weight:500}.pro-billing-alert{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.pro-add-structure-btn{align-self:flex-start;margin-top:4px}.pro-optional{color:var(--text-muted);font-size:12px;font-weight:400}.pro-elev-hint{color:#d97706;margin:0;font-size:12px}.pro-context-plans-row{gap:16px;display:flex}.pro-context-plan-slot{flex-direction:column;flex:1;gap:6px;display:flex}.pro-context-plan-label{color:var(--text-muted);font-size:13px;font-weight:500}.pro-context-plan-upload{border:2px dashed var(--border);background:var(--bg-subtle);color:var(--text-muted);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;font-size:13px;transition:border-color .2s,background .2s;display:flex}.pro-context-plan-upload:hover{border-color:var(--primary);background:var(--primary-subtle,#eff6ff)}.pro-context-plan-preview{border:1px solid var(--border);border-radius:10px;max-width:200px;position:relative;overflow:hidden}.pro-context-plan-preview img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.pro-context-plan-remove{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;line-height:1;display:flex;position:absolute;top:4px;right:4px}.pro-materials-toggle{gap:4px;display:flex}.pro-materials-reference{margin-top:8px}.pro-materials-manual{border:1px solid var(--border);background:var(--bg-subtle);border-radius:8px;flex-direction:column;gap:12px;margin-top:8px;padding:12px;display:flex}.pro-optional-sections{flex-direction:column;gap:8px;display:flex}.multi-upload-section{border:1px solid var(--border);border-radius:8px;overflow:hidden}.multi-upload-toggle{border:none;border-radius:0;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:13px;display:flex}.multi-upload-count{color:var(--text-muted);font-weight:400}.multi-upload-items{background:var(--bg,#fff);flex-direction:column;gap:12px;padding:12px;display:flex}.multi-upload-item{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex}.multi-upload-item-header{justify-content:space-between;align-items:center;display:flex}.multi-upload-item-num{color:var(--text-muted);font-size:12px;font-weight:600}.multi-upload-remove{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:18px;line-height:1}.multi-upload-remove:hover{color:#ef4444}.multi-upload-field{border:1px solid var(--border);background:var(--bg-subtle,#f8f9fa);border-radius:6px;width:100%;padding:8px 10px;font-size:13px}.multi-upload-add-more{align-self:flex-start;font-size:12px}.plan-designation-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-top:8px;display:flex}.plan-designation-toggle input{display:none}.plan-designation-slider{background:var(--border);border-radius:10px;flex-shrink:0;width:36px;height:20px;transition:background .2s;position:relative}.plan-designation-slider:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px}.plan-designation-toggle input:checked+.plan-designation-slider{background:var(--primary)}.plan-designation-toggle input:checked+.plan-designation-slider:after{transform:translate(16px)}.plan-designation-label{color:var(--text-secondary);font-size:12px;font-weight:500}.plan-designation-toggle input:checked~.plan-designation-label{color:var(--primary)}.plan-designation-badge{background:var(--primary);color:#fff;border-radius:4px;margin-top:2px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}.gmap-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gmap-modal{background:var(--bg,#fff);border-radius:16px;flex-direction:column;width:90vw;max-width:1200px;height:85vh;display:flex;overflow:hidden}.gmap-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.gmap-header h2{margin:0;font-size:18px}.gmap-search{border-bottom:1px solid var(--border);padding:10px 20px}.gmap-search-input{border:1px solid var(--border);border-radius:8px;width:100%;padding:10px 14px;font-size:14px}.gmap-map-container{flex:1;min-height:0}.gmap-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.gmap-hint{color:var(--text-muted);margin:0;font-size:13px}.gmap-actions{gap:8px;display:flex}.structure-switcher{border-bottom:1px solid var(--border);background:var(--bg,#fff);flex-shrink:0;gap:4px;padding:8px 12px;display:flex;overflow-x:auto}.structure-switcher-tab{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);white-space:nowrap;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.structure-switcher-tab:hover{background:var(--bg-subtle,#f8f9fa)}.structure-switcher-tab.active{background:var(--primary,#2563eb);color:#fff;border-color:var(--primary,#2563eb)}.spinner-sm{border-width:2px;width:14px;height:14px}.structure-plans-panel{border-bottom:1px solid var(--border);background:var(--bg-subtle,#f8f9fa);flex-shrink:0}.structure-plans-header{cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.structure-plans-body{flex-direction:column;gap:8px;padding:8px 12px 12px;display:flex}.structure-plans-thumbs{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.structure-plans-thumb{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;display:flex}.structure-plans-thumb img{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:64px;height:64px}.structure-plans-thumb span{color:var(--text-muted);text-transform:capitalize;font-size:10px}.structure-plans-actions{gap:8px;margin-top:4px;display:flex}.structure-plans-btn{padding:6px 12px;font-size:12px}.structure-plans-btn-danger{color:#ef4444;background:#ef44441a;border:1px solid #ef444466}.structure-plans-btn-danger:hover{background:#ef44442e;border-color:#ef444499}.project-page-delete-btn{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef444466;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.project-page-delete-btn:hover{background:#ef44441a;border-color:#ef4444b3}.site-info-panel{border:1px solid var(--border);background:var(--bg-subtle,#f8f9fa);border-radius:8px;margin-bottom:0}.site-info-header{cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.site-info-body{flex-direction:column;gap:8px;padding:8px 12px 12px;display:flex}.site-info-thumbs{flex-wrap:wrap;gap:10px;display:flex}.site-info-thumb{flex-direction:column;align-items:center;gap:4px;display:flex}.site-info-thumb img{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:80px;height:60px}.site-info-thumb span{color:var(--text-muted);font-size:10px}.site-info-upload-actions{flex-wrap:wrap;gap:8px;display:flex}.site-info-upload-actions .site-info-btn{align-items:center;gap:6px;display:inline-flex}.site-info-actions{flex-wrap:wrap;gap:8px;display:flex}.site-info-btn{padding:6px 12px;font-size:12px}.structure-switcher-add{color:var(--primary,#2563eb);border-style:dashed;border-color:var(--primary,#2563eb);opacity:.7}.structure-switcher-add:hover{opacity:1;background:#2563eb0f}.structure-plans-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:4px;font-size:11px;font-weight:600}.structure-plans-site-thumb{max-width:280px}.structure-plans-site-thumb img{border:1px solid var(--border);border-radius:8px;width:100%}.structure-plans-thumb-btn{border:1px solid var(--border);background:var(--bg,#fff);cursor:pointer;color:var(--primary,#2563eb);border-radius:4px;padding:2px 8px;font-size:10px;transition:all .15s}.structure-plans-thumb-btn:hover{background:var(--primary,#2563eb);color:#fff;border-color:var(--primary,#2563eb)}.structure-plans-thumb-btn-remove{color:#ef4444;justify-content:center;align-items:center;padding:2px 4px;display:flex}.structure-plans-thumb-btn-remove:hover{color:#fff;background:#ef4444;border-color:#ef4444}.structure-plans-thumb-actions{align-items:center;gap:4px;display:flex}.structure-plans-thumb-img-wrap{width:64px;height:64px;position:relative}.structure-plans-thumb-img-wrap img{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:64px;height:64px}.elev-badge{white-space:nowrap;text-transform:uppercase;letter-spacing:.3px;color:#fff;border-radius:4px;padding:1px 6px;font-size:8px;font-weight:600;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.elev-badge-approved{background:#10b981;color:#fff!important}.elev-badge-pending{background:#f59e0b;color:#fff!important}.elev-badge-ground{background:var(--primary,#2563eb);color:#fff!important}.elev-badge-render{background:#8b5cf6;color:#fff!important}.structure-plans-elev-pair{align-items:flex-start;gap:6px;display:flex}.structure-plans-elev-pair .structure-plans-thumb{flex:1;min-width:0}.structure-plans-thumb-placeholder{border:2px dashed var(--border);cursor:pointer;width:64px;height:64px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;transition:border-color .2s;display:flex}.structure-plans-thumb-placeholder:hover{border-color:var(--primary,#2563eb);color:var(--primary,#2563eb)}.structure-plans-sections-row{flex-wrap:wrap;gap:16px;display:flex}.structure-plans-section-col{flex-direction:column;gap:4px;display:flex}.structure-plans-action-btns{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.structure-plans-add-btns{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.modal-backdrop,.add-structure-backdrop{z-index:1050;background:#00000073;position:fixed;inset:0}.add-structure-modal{z-index:1100;background:var(--bg,#fff);border-radius:12px;flex-direction:column;width:90vw;max-width:800px;max-height:85vh;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0000004d}.add-structure-modal--fullscreen{border-radius:14px;width:96vw;max-width:none;max-height:94vh;top:3vh;left:2vw;transform:none}.add-structure-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.add-structure-modal-header h2{margin:0;font-size:18px}.add-structure-modal-body{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.add-structure-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;padding:16px 20px;display:flex}.add-structure-price-note{color:var(--text-muted);background:var(--bg-subtle,#f8f9fa);border-radius:6px;margin:0;padding:8px 12px;font-size:13px}.mod-pro-elev{flex-direction:column;gap:16px;padding:4px 0;display:flex}.mod-pro-elev-status{border-radius:6px;padding:8px 12px;font-size:13px;font-weight:500}.mod-pro-elev-approved{color:#10b981;background:#ecfdf5;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;display:flex}.mod-pro-elev-pending{color:#d97706;background:#fffbeb;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;display:flex}.mod-pro-elev-section{flex-direction:column;gap:8px;display:flex}.mod-pro-elev-tool-btn{border:1px solid var(--border);background:var(--bg,#fff);cursor:pointer;color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;transition:all .15s;display:flex}.mod-pro-elev-tool-btn:hover:not(:disabled){border-color:var(--primary,#2563eb);color:var(--primary,#2563eb)}.mod-pro-elev-tool-btn:disabled{opacity:.5;cursor:not-allowed}.mod-pro-elev-cost{color:var(--text-muted);margin-left:auto;font-size:11px}.mod-pro-elev-approve{border-top:1px solid var(--border);margin-top:auto;padding-top:12px}.mod-pro-elev-approve-btn{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-size:14px;font-weight:600;transition:background .15s;display:flex}.mod-pro-elev-approve-btn:hover:not(:disabled){background:#059669}.mod-pro-elev-approve-btn:disabled{opacity:.5;cursor:not-allowed}.mod-pro-elev-approve-btn.approved{color:#059669;background:#d1fae5}.ect-overlay-controls{border-bottom:1px solid #e5e7eb;padding:8px 14px 4px}.ect-overlay-label{color:#6b7280;align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.ect-overlay-slider{accent-color:#6366f1;cursor:pointer;flex:1;height:4px}.ect-overlay-pct{text-align:right;font-variant-numeric:tabular-nums;min-width:32px}.aerial-source-switch{border-bottom:1px solid #e5e7eb;gap:4px;padding:10px 12px;display:flex}.aerial-src-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:4px;padding:6px 4px;font-size:11px;font-weight:500;transition:all .15s;display:flex}.aerial-src-btn:hover{color:#3b82f6;border-color:#3b82f6}.aerial-src-btn.active{color:#2563eb;background:#eff6ff;border-color:#3b82f6;font-weight:600}.aerial-upload-area{border-bottom:1px solid #e5e7eb;padding:16px 12px}.aerial-upload-btn{color:#6b7280;cursor:pointer;background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;flex-direction:column;align-items:center;gap:6px;width:100%;padding:24px 12px;font-size:13px;transition:all .15s;display:flex}.aerial-upload-btn:hover{color:#3b82f6;background:#eff6ff;border-color:#3b82f6}.aerial-view-type-toggle{border-bottom:1px solid #e5e7eb;gap:4px;padding:8px 12px;display:flex}.aerial-vt-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:5px;flex:1;padding:5px 8px;font-size:12px;font-weight:500;transition:all .15s}.aerial-vt-btn:hover{color:#3b82f6;border-color:#3b82f6}.aerial-vt-btn.active{color:#2563eb;background:#eff6ff;border-color:#3b82f6;font-weight:600}.aerial-add-struct{border-bottom:1px solid #e5e7eb;padding:8px 12px}.aerial-struct-picker{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.aerial-struct-picker-label{color:#6b7280;margin-right:4px;font-size:12px;font-weight:500}.aerial-struct-pick-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:5px;padding:4px 10px;font-size:11px;transition:all .15s}.aerial-struct-pick-btn:hover{color:#2563eb;background:#eff6ff;border-color:#3b82f6}.aerial-orient-section{padding:6px 0 4px}.aerial-orient-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.aerial-orient-label{color:#6b7280;white-space:nowrap;font-size:12px;font-weight:500}.aerial-orient-select{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:5px;flex:1;padding:4px 8px;font-size:12px}.aerial-orient-deg{color:#94a3b8;font-variant-numeric:tabular-nums;min-width:28px;font-size:11px}.aerial-empty-msg{text-align:center;padding:24px 16px}.aerial-empty-msg p{color:#94a3b8;font-size:13px}.compass-selector{flex-shrink:0}.aerial-source-modal{z-index:1100;background:var(--surface);border-radius:12px;flex-direction:column;width:min(460px,92vw);max-height:90vh;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 20px 60px #00000040}.aerial-source-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.aerial-source-modal-header h2{margin:0;font-size:18px}.aerial-source-modal-body{flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.aerial-source-desc{color:#6b7280;margin:0 0 4px;font-size:13px}.aerial-source-option{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;padding:14px;display:flex}.aerial-source-option-header{color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.aerial-source-option-actions{flex-wrap:wrap;gap:8px;display:flex}.aerial-source-action-btn{flex:1;min-width:120px;padding:8px 12px!important;font-size:13px!important}.aerial-upload-zone{color:#6b7280;cursor:pointer;background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:8px;padding:14px 12px;font-size:13px;transition:all .15s;display:flex}.aerial-upload-zone:hover{color:#3b82f6;background:#eff6ff;border-color:#3b82f6}.aerial-source-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;padding:12px 20px;display:flex}.confirm-remove-modal{z-index:1200;background:var(--surface);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:8px;width:min(360px,90vw);padding:24px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0000004d}.confirm-remove-icon{margin-bottom:4px}.confirm-remove-modal h3{color:var(--text-heading);margin:0;font-size:16px}.confirm-remove-modal p{color:#6b7280;margin:0;font-size:13px;line-height:1.4}.confirm-remove-actions{justify-content:center;gap:10px;width:100%;margin-top:12px;display:flex}.confirm-remove-actions .auth-btn{min-width:90px}.exterior-view-modal{background:var(--surface);border-radius:12px;flex-direction:column;width:340px;max-width:92vw;display:flex;overflow:hidden;box-shadow:0 8px 40px #00000040}.exterior-view-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.exterior-view-modal-header h3{margin:0;font-size:.95rem}.exterior-view-modal-body{flex-direction:column;align-items:center;gap:16px;padding:20px 16px;display:flex}.exterior-view-desc{color:var(--text-muted);text-align:center;margin:0;font-size:.8rem;line-height:1.4}.exterior-view-compass-wrap{justify-content:center;display:flex}.exterior-view-orbit{margin:0 auto;display:block}.exterior-view-info{flex-direction:column;align-items:center;gap:4px;display:flex}.exterior-view-direction{color:var(--text-heading);font-size:1rem;font-weight:600}.exterior-view-sides{color:var(--text-muted);font-size:.75rem}.exterior-view-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.lightbox-overlay{z-index:9999;cursor:zoom-out;background:#000000e0;justify-content:center;align-items:center;animation:.18s lightbox-fade-in;display:flex;position:fixed;inset:0}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}.lightbox-image{object-fit:contain;cursor:default;-webkit-user-select:none;user-select:none;border-radius:6px;max-width:92vw;max-height:92vh;box-shadow:0 8px 40px #00000080}.lightbox-close{cursor:pointer;color:#fff;background:#ffffff1f;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background .15s;display:flex;position:absolute;top:18px;right:18px}.lightbox-close:hover{background:#ffffff40}.work-area-image-clickable,.site-info-thumb-clickable,.structure-plans-thumb-img-clickable{cursor:zoom-in}.structure-plans-thumb-img-clickable img{pointer-events:none}.work-area-upscale-wrap{position:relative}.work-area-upscale-menu{background:var(--bg-card);border:1px solid var(--border);z-index:50;border-radius:10px;min-width:180px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000002e}.work-area-upscale-menu-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 10px 4px;font-size:11px;font-weight:600}.work-area-upscale-option{cursor:pointer;width:100%;color:var(--text-primary);background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;font-weight:500;transition:background .12s;display:flex}.work-area-upscale-option:hover{background:var(--bg-hover)}.work-area-upscale-status{color:#f59e0b;align-items:center;gap:8px;margin-left:auto;margin-right:8px;font-size:12px;font-weight:500;display:flex}.spinner--sm{border-width:2px;width:14px;height:14px}.work-area-hires-btn{color:#6366f1;cursor:pointer;white-space:nowrap;background:#6366f11a;border:1px solid #6366f1;border-radius:6px;align-items:center;gap:5px;margin-left:auto;margin-right:8px;padding:4px 10px;font-size:12px;font-weight:600;transition:background .15s;display:flex}.work-area-hires-btn:hover{background:#6366f133}.credit-badge{color:#6366f1;vertical-align:middle;letter-spacing:.02em;white-space:nowrap;background:#6366f126;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.pro-upgrade-modal{background:var(--bg,#fff);border-radius:16px;width:90vw;max-width:820px;max-height:90vh;position:relative;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.pro-upgrade-subtitle{color:var(--text-muted,#666);margin:0;padding:0 24px 8px;font-size:14px;line-height:1.5}.pro-upgrade-plans{grid-template-columns:repeat(3,1fr);gap:16px;padding:16px 24px 24px;display:grid}.pro-upgrade-card{border:1px solid var(--border,#e2e8f0);border-radius:12px;flex-direction:column;padding:20px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.pro-upgrade-card:hover{border-color:var(--accent,#6366f1);box-shadow:0 4px 16px #6366f11a}.pro-upgrade-card--highlight{border-color:var(--accent,#6366f1);box-shadow:0 4px 20px #6366f126}.pro-upgrade-card-badge{background:var(--accent,#6366f1);color:#fff;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:2px 12px;font-size:11px;font-weight:700;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.pro-upgrade-card-name{margin:0 0 8px;font-size:18px;font-weight:700}.pro-upgrade-card-price{align-items:baseline;gap:4px;margin-bottom:8px;display:flex}.pro-upgrade-card-amount{color:var(--text,#1a202c);font-size:32px;font-weight:800}.pro-upgrade-card-interval{color:var(--text-muted,#666);font-size:14px}.pro-upgrade-card-desc{color:var(--text-muted,#666);margin:0 0 12px;font-size:13px;line-height:1.4}.pro-upgrade-card-features{flex:1;margin:0 0 16px;padding:0;list-style:none}.pro-upgrade-card-features li{color:var(--text,#1a202c);align-items:center;gap:8px;padding:3px 0;font-size:13px;display:flex}.pro-upgrade-card-features li svg{color:#10b981;flex-shrink:0}.pro-upgrade-card-btn{justify-content:center;width:100%;margin-top:auto}@media (width<=720px){.pro-upgrade-plans{grid-template-columns:1fr}.pro-upgrade-modal{max-width:95vw}}
