html{height:-webkit-fill-available}#root,body,html{background:#4b4c3a;overflow-x:hidden}#root,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;max-width:100vw;min-height:100vh;min-height:-webkit-fill-available;padding:0 0 env(safe-area-inset-bottom);width:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.structure-detail{display:flex;flex-direction:column;margin:0 auto;max-width:1200px;min-height:100vh;padding:2rem}.structure-detail.error,.structure-detail.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;text-align:center}.spinner{border:4px solid #0000001a;border-left-color:#007bff;height:36px;margin-bottom:1rem;width:36px}.detail-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.detail-header h1{color:#2c3e50;font-size:1.8rem;margin:0}.back-button{background-color:#6c757d;transition:background-color .2s}.back-button:hover{background-color:#5a6268}.view-controls{display:flex}.view-controls button{background-color:#f8f9fa;border:1px solid #ced4da;cursor:pointer;font-size:1rem;padding:.5rem 1rem;transition:all .2s}.view-controls button:first-child{border-bottom-left-radius:4px;border-top-left-radius:4px}.view-controls button:last-child{border-bottom-right-radius:4px;border-top-right-radius:4px}.view-controls button.active{background-color:#007bff;border-color:#007bff;color:#fff}.detail-content{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;flex:1 1;margin-bottom:2rem;overflow:hidden}.model-container{height:600px;width:100%}model-viewer{--poster-color:#0000;background-color:#f8f9fa;height:100%;width:100%}.ar-button{background-color:#007bff;border:none;border-radius:4px;color:#fff;padding:.5rem 1rem;position:absolute;right:16px;top:16px}.json-container{max-height:600px;overflow:auto;padding:1rem}.json-container pre{background-color:#f8f9fa;border-radius:4px;font-family:monospace;font-size:.9rem;margin:0;padding:1rem;white-space:pre-wrap}.detail-info{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;margin-bottom:2rem;padding:1.5rem}.detail-info h2{color:#2c3e50;font-size:1.5rem;margin-bottom:1rem;margin-top:0}.info-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.info-item{display:flex;flex-direction:column}.info-label{color:#6c757d;font-weight:700;margin-bottom:.25rem}.detail-actions{display:flex;flex-wrap:wrap;gap:1rem}.download-button{background-color:#28a745;border-radius:4px;color:#fff;display:inline-block;padding:.75rem 1.5rem;text-align:center;text-decoration:none;transition:background-color .2s}.download-button:hover{background-color:#218838}@media (max-width:768px){.structure-detail{padding:1rem}.detail-header{align-items:flex-start;flex-direction:column}.model-container{height:400px}.detail-actions{flex-direction:column}.download-button{width:100%}}.floor-plan-viewer{box-sizing:border-box;display:flex;flex-direction:column;height:100%;width:100%}.floor-plan-container{height:100%;overflow:hidden;position:relative;width:100%}.floor-plan-canvas{background-color:#f0f0f0;cursor:grab;height:100%;width:100%}.floor-plan-canvas:active{cursor:grabbing}.floor-plan-controls button{background-color:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 12px;transition:background-color .2s,border-color .2s}.floor-plan-controls button:hover{background-color:#f0f0f0;border-color:#999}.floor-plan-controls button:active{background-color:#e0e0e0;transform:translateY(1px)}.floor-plan-details{background-color:#ffffffe6;border-radius:4px;box-shadow:0 2px 8px #00000026;max-height:calc(100% - 30px);overflow-y:auto;padding:15px;position:absolute;right:15px;top:15px;width:250px;z-index:10}.floor-plan-details h3{border-bottom:1px solid #ddd;color:#333;font-size:16px;margin-bottom:10px;margin-top:0;padding-bottom:5px}.floor-plan-details p{font-size:14px;line-height:1.4;margin:5px 0}.floor-plan-details strong{color:#555;font-weight:600}.item-attributes{border-top:1px dashed #eee;margin-top:10px;padding-top:5px}.item-attributes p{font-weight:600;margin-bottom:5px}.item-attributes ul{font-size:12px;list-style-type:disc;margin:5px 0 0;padding-left:20px}.item-attributes li{color:#666;margin-bottom:3px}.floor-plan-error,.floor-plan-loading{align-items:center;background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;display:flex;flex-direction:column;height:400px;justify-content:center}.floor-plan-error p,.floor-plan-loading p{color:#666;font-size:14px;margin-top:15px}.floor-plan-error p{color:#d32f2f;max-width:80%;text-align:center}.loading-spinner{border:4px solid #0000001a;margin-bottom:15px}.floor-plan-legend{background-color:#fffc;border-radius:4px;bottom:70px;box-shadow:0 2px 4px #0000001a;font-size:12px;left:15px;padding:10px;position:absolute;z-index:10}.legend-title{font-size:13px;font-weight:600;margin-bottom:5px}.legend-item{align-items:center;display:flex;margin-bottom:4px}.legend-color{border:1px solid #0003;height:12px;margin-right:5px;width:12px}.room-label{background-color:#ffffffb3;border-radius:2px;color:#555;font-size:12px;padding:3px 6px;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none}.floor-plan-tooltip{background-color:#000c;color:#fff;pointer-events:none;transition:opacity .2s;z-index:20}.floor-plan-tooltip,.scale-indicator{border-radius:3px;font-size:12px;padding:5px 8px;position:absolute}.scale-indicator{background-color:#fffc;bottom:15px;color:#666;right:15px}@media print{.floor-plan-controls,.floor-plan-details,.floor-plan-legend{display:none!important}.floor-plan-container{border:none;height:100vh;page-break-inside:avoid}.floor-plan-canvas{background-color:#fff}}.measurement-label-clickable{cursor:pointer;transition:fill .2s ease,opacity .2s ease}.measurement-label-clickable:hover{fill:#0052cc!important;opacity:.8}.measurement-bg-clickable{cursor:pointer;transition:fill .2s ease}.measurement-bg-clickable:hover{fill:#fff!important}.dimension-input-no-spinner::-webkit-inner-spin-button,.dimension-input-no-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.dimension-input-no-spinner[type=number]{-webkit-appearance:textfield;appearance:textfield}.wall-navigator-scroll::-webkit-scrollbar{width:8px}.wall-navigator-scroll::-webkit-scrollbar-track{background:#0000000d;border-radius:4px}.wall-navigator-scroll::-webkit-scrollbar-thumb{background:#0000004d;border-radius:4px}.wall-navigator-scroll::-webkit-scrollbar-thumb:hover{background:#00000080}.slide-in-panel-container{height:100vh;height:100dvh;left:0;pointer-events:none;position:fixed;top:0;width:420px;z-index:1999}.slide-in-panel-container.right{left:auto;right:0;width:350px}.slide-in-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffffa;box-shadow:4px 0 24px #00000026;box-sizing:border-box;display:flex;flex-direction:column;height:100%;left:0;overflow:hidden;pointer-events:auto;position:absolute;top:0;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);width:100%}.slide-in-panel.open{transform:translateX(0)}.slide-in-panel-container.right .slide-in-panel{box-shadow:-4px 0 24px #00000026;transform:translateX(100%)}.slide-in-panel-container.right .slide-in-panel.open{transform:translateX(0)}.slide-in-panel-container.compact{height:calc(100vh - 80px);height:calc(100dvh - 80px);top:80px;width:350px}.slide-in-panel-container.compact .slide-in-panel{border-radius:12px 0 0 12px}.slide-in-panel-content{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;padding:24px}.slide-in-panel-header{border-bottom:1px solid #e5e7eb;margin-bottom:24px;padding-bottom:16px;position:relative}.slide-in-panel-title{color:#1f2937;font-size:22px;font-weight:600;margin:0;padding-right:40px}.slide-in-panel-close{align-items:center;background-color:initial;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;font-size:24px;font-weight:300;height:36px;justify-content:center;position:absolute;right:-4px;top:-4px;transition:all .2s ease;width:36px}.slide-in-panel-close:hover{background-color:#f3f4f6;color:#374151}.slide-in-panel-body{-webkit-overflow-scrolling:touch;flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding-bottom:40px;padding-right:8px}.slide-in-panel-body::-webkit-scrollbar{width:6px}.slide-in-panel-body::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.slide-in-panel-body::-webkit-scrollbar-thumb{background:#9ca3af;border-radius:3px}.slide-in-panel-body::-webkit-scrollbar-thumb:hover{background:#6b7280}.panel-info-section{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:20px;padding:16px}.panel-info-section-title{color:#374151;font-size:14px;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.panel-info-item{align-items:baseline;color:#6b7280;display:flex;font-size:14px;margin-bottom:8px}.panel-info-item:last-child{margin-bottom:0}.panel-info-label{color:#374151;font-weight:600;margin-right:8px;min-width:80px}.panel-info-value{color:#6b7280;word-break:break-word}.panel-controls{border-top:1px solid #e5e7eb;display:flex;gap:12px;margin-top:20px;padding-top:20px}.panel-button{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:10px 16px;transition:all .2s ease}.panel-button-primary{background-color:#3b82f6;color:#fff}.panel-button-primary:hover{background-color:#2563eb}.panel-button-secondary{background-color:#f3f4f6;border:1px solid #d1d5db;color:#374151}.panel-button-secondary:hover{background-color:#e5e7eb}.panel-button-danger{background-color:#ef4444;color:#fff}.panel-button-danger:hover{background-color:#dc2626}.keyboard-controls-help{background-color:#e0f2fe;border:1px solid #0891b2;border-radius:8px;margin-bottom:20px;padding:12px}.keyboard-controls-title{align-items:center;color:#0c4a6e;display:flex;font-size:14px;font-weight:600;gap:6px;margin-bottom:8px}.keyboard-controls-list{color:#075985;font-size:13px;line-height:1.6}.keyboard-control-item{margin-bottom:4px}.keyboard-key{background-color:#ffffff80;border-radius:3px;font-family:monospace;font-size:12px;font-weight:600;padding:2px 6px}.overlapping-items-section{background-color:#fef3c7;border:1px solid #fbbf24;border-radius:8px;margin-top:20px;padding:16px}.overlapping-items-title{color:#92400e;font-size:14px;font-weight:600;margin-bottom:12px}.overlapping-item{background-color:#fff;border:1px solid #fcd34d;border-radius:6px;cursor:pointer;margin-bottom:8px;padding:8px 12px;transition:all .2s ease}.overlapping-item:hover{background-color:#fffbeb;border-color:#f59e0b}.overlapping-item:last-child{margin-bottom:0}@media (max-width:768px){.slide-in-panel-container{max-width:380px;width:100%}}@media (max-width:480px){.slide-in-panel-container{max-width:none;width:100%}.slide-in-panel-content{padding:16px}}.confirm-dialog-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0006;bottom:0;display:flex;isolation:isolate;justify-content:center;left:0;pointer-events:auto;position:fixed;right:0;top:0;z-index:10000}.confirm-dialog-content{animation:slideUp .3s ease-out;background:#f3e9d2;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:420px;overflow:hidden;width:90%}.confirm-dialog-header{align-items:center;display:flex;justify-content:space-between;padding:1.5rem 1.5rem 0}.confirm-dialog-header h3{color:#54524f;font-size:1.25rem;font-weight:600;margin:0}.confirm-dialog-close{align-items:center;background:none;border:none;border-radius:50%;color:#999;cursor:pointer;display:flex;font-size:1.75rem;height:32px;justify-content:center;margin-right:-8px;transition:all .2s;width:32px}.confirm-dialog-close:hover{background-color:#0000000d;color:#666}.confirm-dialog-body{padding:1rem 1.5rem 1.5rem}.confirm-dialog-body p{color:#54524f;font-size:1rem;line-height:1.5;margin:0}.confirm-dialog-actions{background-color:#baa59433;border-top:1px solid #baa594;display:flex;gap:.75rem;padding:1.5rem}.confirm-dialog-button{border:none;border-radius:10px;box-shadow:0 2px 8px #0000001a;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:600;outline:none;padding:.75rem 1.5rem;transition:all .2s ease}.cancel-button{background-color:#baa5944d;border:1px solid #baa594;color:#54524f}.cancel-button:hover{background-color:#e9ecef}.confirm-button{color:#f3e9d2}.confirm-primary{background-color:#dd9b4a}.confirm-primary:hover{background-color:#b67332}.confirm-danger{background-color:#ef4444}.confirm-danger:hover{background-color:#dc2626}.confirm-success{background-color:#10b981}.confirm-success:hover{background-color:#059669}@media (max-width:480px){.confirm-dialog-content{margin:0 auto;width:95%}.confirm-dialog-actions{flex-direction:column-reverse}.confirm-dialog-button{width:100%}}.clickable-logo{cursor:pointer;transition:transform .2s ease}.clickable-logo:hover{transform:scale(1.05)}.logo-popup-overlay{bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:1002}.logo-popup-content{animation:growFromLogo .15s ease-out;background:#f3e9d2;border-radius:12px;box-shadow:0 4px 20px #00000026;left:16px;overflow:visible;pointer-events:all;position:absolute;top:16px;transform-origin:48px 48px;width:400px}@keyframes growFromLogo{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.logo-popup-content.closing{animation:shrinkToLogo .15s ease-in}@keyframes shrinkToLogo{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}.logo-popup-header{position:absolute;right:-10px;top:-10px;z-index:1}.logo-popup-close{align-items:center;background:#f3e9d2;border:1px solid #baa594;border-radius:50%;box-shadow:0 2px 8px #0000001a;color:#54524f;cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;transition:all .2s;width:32px}.logo-popup-close:hover{background-color:#baa594;transform:scale(1.1)}.logo-popup-body{padding:80px 16px 16px;position:relative}.popup-logo-container{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.popup-logo{height:48px;width:auto}.logo-text{color:#54524f;font-size:1.25rem;font-weight:600}.input-container{border:2px solid #baa594;border-radius:8px;margin-bottom:0;overflow:hidden;position:relative;transition:border-color .2s}.input-container:focus-within{border-color:#dd9b4a}.logo-popup-input{background:#f3e9d2;border:none;box-sizing:border-box;display:block;font-family:inherit;font-size:1rem;height:100%;margin:0;min-height:120px;outline:none;padding:1rem;resize:none;width:100%}.logo-popup-input:disabled{background:#f5f5f5;color:#999;cursor:not-allowed;margin:0}.logo-popup-input:disabled::placeholder{color:#888;font-style:italic}.microphone-icon{bottom:1rem;color:#54524f;cursor:pointer;opacity:.4;position:absolute;right:1rem;transition:opacity .2s}.microphone-icon:hover{color:#dd9b4a;opacity:.7}.action-buttons-container{display:flex;flex-direction:column;gap:.5rem;left:0;margin-top:12px;position:absolute;top:100%;width:100%}.action-buttons{display:flex;flex-direction:row;gap:.5rem;width:100%}.logo-popup-content .action-button{align-items:center!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#f3e9d2!important;border:2px solid #f3e9d24d!important;border-radius:22px!important;box-shadow:0 2px 8px #0000001a!important;color:#dd9b4a!important;cursor:pointer;display:inline-flex!important;font-size:13px!important;font-weight:600!important;gap:8px!important;justify-content:center!important;outline:none;padding:10px 20px!important;transition:all .15s ease!important;white-space:nowrap}.logo-popup-content .action-button:hover{background-color:#dd9b4a!important;box-shadow:0 4px 16px #00000026!important;color:#f3e9d2!important;transform:scale(1.02)!important}.action-button svg{flex-shrink:0}.logout-row{display:flex;width:100%}.logout-row .action-button{width:auto}.logo-popup-content .logout-action{color:#b67332!important}.logo-popup-content .logout-action:hover{background-color:#b67332!important;color:#f3e9d2!important}.logo-popup-content .admin-action-button{background-color:#7c3aed!important;border:2px solid #7c3aed!important;color:#fff!important}.logo-popup-content .admin-action-button:hover{background-color:#6b2fd6!important;border-color:#6b2fd6!important;color:#fff!important}.beta-sticker{animation:subtlePulse 3s ease-in-out infinite;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;box-shadow:0 2px 4px #00000026;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:10px;font-weight:700;letter-spacing:.5px;line-height:1;padding:2px 6px;pointer-events:none;position:absolute;transform-origin:center;z-index:10}.beta-sticker--small{border-radius:3px;font-size:9px;padding:2px 5px}.beta-sticker--medium{border-radius:4px;font-size:11px;padding:3px 7px}.beta-sticker--large{border-radius:5px;font-size:13px;padding:4px 9px}.beta-sticker--top-right{right:-8px;top:-8px}.beta-sticker--top-left{left:-8px;top:-8px}.beta-sticker--bottom-right{bottom:-8px;right:-8px}.beta-sticker--bottom-left{bottom:-8px;left:-8px}.beta-sticker--top-right-inside{right:8px;top:4px}.beta-sticker--top-left-inside{left:8px;top:4px}.beta-sticker--bottom-right-inside{bottom:4px;right:8px}.beta-sticker--bottom-left-inside{bottom:4px;left:8px}.beta-sticker--inline{margin-left:8px;top:auto;vertical-align:middle}.beta-sticker--inline,.beta-sticker--inline-superscript{bottom:auto;display:inline-block;left:auto;position:relative;right:auto}.beta-sticker--inline-superscript{font-size:8px!important;margin-left:-5px;padding:1px 4px!important;top:-8px;vertical-align:initial;z-index:1}.beta-sticker--minimal{animation:none;background:#6b7280;box-shadow:0 1px 3px #0000001f}.beta-sticker--bold{animation:boldPulse 2s ease-in-out infinite;background:linear-gradient(135deg,#f093fb,#f5576c);box-shadow:0 3px 6px #f5576c4d}@keyframes subtlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes boldPulse{0%,to{transform:scale(1) rotate(0deg)}25%{transform:scale(1.1) rotate(2deg)}75%{transform:scale(1.1) rotate(-2deg)}}.beta-sticker-container{display:inline-block;position:relative}.beta-sticker--ribbon{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:0;box-shadow:0 3px 6px #0003;color:#fff;font-size:10px;font-weight:700;letter-spacing:.5px;padding:4px 30px;position:absolute;right:-30px;top:6px;transform:rotate(45deg)}.app-loading-container{align-items:center;background:#4b4c3a;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:99999}.loading-content{align-items:center;display:flex;flex-direction:column;gap:24px}.house-loader{height:60px;width:60px}.house-path{stroke-dasharray:200;stroke-dashoffset:200;animation:drawHouse 2s ease-in-out infinite}.loading-message{color:#f3e9d2;font-size:16px;font-weight:500;line-height:1.4;max-width:300px;text-align:center}.checkpoint-dialog-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.checkpoint-dialog-content{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:90%}.checkpoint-dialog-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px}.checkpoint-dialog-header h2{color:#111827;font-size:20px;font-weight:600;margin:0}.checkpoint-dialog-close{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.checkpoint-dialog-close:hover{background-color:#f3f4f6;color:#374151}.checkpoint-dialog-close:disabled{cursor:not-allowed;opacity:.5}.checkpoint-dialog-form{flex:1 1;overflow-y:auto;padding:24px}.form-group label{color:#374151}.form-group .optional{color:#6b7280;font-size:13px;font-weight:400}.form-group input,.form-group textarea{border:1px solid #d1d5db;border-radius:8px;font-family:inherit;font-size:14px;padding:10px 14px;transition:all .2s ease;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-group input:disabled,.form-group textarea:disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed}.form-help{color:#6b7280;display:block;font-size:13px;margin-top:6px}.checkpoint-dialog-actions{align-items:center;background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.btn-primary,.btn-secondary{align-items:center;-webkit-appearance:none;appearance:none;border:none;border-radius:22px;box-sizing:border-box;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:500;height:44px;justify-content:center;line-height:1;margin:0;min-width:100px;padding:10px 24px;transition:all .2s ease;vertical-align:middle}.btn-primary{background-color:#3b82f6;border:1px solid #3b82f6}.btn-primary:hover{background-color:#2563eb;border-color:#2563eb;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-1px)}.btn-primary:disabled{background-color:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none}.btn-secondary{background-color:#fff;border:1px solid #d1d5db;box-sizing:border-box;color:#374151}.btn-secondary:hover{background-color:#f3f4f6;border-color:#9ca3af;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-1px)}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.checkpoint-list{flex:1 1;min-height:200px;overflow-y:auto;padding:16px}.checkpoint-list-empty{color:#6b7280;padding:40px 20px;text-align:center}.checkpoint-list-empty p{font-size:14px;margin:8px 0}.checkpoint-item{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;margin-bottom:12px;padding:16px;transition:all .2s ease}.checkpoint-item:hover{border-color:#3b82f6;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-1px)}.checkpoint-item-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.checkpoint-item-name{color:#111827;font-size:15px;font-weight:600;margin:0}.checkpoint-item-date{color:#6b7280;font-size:13px}.checkpoint-item-description{color:#4b5563;font-size:14px;line-height:1.5;margin:8px 0 0}.checkpoint-item-meta{color:#6b7280;display:flex;font-size:13px;gap:16px;margin-top:12px}.checkpoint-item-actions{display:flex;gap:8px;margin-top:12px}.checkpoint-item-actions button{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:13px;padding:6px 12px;transition:all .2s ease}.checkpoint-item-actions button:hover{background-color:#f3f4f6}.checkpoint-item-actions .btn-danger{border-color:#fecaca;color:#dc2626}.checkpoint-item-actions .btn-danger:hover{background-color:#fee2e2;border-color:#fca5a5}.checkpoint-initial{background-color:#f0f9ff;border-color:#bae6fd}.checkpoint-initial:hover{border-color:#38bdf8}.checkpoint-badge{background-color:#3b82f6;letter-spacing:.05em;text-transform:uppercase}.checkpoint-badge,.checkpoint-version{border-radius:12px;color:#fff;display:inline-block;font-size:11px;font-weight:500;margin-left:8px;padding:2px 8px}.checkpoint-version{background-color:#10b981;font-family:Monaco,Menlo,monospace}.checkpoint-protected-text{color:#6b7280;font-size:13px;font-style:italic;padding:6px 12px}.checkpoint-item-stats{background-color:#fff;border-radius:6px;display:flex;flex-wrap:wrap;font-size:12px;gap:8px;line-height:1.4;margin-top:8px;padding:8px 12px}.checkpoint-item-stats span{background-color:#f3f4f6;border-radius:4px;display:inline-block;padding:2px 6px}.checkpoint-item-stats .stats-label{background-color:initial;color:#4b5563;font-weight:600;padding-left:0}.checkpoint-item-stats .stats-label-admin{background-color:#8b5cf61a;border-radius:4px;color:#8b5cf6;font-weight:600;padding:2px 8px}.checkpoint-item-stats .stats-success{background-color:#d1fae5;color:#065f46}.checkpoint-item-stats .stats-warning{background-color:#fed7aa;color:#92400e}.checkpoint-item-stats .stats-info{background-color:#dbeafe;color:#1e40af}.not-found{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:2rem;text-align:center}.not-found h2{color:#f8d7da;font-size:5rem;margin:0}.not-found h1{color:#721c24;font-size:2rem;margin-bottom:1rem}.not-found p{color:#6c757d;margin-bottom:2rem;max-width:500px}.home-link{background-color:#007bff;border-radius:4px;color:#fff;display:inline-block;padding:.75rem 1.5rem;text-decoration:none;transition:background-color .2s ease}.home-link:hover{background-color:#0069d9}.login-container{align-items:center;background:#4b4c3a;display:flex;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Arial,sans-serif;justify-content:center;min-height:100vh;position:relative}.login-box{background:#0000;border-radius:25px;max-width:400px;padding:2rem;width:100%;z-index:1}.logo-container{margin-bottom:1rem;text-align:center}.logo-container .logo{height:auto;max-width:300px;width:100%}.preview-title{color:#f3e9d2;font-size:2rem;font-weight:300;letter-spacing:.5px;margin:1.5rem 0 .5rem;text-align:center}.subtitle{color:#f3e9d2cc;font-size:1rem;font-weight:400;margin:0 0 2.5rem;text-align:center}.login-box h2{color:#f3e9d2;font-size:1.75rem;font-weight:700;margin-bottom:1.5rem;text-align:center}.form-group{margin-bottom:1rem}.input-icon-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:#515d4980;height:20px;left:.75rem;pointer-events:none;position:absolute;width:20px;z-index:1}.form-group input{background-color:#f3e9d2f2;border:none;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#515d49;font-size:1rem;padding:1rem 3rem;transition:all .3s;width:100%}.form-group input::placeholder{color:#515d4980}.input-icon-wrapper input{padding-left:45px!important}.form-group input:focus{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.form-group input:disabled{background-color:#f3e9d2b3}.password-toggle{align-items:center;background:none;border:none;cursor:pointer;display:flex;justify-content:center;padding:.5rem;position:absolute;right:1rem;transition:opacity .2s}.password-toggle svg{color:#515d4980;height:20px;width:20px}.password-toggle:hover svg{color:#515d49b3}.password-toggle:focus{outline:none}button[type=submit]{background-color:#dd9b4a;border:none;border-radius:25px;box-shadow:0 4px 12px #00000026;color:#54524f;cursor:pointer;font-size:1.125rem;font-weight:600;margin-top:.5rem;padding:1rem;transition:all .3s;width:100%}button[type=submit]:hover:not(:disabled){box-shadow:0 6px 16px #0003;transform:translateY(-2px)}button[type=submit]:active:not(:disabled){box-shadow:0 2px 8px #00000026;transform:translateY(0)}button[type=submit]:disabled{background-color:#dd9b4a80;box-shadow:none;cursor:not-allowed}.error-message{background-color:#ff3b301a;border:1px solid #ff3b3033;color:#ff3b30;margin-bottom:1rem;padding:.75rem}.auth-link{border-top:1px solid #f3e9d21a;color:#f3e9d2cc;font-size:.95rem;margin-top:2rem;padding-top:1.5rem;text-align:center}.auth-link a{border:2px solid #dd9b4a;border-radius:25px;color:#dd9b4a;display:inline-block;font-weight:600;margin-top:.5rem;padding:.75rem 2rem;text-decoration:none;transition:all .3s}.auth-link a:hover{background-color:#dd9b4a1a;transform:translateY(-1px)}.divider{margin:2rem 0;position:relative;text-align:center}.divider:before{background-color:#f3e9d24d;content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background:#4b4c3a;color:#f3e9d2cc;font-size:.85rem;font-weight:300;letter-spacing:.5px;padding:0 1rem;position:relative}.google-signin-button{align-items:center;background-color:#f3e9d2;border:none;border-radius:25px;box-shadow:0 4px 12px #00000026;color:#515d49;cursor:pointer;display:flex;font-size:1.125rem;font-weight:600;gap:.75rem;justify-content:center;margin-top:1.5rem;padding:1rem;transition:all .3s;width:100%}.google-signin-button:hover:not(:disabled){box-shadow:0 6px 16px #0003;transform:translateY(-2px)}.apple-signin-button{align-items:center;background-color:#f3e9d2;border:none;border-radius:25px;box-shadow:0 4px 12px #00000026;color:#515d49;cursor:pointer;display:flex;font-size:1.125rem;font-weight:600;gap:.75rem;justify-content:center;margin-top:1rem;padding:1rem;transition:all .3s;width:100%}.apple-signin-button:hover:not(:disabled){box-shadow:0 6px 16px #0003;transform:translateY(-2px)}.google-signin-button:active:not(:disabled){box-shadow:0 2px 8px #00000026;transform:translateY(0)}.google-signin-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}.apple-icon,.google-icon{height:20px;width:20px}.reset-description{color:#f3e9d2cc;font-size:.95rem;line-height:1.5;margin-bottom:1.5rem;text-align:center}.success-message{background-color:#34c7591a;border:1px solid #34c75933;border-radius:12px;color:#34c759;margin-bottom:1rem;padding:.75rem;text-align:center}.forgot-password-link{margin-bottom:.5rem;margin-top:-.25rem;text-align:right}.forgot-password-link a{color:#dd9b4a;font-size:.875rem;font-weight:400;text-decoration:none;transition:opacity .3s}.forgot-password-link a:hover{opacity:.8}.waitlist-button{background-color:initial;border:2px solid #dd9b4a;border-radius:25px;color:#dd9b4a;cursor:pointer;font-size:1.125rem;font-weight:600;margin-bottom:1rem;padding:1rem;transition:all .3s;width:100%}.waitlist-button:hover:not(:disabled){background-color:#dd9b4a1a;transform:translateY(-2px)}.waitlist-button:disabled{cursor:not-allowed;opacity:.6}.divider-text{color:#f3e9d2b3;font-size:.95rem;margin:1.5rem 0;text-align:center}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.shake{animation:shake .5s ease-in-out}.waitlist-info{color:#f3e9d2cc;font-size:.95rem;line-height:1.5;margin:1.5rem 0 2rem;text-align:center}.sign-out-button{background-color:#baa5944d;border:1px solid #f3e9d24d;border-radius:25px;color:#f3e9d2;cursor:pointer;font-size:1.125rem;font-weight:600;padding:1rem;transition:all .3s;width:100%}.sign-out-button:hover{background-color:#baa59466;border-color:#f3e9d280}.text-button{background:none;border:none;color:#f3e9d2b3;cursor:pointer;font-size:.95rem;margin-top:1rem;padding:.5rem;transition:color .3s}.text-button:hover:not(:disabled){color:#f3e9d2e6;text-decoration:underline}.text-button:disabled{cursor:not-allowed;opacity:.5}@keyframes drawHouse{0%{stroke-dashoffset:200;opacity:.3}50%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:200;opacity:.3}}*{box-sizing:border-box;margin:0;padding:0}body{background:#4b4c3a;color:#333;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Arial,sans-serif;line-height:1.6;min-height:100vh}.App,.home-container{display:flex;flex-direction:column;min-height:100vh}.app-header{align-items:center;background-color:#2c3e50;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1rem 2rem}.app-header h1{font-size:1.8rem;font-weight:500}.user-info{gap:1rem}.logout-button{background-color:#e74c3c;border:none;border-radius:4px;color:#fff;font-size:.9rem;transition:background-color .3s}.logout-button:hover{background-color:#c0392b}.app-content{display:flex;flex:1 1;padding:1rem}@media (max-width:768px){.app-content{flex-direction:column}}.error-message{background-color:#f8d7da;max-width:500px}.app-footer{background-color:#f8f9fa;border-top:1px solid #e9ecef;color:#6c757d;font-size:.9rem;padding:1rem 2rem;text-align:center}.keyword-editor{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:1rem 0;max-width:100%;overflow:hidden}.keyword-editor-loading{color:#666;padding:2rem;text-align:center}.keyword-editor-header{background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:1rem}.keyword-editor-header h3{color:#333;font-size:1.2rem;margin:0 0 .25rem}.keyword-editor-header p{color:#666;font-size:.85rem;margin:0}.keyword-tabs{background:#f0f0f0;border-bottom:1px solid #e0e0e0;display:flex}.keyword-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;display:flex;flex:1 1;font-size:.8rem;gap:.25rem;justify-content:center;padding:.6rem;transition:all .2s ease}.keyword-tab:hover{background:#e8e8e8;color:#333}.keyword-tab.active{background:#fff;border-bottom-color:#2196f3;color:#2196f3;font-weight:500}.tab-label{display:none}@media (min-width:400px){.tab-label{display:inline}}.keyword-content{max-height:350px;min-height:200px;overflow-y:auto;padding:.75rem}.keyword-list{margin-bottom:.75rem}.keyword-item{border-bottom:1px solid #f0f0f0;gap:.75rem;padding:.4rem 0}.keyword-item:last-child{border-bottom:none}.keyword-item.compact{padding:.3rem 0}.keyword-label{color:#333;flex:0 0 40%;font-size:.8rem;line-height:1.2;word-break:break-word}.keyword-control{align-items:center;display:flex;flex:1 1;gap:.5rem}.keyword-score{color:#2196f3;flex:0 0 2rem;font-size:.75rem;font-weight:600}.keyword-score.zero{color:#ccc}.no-keywords{color:#999;font-style:italic;padding:2rem;text-align:center}.keyword-slider{-webkit-appearance:none;appearance:none;border-radius:2px;cursor:pointer;height:3px;outline:none;width:100%}.keyword-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#2196f3;border-radius:50%;box-shadow:0 1px 2px #0000004d;cursor:pointer;height:12px;-webkit-transition:transform .2s ease;transition:transform .2s ease;width:12px}.keyword-slider::-webkit-slider-thumb:hover{background:#1976d2;transform:scale(1.15)}.keyword-slider::-moz-range-thumb{background:#2196f3;border:none;border-radius:50%;box-shadow:0 1px 2px #0000004d;cursor:pointer;height:12px;width:12px}.reset-button{background:#fff;border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;font-size:.8rem;padding:.4rem .8rem;transition:all .2s ease;width:100%}.reset-button:hover{background:#f0f0f0;color:#333}.keyword-summary{background:#f8f9fa;border-top:1px solid #e0e0e0;padding:1rem}.summary-grid{display:flex;flex-direction:column;gap:.75rem}.summary-category{border-bottom:1px solid #e0e0e0;padding-bottom:.75rem}.summary-category:last-child{border-bottom:none;padding-bottom:0}.summary-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.summary-icon{font-size:.9rem}.summary-label{color:#555;font-size:.85rem;font-weight:500}.summary-keywords{display:flex;flex-wrap:wrap;gap:.25rem}.keyword-tag{background:#fff;border:1px solid #e0e0e0;border-radius:12px;color:#666;font-size:.75rem;padding:.2rem .5rem}.no-active{color:#999;font-size:.75rem;font-style:italic}.keyword-content::-webkit-scrollbar{width:6px}.keyword-content::-webkit-scrollbar-track{background:#f1f1f1}.keyword-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.keyword-content::-webkit-scrollbar-thumb:hover{background:#999}.score-visualization{background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001a;margin:0 auto;max-width:1000px;padding:24px;position:relative}.visualization-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.visualization-header h3{color:#2c3e50;font-size:20px;margin:0}.close-button{color:#7f8c8d;transition:all .2s}.close-button:hover{background:#f1f1f1;color:#2c3e50}.visualization-nav{border-bottom:1px solid #e0e0e0;display:flex;gap:8px;margin-bottom:24px;padding-bottom:12px}.nav-button{background:none;border:none;border-radius:6px;color:#7f8c8d;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.nav-button:hover{background:#f5f5f5;color:#2c3e50}.nav-button.active{background:#3498db;color:#fff}.overview-section{display:flex;flex-direction:column;gap:24px}.stats-grid{grid-gap:16px;gap:16px}.stat-card{background:#f8f9fa}.stat-value{color:#2c3e50;font-size:32px;margin-bottom:4px}.stat-label{color:#7f8c8d;margin-bottom:4px}.stat-detail{color:#95a5a6;font-size:12px}.top-keywords{background:#f8f9fa;border-radius:8px;padding:20px}.top-keywords h4{color:#2c3e50;font-size:16px;margin:0 0 16px}.keyword-list{display:flex;flex-direction:column;gap:12px}.keyword-item{align-items:center;background:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;display:flex;gap:12px;padding:12px}.keyword-name{color:#2c3e50;flex:1 1;font-weight:500}.keyword-category{background:#ecf0f1;border-radius:4px;color:#7f8c8d;font-size:12px;padding:4px 8px}.keyword-score{color:#3498db;font-weight:700;min-width:40px;text-align:right}.category-overview{background:#f8f9fa;border-radius:8px;padding:20px}.category-overview h4{color:#2c3e50;font-size:16px;margin:0 0 16px}.category-bars{display:flex;flex-direction:column;gap:12px}.category-bar{align-items:center;display:flex;gap:12px}.bar-label{color:#2c3e50;font-size:14px;min-width:80px}.bar-container{background:#ecf0f1;border-radius:12px;flex:1 1;height:24px;overflow:hidden;position:relative}.bar-fill{background:linear-gradient(90deg,#3498db,#2980b9);border-radius:12px;height:100%;transition:width .3s ease}.bar-value{color:#2c3e50;font-size:12px;font-weight:700;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.chart-section{padding:20px}.chart-section h4{color:#2c3e50;font-size:16px;margin:0 0 20px;text-align:center}.chart-container{margin:0 auto;position:relative}.chart-container.radar{height:400px;max-width:400px}.chart-container.doughnut{height:300px;max-width:500px}.chart-container.bar{height:300px;max-width:600px}@media (max-width:768px){.score-visualization{padding:16px}.visualization-nav{-webkit-overflow-scrolling:touch;overflow-x:auto;scrollbar-width:none}.visualization-nav::-webkit-scrollbar{display:none}.nav-button{white-space:nowrap}.stats-grid{grid-template-columns:1fr}.chart-container.radar{height:300px;max-width:300px}.chart-container.doughnut{height:250px;max-width:300px}}.multi-image-analyzer{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;margin:20px 0;padding:20px}.multi-image-analyzer h3{align-items:center;color:#343a40;display:flex;font-size:18px;font-weight:600;gap:8px;margin-bottom:20px}.upload-section{margin-bottom:20px}.upload-label{cursor:pointer;display:block}.upload-box{background:#fff;border:2px dashed #cbd5e0;border-radius:8px;padding:40px;text-align:center;transition:all .3s ease}.upload-box:hover{background:#f7fafc;border-color:#4299e1}.upload-box.dragging{background:#e6f2ff;border-color:#4299e1;border-width:3px}.add-more-placeholder,.upload-placeholder{align-items:center;display:flex;flex-direction:column;gap:8px}.add-icon,.upload-icon{font-size:48px;opacity:.6}.add-icon{color:#4299e1;font-size:36px}.add-text,.upload-text{color:#2d3748;font-size:16px;font-weight:500}.add-hint,.upload-hint{color:#718096;font-size:14px}.upload-required{color:#e53e3e;font-size:12px;margin-top:4px}.file-input{display:none}.image-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-bottom:20px}.image-item{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;position:relative;transition:transform .2s}.image-item:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.image-preview{aspect-ratio:1;overflow:hidden;position:relative}.image-preview img{height:100%;object-fit:cover;width:100%}.analyzing-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.analyzed-indicator{background:#48bb78;font-weight:700}.analyzed-indicator,.error-indicator{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:14px;height:24px;justify-content:center;position:absolute;right:8px;top:8px;width:24px}.error-indicator{background:#f56565;cursor:help}.remove-button{background:#00000080;border-radius:50%;font-size:18px;height:24px;left:8px;line-height:1;opacity:0;position:absolute;top:8px;transition:opacity .2s;width:24px}.image-item:hover .remove-button{opacity:1}.remove-button:hover{background:#000c}.image-info{display:flex;flex-direction:column;gap:2px;padding:8px}.image-name{color:#2d3748;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-size{color:#718096;font-size:11px}.analyzer-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.analyze-button{align-items:center;background:#4299e1;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:16px;font-weight:500;gap:8px;justify-content:center;padding:12px 24px;transition:all .3s ease}.analyze-button:hover:not(:disabled){background:#3182ce;box-shadow:0 4px 6px #4299e14d;transform:translateY(-1px)}.analyze-button:disabled{background:#cbd5e0;box-shadow:none;cursor:not-allowed;transform:none}.analyze-button.analyzing{background:#805ad5}.analyze-button .spinner{animation:spin .8s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.analyze-button .icon{font-size:18px}.error-message,.progress-message,.warning-message{align-items:center;border-radius:8px;display:flex;font-size:14px;gap:8px;padding:12px 16px}.warning-message{background:#fefcbf;border:1px solid #f6e05e;color:#744210}.progress-message{background:#e6fffa;border:1px solid #81e6d9;color:#234e52}.error-message{background:#fff5f5;border:1px solid #feb2b2;color:#742a2a}.error-icon,.progress-icon,.warning-icon{font-size:16px}.analyzer-info{background:#e6fffa;border:1px solid #81e6d9;border-radius:8px;margin-bottom:20px;padding:16px}.analyzer-info p{color:#234e52;font-weight:500;margin:0 0 8px}.analyzer-info ul{margin:0;padding-left:20px}.analyzer-info li{color:#2c5282;font-size:14px;margin-bottom:4px}.keyword-results-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.aggregation-note{align-items:center;background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;color:#4a5568;display:flex;font-size:14px;gap:8px;margin-bottom:16px;padding:8px 12px}.note-icon{font-size:16px}.view-mode-toggle{gap:8px;margin-bottom:16px}.mode-button{align-items:center;background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;color:#4a5568;display:flex;flex:1 1;font-size:14px;gap:6px;justify-content:center;padding:8px 16px}.mode-button:hover{background:#edf2f7;border-color:#cbd5e0}.mode-button.active{background:#4299e1;border-color:#4299e1;color:#fff}.mode-icon{font-size:16px}.glb-gallery-container{background-color:#f5f5f5;display:flex;flex-direction:column;min-height:100vh}.gallery-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;color:#fff;padding:2.5rem 2rem}.gallery-header h1{font-size:2.25rem;font-weight:700;letter-spacing:-.5px;margin:0 0 1.25rem}.gallery-controls{align-items:center;display:flex;gap:1rem}.filter-select{background-color:#fffffff2;border:2px solid #ffffff4d;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#1a1a1a;cursor:pointer;font-size:1rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s ease}.filter-select:hover{background-color:#fff;border-color:#ffffff80;box-shadow:0 4px 8px #00000026}.filter-select:focus{border-color:#fff;box-shadow:0 0 0 3px #ffffff40;outline:none}.object-count{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:20px;font-size:1rem;font-weight:500;opacity:.95;padding:.375rem .75rem}.error-container,.loading-container{align-items:center;color:#666;display:flex;flex:1 1;font-size:1.2rem;justify-content:center}.error-container{color:#e74c3c}.objects-grid{grid-gap:2rem;display:grid;flex:1 1;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));padding:2rem}.object-card{background:#0000;border:1px solid #0000000d;border-radius:12px;box-shadow:0 4px 6px #00000012,0 1px 3px #0000000f;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.object-card:hover{border-color:#677eea33;box-shadow:0 20px 25px #0000001f,0 10px 10px #00000014;transform:translateY(-6px) scale(1.02)}.object-preview{align-items:center;background:#f5f5f5;display:flex;flex-shrink:0;height:250px;justify-content:center;overflow:hidden;position:relative;width:100%}.object-info{background:#fff;display:flex;flex:1 1;flex-direction:column;padding:1.5rem;width:100%}.object-info h3{color:#1a1a1a;font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.object-type{color:#546e7a;font-size:.95rem;letter-spacing:.5px;text-transform:uppercase}.object-dimensions,.object-type{font-weight:500;margin:0 0 .5rem}.object-dimensions{color:#263238;font-family:SF Mono,Monaco,Courier New,monospace;font-size:1rem}.object-date{color:#607d8b;font-size:.875rem;font-style:italic;margin:0 0 1rem}.object-actions{align-items:center;border-top:1px solid #e8ecef;display:flex;gap:.75rem;margin-top:auto;padding-top:1rem}.action-btn{align-items:center;border:none;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;min-width:80px;padding:.5rem 1rem}.action-btn:hover{opacity:.9;transform:translateY(-1px)}.edit-btn{background:#4caf50;color:#fff}.edit-btn:hover{background:#45a049}.remove-btn{background:#f44336;color:#fff}.remove-btn:hover{background:#da190b}.delete-confirm{align-items:center;animation:slideIn .2s ease;display:flex;flex:1 1;gap:.4rem;justify-content:flex-start}.delete-text{color:#d32f2f;font-size:.875rem;font-weight:600;margin-right:.5rem}.action-btn.confirm-btn{background:#dc3545;color:#fff;font-size:.8rem;padding:.4rem .75rem}.action-btn.confirm-btn:hover{background:#c82333}.action-btn.cancel-btn{background:#6c757d;color:#fff;font-size:.8rem;padding:.4rem .75rem}.action-btn.cancel-btn:hover{background:#5a6268}.modal-overlay{background:#000000b3;padding:2rem}.glb-gallery-container .modal-content{background:#fff;border-radius:8px;display:flex;flex-direction:column;height:85vh;max-width:1400px!important;position:relative;width:95%!important}.modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;position:absolute;right:1rem;top:1rem;transition:background-color .2s;width:40px;z-index:1}.modal-close:hover{background-color:#0000001a}.glb-gallery-container .modal-body{display:flex;flex:1 1;height:100%;overflow:hidden}.glb-gallery-container .modal-viewer{background:#f0f0f0;flex:1 1 70%;min-height:500px;min-width:0}.glb-gallery-container .modal-details{background:#f9f9f9;flex:0 0 30%;max-width:400px;min-width:300px;overflow-y:auto;padding:2rem}.modal-details h2{color:#2c3e50;margin:0 0 1.5rem}.detail-section{border-bottom:1px solid #e0e0e0;margin-bottom:1.5rem;padding-bottom:1.5rem}.detail-section:last-child{border-bottom:none}.detail-section h3{color:#34495e;font-size:1rem;margin:0 0 .5rem}.detail-section p{color:#666;font-size:.9rem;margin:.25rem 0}.detail-section strong{color:#34495e;font-weight:600}.projection-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.projection-link{background-color:#3498db;border-radius:4px;color:#fff;font-size:.85rem;padding:.3rem .8rem;text-decoration:none;transition:background-color .2s}.projection-link:hover{background-color:#2980b9}.view-projections-btn{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;margin-top:.5rem;padding:.5rem 1rem;transition:background-color .2s;width:100%}.view-projections-btn:hover{background-color:#2980b9}.projection-modal-content{background:#fff;border-radius:8px;display:flex;flex-direction:column;height:90vh;max-width:1400px;position:relative;width:95%}.projection-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:1rem 1.5rem;position:relative}.projection-header h2{color:#2c3e50;flex:1 1;font-size:1.5rem;margin:0 auto 0 1rem;text-align:left}.back-btn{background-color:#95a5a6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.back-btn:hover{background-color:#7f8c8d}.projection-tabs{background-color:#e0e0e0;display:flex;gap:1px;overflow-x:auto;padding:0}.projection-tab{background-color:#f5f5f5;border:none;color:#666;cursor:pointer;font-size:.9rem;padding:.75rem 1.5rem;transition:background-color .2s,color .2s;white-space:nowrap}.projection-tab:hover{background-color:#e8e8e8;color:#333}.projection-tab.active{background-color:#fff;color:#2c3e50;font-weight:600}.projection-viewer-container{align-items:center;background-color:#f9f9f9;display:flex;flex:1 1;justify-content:center;overflow:hidden;position:relative}.projection-image-wrapper{align-items:center;display:flex;flex-direction:column;height:100%;padding:2rem;position:relative;width:100%}.projection-image{background:#fff;border:1px solid #e0e0e0;box-shadow:0 2px 8px #0000001a;height:auto;max-height:calc(100% - 100px);max-width:100%;width:auto}.projection-loading{color:#666;font-size:1.2rem;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.projection-info{align-items:center;background:#fff;border-radius:4px;box-shadow:0 1px 3px #0000001a;display:flex;gap:2rem;margin-top:1rem;padding:1rem}.projection-info p{color:#666;font-size:.9rem;margin:0}.download-btn{background-color:#27ae60;border-radius:4px;font-size:.9rem;padding:.5rem 1rem;text-decoration:none;transition:background-color .2s}.download-btn:hover{background-color:#229954}.no-projection{color:#666;font-size:1.1rem;text-align:center}@media (max-width:768px){.objects-grid{grid-template-columns:1fr;padding:1rem}.modal-body{flex-direction:column}.modal-viewer{min-height:300px}.modal-details{width:100%}}.ios-dialog-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.ios-dialog-content{animation:slideUp .3s ease-out;background:#f3e9d2;border-radius:16px;box-shadow:0 20px 60px #0003;max-height:90vh;max-width:500px;overflow-y:auto;position:relative;width:90%}.ios-dialog-close{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .2s;width:40px;z-index:1}.ios-dialog-close:hover{background-color:#0000000d;transform:scale(1.1)}.ios-dialog-header{padding:3rem 2rem 1.5rem;text-align:center}.ios-dialog-icon{align-items:center;background:linear-gradient(135deg,#007aff,#0051d5);border-radius:20px;color:#fff;display:inline-flex;height:80px;justify-content:center;margin-bottom:1rem;width:80px}.ios-dialog-header h2{color:#1a1a1a;font-size:1.75rem;font-weight:600;margin:0}.ios-dialog-body{padding:0 2rem 2rem}.ios-dialog-body p{color:#555;font-size:1rem;line-height:1.6;margin-bottom:1.5rem}.ios-dialog-features{background:#f8f9fa;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.ios-dialog-features h3{color:#333;font-size:1.1rem;margin:0 0 1rem}.ios-dialog-features ul{list-style:none;margin:0;padding-left:1.5rem}.ios-dialog-features li{color:#555;margin-bottom:.5rem;padding-left:1.5rem;position:relative}.ios-dialog-features li:before{color:#10b981;content:"✓";font-weight:700;left:0;position:absolute}.ios-dialog-download{text-align:center}.ios-dialog-download h3{color:#333;font-size:1.2rem;margin:0 0 1.5rem}.download-options{align-items:center;display:flex;flex-direction:column;gap:1.5rem}.app-store-button{align-items:center;display:inline-flex;transition:all .2s}.app-store-button:hover{opacity:.9;transform:translateY(-2px)}.app-store-button img{display:block}.qr-code-container{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.qr-code-image{border-radius:8px;display:block}.qr-code-container small{color:#666;font-size:.875rem}.rename-dialog-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.rename-dialog{animation:dialogSlideIn .2s ease-out;background:#54524f;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:400px;padding:24px;width:90%}@keyframes dialogSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.rename-dialog-title{color:#f3e9d2;font-size:20px;font-weight:600;margin:0 0 20px}.rename-dialog-content{margin-bottom:24px}.rename-dialog-input{background:#f3e9d21a;border:2px solid #f3e9d233;border-radius:8px;color:#f3e9d2;font-size:16px;outline:none;padding:12px 16px;transition:all .2s ease;width:100%}.rename-dialog-input:focus{background:#f3e9d226;border-color:#f3e9d266}.rename-dialog-input::placeholder{color:#f3e9d266}.rename-dialog-error{color:#ff6b6b;font-size:14px;margin-top:8px}.rename-dialog-actions{display:flex;gap:12px;justify-content:flex-end}.rename-dialog-button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;min-width:80px;padding:10px 20px;transition:all .2s ease}.rename-dialog-cancel{background:#f3e9d21a;color:#f3e9d2}.rename-dialog-cancel:hover{background:#f3e9d233}.rename-dialog-confirm{background:#dd9b4a;color:#54524f}.rename-dialog-confirm:hover{background:#c88a3a;box-shadow:0 2px 8px #dd9b4a4d;transform:translateY(-1px)}.user-home-container{background:#4b4c3a;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Arial,sans-serif;max-width:100vw;min-height:100vh;overflow-x:hidden;width:100%}.user-home-header{background-color:initial;box-sizing:border-box;padding:2rem;width:100%}.header-content{max-width:100%;width:100%}.welcome-text{color:#f3e9d2;font-size:1.125rem;font-weight:300;letter-spacing:.5px}.user-home-main{box-sizing:border-box;flex:1 1;max-width:100%;overflow-x:hidden;padding:1.5rem 2rem;width:100%}.projects-section{background-color:initial;box-sizing:border-box;overflow:visible;width:100%}.section-header h2{color:#f3e9d2;font-size:1.25rem;font-weight:300;letter-spacing:.5px;margin:0}.empty-state{padding:4rem 2rem}.empty-state p{font-size:1.125rem}.empty-state-hint{font-size:1rem}.projects-list{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:1.5rem;padding-top:4px}.project-item{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#baa5944d;border:2px solid #f3e9d233;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;min-height:160px;padding:2rem;position:relative;text-align:center;transition:all .2s ease}.project-item:hover{background-color:#baa59466;border-color:#f3e9d24d;transform:translateY(-2px)}.project-icon{color:#f3e9d2;height:48px;margin-bottom:1rem;width:48px}.project-icon svg{height:100%;width:100%}.project-content{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:.5rem}.project-name{color:#f3e9d2!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;font-size:1rem;font-weight:500;line-height:1.4;margin:0}.project-date{color:#f3e9d2b3;font-size:.75rem;margin-top:auto}.new-project-item{background:#baa59426;border:2px dashed #f3e9d24d}.new-project-item:hover{background:#baa5944d;border-color:#f3e9d280}.new-project-item .project-icon{opacity:.7}.new-project-item:hover .project-icon{opacity:1}.project-menu-container{position:absolute;right:12px;top:12px;z-index:10}.project-menu-button{align-items:center;background:#0000;border:none;border-radius:4px;color:#f3e9d299;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s ease}.project-menu-button:hover{background-color:#f3e9d21a;color:#f3e9d2}.project-menu-dropdown{background-color:#54524f;border:1px solid #f3e9d233;border-radius:8px;box-shadow:0 4px 12px #0000004d;margin-top:4px;min-width:150px;overflow:hidden;position:absolute;right:0;top:100%;z-index:100}.menu-item{align-items:center;background:none;border:none;color:#f3e9d2;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:10px 16px;text-align:left;transition:background-color .2s ease;width:100%}.menu-item:hover{background-color:#f3e9d21a}.menu-item.delete-item{color:#ff6b6b}.menu-item.delete-item:hover{background-color:#ff6b6b1a}.error-message{border-radius:6px;font-size:.875rem;margin-bottom:1.5rem;padding:1rem}@media (min-width:1400px){.projects-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (max-width:1024px){.projects-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media (max-width:768px){.user-home-header{padding:1.5rem}.header-content{flex-wrap:wrap;gap:1rem}.header-left{flex:1 1}.header-logo{height:40px}.welcome-text{font-size:1rem}.header-actions{justify-content:space-between;width:100%}.projects-section,.user-home-main{padding:1rem}.projects-list{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.project-item{min-height:140px;padding:1.5rem 1rem}.project-icon{height:40px;width:40px}.project-name{font-size:.9rem}}@media (max-width:480px){.projects-list{grid-template-columns:repeat(2,1fr)}}.admin-section{border-top:2px solid #e5e7eb;margin-top:3rem;padding-top:2rem}.admin-section .section-header{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.admin-only-badge{align-items:center;background-color:#8b5cf6;border-radius:12px;box-shadow:0 2px 4px #8b5cf64d;color:#fff;display:inline-flex;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 10px;text-transform:uppercase}.admin-section-notice{align-items:center;background-color:#fef3c7;border:1px solid #fcd34d;border-radius:8px;color:#92400e;display:flex;font-size:.875rem;margin-bottom:1.5rem;padding:12px 16px}.other-project{background-color:#8b5cf605;border:2px solid #8b5cf633;position:relative}.other-project:hover{border-color:#8b5cf666;box-shadow:0 8px 24px #8b5cf626;transform:translateY(-3px)}.other-project .project-content{position:relative}.project-owner{color:#6b7280;display:block;font-size:.75rem;font-style:italic;margin-top:4px}@media (max-width:768px){.admin-section{margin-top:2rem}.admin-section-notice{font-size:.8rem;padding:10px 12px}}.shared-section{margin-top:3rem}.shared-badge{background:#f3e9d226;border:1px solid #f3e9d24d;border-radius:12px;color:#f3e9d2;font-size:.75rem;font-weight:500;padding:4px 12px;text-transform:uppercase}.shared-section-notice{align-items:center;background:#f3e9d20d;border:1px solid #f3e9d233;border-radius:8px;color:#f3e9d2cc;display:flex;font-size:.875rem;margin-bottom:1.5rem;padding:12px 16px}.shared-project{background:#baa59459;border:2px solid #f3e9d240;position:relative}.shared-project:hover{background:#baa59473;border-color:#f3e9d259}.shared-indicator{background:#f3e9d21a;border-radius:50%;color:#f3e9d2e6;padding:6px;position:absolute;right:12px;top:12px}.shared-indicator,.sharing-modal-overlay{align-items:center;display:flex;justify-content:center}.sharing-modal-overlay{animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10000}.sharing-modal-content{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:90%}.sharing-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px}.sharing-modal-header h2{color:#111827;font-size:20px;font-weight:600;margin:0}.sharing-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.sharing-modal-close:hover{background-color:#f3f4f6;color:#374151}.sharing-modal-body{flex:1 1;overflow-y:auto;padding:24px}.project-info{margin-bottom:24px}.project-info h3{color:#111827;font-size:18px;font-weight:600;margin:0 0 8px}.share-description{color:#6b7280;font-size:14px;line-height:1.5;margin:0}.alert{align-items:flex-start;border-radius:8px;display:flex;line-height:1.5}.alert-error{background-color:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.alert-success{background-color:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.collaborators-section{margin-top:0}.add-viewer-section,.owner-section,.pending-invitations-section,.viewers-section{margin-bottom:24px}.collaborators-section h4{color:#374151;font-size:14px;font-weight:600;letter-spacing:.025em;margin:0 0 12px;text-transform:uppercase}.user-card{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:8px;padding:12px;transition:all .2s ease}.user-card:hover{background:#f3f4f6;border-color:#d1d5db}.user-info{align-items:center;display:flex;gap:12px}.user-avatar{background:#e5e7eb;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 2px 0 #0000000d;height:40px;object-fit:cover;width:40px}.user-name{color:#111827;font-size:14px;font-weight:500;margin-bottom:2px}.user-email{color:#6b7280;font-size:13px}.access-badge{border-radius:9999px;font-size:12px;font-weight:500;letter-spacing:.025em;padding:4px 10px;text-transform:uppercase}.access-badge.owner{background:#dbeafe;color:#1e40af}.access-badge.viewer{background:#e9d5ff;color:#7c3aed}.sharing-remove-button{background:#fff;border:1px solid #e5e7eb;border-radius:20px;color:#6b7280;cursor:pointer;flex-shrink:0;font-size:13px;font-weight:500;margin-left:auto;padding:6px 16px;transition:all .2s ease}.sharing-remove-button:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.viewers-list{margin-top:0}.no-viewers{background:#f9fafb;border:1px dashed #e5e7eb;border-radius:8px;color:#9ca3af;font-size:14px;font-style:italic;margin:12px 0;padding:20px;text-align:center}.add-viewer-form{display:flex;flex-direction:column;gap:12px}.email-form-row{display:flex;gap:8px}.adding-message{color:#6b7280;flex:1 1;font-size:14px;font-style:italic;padding:10px 14px}.invite-option{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;margin-top:8px;padding:16px}.invite-suggestion{color:#0c4a6e;font-size:14px;line-height:1.4;margin:0 0 12px}.invite-button{background:#0ea5e9;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s ease}.invite-button:hover:not(:disabled){background:#0284c7;box-shadow:0 2px 4px -1px #0000001a;transform:translateY(-1px)}.invite-button:disabled{background:#94a3b8;cursor:not-allowed;transform:none}.email-input{background:#fff;border:1px solid #d1d5db;border-radius:8px;flex:1 1;font-size:14px;padding:10px 14px;transition:all .2s ease}.email-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.email-input::placeholder{color:#9ca3af}.add-button{border-radius:22px;color:#fff;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s ease;white-space:nowrap}.add-button:hover:not(:disabled){background:#2563eb;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-1px)}.add-button:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;transform:none}@media (max-width:480px){.sharing-modal-content{max-height:85vh;width:95%}.sharing-modal-body,.sharing-modal-header{padding:20px}.add-viewer-form{flex-direction:column}.add-button{width:100%}}.parcel-map-container{border:1px solid #e0e0e0;border-radius:8px;margin-top:16px;overflow:hidden;position:relative;width:100%}.map-overlay-message{background:#ffffffe6;border-radius:8px;box-shadow:0 2px 8px #0000001a;color:#666;font-size:14px;left:50%;padding:16px 24px;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1000}.parcel-adjustment-controls{background:#fffffff2;border-radius:8px;bottom:20px;box-shadow:0 2px 10px #0000001a;padding:15px;position:absolute;right:20px;z-index:1000}.control-label{color:#333;font-size:12px;font-weight:600;margin-bottom:10px;text-align:center}.control-buttons{align-items:center;flex-direction:column}.control-buttons,.control-row{display:flex;gap:5px}.control-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.control-btn:hover{background:#f0f0f0;border-color:#999}.control-btn:active{background:#e0e0e0;transform:scale(.95)}.reset-btn{font-size:20px}.offset-indicator{color:#666;font-size:11px;font-style:italic;margin-top:8px;text-align:center}.distance-label{background:none!important;border:none!important}.distance-label-text{background:#fffffff2;border-radius:4px;box-shadow:0 1px 3px #0003;color:#333;font-size:12px;font-weight:600;padding:2px 8px;pointer-events:none;white-space:nowrap}.address-input-container{background:#f9fafbe6;border:1px solid #e5e7eb;border-radius:8px;padding:15px}.address-input-container h3{color:#374151;font-size:14px;font-weight:600;margin:0 0 10px}.address-form{gap:16px}.address-form,.form-group{display:flex;flex-direction:column}.form-group{flex:1 1;gap:6px}.form-group label{color:#555;font-size:14px}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px 12px;transition:border-color .2s}.form-group input:focus{border-color:#4caf50;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-row{display:flex;gap:12px}.form-group-small{max-width:80px}.error-message{color:#d32f2f;font-size:14px;margin-top:8px}.button-group{display:flex;gap:12px;margin-top:8px}.save-button,.search-button{border:none;border-radius:4px;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:10px 16px;transition:background-color .2s,opacity .2s}.save-button{background-color:#4caf50}.save-button:hover:not(:disabled){background-color:#45a049}.search-button{background-color:#2196f3;color:#fff}.search-button:hover:not(:disabled){background-color:#1976d2}.save-button:disabled,.search-button:disabled{cursor:not-allowed;opacity:.6}.property-info{border-top:1px solid #e0e0e0;margin-top:24px;padding-top:20px}.property-info h4{color:#333;font-size:16px;font-weight:600;margin:0 0 12px}.toggle-details{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:13px;padding:6px 12px;transition:background-color .2s}.toggle-details:hover{background-color:#e8e8e8}.export-button{background-color:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;padding:6px 12px;transition:background-color .2s}.export-button:hover:not(:disabled){background-color:#1565c0}.export-button:disabled{cursor:not-allowed;opacity:.6}.export-button.parcel-button{background-color:#17a2b8}.export-button.parcel-button:hover:not(:disabled){background-color:#138496}.property-details{background-color:#f9f9f9;border-radius:4px;margin-top:16px;padding:16px}.detail-row{border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:8px 0}.detail-row:last-child{border-bottom:none}.detail-row .label{color:#666;font-size:14px;font-weight:500}.detail-row .value{color:#333;font-size:14px}.parcel-map-section{margin-top:20px}@media (max-width:600px){.form-row{flex-direction:column}.form-group-small{max-width:100%}.button-group{flex-direction:column}}.ai-renderings-container{width:100%}.ai-renderings-controls{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.group-by-controls{align-items:center;display:flex;gap:.75rem}.group-by-controls span{color:#f3e9d299;font-size:.875rem}.group-by-controls button{background:#0000;border:1px solid #f3e9d24d;border-radius:6px;color:#f3e9d2cc;cursor:pointer;font-size:.875rem;padding:.375rem .75rem;transition:all .2s ease}.group-by-controls button:hover{background:#baa59433;border-color:#f3e9d280}.group-by-controls button.active{background:#baa59466;border-color:#f3e9d299;color:#f3e9d2}.enhancement-count{color:#f3e9d299;font-size:.875rem}.ai-renderings-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-bottom:2rem}.ai-rendering-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#baa5944d;border:2px solid #f3e9d233;border-radius:12px;cursor:pointer;overflow:hidden;transition:all .2s ease}.ai-rendering-card:hover{background-color:#baa59466;border-color:#f3e9d24d;transform:translateY(-2px)}.ai-rendering-card img{display:block;height:200px;object-fit:cover;width:100%}.ai-rendering-info{padding:1rem}.ai-rendering-style{color:#f3e9d2;font-size:.9rem;font-weight:400;margin:0 0 .25rem;text-transform:capitalize}.ai-rendering-room{color:#f3e9d299;font-size:.8rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-renderings-grouped{width:100%}.ai-rendering-group{margin-bottom:2.5rem}.ai-rendering-group h3{border-bottom:1px solid #f3e9d233;color:#f3e9d2;font-size:1.1rem;font-weight:400;margin:0 0 1rem;padding-bottom:.5rem}.ai-renderings-error,.ai-renderings-loading,.ai-renderings-placeholder{background-color:#baa5944d;border:2px dashed #f3e9d233;border-radius:12px;padding:3rem;text-align:center}.ai-renderings-error p,.ai-renderings-loading p,.ai-renderings-placeholder p{color:#f3e9d2cc;font-size:1rem;margin:0}.ai-renderings-hint{color:#f3e9d299!important;font-size:.875rem!important;margin-top:.5rem!important}.ai-rendering-modal{align-items:center;background:#000000e6;bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:1000}.ai-rendering-modal-content{background:#2a2b22;border-radius:12px;display:flex;flex-direction:column;max-height:90vh;max-width:90vw;overflow:hidden;position:relative}.close-modal{align-items:center;background:#00000080;border:none;border-radius:50%;color:#f3e9d2;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .2s ease;width:40px;z-index:1}.close-modal:hover{background:#000000b3;transform:scale(1.1)}.ai-rendering-modal-content img{max-height:70vh;max-width:100%;object-fit:contain}.modal-info{background:#0000004d;padding:1.5rem}.modal-info h3{color:#f3e9d2;font-size:1.25rem;font-weight:400;margin:0 0 .5rem;text-transform:capitalize}.modal-info p{color:#f3e9d2cc;font-size:.875rem;margin:0}.enhancement-prompt{color:#f3e9d299!important;font-style:italic;margin-top:1rem!important}@media (max-width:768px){.ai-renderings-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.ai-rendering-card img{height:150px}.ai-renderings-controls{align-items:flex-start;flex-direction:column;gap:1rem}.group-by-controls{width:100%}}.project-detail-container{background:#4b4c3a;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Arial,sans-serif;min-height:100vh}.project-detail-header{background-color:initial;padding:2rem}.header-content{align-items:center;display:flex;justify-content:space-between}.header-left{gap:1rem}.header-logo{height:48px;width:auto}.project-detail-header h1{color:#f3e9d2;font-size:1.125rem;font-weight:300;letter-spacing:.5px;margin:0}.admin-warning-banner{align-items:center;background-color:#8b5cf6;border-bottom:2px solid #8b5cf633;color:#fff;display:flex;font-size:.875rem;font-weight:500;justify-content:center;padding:.75rem 2rem}.header-actions{align-items:center;gap:2rem}.logout-button{background-color:initial;border:1px solid #f3e9d24d;border-radius:6px;color:#f3e9d2;cursor:pointer;font-size:.875rem;font-weight:300;letter-spacing:.3px;padding:.5rem 1rem;transition:all .2s ease}.logout-button:hover{background-color:#baa5944d;border-color:#f3e9d280}.project-detail-main{flex:1 1;padding:1.5rem 2rem;width:100%}.project-overview{align-items:flex-start;display:flex;gap:2rem;margin-bottom:3rem}.project-image-container{flex-shrink:0;height:200px;width:300px}.project-image{border-radius:12px;object-fit:cover}.project-image,.project-image-placeholder{border:2px solid #f3e9d233;height:100%;width:100%}.project-image-placeholder{align-items:center;background-color:#baa5944d;border-radius:12px;display:flex;justify-content:center}.project-image-placeholder svg{color:#f3e9d266;height:60px;width:60px}.project-details{color:#f3e9d2;flex:1 1}.project-details h2{font-size:1.25rem;font-weight:300;letter-spacing:.5px;margin:0 0 1rem}.project-details p{color:#f3e9d2cc;font-size:1rem;line-height:1.6;margin:0}.content-section{margin-bottom:3rem;overflow:visible;position:relative}.content-section h2{color:#f3e9d2;font-size:1.25rem;font-weight:300;letter-spacing:.5px;margin:0 0 1.5rem}.collapsible-section{overflow:visible}.collapsible-section .collapsible-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:1.5rem;-webkit-user-select:none;user-select:none}.collapsible-section .collapsible-header:hover{opacity:.8}.collapsible-section .collapsible-header h2{margin:0}.collapsible-header-content{align-items:center;display:flex;gap:1.5rem}.saved-address{color:#f3e9d2b3;font-size:.9rem;font-weight:300;letter-spacing:.3px}.collapse-icon{color:#f3e9d2;transition:transform .3s ease}.collapse-icon.collapsed{transform:rotate(-90deg)}.structures-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.structure-card,.structures-grid{overflow:visible;position:relative}.structure-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#baa5944d;border:2px solid #f3e9d233;border-radius:12px;cursor:pointer;padding:0;transition:all .2s ease}.structure-card:has(.room-menu-dropdown),.structure-card:has(.structure-menu-dropdown){z-index:10}.structure-card:hover{background-color:#baa59466;border-color:#f3e9d24d;transform:translateY(-2px)}.structure-card-header{background-color:#2d4a2b;border-radius:10px 10px 0 0;margin:0;padding:1rem;position:relative}.structure-card-header h3{color:#f3e9d2;font-size:.9rem;font-weight:400;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.structure-thumbnail{border-radius:0;height:150px;object-fit:cover;width:100%}.structure-thumbnail-placeholder{align-items:center;background-color:#baa59426;border-radius:0;display:flex;height:150px;justify-content:center;width:100%}.structure-thumbnail-placeholder svg{color:#f3e9d24d;height:50px;width:50px}.structure-meta-info{border-radius:0 0 10px 10px;overflow:hidden;padding:.75rem 1rem}.structure-room-count{color:#f3e9d2cc;font-size:.875rem;font-weight:500;margin:0 0 .25rem}.structure-date{color:#f3e9d299;font-size:.75rem;margin:0}.new-room-scan-card{background:#baa59426;border:2px dashed #f3e9d24d}.new-room-scan-card:hover{background:#baa5944d;border-color:#f3e9d280}.new-room-scan-card .structure-thumbnail-placeholder{opacity:.7}.new-room-scan-card:hover .structure-thumbnail-placeholder{opacity:1}.room-menu-container,.structure-menu-container{position:absolute;right:8px;top:8px;z-index:20}.room-menu-button,.structure-menu-button{align-items:center;background:#0000;border:none;border-radius:4px;color:#f3e9d299;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s ease}.room-menu-button:hover,.structure-menu-button:hover{background-color:#f3e9d21a;color:#f3e9d2}.room-menu-dropdown,.structure-menu-dropdown{background-color:#54524f;border:1px solid #f3e9d233;border-radius:8px;box-shadow:0 4px 12px #0000004d;margin-top:4px;min-width:150px;overflow:hidden;position:absolute;right:0;top:100%;z-index:1000}.renderings-placeholder{background-color:#baa5944d;border:2px dashed #f3e9d233;border-radius:12px;padding:3rem;text-align:center}.renderings-placeholder p{color:#f3e9d2cc;font-size:1rem;margin:0}.renderings-hint{color:#f3e9d299!important;font-size:.875rem!important;margin-top:.5rem!important}.section-header{margin-bottom:1.5rem}.add-document-button{align-items:center;background-color:#baa5944d;border:1px solid #f3e9d24d;border-radius:8px;cursor:pointer;display:flex;height:36px;justify-content:center;padding:.5rem;transition:all .2s ease;width:36px}.add-document-button:hover{background-color:#baa59480;border-color:#f3e9d280;transform:scale(1.05)}.add-document-button svg{color:#f3e9d2}.scan-filter-controls{align-items:baseline;display:flex;gap:2rem}.data-source-toggle,.view-mode-toggle{align-items:baseline;display:flex;gap:.5rem}.scan-filter-controls span{color:#f3e9d299;font-size:.875rem;margin-right:.25rem}.project-detail-container .scan-filter-controls button,.project-detail-container .view-mode-toggle button,.scan-filter-controls button,.view-mode-toggle button{-webkit-appearance:none;appearance:none;background:none!important;background-color:initial!important;background-image:none!important;background:#4b4c3a00!important;border:1px solid #f3e9d24d!important;border-radius:6px;box-shadow:none;color:#f3e9d2cc!important;cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:400;line-height:1.5;outline:none;padding:.375rem .75rem;text-transform:none;transition:all .2s ease}.data-source-toggle button:first-of-type,.view-mode-toggle button:first-of-type{border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.data-source-toggle button:last-of-type,.view-mode-toggle button:last-of-type{border-bottom-left-radius:0;border-top-left-radius:0}.project-detail-container .scan-filter-controls button:focus,.project-detail-container .view-mode-toggle button:focus,.scan-filter-controls button:focus,.view-mode-toggle button:focus{background:#0000!important;box-shadow:none!important;outline:none!important}.project-detail-container .scan-filter-controls button:hover,.project-detail-container .view-mode-toggle button:hover,.scan-filter-controls button:hover,.view-mode-toggle button:hover{background:#baa59433!important;background-color:#baa59433!important;border-color:#f3e9d280!important}.project-detail-container .scan-filter-controls button.active,.project-detail-container .view-mode-toggle button.active,.scan-filter-controls button.active,.view-mode-toggle button.active{background:#baa59466!important;background-color:#baa59466!important;border-color:#f3e9d299!important;color:#f3e9d2!important}.room-card .structure-card-header{min-height:75px}.room-meta-info{margin-top:.5rem}.room-structure-name{color:#f3e9d280;font-size:.75rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-debug-category{color:#f3e9d266;font-size:.7rem;font-style:italic;margin:.2rem 0 0}.documents-placeholder{background-color:#baa5944d;border:2px solid #f3e9d233;border-radius:12px;padding:2rem}.documents-placeholder p{color:#f3e9d299;font-size:.9rem;margin:0}.empty-state{color:#f3e9d2cc;padding:3rem 2rem;text-align:center}.empty-state p{font-size:1rem;margin:.5rem 0}.empty-state-hint{color:#f3e9d299;font-size:.875rem}.error-message{background-color:#ff00001a;border:1px solid #f003;border-radius:12px;color:#ff6b6b;margin:2rem auto;max-width:600px;padding:2rem;text-align:center}.error-message .back-button{background-color:initial;border:1px solid #f3e9d24d;border-radius:6px;color:#f3e9d2;cursor:pointer;margin-top:1rem;padding:.5rem 1.25rem;transition:all .2s ease}.error-message .back-button:hover{background-color:#baa5944d;border-color:#f3e9d280}@media (max-width:1024px){.project-overview{flex-direction:column}.project-image-container{max-width:400px;width:100%}}@media (max-width:768px){.project-detail-header{padding:1.5rem}.header-content{flex-wrap:wrap;gap:1rem}.header-left{flex:1 1}.header-logo{height:40px}.project-detail-header h1{font-size:1rem}.project-detail-main{padding:1rem}.structures-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.structure-thumbnail,.structure-thumbnail-placeholder{height:120px}.section-header{align-items:flex-start;flex-direction:column;gap:1rem}.scan-filter-controls{flex-direction:column;gap:1rem;width:100%}.data-source-toggle,.view-mode-toggle{justify-content:center;width:100%}}.documents-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.construction-documents-section{background-color:#4b4c3a4d;border-top:2px solid #f3e9d233;margin-top:3rem;padding-top:2rem}.document-card{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#baa5944d;border:2px solid #f3e9d233;border-radius:12px;cursor:pointer;display:flex;gap:1rem;padding:1.5rem;transition:all .2s ease}.document-card:hover{background-color:#baa59466;border-color:#f3e9d24d;transform:translateY(-2px)}.document-card.cd-document{cursor:default;flex-direction:column;padding:0}.document-card.cd-document:hover{transform:none}.document-card.cd-document .document-content{align-items:center;border-radius:12px 12px 0 0;cursor:pointer;display:flex;gap:1rem;padding:1.5rem;transition:background-color .2s ease;width:100%}.document-card.cd-document .document-content:hover{background-color:#baa5941a}.document-actions{border-top:1px solid #f3e9d21a;display:flex;gap:.5rem;padding:.75rem 1.5rem}.document-actions .edit-button{align-items:center;background:#0000;border:1px solid #f3e9d24d;border-radius:6px;color:#f3e9d2;cursor:pointer;display:flex;font-size:.875rem;gap:.375rem;padding:.375rem .75rem;transition:all .2s ease}.document-actions .edit-button:hover{background:#baa5944d;border-color:#f3e9d280}.document-icon{color:#f3e9d2;flex-shrink:0}.document-info{flex:1 1;min-width:0}.document-info h4{color:#f3e9d2;font-size:1rem;font-weight:400;margin:0 0 .25rem}.document-filename{color:#f3e9d2b3;font-size:.8rem;margin:0 0 .5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-date{color:#f3e9d299;font-size:.75rem;margin:0}.documents-placeholder{color:#f3e9d299;padding:3rem 2rem;text-align:center}.documents-placeholder p{margin:0 0 .5rem}.documents-hint{color:#f3e9d280;font-size:.9rem}.admin-menu-item{justify-content:space-between}.admin-menu-item,.admin-menu-item span{align-items:center;display:flex;width:100%}.view-only-banner{align-items:center;background:linear-gradient(90deg,#7b1fa2,#9c27b0);box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;font-size:14px;gap:16px;justify-content:center;padding:12px 24px}.view-only-label{background:#fff3;border-radius:12px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.view-only-message{flex:1 1;text-align:center}.copy-project-button{background:#fff;border:none;border-radius:4px;color:#7b1fa2;cursor:pointer;font-weight:500;padding:6px 16px;transition:all .2s}.copy-project-button:hover{background:#f5f5f5;box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.header-right{align-items:center;display:flex;gap:12px}.share-button{background:#0000;border:1px solid #f3e9d24d;border-radius:6px;color:#f3e9d2;cursor:pointer;font-size:14px;font-weight:400;padding:8px 20px;transition:all .2s}.share-button:hover{background:#f3e9d21a;border-color:#f3e9d280;box-shadow:0 2px 8px #f3e9d21a;transform:translateY(-1px)}.pre-transformed-viewer-modal{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.viewer-container{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;display:flex;flex-direction:column;height:90%;max-height:800px;max-width:1200px;width:90%}.viewer-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:16px 20px}.viewer-header h3{font-size:18px;font-weight:600;margin:0}.close-button{background:none;font-size:28px;padding:0;transition:background-color .2s}.close-button:hover{background-color:#f0f0f0}.viewer-canvas{flex:1 1;overflow:hidden;position:relative}.error-overlay,.loading-overlay{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:10}.loading-spinner{border:3px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;margin:0 auto 12px;width:40px}.error-overlay{color:#d32f2f;font-weight:500}.viewer-info{align-items:center;background-color:#f8f8f8;border-top:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:12px 20px}.viewer-info p{color:#666;font-size:14px;margin:0}.viewer-controls{color:#999;font-size:12px}.ifc-export-dialog-overlay{align-items:center;animation:fadeIn .2s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.ifc-export-dialog-content{animation:slideUp .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000026;max-width:480px;width:90%}.ifc-export-dialog-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px}.ifc-export-dialog-header h3{color:#333;font-size:20px;font-weight:600;margin:0}.ifc-export-dialog-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;line-height:1;padding:4px;transition:all .2s ease;width:32px}.ifc-export-dialog-close:hover{background-color:#f5f5f5;color:#333}.ifc-export-dialog-body{padding:24px}.ifc-export-dialog-subtitle{color:#666;font-size:15px;margin:0 0 20px}.ifc-export-source-options{display:flex;flex-direction:column;gap:12px}.ifc-export-source-option{align-items:flex-start;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;padding:16px;transition:all .2s ease}.ifc-export-source-option:hover{background-color:#f8f9fa;border-color:#1976d2}.ifc-export-source-option.selected{background-color:#e3f2fd;border-color:#1976d2}.ifc-export-source-option input[type=radio]{flex-shrink:0;margin-right:12px;margin-top:2px}.ifc-export-source-info{display:flex;flex-direction:column;gap:4px}.ifc-export-source-label{color:#333;font-size:15px;font-weight:600}.ifc-export-source-description{color:#666;font-size:13px;line-height:1.4}.ifc-export-dialog-actions{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.ifc-export-dialog-button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;min-width:100px;padding:10px 20px;transition:all .2s ease}.ifc-export-dialog-button.cancel-button{background-color:#f5f5f5;color:#333}.ifc-export-dialog-button.cancel-button:hover{background-color:#e0e0e0}.ifc-export-dialog-button.export-button{background-color:#1976d2;color:#fff}.ifc-export-dialog-button.export-button:hover{background-color:#1565c0}.ifc-export-dialog-button:active{transform:scale(.98)}@media (max-width:480px){.ifc-export-dialog-content{margin:10px;width:95%}.ifc-export-dialog-body{padding:20px}.ifc-export-source-option{padding:12px}}.dxf-export-dialog-overlay{align-items:center;animation:fadeIn .2s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dxf-export-dialog-content{animation:slideUp .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000026;max-height:90vh;max-width:520px;overflow-y:auto;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dxf-export-dialog-header{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px;position:sticky;top:0;z-index:1}.dxf-export-dialog-header h3{color:#333;font-size:20px;font-weight:600;margin:0}.dxf-export-dialog-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;line-height:1;padding:4px;transition:all .2s ease;width:32px}.dxf-export-dialog-close:hover{background-color:#f5f5f5;color:#333}.dxf-export-dialog-body{padding:24px}.dxf-export-section{margin-bottom:28px}.dxf-export-section:last-child{margin-bottom:0}.dxf-export-dialog-subtitle{color:#666;font-size:15px;font-weight:500;margin:0 0 16px}.dxf-export-mode-options,.dxf-export-source-options{display:flex;flex-direction:column;gap:12px}.dxf-export-mode-option,.dxf-export-source-option{align-items:flex-start;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;padding:16px;transition:all .2s ease}.dxf-export-mode-option:hover,.dxf-export-source-option:hover{background-color:#fff8f3;border-color:#ff9800}.dxf-export-mode-option.selected,.dxf-export-source-option.selected{background-color:#fff3e0;border-color:#ff9800}.dxf-export-mode-option input[type=radio],.dxf-export-source-option input[type=radio]{accent-color:#ff9800;flex-shrink:0;margin-right:12px;margin-top:2px}.dxf-export-mode-info,.dxf-export-source-info{display:flex;flex-direction:column;gap:4px}.dxf-export-mode-label,.dxf-export-source-label{color:#333;font-size:15px;font-weight:600}.dxf-export-mode-description,.dxf-export-source-description{color:#666;font-size:13px;line-height:1.4}.dxf-export-dialog-actions{background:#fff;border-top:1px solid #e0e0e0;bottom:0;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px;position:sticky}.dxf-export-dialog-button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;min-width:100px;padding:10px 20px;transition:all .2s ease}.dxf-export-dialog-button.cancel-button{background-color:#f5f5f5;color:#333}.dxf-export-dialog-button.cancel-button:hover{background-color:#e0e0e0}.dxf-export-dialog-button.export-button{background-color:#ff9800;color:#fff}.dxf-export-dialog-button.export-button:hover{background-color:#f57c00}.dxf-export-dialog-button:active{transform:scale(.98)}@media (max-width:480px){.dxf-export-dialog-content{margin:10px;max-height:85vh;width:95%}.dxf-export-dialog-body{padding:20px}.dxf-export-mode-option,.dxf-export-source-option{padding:12px}.dxf-export-section{margin-bottom:24px}}.bathroom-analyzer{margin:0 auto;max-width:1200px;padding:20px}.bathroom-analyzer h1{color:#333;margin-bottom:20px}.controls{background-color:#f5f5f5;border-radius:8px;margin-bottom:30px;padding:20px}.controls label{font-weight:700;margin-right:10px}.controls select{border:1px solid #ddd;border-radius:4px;font-size:16px;min-width:250px;padding:8px 12px}.loading{font-size:18px}.error{background-color:#fee;border-radius:4px;color:#c00;margin:20px 0;padding:15px}.results{margin-top:30px}.results h2{color:#444;margin-bottom:20px}.bathrooms-list{grid-gap:20px;display:grid;gap:20px}.bathroom-card{background-color:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.bathroom-card h3{color:#333;margin-bottom:10px;margin-top:0}.bathroom-card p{color:#666;margin:5px 0}.wall-endpoints{margin-top:20px}.wall-endpoints h4{color:#555;margin-bottom:10px}.wall-endpoints table{border-collapse:collapse;margin-top:10px;width:100%}.wall-endpoints td,.wall-endpoints th{border:1px solid #ddd;padding:8px;text-align:left}.wall-endpoints th{background-color:#f5f5f5;font-weight:700}.wall-endpoints tr:nth-child(2n){background-color:#f9f9f9}.bathroom-visualization{margin-top:30px;text-align:center}.bathroom-visualization h4{color:#555;margin-bottom:15px}.wall-svg{background-color:#fafafa;border:1px solid #ddd;border-radius:4px}.analysis-mode-toggle{background-color:#f5f5f5;border-radius:8px;margin:20px 0;padding:15px}.analysis-mode-toggle label{color:#333;display:block;font-weight:700;margin-bottom:10px}.toggle-buttons{display:flex;gap:10px}.toggle-btn{background-color:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .3s ease}.toggle-btn:hover{background-color:#f0f0f0}.toggle-btn.active{background-color:#007bff;border-color:#007bff;color:#fff}.toggle-btn.active:hover{background-color:#0056b3}.section-container{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin:20px 0;padding:20px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.section-title{color:#333;font-size:1.25rem;font-weight:600;margin:0}.btn{border:none;border-radius:5px;cursor:pointer;font-size:16px;padding:10px 20px;transition:all .3s ease}.btn-primary{background-color:#2196f3;color:#fff}.btn-primary:hover{background-color:#1976d2}.btn-success{background-color:#4caf50;color:#fff}.btn-success:hover{background-color:#45a049}.btn-danger{background-color:#f44336;color:#fff}.btn-danger:hover{background-color:#da190b}.btn-warning{background-color:#ff9800;color:#fff}.btn-warning:hover{background-color:#e68900}.btn-small{font-size:14px;padding:5px 15px}.btn-icon{background-color:#f0f0f0;border:1px solid #ddd;color:#333;padding:5px 10px}.fixture-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.fixture-item{background-color:#fff;border:1px solid #ced4da;border-radius:6px;gap:8px;padding:8px 12px}.fixture-icon,.fixture-item{align-items:center;display:flex}.fixture-icon{font-size:18px}.fixture-name{font-weight:500}.fixture-remove{background:none;border:none;color:#dc3545;cursor:pointer;font-size:18px;margin-left:4px;padding:0}.control-group,.fixture-remove{align-items:center;display:flex}.control-group{flex-wrap:wrap;gap:10px;margin:10px 0}.control-label{align-items:center;cursor:pointer;display:flex;margin-left:10px}.control-label input[type=checkbox]{margin-right:5px}.slider-control{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.slider-input{width:150px}.slider-value{text-align:right;width:50px}.status-badge{border-radius:4px;padding:5px 10px}.status-success{background-color:#e8f5e9;border:1px solid #4caf50;color:#2e7d32}.status-warning{background-color:#fff3cd;border:1px solid #ffc107;color:#856404}.status-error{background-color:#ffebee;border:1px solid #f44336;color:#c62828}.status-info{border:1px solid #bde0ee}.score-display,.status-info{background-color:#e8f4f8;color:#333}.score-display{border:1px solid #bde0ee;border-radius:4px;font-size:12px;padding:4px 8px}.score-breakdown{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;font-size:12px;margin-top:10px;padding:10px}.score-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:10px}.score-item{color:#666;font-size:11px}.gallery-container{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.gallery-item{background-color:#fff;border:1px solid #ddd;border-radius:8px;cursor:pointer;padding:10px;position:relative;transition:all .2s}.gallery-item:hover{box-shadow:0 4px 8px #0000001a;transform:scale(1.02)}.gallery-item-filtered{background-color:#fff8e1;border:2px solid #ffc107}.gallery-badge{background-color:#ffc107;border-radius:3px;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;position:absolute;right:5px;top:5px}.notification{border-radius:4px;font-size:14px;margin-top:10px;padding:10px}.notification-warning{background-color:#fff3cd;border:1px solid #ffc107;color:#856404}.notification-info{background-color:#f5f5f5;border:1px solid #ddd;color:#333}.notification-success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.settings-panel{background-color:#f5f5f5;border-radius:8px;padding:15px}.settings-panel,.settings-section{margin-bottom:20px}.settings-section h4{color:#555;margin-bottom:10px}.settings-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.settings-help{color:#666;font-size:12px;margin-top:5px}.progress-container{margin-top:10px}.progress-bar{background-color:#e0e0e0;border-radius:10px;height:20px;overflow:hidden;width:100%}.progress-fill{background-color:#2196f3;height:100%;transition:width .3s ease}.progress-text{color:#666;font-size:14px;margin-top:5px}.text-center{text-align:center}.text-small{font-size:12px}.text-muted{color:#666}.text-bold{font-weight:700}.mt-10{margin-top:10px}.mt-20{margin-top:20px}.mb-10{margin-bottom:10px}.mb-20{margin-bottom:20px}.p-10{padding:10px}.p-20{padding:20px}.gap-10{gap:10px}.flex-wrap{flex-wrap:wrap}.flex-center{justify-content:center}.flex-between,.flex-center{align-items:center;display:flex}.flex-between{justify-content:space-between}.add-elements-container{bottom:20px;position:fixed;right:20px;z-index:1000}.add-button{align-items:center;background:#3b82f6;border:none;border-radius:50%;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;cursor:pointer;display:flex;height:56px;justify-content:center;position:relative;transition:all .3s ease;width:56px;z-index:1002}.add-button:hover{background:#2563eb;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;transform:scale(1.05)}.add-button:active{transform:scale(.95)}.add-button.close-mode{background:#ef4444}.add-button.close-mode:hover{background:#dc2626}.add-icon{color:#fff;display:block!important;transition:transform .3s ease}.add-button svg.add-icon,.add-icon{height:36px!important;min-height:36px!important;min-width:36px!important;width:36px!important}.add-button .add-icon line{stroke-width:4!important;stroke:#fff!important;stroke-linecap:round!important}.category-menu{animation:fadeInUp .3s ease;bottom:70px;display:flex;flex-direction:column;gap:10px;position:absolute;right:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.category-button{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:28px;box-shadow:0 2px 4px #0000001a;cursor:pointer;display:flex;gap:8px;min-width:120px;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.category-button:hover{background:#f9fafb;border-color:#3b82f6;box-shadow:0 4px 6px #0000001a;transform:translateX(-5px)}.category-icon{align-items:center;color:#6b7280;display:flex;height:20px;justify-content:center;width:20px}.category-button:hover .category-icon{color:#3b82f6}.category-label{color:#374151;font-size:14px;font-weight:500}.elements-panel{align-items:center;animation:slideInLeft .3s ease;bottom:20px;display:flex;gap:4px;left:auto;max-width:calc(100vw - 120px);overflow:visible;position:fixed;right:82px;z-index:1001}@keyframes slideInLeft{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.elements-row{align-items:center;display:flex;gap:4px;margin:-8px 0;overflow-x:auto;overflow-y:visible;padding:8px 4px;scrollbar-color:#e5e7eb #0000;scrollbar-width:thin}.elements-row::-webkit-scrollbar{height:6px}.elements-row::-webkit-scrollbar-track{background:#0000}.elements-row::-webkit-scrollbar-thumb{background-color:#e5e7eb;border-radius:3px}.elements-row::-webkit-scrollbar-thumb:hover{background-color:#d1d5db}.element-item{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:2px solid #e5e7eb;border-radius:50%;box-shadow:0 2px 4px #00000026;flex-direction:column;flex-shrink:0;height:56px;justify-content:center;padding:6px;width:56px}.element-item:hover{background:#f9fafbfa;box-shadow:0 4px 6px #0003;transform:translateY(-2px) scale(1.05)}.element-item.fixture-bathroom{border-color:#93c5fd}.element-item.fixture-bathroom:hover{background:#eff6ff;border-color:#3b82f6}.element-item.fixture-bathroom .element-icon{color:#3b82f6}.element-item.fixture-kitchen{border-color:#fed7aa}.element-item.fixture-kitchen:hover{background:#fff7ed;border-color:#f97316}.element-item.fixture-kitchen .element-icon{color:#f97316}.element-item.fixture-other{border-color:#bbf7d0}.element-item.fixture-other:hover{background:#f0fdf4;border-color:#22c55e}.element-item.fixture-other .element-icon{color:#22c55e}.element-item:active{transform:translateY(0)}.element-item.selected{background:#eff6fffa;border-color:#3b82f6;border-width:3px}.element-item.selected.element-structure{background:#f3f4fffa;border-color:#8b5cf6}.element-item.selected.element-furniture{background:#fef2f2fa;border-color:#ef4444}.element-item.selected.fixture-bathroom{background:#eff6fffa;border-color:#2563eb}.element-item.selected.fixture-kitchen{background:#fff7edfa;border-color:#ea580c}.element-item.selected.fixture-other{background:#f0fdf4fa;border-color:#16a34a}.element-icon{align-items:center;color:#6b7280;display:flex;height:20px;justify-content:center;margin-bottom:2px;width:20px}.element-item:hover .element-icon{color:#3b82f6}.element-icon svg{height:100%;width:100%}.element-name{color:#374151;font-size:8px;line-height:1.1;max-width:46px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){.add-elements-container{bottom:10px;right:10px}.add-button{height:48px;width:48px}.category-menu{bottom:60px}.elements-panel{bottom:10px;max-width:calc(100vw - 90px);right:60px}.element-item{height:48px;width:48px}.element-icon{height:18px;width:18px}.element-name{font-size:9px}}@media (max-width:768px) and (orientation:landscape){.elements-panel{bottom:5px}.category-menu{bottom:auto;flex-direction:row;gap:8px;right:70px}.category-button{min-width:auto;padding:6px 12px}}.uv-floor-plan-page{bottom:0;height:100%;left:0;overflow:hidden;position:fixed;right:0;top:0;width:100%}.floor-plan-header{align-items:center;display:flex;left:0;padding:1.5rem 2rem;position:absolute;top:0;z-index:1001}.floor-plan-header .header-left{align-items:center;display:flex;gap:1rem}.floor-plan-header .header-logo{cursor:pointer;height:48px;margin-bottom:.5rem;margin-top:.5rem;transition:transform .2s ease;width:48px}.floor-plan-header .header-logo:hover{transform:scale(1.05)}.back-button{background-color:#007bff;font-size:14px}.back-button:hover{background-color:#0056b3}.floor-plan-header h2{background-color:#ffffffe6;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#333;font-size:1.5rem;margin:0;padding:.5rem 1rem}.floor-plan-viewer-container{contain:layout style;height:100%;position:relative;width:100%}.uv-floor-plan-page .top-right-control-panel{pointer-events:none;position:absolute;right:20px;top:80px;z-index:1000}.uv-floor-plan-page .top-right-control-panel>*{pointer-events:auto}.uv-floor-plan-error{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center;text-align:center}.uv-floor-plan-error h2{color:#dc3545;margin-bottom:1rem}.uv-floor-plan-error button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:1rem;padding:.5rem 1rem}.uv-floor-plan-error button:hover{background-color:#0056b3}@media (max-width:768px){.floor-plan-header .structure-name{display:none}}.elevations-viewer-page{background:linear-gradient(135deg,#f5f5f5,#e0e0e0);height:100vh;height:calc(100vh - env(safe-area-inset-bottom));overflow:hidden;position:relative;width:100vw}.elevations-viewer-container{height:100%;max-height:calc(100% - env(safe-area-inset-bottom));position:relative;width:100%}.error-page{align-items:center;display:flex;justify-content:center}.error-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;max-width:400px;padding:2rem;text-align:center}.error-container h2{color:#d32f2f;margin-bottom:1rem}.error-container p{color:#666;margin-bottom:1.5rem}.back-button{background:#1976d2;border:none;border-radius:4px;color:#fff;font-size:1rem;padding:.75rem 1.5rem;transition:background .3s ease}.back-button:hover{background:#1565c0}.elevations-viewer-page:fullscreen{height:100vh;width:100vw}:root{--react-pdf-annotation-layer:1;--annotation-unfocused-field-background:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>');--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:#0000;--input-disabled-border-color:#0000;--input-hover-border-color:#000;--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 .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{left:0;pointer-events:none;position:absolute;top:0;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translateX(-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{height:100%;position:absolute;width:100%}.annotationLayer section{box-sizing:border-box;margin:0;pointer-events:auto;position:absolute;text-align:left;text-align:initial;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:none;outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{font-size:1em;height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{background:#ff0;box-shadow:0 2px 10px #ff0;opacity:.2}.annotationLayer .textAnnotation img{cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input,.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .textWidgetAnnotation :is(input,textarea){background-image:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>');background-image:var(--annotation-unfocused-field-background);border:2px solid #0000;border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px*var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):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 .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled]{background:none;border:2px solid #0000;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border:2px solid #000;border:2px solid var(--input-hover-border-color)}.annotationLayer .buttonWidgetAnnotation.checkBox input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border-radius:2px}.annotationLayer .choiceWidgetAnnotation select:focus,.annotationLayer .textWidgetAnnotation :is(input,textarea):focus{background:none;border:2px solid Highlight;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-color:initial;background-image:none}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid Highlight;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid Highlight;border:2px solid var(--input-focus-border-color);outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{height:80%;left:45%;width:1px}.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%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{font-size:calc(9px*var(--total-scale-factor));min-width:calc(180px*var(--total-scale-factor));pointer-events:none;position:absolute;width:100%}.annotationLayer .popup{word-wrap:break-word;background-color:#ff9;border-radius:calc(2px*var(--total-scale-factor));box-shadow:0 calc(2px*var(--total-scale-factor)) calc(5px*var(--total-scale-factor)) #888;cursor:pointer;font:message-box;margin-left:calc(5px*var(--total-scale-factor));max-width:calc(180px*var(--total-scale-factor));padding:calc(6px*var(--total-scale-factor));pointer-events:auto;position:absolute;white-space:normal}.annotationLayer .popup>*{font-size:calc(9px*var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px*var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid #333;margin-top:calc(2px*var(--total-scale-factor));padding-top:calc(2px*var(--total-scale-factor))}.annotationLayer .richText>*{font-size:calc(9px*var(--total-scale-factor));white-space:pre-wrap}.annotationLayer .caretAnnotation,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .fileAttachmentAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .highlightAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .lineAnnotation svg line,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .squareAnnotation svg rect,.annotationLayer .squigglyAnnotation,.annotationLayer .stampAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .underlineAnnotation{cursor:pointer}.annotationLayer section svg{height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer .annotationTextContent{color:#0000;height:100%;opacity:0;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.annotationLayer .annotationTextContent span{display:inline-block;width:100%}: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) translateX(-100%)}.textLayer{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;inset:0;line-height:1;overflow:hidden;position:absolute;text-align:left;text-align:initial;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:#0000;cursor:text;margin:0;position:absolute;transform-origin:0 0;white-space:pre}.textLayer span.markedContent{height:0;top:0}.textLayer .highlight{background-color:#b400aa;background-color:var(--highlight-bg-color);border-radius:4px;margin:-1px;padding:1px}.textLayer .highlight.appended{position:static}.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:#006400;background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:#0000}.textLayer .endOfContent{cursor:default;display:block;inset:100% 0 0;position:absolute;-webkit-user-select:none;user-select:none;z-index:-1}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{display:none;height:0;left:0;position:absolute;top:0;width:0}.cd-editor-container{background:#4b4c3a;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Arial,sans-serif;min-height:100vh;-webkit-user-select:none;user-select:none}.cd-editor-header{background-color:#4b4c3af2;border-bottom:1px solid #f3e9d233;justify-content:space-between;padding:1rem 2rem}.cd-editor-header,.header-left{align-items:center;display:flex}.header-left{gap:1.5rem}.back-button{background:#0000;border:1px solid #f3e9d24d;border-radius:6px;color:#f3e9d2;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s ease}.back-button:hover{background:#baa5944d;border-color:#f3e9d280}.cd-editor-header h1{color:#f3e9d2;font-size:1.25rem;font-weight:400;margin:0}.doc-name{color:#f3e9d2b3;font-size:.875rem;font-style:italic}.header-actions{display:flex;gap:1rem}.save-button{background:#baa5944d;border:1px solid #f3e9d24d;border-radius:6px;color:#f3e9d2;font-size:.875rem;padding:.5rem 1.5rem;transition:all .2s ease}.save-button:hover{background:#baa59480;border-color:#f3e9d280}.cd-editor-main{display:flex;flex:1 1;height:calc(100vh - 80px);overflow:hidden}.cd-editor-sidebar{background:#4b4c3a80;border-right:1px solid #f3e9d233;overflow-y:auto;padding:1.5rem;width:300px}.sidebar-section{margin-bottom:2rem}.sidebar-section h3{color:#f3e9d2;font-size:.875rem;font-weight:500;letter-spacing:.5px;margin-bottom:1rem;text-transform:uppercase}.upload-button{background:#baa5944d;border:2px dashed #f3e9d24d;border-radius:8px;color:#f3e9d2;cursor:pointer;display:block;padding:.75rem;text-align:center;transition:all .2s ease;width:100%}.upload-button:hover{background:#baa59466;border-color:#f3e9d280}.upload-button span{font-size:.875rem}.project-documents-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.project-document-item{align-items:flex-start;background:#baa59433;border:1px solid #f3e9d233;border-radius:6px;color:#f3e9d2;cursor:pointer;display:flex;flex-direction:column;gap:.25rem;padding:.75rem;text-align:left;transition:all .2s ease;width:100%}.project-document-item:hover{background:#baa5944d;border-color:#f3e9d266}.doc-type-badge{background:#baa5944d;border-radius:3px;color:#f3e9d2e6;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.125rem .375rem;text-transform:uppercase}.doc-name{color:#f3e9d2cc;font-size:.813rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.elements-list{display:flex;flex-direction:column;gap:.5rem}.element-item{align-items:center;background:#baa59433;border:1px solid #0000;border-radius:6px;color:#f3e9d2;cursor:pointer;display:flex;font-size:.875rem;justify-content:space-between;padding:.5rem .75rem;transition:all .2s ease}.element-item:hover{background:#baa5944d}.element-item.selected{background:#baa59466;border-color:#f3e9d280}.delete-btn{align-items:center;background:#0000;border:none;color:#f3e9d2b3;cursor:pointer;display:flex;font-size:1.25rem;height:20px;justify-content:center;padding:0;transition:color .2s ease;width:20px}.delete-btn:hover{color:#ff6b6b}.controls{gap:1rem}.controls,.controls label{display:flex;flex-direction:column}.controls label{color:#f3e9d2;font-size:.875rem;gap:.5rem}.controls input[type=range]{width:100%}.controls button{background:#baa5944d;border:1px solid #f3e9d24d;border-radius:6px;color:#f3e9d2;cursor:pointer;font-size:.875rem;padding:.5rem;transition:all .2s ease}.controls button:hover{background:#baa59466}.page-controls{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.page-controls button{background:#baa5944d;border:1px solid #f3e9d24d;border-radius:4px;color:#f3e9d2;cursor:pointer;font-size:.75rem;padding:.25rem .5rem;transition:all .2s ease}.page-controls button:hover:not(:disabled){background:#baa59466}.page-controls button:disabled{cursor:not-allowed;opacity:.5}.page-controls span{color:#f3e9d2;font-size:.875rem}.cd-editor-canvas{align-items:center;background:#1e1e1980;display:flex;flex:1 1;justify-content:center;overflow:auto;padding:2rem;position:relative}.pdf-container{background:#fff;box-shadow:0 4px 24px #0000004d;position:relative}.elements-overlay{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.placed-element{border:2px solid #0000;cursor:move;pointer-events:all;position:absolute;transition:border-color .2s ease}.placed-element:hover{border-color:#baa59480}.placed-element.selected{border-color:#baa594;box-shadow:0 0 0 1px #baa5944d}.element-placeholder{align-items:center;background:#baa5941a;border:1px dashed #baa59466;color:#4b4c3a;display:flex;font-size:.875rem;height:100%;justify-content:center;padding:1rem;text-align:center;width:100%}.resize-handles{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.resize-handle{background:#baa594;border:1px solid #4b4c3a;cursor:nwse-resize;height:8px;pointer-events:all;position:absolute;width:8px}.resize-handle.nw{cursor:nw-resize;left:-4px;top:-4px}.resize-handle.ne{cursor:ne-resize;right:-4px;top:-4px}.resize-handle.sw{bottom:-4px;cursor:sw-resize;left:-4px}.resize-handle.se{bottom:-4px;cursor:se-resize;right:-4px}.resize-handle.n{cursor:n-resize;top:-4px}.resize-handle.n,.resize-handle.s{left:50%;transform:translateX(-50%);width:20px}.resize-handle.s{bottom:-4px;cursor:s-resize}.resize-handle.e{cursor:e-resize;right:-4px}.resize-handle.e,.resize-handle.w{height:20px;top:50%;transform:translateY(-50%)}.resize-handle.w{cursor:w-resize;left:-4px}.react-pdf__Document{align-items:center;display:flex;flex-direction:column}.react-pdf__Page{margin:0}.react-pdf__Page canvas{display:block}.cd-editor-canvas>div:first-child{color:#f3e9d2}.initialize-keywords{background:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:2rem auto;max-width:600px;padding:2rem}.initialize-keywords h2{color:#333;margin-bottom:1.5rem;text-align:center}.info-box{background:#fff;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:2rem;padding:1.5rem}.info-box ul{margin:1rem 0;padding-left:2rem}.info-box li{color:#555;margin:.5rem 0}.warning{align-items:center;color:#ff6b6b;display:flex;font-weight:500;gap:.5rem;margin-top:1rem}.initialize-button{background:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;display:block;font-size:1.1rem;font-weight:500;padding:1rem 2rem;transition:background .3s ease;width:100%}.initialize-button:hover{background:#45a049}.loading{padding:2rem}.spinner{border-top-color:#3498db;margin:0 auto 1rem}.error-message,.success-message{border-radius:6px;padding:2rem;text-align:center}.success-message{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.error-message{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.check-icon,.error-icon{display:inline-block;font-size:2rem;margin-bottom:.5rem}.check-icon{color:#28a745}.error-icon{color:#dc3545}.error-message button{background:#721c24;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:1rem;padding:.5rem 1rem}.error-message button:hover{background:#5a161c}.admin-layout{background-color:#f5f5f5;display:flex;height:100vh}.admin-sidebar{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:2px 0 10px #0000001a;color:#fff;display:flex;flex-direction:column;transition:width .3s ease;width:260px}.admin-sidebar.collapsed{width:70px}.admin-sidebar-header{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;min-height:70px;padding:20px}.admin-sidebar-header h2{font-size:20px;font-weight:600;margin:0;white-space:nowrap}.sidebar-toggle{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:30px;justify-content:center;transition:all .3s ease;width:30px}.sidebar-toggle:hover{background:#ffffff4d;transform:scale(1.1)}.admin-nav{flex:1 1;padding:20px 0}.admin-nav-item{align-items:center;border-radius:8px;color:#fffc;display:flex;margin:4px 12px;padding:12px 20px;position:relative;text-decoration:none;transition:all .3s ease}.admin-nav-item:hover{background:#ffffff1a;color:#fff;transform:translateX(5px)}.admin-nav-item.active{background:#fff3;color:#fff}.admin-nav-item.active:before{background:#fff;border-radius:0 3px 3px 0;content:"";height:70%;left:0;position:absolute;top:50%;transform:translateY(-50%);width:3px}.nav-icon{align-items:center;display:flex;font-size:24px;justify-content:center;margin-right:15px;min-width:30px}.admin-sidebar.collapsed .nav-icon{margin-right:0}.nav-content{display:flex;flex-direction:column;white-space:nowrap}.nav-label{font-size:15px;font-weight:500;margin-bottom:2px}.nav-description{font-size:12px;opacity:.7}.admin-sidebar.collapsed .nav-content{display:none}.admin-sidebar-footer{border-top:1px solid #ffffff1a;padding:20px}.admin-user-info{margin-bottom:15px}.admin-badge{background:#fff3;border-radius:20px;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.back-to-app{color:#fffc;font-size:14px;text-decoration:none;transition:color .3s ease}.back-to-app:hover{color:#fff}.admin-main{background-color:#f5f5f5;flex:1 1;overflow-y:auto}.admin-loading{align-items:center;color:#666;display:flex;font-size:18px;height:100vh;justify-content:center}@media (max-width:768px){.admin-sidebar{height:100%;position:fixed;z-index:1000}.admin-sidebar:not(.collapsed){width:100%}.admin-sidebar.collapsed{overflow:hidden;width:0}.admin-main{margin-left:0}.sidebar-toggle{background:#667eea;left:20px;position:fixed;top:20px;z-index:1001}.admin-sidebar.collapsed .sidebar-toggle{left:10px}}.admin-dashboard{margin:0 auto;max-width:1400px;padding:30px}.dashboard-header{margin-bottom:40px}.dashboard-header h1{color:#333;font-size:32px;font-weight:600;margin:0}.dashboard-subtitle{color:#666;font-size:16px;margin:5px 0 0}.dashboard-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-bottom:30px}.dashboard-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden;padding:0;transition:transform .3s ease,box-shadow .3s ease}.dashboard-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.card-header{align-items:center;background:linear-gradient(135deg,#f5f7fa,#fff);border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px 25px}.card-header h2{color:#333;font-size:20px;font-weight:600;margin:0}.card-link{color:#667eea;font-size:14px;font-weight:500;text-decoration:none;transition:color .3s ease}.card-link:hover{color:#764ba2}.card-footer{background:#f8f9fa;border-top:1px solid #eee;color:#666;font-size:13px;padding:15px 25px}.stats-grid{grid-template-columns:repeat(2,1fr);padding:25px}.stat{text-align:center}.stat-value{color:#667eea;margin-bottom:5px}.stat-label{font-size:13px}.version-info{padding:25px}.version-item{border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:12px 0}.version-item:last-child{border-bottom:none}.version-label{color:#666;font-size:14px}.version-value{color:#333;font-size:15px;font-weight:600}.status-badge{border-radius:20px;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.status-badge.active{background:#f44;color:#fff}.status-badge.inactive{background:#e8f5e9;color:#4caf50}.quick-actions{display:flex;flex-direction:column;gap:12px;padding:25px}.admin-dashboard .action-button{align-items:center;background:#f5f7fa;border:1px solid #e0e0e0;border-radius:8px;color:#333;display:flex;font-size:14px;font-weight:500;gap:12px;padding:14px 18px;text-decoration:none;transition:all .3s ease}.admin-dashboard .action-button:hover{background:#667eea;color:#fff;transform:translateX(5px)}.action-icon{font-size:20px}.green-dot{color:#4caf50;font-size:12px}.orange-dot{color:#ff9800;font-size:12px}.activity-indicator{align-items:center;display:flex;gap:6px}.activity-indicator,.info-text{color:#666;font-size:13px}.dashboard-footer{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;justify-content:space-between;padding:20px}.dashboard-footer p{color:#666;font-size:14px;margin:0}.refresh-button{background:#667eea;border-radius:6px;font-weight:500;padding:8px 20px;transition:background .3s ease}.refresh-button:hover{background:#764ba2}.loading-state{align-items:center;color:#666;display:flex;font-size:16px;justify-content:center;min-height:400px}@media (max-width:1024px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width:768px){.admin-dashboard{padding:20px}.dashboard-header h1{font-size:24px}.stats-grid{gap:15px;grid-template-columns:1fr}.stat-value{font-size:28px}.dashboard-footer{flex-direction:column;gap:15px;text-align:center}}.version-management{margin:0 auto;max-width:1200px;padding:20px}.version-management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.version-management-header h1{color:#333;margin:0}.refresh-button{background:#f0f0f0;border:1px solid #ddd;transition:background .2s}.refresh-button:hover:not(:disabled){background:#e0e0e0}.refresh-button:disabled{opacity:.5}.version-management-error,.version-management-loading{font-size:18px;padding:40px;text-align:center}.version-management-error{color:#dc3545}.alert{padding:12px 16px}.alert-error{background:#fee;border:1px solid #fcc;color:#c33}.alert-success{background:#efe;border:1px solid #cfc;color:#3c3}.version-management-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr}@media (max-width:768px){.version-management-content{grid-template-columns:1fr}}.stats-section{background:#fff;border:1px solid #ddd;border-radius:8px;padding:20px}.stats-section h2{color:#333;font-size:20px;margin-bottom:20px;margin-top:0}.version-stats{display:flex;flex-direction:column;gap:15px}.stat-item{background:#f8f9fa;border-radius:4px;display:flex;justify-content:space-between;padding:10px}.stat-label{font-weight:500}.version-breakdown{margin-top:20px}.version-breakdown h3{color:#333;font-size:16px;margin-bottom:15px}.version-item{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:80px 80px 1fr;margin-bottom:10px}.version-number{color:#333;font-weight:600}.version-count{color:#666;font-size:14px}.version-bar{background:#e0e0e0;border-radius:10px;height:20px;overflow:hidden}.version-bar-fill{background:linear-gradient(90deg,#4caf50,#45a049);height:100%;transition:width .3s ease}.config-section{background:#fff;border:1px solid #ddd;border-radius:8px;padding:20px}.config-section h2{color:#333;font-size:20px;margin-bottom:20px;margin-top:0}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-weight:500;margin-bottom:8px}.form-group input[type=number],.form-group input[type=text],.form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;transition:border-color .2s;width:100%}.form-group input[type=number]:focus,.form-group input[type=text]:focus,.form-group textarea:focus{border-color:#4caf50;outline:none}.form-group textarea{font-family:inherit;resize:vertical}.checkbox-group label{align-items:center;cursor:pointer;display:flex}.checkbox-group input[type=checkbox]{cursor:pointer;margin-right:8px}.blocked-versions{display:flex;flex-direction:column;gap:10px}.blocked-version-item{align-items:center;background:#f8f9fa;border-radius:4px;display:flex;justify-content:space-between;padding:8px 12px}.blocked-version-item span{font-weight:500}.remove-button{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 8px}.remove-button:hover{background:#c82333}.add-blocked-version{display:flex;gap:10px}.add-blocked-version input{flex:1 1}.add-blocked-version button{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px}.add-blocked-version button:hover{background:#45a049}.form-actions{border-top:1px solid #e0e0e0;margin-top:30px;padding-top:20px}.save-button{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:background .2s}.save-button:hover:not(:disabled){background:#45a049}.save-button:disabled{cursor:not-allowed;opacity:.5}.user-analytics{margin:0 auto;max-width:1400px;padding:20px}.user-analytics-header{align-items:center;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:15px}.user-analytics-header h1{color:#333;font-size:28px;margin:0}.refresh-button{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .3s}.refresh-button:hover:not(:disabled){background-color:#45a049}.refresh-button:disabled{background-color:#ccc;cursor:not-allowed}.stats-summary{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px;text-align:center}.stat-value{font-size:36px;margin-bottom:8px}.stat-label{letter-spacing:.5px;text-transform:uppercase}.search-section{margin-bottom:20px}.search-input{border:1px solid #ddd;border-radius:4px;font-size:14px;max-width:400px;padding:10px 15px;transition:border-color .3s;width:100%}.search-input:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a;outline:none}.user-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.user-table{border-collapse:collapse;width:100%}.user-table thead{background-color:#f5f5f5}.user-table th{border-bottom:2px solid #e0e0e0;color:#333;cursor:pointer;font-size:14px;font-weight:600;padding:12px 15px;text-align:left;-webkit-user-select:none;user-select:none;white-space:nowrap}.user-table th:hover{background-color:#eee}.user-table tbody tr{border-bottom:1px solid #e0e0e0;transition:background-color .2s}.user-table tbody tr:hover{background-color:#f9f9f9}.user-table tbody tr.active-user{background-color:#e8f5e9}.user-table tbody tr.active-user:hover{background-color:#dcedc8}.user-table td{color:#555;font-size:14px;padding:12px 15px}.email-cell{font-weight:500}.user-id{color:#999;font-size:11px;margin-top:2px}.number-cell{font-weight:500;text-align:center}.scans-detail{font-size:13px}.project-scans{display:flex;flex-direction:column;gap:4px}.project-scan-item{background-color:#f5f5f5;border-radius:3px;display:flex;justify-content:space-between;padding:2px 4px}.project-link{align-items:center;color:inherit;display:flex;text-decoration:none;transition:color .2s}.project-link:hover{color:#2196f3}.project-link:hover .project-name{text-decoration:underline}.project-name{color:#666;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scan-count{color:#2196f3;font-weight:600}.active-login{color:#4caf50;font-weight:500}.platform-info{display:flex;gap:4px}.platform-badge{border-radius:12px;font-size:11px;font-weight:600;padding:2px 8px;text-transform:uppercase}.platform-badge.ios{background-color:#007aff;color:#fff}.platform-badge.web{background-color:#ff9800;color:#fff}.user-analytics-error,.user-analytics-loading{align-items:center;color:#666;display:flex;font-size:18px;justify-content:center;min-height:400px}.user-analytics-error{color:#f44336}.alert{border-radius:4px;font-size:14px;margin-bottom:20px;padding:12px 20px}.alert-error{background-color:#ffebee;border-left:4px solid #f44336;color:#c62828}.no-results{color:#999;font-size:16px;padding:40px;text-align:center}.pagination-controls{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;margin-top:20px;padding:20px}.pagination-info{color:#666;font-size:14px}.pagination-buttons{align-items:center;display:flex;gap:8px}.pagination-btn,.pagination-number{background:#fff;border:1px solid #ddd;border-radius:4px;color:#333;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s}.pagination-btn:hover:not(:disabled),.pagination-number:hover:not(.active){background:#f5f5f5;border-color:#999}.pagination-btn:disabled{cursor:not-allowed;opacity:.5}.pagination-number.active{background:#2196f3;border-color:#2196f3;color:#fff;font-weight:600}.pagination-ellipsis{color:#999;padding:0 4px}@media (max-width:768px){.user-analytics{padding:10px}.user-analytics-header{align-items:flex-start;flex-direction:column;gap:10px}.stats-summary{gap:10px;grid-template-columns:repeat(2,1fr)}.stat-card{padding:15px}.stat-value{font-size:28px}.user-table-container{overflow-x:auto}.user-table{min-width:800px}.user-table td,.user-table th{font-size:12px;padding:8px 10px}.pagination-controls{flex-direction:column;gap:12px;padding:15px}.pagination-info{font-size:12px}.pagination-buttons{flex-wrap:wrap;justify-content:center}.pagination-btn,.pagination-number{font-size:12px;padding:6px 10px}}.data-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.data-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;display:flex;flex-direction:column;max-height:80vh;max-width:900px;width:100%}.data-modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px}.data-modal-header h3{color:#333;font-size:18px;margin:0}.data-modal-actions{align-items:center;display:flex;gap:10px}.view-mode-toggle{background:#f0f0f0;border-radius:4px;display:flex;padding:2px}.mode-button{background:#0000;border:none;border-radius:3px;color:#666;cursor:pointer;font-size:12px;font-weight:500;padding:6px 12px;transition:all .2s}.mode-button:hover{color:#333}.mode-button.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#2196f3}.copy-button{background:#2196f3;border-radius:4px;color:#fff;font-size:14px;padding:6px 12px;transition:background .2s}.copy-button:hover{background:#1976d2}.copy-button.copied{background:#4caf50}.close-button{align-items:center;background:#0000;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;transition:background .2s;width:32px}.close-button:hover{background:#f5f5f5}.data-modal-content{background:#f8f9fa;flex:1 1;overflow:auto;padding:20px}.json-tree{color:#333;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.6}.json-item{align-items:baseline;display:flex;gap:6px;margin:2px 0}.json-item.expandable{display:block}.json-item-header{align-items:center;border-radius:3px;cursor:pointer;display:flex;gap:6px;padding:2px 4px;transition:background .2s}.json-item-header:hover{background:#2196f314}.json-key{color:#881391;font-weight:500}.json-value{color:#1a1aa6}.json-preview{color:#999;font-size:12px;font-style:italic}.json-bracket{color:#666;margin-left:2px}.json-bracket-close{color:#666;margin-left:18px}.json-nested{border-left:1px solid #e0e0e0;margin-bottom:2px;margin-left:20px;margin-top:2px;padding-left:12px}.json-display{word-wrap:break-word;background:#fff;border:1px solid #e0e0e0;border-radius:4px;color:#333;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.5;margin:0;padding:15px;white-space:pre-wrap}@media (max-width:768px){.data-modal-overlay{padding:10px}.data-modal{max-height:90vh}.data-modal-header{padding:15px}.data-modal-header h3{font-size:16px}.data-modal-content{padding:15px}.json-display{font-size:11px;padding:10px}}.admin-project-details{margin:0 auto;max-width:1400px;padding:20px}.project-header{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;padding:20px}.back-link{align-items:center;color:#2196f3;display:inline-flex;font-size:14px;margin-bottom:10px;text-decoration:none}.back-link:hover{text-decoration:underline}.project-header h1{color:#333;margin:10px 0}.project-meta{color:#666;display:flex;font-size:14px;gap:20px}.project-meta span{align-items:center;display:flex}.tabs{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;gap:4px;margin-bottom:20px;padding:4px}.tab{background:#0000;border:none;color:#666;font-size:14px;padding:10px 20px;transition:all .2s}.tab.active{background:#2196f3}.tab-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-box{background:#f8f9fa;border-radius:8px;padding:20px;text-align:center}.stat-label{font-size:14px;margin-bottom:8px}.stat-value{color:#333;font-size:28px}.project-info{margin-top:30px}.project-info h3{color:#333;margin-bottom:15px}.info-grid{gap:12px}.info-row{grid-template-columns:150px 1fr;padding:10px}.info-label{font-weight:600}.info-value{word-break:break-word}.data-table{border-collapse:collapse;margin-top:15px;width:100%}.data-table th{background:#f8f9fa;border-bottom:2px solid #e0e0e0;color:#666;font-weight:600;padding:12px;text-align:left}.data-table td{border-bottom:1px solid #e0e0e0;color:#333;padding:12px}.data-table tbody tr:hover{background:#f5f5f5}.id-cell{font-size:12px}.id-cell,.path-cell{color:#666;font-family:monospace}.path-cell{font-size:11px;word-break:break-all}.format-badges{display:flex;flex-wrap:wrap;gap:4px}.format-badge{background:#2196f3;border-radius:3px;color:#fff;display:inline-block;font-size:11px;font-weight:600;padding:2px 6px}.storage-summary{background:#f8f9fa;border-radius:8px;margin-bottom:20px;padding:15px}.storage-summary p{color:#666;margin:5px 0}.storage-summary strong{color:#333}.file-link{color:#2196f3;text-decoration:none}.file-link:hover{text-decoration:underline}.source-cell{display:flex;flex-direction:column;gap:4px}.source-badge{border-radius:3px;display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;text-transform:uppercase;width:fit-content}.source-storage{background:#4caf50;color:#fff}.source-url{background:#ff9800;color:#fff}.source-details{color:#666;font-family:monospace;font-size:10px;line-height:1.4;margin-top:2px;max-width:400px;white-space:pre-line;word-break:break-word}.error-row{background:#ffebee}.data-icon,.data-icon-small{background:#0000;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:16px;margin-left:10px;padding:4px 8px;transition:all .2s;vertical-align:middle}.data-icon-small{font-size:14px;margin:0;padding:2px 6px}.data-icon-small:hover,.data-icon:hover{background:#f5f5f5;border-color:#2196f3;transform:scale(1.1)}.project-header h1{align-items:center;display:flex;gap:10px}.admin-project-details-error,.admin-project-details-loading{align-items:center;color:#666;display:flex;flex-direction:column;font-size:18px;gap:20px;justify-content:center;min-height:400px}.admin-project-details-error{color:#f44336}.admin-project-details-error button{background:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.admin-project-details-error button:hover{background:#1976d2}@media (max-width:768px){.admin-project-details{padding:10px}.project-meta{flex-direction:column;gap:8px}.tabs{flex-wrap:wrap}.tab{flex:1 1;font-size:12px;min-width:100px;padding:8px 10px}.info-row,.stats-grid{grid-template-columns:1fr}.info-row{gap:4px}.data-table{display:block;font-size:12px;overflow-x:auto}.data-table td,.data-table th{padding:8px}}.user-projects{margin:0 auto;max-width:1400px;padding:20px}.user-projects .header{border-bottom:2px solid #e0e0e0;margin-bottom:30px;padding-bottom:20px}.user-projects .back-link{color:#1976d2;display:inline-block;font-size:14px;margin-bottom:15px;text-decoration:none}.user-projects .back-link:hover{text-decoration:underline}.user-projects h1{color:#333;font-size:28px;margin:10px 0}.user-projects .user-info{color:#666;display:flex;font-size:14px;gap:20px;margin-top:10px}.user-projects .user-info span{align-items:center;display:flex}.user-projects-error,.user-projects-loading{color:#666;font-size:16px;padding:40px;text-align:center}.user-projects-error{color:#d32f2f}.user-projects-error button{background:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-top:20px;padding:10px 20px}.user-projects-error button:hover{background:#1565c0}.projects-summary{background:#f5f5f5;border-radius:8px;font-size:16px;margin-bottom:20px;padding:15px 20px}.projects-summary strong{color:#333;font-weight:600}.no-projects{color:#666;font-size:16px;padding:40px;text-align:center}.projects-table-container{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-top:20px;overflow:hidden}.projects-table{border-collapse:collapse;width:100%}.projects-table thead{background:#f5f5f5}.projects-table th{border-bottom:2px solid #e0e0e0;color:#333;font-size:14px;font-weight:600;padding:12px 16px;text-align:left}.projects-table tbody tr{border-bottom:1px solid #e0e0e0;transition:background-color .2s}.projects-table tbody tr:hover{background:#f9f9f9}.projects-table tbody tr:last-child{border-bottom:none}.projects-table td{color:#666;font-size:14px;padding:12px 16px}.projects-table td.id-cell{color:#888;font-family:monospace;font-size:12px}.projects-table td.center{text-align:center}.projects-table .view-details-link{border-radius:4px;color:#1976d2;display:inline-block;font-weight:500;padding:6px 12px;text-decoration:none;transition:background-color .2s}.projects-table .view-details-link:hover{background:#e3f2fd;text-decoration:none}@media (prefers-color-scheme:dark){.user-projects{background:#1e1e1e;color:#e0e0e0}.user-projects .header{border-bottom-color:#444}.user-projects h1{color:#e0e0e0}.user-projects .user-info{color:#aaa}.projects-summary{background:#2a2a2a}.projects-table-container{background:#2a2a2a;border-color:#444}.projects-table thead{background:#333}.projects-table th{border-bottom-color:#555;color:#e0e0e0}.projects-table tbody tr{border-bottom-color:#444}.projects-table tbody tr:hover{background:#333}.projects-table td{color:#aaa}.projects-table .view-details-link:hover{background:#3a3a3a}}.project-copier{margin:0 auto;max-width:1600px;padding:20px}.project-copier .header{border-bottom:2px solid #e0e0e0;margin-bottom:30px;padding-bottom:20px}.project-copier .back-link{color:#1976d2;display:inline-block;font-size:14px;margin-bottom:15px;text-decoration:none}.project-copier .back-link:hover{text-decoration:underline}.project-copier h1{color:#333;font-size:28px;margin:10px 0}.project-copier .user-info{color:#666;display:flex;font-size:14px;gap:30px;margin-top:10px}.project-copier-error,.project-copier-loading{color:#666;font-size:16px;padding:40px;text-align:center}.project-copier-error{color:#d32f2f}.project-copier-error button{background:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-top:20px;padding:10px 20px}.project-copier-error button:hover{background:#1565c0}.copier-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr auto 1fr;margin-top:30px}.source-column,.target-column{background:#f9f9f9;min-height:500px;padding:20px}.action-column{align-items:center;gap:20px;justify-content:center;min-width:200px}.column-header{border-bottom:1px solid #ddd;margin-bottom:20px;padding-bottom:15px}.column-header h2{color:#666;font-size:20px;margin:0 0 5px}.project-count{color:#666;font-size:14px;margin:0}.projects-list{max-height:600px;overflow-y:auto;padding-right:10px;width:100%}.project-card{background:#fff;border:2px solid #e0e0e0;border-radius:6px;box-sizing:border-box;cursor:pointer;display:block;margin-bottom:10px;padding:15px;transition:all .2s;width:100%}.project-card:hover:not(.readonly){border-color:#1976d2;box-shadow:0 2px 8px #0000001a}.project-card.selected{background:#e8f5e9;border-color:#4caf50}.project-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.project-name{color:#333;flex:1 1;font-size:16px;font-weight:600;margin-right:8px}.project-actions{display:flex;flex-shrink:0;gap:4px}.project-delete-button,.project-link-button{align-items:center;background:#f5f5f5;border:none;border-radius:4px;color:#666;cursor:pointer;display:inline-flex;flex-shrink:0;height:28px;justify-content:center;text-decoration:none;transition:all .2s ease;width:28px}.project-link-button:hover{background:#1976d2;box-shadow:0 2px 4px #0003;color:#fff;transform:translateY(-1px)}.project-delete-button:hover:not(:disabled){background:#f44336;box-shadow:0 2px 4px #0003;color:#fff;transform:translateY(-1px)}.project-delete-button:disabled{cursor:not-allowed;opacity:.5}.project-card.selected .project-link-button{background:#fff}.project-card.selected .project-link-button:hover{background:#1976d2;color:#fff}.project-details{color:#666;display:flex;flex-wrap:wrap;font-size:12px;gap:12px;margin-bottom:5px;margin-top:8px}.project-id{font-family:monospace}.project-address{color:#888;font-size:13px;margin-top:5px}.environment-selector,.user-selector{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;width:100%}.environment-selector label,.user-selector label{color:#666;font-size:14px;font-weight:600}.environment-selector select,.user-selector select{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 12px}.user-selector{margin-top:10px}.loading-text{color:#666;font-size:12px;font-style:italic;margin-top:4px}.copy-button{background:#ddd;border:none;border-radius:6px;color:#666;cursor:pointer;font-size:16px;font-weight:600;margin:5px 0;padding:12px 30px;transition:all .3s}.copy-button.active:not(:disabled){background:#4caf50;color:#fff}.copy-button:hover:not(:disabled){transform:scale(1.05)}.copy-button.active:hover:not(:disabled){background:#45a049}.copy-button:disabled{background:#f0f0f0;color:#ccc;cursor:not-allowed;transform:none}.copy-button.reverse{background:#ddd}.copy-button.reverse.active:not(:disabled){background:#2196f3;color:#fff}.copy-button.reverse.active:hover:not(:disabled){background:#1976d2}.selected-project-info{background:#e3f2fd;border-radius:6px;padding:12px;text-align:center;width:100%}.selected-project-info h3{color:#1976d2;font-size:14px;margin:0 0 5px}.selected-project-info p{color:#333;font-size:13px;font-weight:600;margin:0}.loading,.no-projects,.no-selection{color:#999;font-style:italic;padding:40px;text-align:center}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0003;max-height:80vh;max-width:500px;overflow-y:auto;padding:30px;width:90%}.modal-content h2{color:#333;margin:0 0 20px}.copy-details,.copy-summary{margin-bottom:20px}.copy-summary{background:#f5f5f5;border-radius:6px;padding:15px}.copy-summary h3{color:#333;font-size:16px;margin:0 0 12px}.summary-item{border-bottom:1px solid #e0e0e0;display:flex;font-size:14px;justify-content:space-between;padding:6px 0}.summary-item:last-child{border-bottom:none}.summary-item .label{color:#666;font-weight:600}.summary-item .value{color:#333;flex:1 1;margin-left:20px;text-align:right}.summary-item .value.monospace{background:#fff;border:1px solid #ddd;border-radius:3px;font-family:monospace;font-size:13px;padding:2px 6px}.copy-details h3{color:#333;font-size:16px;margin:20px 0 10px}.items-list{background:#f9f9f9;border-radius:6px;margin-bottom:15px;max-height:250px;overflow-y:auto;padding:15px}.copy-details ul{margin:0;padding-left:20px}.copy-details li{color:#555;font-size:14px;line-height:1.5;margin:6px 0}.copy-details li.sub-item{color:#777;font-size:13px;margin-left:20px}.copy-details li.monospace{background:#fff;border-left:3px solid #1976d2;font-family:Courier New,monospace;font-size:12px;margin:4px 0;padding:4px 8px;word-break:break-all}.doc-category{margin-bottom:15px}.doc-category h4{border-bottom:1px solid #e0e0e0;color:#333;font-size:13px;font-weight:600;margin:0 0 8px;padding-bottom:4px}.doc-category ul{list-style:none;margin:0 0 0 10px;padding:0}.doc-category li{color:#666;font-size:11px;padding:2px 0;word-break:break-all}.id-preservation-note{background:#e3f2fd;border:1px solid #90caf9;border-radius:4px;color:#1565c0;font-size:13px;margin:15px 0;padding:12px}.warning{background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:13px;margin:20px 0;padding:12px}.overwrite-warning{background:#fee;border:2px solid #f44336;border-radius:6px;margin:20px 0;padding:15px}.overwrite-warning h3{color:#d32f2f;font-size:18px;margin:0 0 10px}.overwrite-warning h4{color:#b71c1c;font-size:14px;font-weight:600;margin:15px 0 8px}.overwrite-warning p{color:#b71c1c;font-size:14px;margin:10px 0}.overwrite-list{background:#fff;border:1px solid #ffcdd2;margin:10px 0;max-height:150px}.overwrite-item{background:#ffebee;border-left-color:#f44336;color:#d32f2f}.warning-note{font-weight:700;margin-top:15px;text-align:center}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.cancel-btn,.confirm-btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:opacity .2s}.confirm-btn{background:#4caf50;color:#fff}.confirm-btn:hover:not(:disabled){background:#45a049}.cancel-btn{background:#f44336;color:#fff}.cancel-btn:hover:not(:disabled){background:#da190b}.cancel-btn:disabled,.confirm-btn:disabled{cursor:not-allowed;opacity:.5}.loading-spinner{align-items:center;background:#fff;border-radius:8px;display:flex;flex-direction:column;gap:20px;padding:30px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#1976d2;height:40px;width:40px}.loading-spinner p{color:#333;font-size:16px;margin:0}@media (max-width:1200px){.copier-content{gap:20px;grid-template-columns:1fr}.action-column{background:#f9f9f9;border-radius:8px;flex-direction:row;justify-content:space-between;padding:20px}.projects-list{max-height:400px}}@media (prefers-color-scheme:dark){.project-copier{background:#1e1e1e;color:#e0e0e0}.project-copier .header{border-bottom-color:#444}.project-copier h1{color:#e0e0e0}.source-column,.target-column{background:#2a2a2a}.project-card{background:#333;border-color:#555}.project-card:hover:not(.readonly){border-color:#1976d2}.project-card.selected{background:#2e4a2f}.modal-content{background:#2a2a2a;color:#e0e0e0}.modal-content h2,.modal-content h3{color:#e0e0e0}.warning{background:#3d3000;border-color:#8b7000;color:#fc0}}.storage-index-manager{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;margin:10px 0;transition:all .3s ease}.storage-index-manager.collapsed{background:#fafafa}.index-header{align-items:center;cursor:pointer;display:flex;gap:10px;padding:10px 15px;transition:background .2s;-webkit-user-select:none;user-select:none}.index-header:hover{background:#f0f0f0}.collapse-icon{display:inline-block;font-size:12px;transition:transform .2s}.collapse-icon.expanded{transform:rotate(90deg)}.index-header h3{flex:1 1;font-size:14px;font-weight:600;margin:0}.index-status{background:#e3f2fd;border-radius:12px;color:#1976d2;font-size:12px;font-weight:500;padding:2px 8px}.index-content{border-top:1px solid #e0e0e0;padding:10px 15px}.index-description{color:#666;font-size:12px;margin:0 0 10px}.rebuild-btn.compact{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:background .2s}.rebuild-btn.compact:hover:not(:disabled){background:#45a049}.rebuild-btn.compact:disabled{cursor:not-allowed;opacity:.6}.status-message.compact{border-radius:4px;font-size:12px;margin:10px 15px;padding:8px 12px}.status-message.success{background:#e8f5e9;border:1px solid #4caf50;color:#2e7d32}.status-message.error{background:#ffebee;border:1px solid #f44336;color:#c62828}.storage-navigator{display:flex;flex-direction:column;height:calc(100vh - 20px);margin:0 auto;max-width:1600px;padding:10px}.storage-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;margin-bottom:10px;padding:10px 15px}.storage-header h1{color:#333;font-size:20px;margin:0}.storage-stats{display:flex;gap:20px}.storage-stats .stat{align-items:center;display:flex;gap:6px}.stat-label{color:#666;font-size:12px}.stat-value{color:#2196f3;font-size:14px;font-weight:700}.storage-controls{align-items:center;background:#fff;border-radius:6px;box-shadow:0 1px 2px #00000014;display:flex;gap:10px;margin-bottom:10px;padding:8px 12px}.search-box{flex:1 1;max-width:300px}.search-box input{border:1px solid #ddd;border-radius:4px;font-size:13px;padding:5px 10px;width:100%}.search-box input:focus{border-color:#2196f3;outline:none}.view-toggles{background:#f0f0f0;border-radius:4px;display:flex;padding:2px}.view-toggles button{background:#0000;border:none;border-radius:3px;color:#666;cursor:pointer;font-size:14px;padding:6px 16px;transition:all .2s}.view-toggles button:hover{color:#333}.view-toggles button.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#2196f3}.refresh-btn{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;padding:5px 10px;transition:background .2s}.refresh-btn:hover{background:#45a049}.storage-content{grid-gap:20px;display:grid;flex:1 1;gap:20px;grid-template-columns:1fr 1fr;min-height:0}.storage-browser,.storage-details{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:auto;padding:20px}.directory-tree{font-family:Monaco,Menlo,monospace;font-size:13px}.directory-node{margin:2px 0}.directory-header{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:8px;padding:4px 8px;transition:background .2s}.directory-header:hover{background:#f5f5f5}.directory-contents{border-left:1px solid #e0e0e0;margin-left:20px;padding-left:10px}.directory-contents .directory-node{margin-bottom:2px}.directory-contents .file-item{font-size:12px;opacity:.95}.directory-contents .file-item:first-child{margin-top:6px}.expand-icon{color:#666;display:inline-block;font-size:10px;transition:transform .2s;-webkit-user-select:none;user-select:none;width:12px}.expand-icon.expanded{transform:rotate(90deg)}.file-icon,.folder-icon{font-size:16px}.directory-name{color:#333;flex:1 1}.loading-spinner{animation:spin 1s linear infinite;font-size:12px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.item-count{background:#f0f0f0;color:#999;font-size:11px}.item-count,.reference-indicator{border-radius:3px;padding:2px 6px}.reference-indicator{cursor:help;font-size:12px;margin-left:4px}.reference-indicator.has-refs{background:#e8f5e9;color:#2e7d32}.reference-indicator.no-refs{background:#fff3e0;color:#e65100}.browser-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.browser-header h3{color:#333;font-size:16px;margin:0}.browser-hint{color:#999;font-size:12px;font-style:italic}.load-more-container{border-top:1px solid #e0e0e0;margin-top:10px;padding:10px;text-align:center}.load-more-btn{background:#f0f0f0;border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;font-size:13px;padding:6px 16px;transition:all .2s}.load-more-btn:hover:not(:disabled){background:#e0e0e0;border-color:#2196f3}.load-more-btn:disabled{cursor:not-allowed;opacity:.6}.file-item{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:8px;margin:2px 0;padding:6px 12px;transition:background .2s}.file-item:hover{background:#f5f5f5}.file-item.selected{background:#e3f2fd;border:1px solid #2196f3}.file-name{color:#333;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-type{background:#f0f0f0;border-radius:3px;color:#666;font-size:11px;padding:2px 6px}.file-size{color:#999;font-size:11px}.grouped-view{font-family:Monaco,Menlo,monospace;font-size:13px}.group-section{margin-bottom:10px}.group-header{align-items:center;background:#f8f9fa;border-radius:4px;cursor:pointer;display:flex;gap:8px;padding:8px 12px;transition:background .2s}.group-header:hover{background:#e9ecef}.group-title{color:#333;flex:1 1;font-weight:500}.group-contents{margin-top:5px;padding-left:30px}.type-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.type-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:15px}.type-header{display:flex;justify-content:space-between;margin-bottom:10px}.type-name{color:#333;font-weight:500}.type-count{color:#666;font-size:12px}.type-size{color:#2196f3;font-size:20px;font-weight:700;margin-bottom:5px}.type-percent{color:#999;font-size:12px}.no-selection{align-items:center;display:flex;height:100%;justify-content:center}.file-details h2{color:#333;margin:0 0 20px;word-break:break-all}.details-section{margin-bottom:30px}.details-section h3{border-bottom:1px solid #e0e0e0;color:#666;font-size:16px;margin:0 0 15px;padding-bottom:8px}.info-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.info-row{background:#f8f9fa;border-radius:4px;display:grid;grid-template-columns:120px 1fr;padding:8px}.info-label{color:#666;font-size:13px;font-weight:500}.info-value{color:#333;font-family:monospace;font-size:13px;word-break:break-all}.storage-navigator .action-buttons{display:flex;gap:10px;margin-top:15px}.data-btn,.download-btn{border:none;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;padding:8px 16px;text-decoration:none;transition:all .2s}.download-btn{background:#2196f3;color:#fff}.download-btn:hover{background:#1976d2}.data-btn{background:#f0f0f0;color:#333}.data-btn:hover{background:#e0e0e0}.loading-references{color:#666;padding:20px;text-align:center}.references-list{display:flex;flex-direction:column;gap:10px}.reference-item{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;padding:12px}.ref-header{display:flex;justify-content:space-between;margin-bottom:8px}.ref-collection{color:#2196f3;font-weight:500}.ref-doc{color:#666}.ref-doc,.ref-fields{font-family:monospace;font-size:12px}.ref-fields{color:#333;margin-bottom:8px}.ref-metadata{color:#666;display:flex;font-size:11px;gap:15px;margin-bottom:8px}.ref-doc-link{background:#e8f5e9;border:1px solid #81c784;border-radius:4px;color:#2e7d32;cursor:pointer;font-size:13px;padding:4px 8px;text-decoration:none;transition:all .2s}.ref-doc-link:hover{background:#c8e6c9;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.ref-actions{display:flex;gap:8px;margin-top:8px}.view-doc-btn{border:1px solid #45a049;border-radius:3px;transition:all .2s}.view-ref-btn{background:#fff;border:1px solid #ddd;border-radius:3px;cursor:pointer;font-size:12px;padding:4px 10px;transition:all .2s}.view-ref-btn:hover{background:#f5f5f5;border-color:#2196f3}.no-references{background:#f8f9fa;border-radius:4px;color:#999;padding:20px;text-align:center}.error-message{background:#ffebee;border-radius:4px;color:#c62828;padding:10px}.storage-navigator-error,.storage-navigator-loading{align-items:center;color:#666;display:flex;flex-direction:column;font-size:18px;height:400px;justify-content:center}.storage-navigator-error{color:#f44336}.storage-navigator-error button{background:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:20px;padding:10px 20px}.storage-navigator-error button:hover{background:#1976d2}@media (max-width:1200px){.storage-content{grid-template-columns:1fr}.storage-details{min-height:400px}}@media (max-width:768px){.storage-navigator{padding:10px}.storage-stats{flex-wrap:wrap;gap:15px}.storage-controls{flex-direction:column;gap:10px}.search-box{width:100%}.view-toggles{justify-content:center;width:100%}}.cross-env-container{margin:0 auto;max-width:1600px;min-height:calc(100vh - 40px);padding:20px}.cross-env-header{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;padding:20px}.cross-env-header h1{color:#333;margin:0 0 15px}.report-metadata{display:flex;flex-wrap:wrap;gap:30px}.meta-item{align-items:center;display:flex;gap:8px}.meta-label{color:#666;font-size:14px}.meta-value{color:#333;font-size:14px;font-weight:700}.current-env{background:#e8f5e9;color:#4caf50}.current-env,.total-refs{border-radius:4px;padding:2px 8px}.total-refs{background:#fbe9e7;color:#ff5722}.cross-env-success{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:60px 20px;text-align:center}.success-icon{font-size:72px;margin-bottom:20px}.cross-env-success h2{color:#4caf50;margin:0 0 10px}.cross-env-success p{color:#666;font-size:16px}.cross-env-content{grid-gap:20px;display:grid;gap:20px;grid-template-columns:300px 1fr;min-height:600px}.buckets-sidebar{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;max-height:calc(100vh - 200px);overflow-y:auto;padding:20px}.buckets-sidebar h3{color:#333;font-size:16px;margin:0 0 15px}.bucket-list{display:flex;flex-direction:column;gap:10px}.bucket-item{background:#f8f9fa;border-left:4px solid #ddd;border-radius:6px;cursor:pointer;padding:12px;transition:all .2s}.bucket-item:hover{background:#e9ecef;transform:translateX(2px)}.bucket-item.selected{background:#e3f2fd;border-left-width:4px}.bucket-name{align-items:center;color:#333;display:flex;font-weight:500;gap:8px;margin-bottom:5px}.bucket-icon{font-size:18px}.bucket-stats{color:#666;display:flex;font-size:12px;justify-content:space-between}.bucket-count{font-weight:700}.bucket-env{background:#0000000d;border-radius:3px;font-size:11px;padding:2px 6px}.references-panel{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;max-height:calc(100vh - 200px);overflow-y:auto;padding:20px}.panel-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.panel-header,.panel-header h2{align-items:center;display:flex}.panel-header h2{color:#333;gap:10px;margin:0}.env-badge{border-radius:4px;color:#fff;font-size:12px;font-weight:400;padding:3px 8px}.panel-stats{color:#666;font-size:14px}.samples-section{margin-bottom:30px}.samples-section h3{color:#333;font-size:15px;margin:0 0 15px}.samples-list{display:flex;flex-direction:column;gap:12px}.sample-item{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;padding:15px;transition:all .2s}.sample-item:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.sample-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.sample-location{align-items:center;display:flex;gap:10px}.collection-badge{background:#2196f3;border-radius:4px;color:#fff;font-size:12px;font-weight:500;padding:3px 8px}.document-id{color:#666;font-family:monospace;font-size:13px}.view-doc-btn{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 10px;transition:background .2s}.view-doc-btn:hover{background:#45a049}.sample-details{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.field-info,.url-info{display:flex;font-size:12px;gap:8px}.field-label,.url-label{color:#999;min-width:50px}.field-path{color:#e91e63;font-family:monospace}.url-path{color:#333;font-family:monospace;word-break:break-all}.sample-url{margin-top:8px}.url-link{align-items:center;color:#1976d2;display:inline-flex;font-size:12px;gap:4px;text-decoration:none}.url-link:hover{text-decoration:underline}.more-indicator{background:#fff3e0;border-radius:4px;color:#f57c00;font-size:13px;margin-top:15px;padding:10px;text-align:center}.action-section{background:#f5f5f5;border-radius:6px;padding:20px}.action-section h3{color:#333;font-size:15px;margin:0 0 15px}.action-list{color:#666;margin:0;padding-left:20px}.action-list li{font-size:14px;margin-bottom:8px}.warning-action{color:#ff5722;font-weight:500}.cross-env-empty,.cross-env-error,.cross-env-loading{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-top:20px;padding:40px;text-align:center}.cross-env-error{color:#f44336}.retry-btn{background:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:15px;padding:8px 16px}.retry-btn:hover{background:#1976d2}@media (max-width:768px){.cross-env-content{grid-template-columns:1fr}.buckets-sidebar{max-height:auto}.bucket-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}.asset-copier{margin:0 auto;max-width:1600px;padding:20px}.asset-copier-header{border-bottom:2px solid #e0e0e0;margin-bottom:30px;padding-bottom:20px}.asset-copier-header h1{color:#333;font-size:28px;margin:0 0 10px}.asset-copier-header p{color:#666;font-size:14px;margin:0}.controls-section{background:#f9f9f9;border-radius:8px;margin-bottom:20px;padding:20px}.environment-selectors{align-items:center;display:flex;gap:20px;margin-bottom:20px}.environment-selector{flex:1 1}.environment-selector label{color:#555;display:block;font-size:14px;font-weight:600;margin-bottom:5px}.environment-selector select{background:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;width:100%}.copy-arrow{color:#666;font-size:24px;padding-top:20px}.filter-controls{align-items:center;display:flex;gap:20px;margin-bottom:20px}.filter-input{flex:1 1}.filter-input input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;width:100%}.asset-type-selector{display:flex;gap:20px}.asset-type-selector label{align-items:center;color:#555;cursor:pointer;display:flex;font-size:14px;gap:5px}.asset-type-selector input[type=radio]{cursor:pointer}.asset-copier .action-buttons{display:flex;gap:10px}.asset-copier .action-buttons button{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.asset-copier .action-buttons button:hover:not(:disabled){background:#f0f0f0;border-color:#999}.asset-copier .action-buttons button:disabled{cursor:not-allowed;opacity:.5}.asset-copier .action-buttons .copy-button{background:#4caf50;border-color:#4caf50;color:#fff;font-weight:600}.asset-copier .action-buttons .copy-button:hover:not(:disabled){background:#45a049;border-color:#45a049}.message{border-radius:4px;margin-bottom:20px;padding:12px}.message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.message.warning{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.loading{color:#666;font-size:16px;padding:40px;text-align:center}.assets-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));min-height:200px}.no-assets{color:#999;font-style:italic;grid-column:1/-1;padding:40px;text-align:center}.asset-card{background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:12px;position:relative;transition:all .2s}.asset-card:hover{border-color:#1976d2;box-shadow:0 2px 8px #0000001a;transform:translateY(-2px)}.asset-card.selected{background:#e8f5e9;border-color:#4caf50}.asset-card.selected .asset-type-badge{background:#4caf50}.asset-badges{align-items:flex-end;display:flex;flex-direction:column;gap:4px;position:absolute;right:8px;top:8px;z-index:1}.asset-type-badge{background:#666;border-radius:12px;color:#fff;font-size:11px;font-weight:600;padding:2px 8px}.asset-card.object .asset-type-badge{background:#2196f3}.asset-card.wallTexture .asset-type-badge{background:#ff9800}.asset-info{display:flex;flex-direction:column;gap:4px;padding-right:50px}.asset-header{align-items:center;display:flex;gap:8px;justify-content:space-between}.asset-name{color:#333;flex:1 1;font-size:14px;font-weight:600}.asset-id,.asset-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-id{color:#999;font-family:monospace;font-size:11px;margin-bottom:4px}.asset-category{background:#f0f0f0;border-radius:3px;color:#666;display:inline-block;font-size:12px;margin-top:4px;padding:2px 6px}.asset-has-file{color:#4caf50;font-size:11px;margin-right:8px}.asset-copier .asset-files{align-items:center;display:flex;font-size:11px;gap:8px}.asset-actions{align-items:center;display:flex;gap:4px}.asset-data-button{align-items:center;background:none;border:none;border-radius:3px;cursor:pointer;display:flex;font-size:16px;justify-content:center;line-height:1;padding:2px 4px;transition:all .2s}.asset-data-button:hover{background:#e3f2fd;transform:scale(1.1)}.asset-view-link{border:1px solid #1976d2;border-radius:3px;color:#1976d2;flex-shrink:0;font-size:11px;padding:1px 5px;text-decoration:none;transition:all .2s}.asset-view-link:hover{background:#1976d2;color:#fff}.copier-content{display:flex;gap:20px;position:relative}.source-column,.target-column{background:#fff;border-radius:8px;display:flex;flex:1 1;flex-direction:column;min-width:0;padding:10px}.action-column{align-self:flex-start;background:#f9f9f9;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex:0 0 200px;flex-direction:column;gap:15px;height:fit-content;padding:20px;position:sticky;top:20px}.column-header{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:15px;padding:15px}.column-header h2{color:#333;font-size:18px;margin:0 0 10px}.column-stats{color:#666;font-size:12px;margin-top:10px}.source-column .assets-grid,.target-column .assets-grid{padding:0 15px 15px}.asset-copier .action-button{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:10px 16px;transition:all .2s;width:100%}.asset-copier .action-button:hover:not(:disabled){background:#f0f0f0;border-color:#999}.asset-copier .action-button:disabled{cursor:not-allowed;opacity:.5}.asset-copier .copy-button{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 20px;transition:all .2s;width:100%}.asset-copier .copy-button:hover:not(:disabled){background:#45a049}.asset-copier .copy-button.copy-reverse{background:#2196f3}.asset-copier .copy-button.copy-reverse:hover:not(:disabled){background:#1976d2}.copy-direction-section{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:12px}.copy-direction-section h3{color:#555;font-size:14px;font-weight:600;margin:0 0 10px}.asset-copier .copy-button:disabled{background:#999;cursor:not-allowed;opacity:.5}.selected-info{background:#fff;border:1px solid #ddd;border-radius:4px;padding:10px}.selected-count{color:#333;font-size:14px;font-weight:600;margin-bottom:5px}.selected-detail{color:#666;font-size:12px}.no-selection{color:#999;font-style:italic;padding:40px;text-align:center}.asset-exists-badge{background:#ffc107;border-radius:8px;color:#333;font-size:9px;font-weight:600;padding:1px 4px}.asset-card.existing{opacity:.9}@media (max-width:1200px){.copier-content{flex-direction:column}.action-column{flex:0 0 auto;margin:20px auto;max-width:500px;position:static;width:100%}}@media (max-width:768px){.environment-selectors{flex-direction:column}.copy-arrow{padding:10px 0;transform:rotate(90deg)}.filter-controls{align-items:stretch;flex-direction:column}.asset-type-selector{flex-direction:column;gap:10px}.action-buttons{flex-wrap:wrap}.assets-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.asset-data-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.asset-data-modal{background:#fff;border-radius:8px;box-shadow:0 4px 16px #0003;display:flex;flex-direction:column;max-height:80vh;max-width:800px;width:90%}.asset-data-modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:16px 20px}.asset-data-modal-header h3{color:#333;font-size:18px;margin:0}.asset-data-modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.asset-data-modal-close:hover{background:#f0f0f0;color:#333}.asset-data-modal-body{background:#f9f9f9;flex:1 1;overflow:auto;padding:20px}.asset-data-modal-body pre{word-wrap:break-word;background:#fff;border:1px solid #e0e0e0;border-radius:4px;color:#333;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.5;margin:0;overflow-x:auto;padding:16px;white-space:pre-wrap}.asset-data-modal-footer{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;padding:16px 20px}.asset-data-modal-footer button{border-radius:4px;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.asset-data-modal-footer button:first-child{background:#4caf50;border:none;color:#fff}.asset-data-modal-footer button:first-child:hover{background:#45a049}.asset-data-modal-footer button:last-child{background:#fff;border:1px solid #ddd;color:#666}.asset-data-modal-footer button:last-child:hover{background:#f0f0f0;border-color:#999}.object-gallery-container{background-color:#f5f5f5;min-height:100vh;padding:2rem}.object-gallery-header{margin-bottom:3rem;text-align:center}.object-gallery-header h1{color:#333;font-size:2.5rem;font-weight:600;margin-bottom:.5rem}.object-gallery-header p{color:#666;font-size:1.1rem}.object-gallery-content{margin:0 auto;max-width:1400px}.object-category-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:3rem;padding:2rem}.object-category-section h2{border-bottom:2px solid #e0e0e0;color:#444;font-size:1.8rem;margin-bottom:1.5rem;padding-bottom:.5rem}.object-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.object-card{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;padding:1rem;transition:all .3s ease}.object-card:hover{border-color:#4169e1;box-shadow:0 4px 12px #4169e133;transform:translateY(-2px)}.object-card.selected{background-color:#f0f4ff;border-color:#4169e1;box-shadow:0 4px 12px #4169e14d}.object-canvas{background:#fff;border:1px solid #f0f0f0;border-radius:4px;margin-bottom:.75rem}.object-label{color:#333;font-size:1rem;font-weight:600;margin-bottom:.25rem}.object-dimensions{color:#888;font-family:Courier New,monospace;font-size:.85rem}.object-detail-panel{animation:slideIn .3s ease;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;padding:2rem;position:fixed;right:2rem;top:50%;transform:translateY(-50%);width:300px;z-index:1000}@keyframes slideIn{0%{opacity:0;right:-300px}to{opacity:1;right:2rem}}.object-detail-panel h3{border-bottom:2px solid #e0e0e0;color:#333;font-size:1.4rem;margin-bottom:1rem;padding-bottom:.5rem}.object-detail-panel p{color:#666;font-size:.95rem;margin-bottom:.75rem}.object-detail-panel button{background-color:#4169e1;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;margin-top:1rem;padding:.5rem 1rem;transition:background-color .3s ease;width:100%}.object-detail-panel button:hover{background-color:#3458c5}@media (max-width:768px){.object-gallery-container{padding:1rem}.object-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.object-card{padding:.75rem}.object-canvas{height:150px;width:150px}.object-detail-panel{animation:slideUp .3s ease;border-radius:12px 12px 0 0;bottom:0;left:0;position:fixed;right:0;top:auto;transform:none;width:100%}@keyframes slideUp{0%{bottom:-100%}to{bottom:0}}}@media (prefers-color-scheme:dark){.object-gallery-container{background-color:#1a1a1a}.object-category-section{background:#2a2a2a}.object-category-section h2{border-bottom-color:#444;color:#e0e0e0}.object-card{background:#333;border-color:#444}.object-card:hover{border-color:#6495ed}.object-card.selected{background-color:#2a3f5f}.object-label{color:#e0e0e0}.object-dimensions{color:#aaa}.object-detail-panel{background:#2a2a2a}.object-detail-panel h3{border-bottom-color:#444;color:#e0e0e0}.object-detail-panel p{color:#aaa}}.fixture-browser{background:#f5f5f5;min-height:100vh;padding:20px}.fixtures-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:20px}.fixture-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;max-width:400px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.fixture-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-4px)}.fixture-preview{background:#f0f0f0;cursor:pointer;height:250px;position:relative;width:100%}.fixture-info{display:flex;flex:1 1;flex-direction:column;padding:16px}.fixture-info h3{color:#333;font-size:18px;font-weight:600;margin:0 0 8px}.fixture-manufacturer{color:#666;font-size:14px;margin:0 0 4px}.fixture-model{color:#888;font-size:13px;margin:0 0 4px}.fixture-type{color:#1976d2;font-size:13px;margin:0 0 12px;text-transform:capitalize}.fixture-metadata{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.completeness-badge{color:#fff;font-weight:500}.completeness-badge,.quality-score{border-radius:4px;font-size:12px;padding:4px 8px}.quality-score{background:#e3f2fd;color:#1976d2}.compliance-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.compliance-badge{background:#f5f5f5;border:1px solid #ddd;border-radius:3px;color:#666;font-size:11px;padding:3px 6px}.fixture-actions{display:flex;gap:10px;margin-top:auto}.action-btn{background:#fff;border:1px solid #ddd;border-radius:4px;color:#333;cursor:pointer;flex:1 1;font-size:14px;padding:8px 12px;transition:all .2s ease}.action-btn:hover{background:#f5f5f5}.action-btn.add-btn{background:#1976d2;border-color:#1976d2;color:#fff}.action-btn.add-btn:hover{background:#1565c0}.images-viewer{align-items:center;display:flex;flex-direction:column;gap:20px;padding:20px}.main-image{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;height:400px;max-width:600px;object-fit:contain;width:100%}.image-thumbnails{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.thumbnail{background:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;height:100px;object-fit:cover;transition:all .2s ease;width:100px}.thumbnail:hover{border-color:#1976d2;transform:scale(1.05)}.thumbnail.active{border-color:#1976d2;box-shadow:0 0 0 3px #1976d233}.fixture-thumbnail{background:#f5f5f5;border-radius:4px;cursor:pointer;height:230px;margin:10px 10px 0;object-fit:contain;width:calc(100% - 20px)}.fixture-thumbnail.with-3d{position:relative}.fixture-thumbnail.with-3d:after{background:#1976d2;border-radius:4px;color:#fff;content:"3D";font-size:12px;font-weight:700;padding:4px 8px;position:absolute;right:10px;top:10px}.specs-viewer{max-height:600px;overflow-y:auto;padding:20px}.spec-section{margin-bottom:30px}.spec-section h3{border-bottom:2px solid #e0e0e0;color:#1976d2;margin-bottom:15px;padding-bottom:10px}.spec-section p{line-height:1.6;margin:8px 0}.spec-section strong{color:#333;font-weight:600}.downloads-viewer{padding:20px}.downloads-list{display:flex;flex-direction:column;gap:10px;margin-top:15px}.download-item{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:6px;display:flex;gap:15px;padding:12px;transition:background .2s ease}.download-item:hover{background:#f5f5f5}.download-format{background:#1976d2;border-radius:4px;color:#fff;font-size:12px;font-weight:700;min-width:45px;padding:4px 8px;text-align:center}.download-description{color:#333;flex:1 1}.download-link{border:1px solid #1976d2;border-radius:4px;color:#1976d2;font-weight:500;padding:6px 12px;text-decoration:none;transition:all .2s ease}.download-link:hover{background:#1976d2;color:#fff}.modal-tabs{background:#fafafa;border-bottom:1px solid #e0e0e0;display:flex;gap:10px;padding:15px}.tab{background:#fff;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;padding:8px 16px;transition:all .2s ease}.tab:hover{background:#f5f5f5}.tab.active{background:#1976d2;border-color:#1976d2;color:#fff}.fixture-modal .modal-content-area{background:#fff;min-height:500px}.modal-viewer{background:#f0f0f0;height:600px;width:100%}
/*# sourceMappingURL=main.efcc0213.css.map*/