body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{min-height:100vh}.image-viewer-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000d9;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.image-viewer-modal{background:#18181b;border-radius:12px;flex-direction:column;width:96vw;max-width:1800px;height:94vh;display:flex;overflow:hidden;box-shadow:0 25px 50px #00000080}.viewer-toolbar{background:#18181b;border-bottom:1px solid #27272a;flex-wrap:wrap;align-items:center;gap:.25rem;min-height:40px;padding:.375rem .5rem;display:flex}.toolbar-section{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.toolbar-section:last-child{flex-shrink:0;margin-left:auto}.toolbar-group{background:#18181b;border-radius:8px;align-items:center;gap:2px;padding:2px;display:flex}.tool-btn{color:#a1a1aa;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.5rem;transition:all .15s;display:flex}.tool-btn:hover{color:#fff;background:#ffffff1a}.tool-btn.active{color:#fff;background:#3b82f6}.color-picker{align-items:center;gap:.5rem;display:flex}.color-picker input[type=color]{cursor:pointer;background:0 0;border:2px solid #3f3f46;border-radius:6px;width:32px;height:32px;padding:0}.color-presets{gap:4px;display:flex}.color-presets .preset{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;transition:all .15s}.color-presets .preset:hover{transform:scale(1.1)}.color-presets .preset.active{border-color:#fff;box-shadow:0 0 0 2px #ffffff4d}.line-width{align-items:center;gap:.5rem;display:flex}.line-width input[type=range]{accent-color:#3b82f6;width:80px}.width-value{color:#a1a1aa;min-width:2.5rem;font-size:.75rem}.line-style-group{gap:0;overflow:hidden}.style-toggle{cursor:pointer;color:#a1a1aa;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:.375rem;padding:.4rem .6rem;font-size:.6875rem;transition:all .15s;display:flex}.style-toggle:hover{color:#d4d4d8;background:#ffffff0d}.style-toggle.active{color:#3b82f6;background:#3b82f61a}.style-toggle input[type=checkbox]{display:none}.style-label{text-transform:uppercase;letter-spacing:.04em;font-size:.625rem;font-weight:500}.text-controls{gap:.375rem}.text-controls input[type=range]{accent-color:#3b82f6;width:70px}.text-format-group{gap:.375rem}.text-format-box{background:#27272a;border:1px solid #3f3f46;border-radius:8px;align-items:center;gap:2px;padding:3px;display:flex}.text-format-box input[type=range]{accent-color:#3b82f6;width:70px;margin-left:4px}.action-btn{color:#a1a1aa;cursor:pointer;background:0 0;border:1px solid #3f3f46;border-radius:6px;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8125rem;transition:all .15s;display:flex}.action-btn:hover:not(:disabled){color:#fff;background:#ffffff1a;border-color:#52525b}.action-btn:disabled{opacity:.4;cursor:not-allowed}.attach-btn{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:8px;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;transition:all .15s;display:flex}.attach-btn:hover:not(:disabled){background:#16a34a}.attach-btn:disabled{opacity:.6;cursor:not-allowed;background:#3f3f46}.close-btn{color:#a1a1aa;cursor:pointer;background:0 0;border:1px solid #3f3f46;border-radius:6px;justify-content:center;align-items:center;padding:.5rem;transition:all .15s;display:flex}.close-btn:hover{color:#fff;background:#ffffff1a}.viewer-canvas-container{background:#09090b;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.viewer-zoom-wrapper{flex-shrink:0}.viewer-image{display:none}.viewer-canvas{cursor:crosshair;touch-action:none;display:block}.text-input-popup{z-index:10;background:#fff;border:1px solid #e4e4e7;border-radius:8px;align-items:center;gap:.375rem;padding:.5rem;display:flex;position:absolute;box-shadow:0 4px 12px #00000026}.text-input-popup input{border:1px solid #e4e4e7;border-radius:4px;min-width:200px;padding:.375rem .5rem;font-size:.875rem}.text-input-popup button{cursor:pointer;background:#fff;border:1px solid #e4e4e7;border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.text-input-popup button:hover{background:#f3f4f6}.status-tag{color:#fff;white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;padding:.125rem .5rem;font-family:inherit;font-size:.625rem;font-weight:600;display:inline-flex}.status-tag-xs{padding:.125rem .375rem;font-size:.625rem}.status-tag-sm{padding:.125rem .5rem;font-size:.75rem}.status-tag-md{padding:.25rem .75rem;font-size:.875rem}.status-history{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.issue-page main{max-width:680px}.breadcrumb{color:#71717a;border-bottom:1px solid #e4e4e7;margin-bottom:1rem;padding-bottom:1rem;font-size:.8125rem}.breadcrumb a{color:#3b82f6;text-decoration:none;transition:color .15s}.breadcrumb a:hover{color:#1d4ed8;text-decoration:underline}.breadcrumb-sep{color:#d1d5db;margin:0 .5rem}.entity-banners{flex-direction:column;gap:.375rem;margin-bottom:1.5rem;display:flex}.entity-banner-link{color:inherit;background:#f9fafb;border:1px solid #e4e4e7;border-radius:8px;padding:.25rem .75rem;text-decoration:none;transition:all .15s;display:block}.entity-banner-link:hover{background:#f3f4f6;border-color:#d4d4d8}.entity-banner-project{color:#71717a;letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:700;line-height:1.3}.entity-banner-building{color:#52525b;letter-spacing:-.01em;font-size:1.25rem;font-weight:500;line-height:1.4}.issue-header{border-bottom:1px solid #e4e4e7;margin-bottom:1.5rem;padding-bottom:1rem}.issue-title-row{z-index:1!important;flex-wrap:nowrap!important;align-items:flex-start!important;gap:.5rem!important;margin-bottom:.75rem!important;display:flex!important;position:relative!important}.issue-number{color:#a1a1aa!important;letter-spacing:-.03em!important;white-space:nowrap!important;margin:0!important;padding:0!important;font-size:3rem!important;font-weight:700!important;line-height:1.1!important}.issue-title{letter-spacing:-.03em!important;color:#52525b!important;white-space:nowrap!important;margin:0!important;padding:0!important;font-size:3rem!important;font-weight:700!important;line-height:1.1!important}.issue-meta{flex-wrap:wrap!important;justify-content:space-between!important;align-items:center!important;gap:.75rem!important;margin-top:.5rem!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important;display:flex!important}.issue-meta-left{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.revisited-tag{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.issue-meta-author{color:#52525b;font-size:.875rem}.issue-meta-date{color:#71717a;font-size:.8125rem}.status-controls{border-top:1px solid #e4e4e7;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:2rem;padding-top:1rem;display:flex}.btn-status{cursor:pointer;white-space:nowrap;color:#71717a;text-transform:uppercase;letter-spacing:.02em;background:#f4f4f5;border:3px dashed #a1a1aa;border-radius:8px;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .15s}.btn-status:hover{color:#52525b;background:#e4e4e7;border-color:#71717a}.btn-status:disabled{opacity:.5;cursor:not-allowed}.resolved-message{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;align-items:center;gap:.5rem;margin-top:1rem;padding:.875rem 1rem;font-size:.875rem;display:flex}.resolved-icon{color:#fff;background:#22c55e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;font-weight:700;display:flex}.conversation-thread{flex-direction:column;gap:.75rem;margin:0 0 2rem;display:flex}.thread-item{border-radius:8px;transition:background .15s;animation:.2s fadeIn;position:relative}.thread-item.highlighted{background:#3b82f60d}.thread-item.highlighted .thread-content{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f633}.thread-link{color:#a1a1aa;opacity:0;text-align:center;width:1.5rem;font-size:.75rem;font-weight:500;text-decoration:none;transition:opacity .15s,color .15s;position:absolute;top:.75rem;left:-3rem}.thread-item:hover .thread-link{opacity:1}.thread-link:hover{color:#3b82f6}.thread-content{background:#fff;border:1px solid #e4e4e7;border-radius:8px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.thread-banner{color:#fff;background:#18181b;justify-content:space-between;align-items:center;padding:.625rem 1rem;display:flex}.banner-author{letter-spacing:-.01em;font-size:.8125rem;font-weight:700}.banner-date{color:inherit;opacity:.85;font-size:.6875rem;font-weight:400}.thread-body{padding:1rem}.thread-body p{white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text;margin:0 0 .75rem;font-size:.875rem;line-height:1.6}.thread-body p:last-child{margin-bottom:0}.thread-body ::selection{background:#3b82f633}.thread-attachments{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.5rem;margin-top:.5rem;display:grid}.attachment-item{cursor:pointer;border-radius:6px;transition:all .15s;overflow:hidden}.attachment-item:hover{box-shadow:0 0 #0000}.image-item{border:1px solid #e4e4e7;margin:0}.image-item img{border-radius:6px;width:100%;height:auto;display:block}.pdf-item{cursor:pointer;border-radius:6px;overflow:hidden}.pdf-item:hover{box-shadow:0 0 #0000}.attachment-icon{font-size:1.5rem}.attachment-name{color:#7f1d1d;word-break:break-all;font-size:.75rem}.image-placeholder{color:#a1a1aa;background:#f3f4f6;border-radius:6px;justify-content:center;align-items:center;width:100%;min-height:100px;font-size:.75rem;display:flex}.quoted-text{background:#00000008;border-left:3px solid #d4d4d8;border-radius:0 4px 4px 0;margin:0 0 .5rem;padding:.5rem .75rem}.quote-label{color:#71717a;text-transform:uppercase;letter-spacing:.05em;font-size:.6875rem;font-weight:600}.quoted-text p{color:#52525b;margin:.25rem 0 0;font-size:.8125rem;font-style:italic;line-height:1.5}.reply-context-inline{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.5rem 1rem}.reply-context-link{color:#64748b;font-size:.75rem;line-height:1.4;text-decoration:none;transition:color .15s;display:block}.reply-context-link:hover{color:#3b82f6}.reply-context-link strong{color:#475569}.pdf-preview-wrapper{background:#f3f4f6;border:1px solid #e4e4e7;border-radius:6px;width:fit-content;max-width:100%;padding:10px;position:relative;overflow:hidden}.pdf-preview-canvas{width:100%;max-width:100%;height:auto;max-height:200px;display:block}.pdf-click-overlay{cursor:pointer;z-index:1;border-radius:6px;width:100%;height:100%;position:absolute;top:0;left:0}.pdf-item{cursor:pointer}.thread-actions{border-top:1px solid #f3f4f6;gap:.5rem;padding:.5rem 1rem;display:flex}.thread-actions button{color:#71717a;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.125rem .375rem;font-size:.6875rem;transition:all .15s}.thread-actions button:hover{color:#18181b;background:#0000000d}.response-form{border-top:1px solid #e4e4e7;margin-top:1.5rem;padding-top:1.5rem}.reply-indicator{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding:.75rem;font-size:.8125rem;display:flex}.reply-context{flex:1;min-width:0}.reply-preview{color:#52525b;margin-top:.25rem;font-size:.75rem;display:block}.quoted-preview{color:#52525b;margin-top:.25rem;font-size:.75rem;font-style:italic;display:block}.reply-indicator button{color:#dc2626;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:.125rem .375rem;font-size:.75rem}.reply-indicator button:hover{background:#dc26261a}.file-previews{background:#f9fafb;border:1px solid #e4e4e7;border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;padding:.75rem;display:grid}.attachments-upload{flex-direction:column;gap:.5rem;display:flex}.attachments-upload label{cursor:pointer;border:2px dashed #d4d4d8;border-radius:8px;justify-content:center;align-items:center;padding:.625rem;transition:border-color .15s;display:flex}.attachments-upload label:hover{border-color:#a1a1aa}.attachments-upload input[type=file]{display:none}.attachments-upload span{color:#71717a;font-size:.8125rem;font-weight:500}.response-form button[type=submit]{color:#fff;cursor:pointer;background:#18181b;border:none;border-radius:8px;align-self:flex-start;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition:background .15s}.loading,.error-page,.not-found{text-align:center;color:#71717a;padding:2rem}.login-container{background:#f5f5f4;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:#fff;border-radius:8px;width:100%;max-width:400px;padding:2.5rem;box-shadow:0 1px 3px #0000001a}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{color:#18181b;letter-spacing:-.025em;margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.login-header p{color:#71717a;margin:0;font-size:.875rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.375rem;display:flex}.form-group label{color:#3f3f46;font-size:.875rem;font-weight:500}.form-group input{border:1px solid #e4e4e7;border-radius:6px;padding:.625rem .75rem;font-size:.875rem;transition:border-color .15s}.form-group input:focus{border-color:#27272a;outline:none}.error-message{color:#dc2626;background:#fef2f2;border-radius:6px;padding:.625rem .75rem;font-size:.875rem}.login-button{color:#fff;cursor:pointer;background:#18181b;border:none;border-radius:6px;padding:.625rem 1rem;font-size:.875rem;font-weight:500;transition:background .15s}.login-button:hover:not(:disabled){background:#27272a}.login-button:disabled{opacity:.6;cursor:not-allowed}.dashboard{max-width:960px;margin:0 auto;padding:2rem}.dashboard-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}.dashboard-header h1{letter-spacing:-.025em;color:#111827;margin:0;font-size:1.5rem;font-weight:700}.btn-primary{color:#fff;background:#111827;border-radius:8px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s}.btn-primary:hover{background:#1f2937}.project-list{flex-direction:column;gap:1.5rem;display:flex}.project-card{background:#fff;border:5px solid #e5e7eb;border-radius:10px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.project-card .project-cover{background:#f3f4f6;border-radius:0;width:100%;max-width:none;height:160px;margin:0;padding:0;overflow:hidden}.project-card .project-cover img{object-fit:cover;width:100%;height:100%;display:block}.project-card:hover{border-color:#d1d5db;box-shadow:0 2px 8px #0000000a}.project-card-header{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:1.25rem 1.5rem;font-family:inherit;display:flex}.expand-icon{color:#9ca3af;margin-left:1rem;font-size:.75rem;transition:transform .2s}.expand-icon.expanded{transform:rotate(90deg)}.project-expand{border-top:1px solid #f3f4f6;animation:.2s slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.project-info{flex:1}.project-name{letter-spacing:-.025em;color:#111827;margin:0 0 .25rem;font-size:1.125rem;font-weight:600}.project-desc{color:#6b7280;margin:0;font-size:.875rem}.project-expand{border-top:1px solid #f3f4f6}.building-list-item{color:#374151;width:100%;box-shadow:none;background:#fff;border:none;border-bottom:1px solid #f3f4f6;border-radius:0;align-items:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s;display:flex}.building-list-item:last-child{border-bottom:none}.building-list-item:hover{background:#fafafa}.building-list-image{background:linear-gradient(135deg,#f3f4f6 0%,#e5e7eb 100%);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:112px;height:112px;margin-right:1rem;display:flex;overflow:hidden;box-shadow:0 2px 4px #0000001a}.building-list-image img{object-fit:cover;width:100%;height:100%;display:block}.building-list-placeholder{color:#9ca3af;background:linear-gradient(135deg,#f3f4f6 0%,#e5e7eb 100%);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:112px;height:112px;margin-right:1rem;display:flex;box-shadow:0 2px 4px #0000001a}.building-list-placeholder svg{width:56px;height:56px}.building-name{color:#111827;flex:1;font-size:1rem;font-weight:600}.building-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding:1rem 1.5rem;display:grid}.building-grid-item{color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex-direction:column;gap:.5rem;padding:.75rem;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.building-grid-item:hover{background:#f9fafb;border-color:#d1d5db;box-shadow:0 4px 12px #00000014}.building-grid-image{background:#f3f4f6;border-radius:8px;width:100%;height:120px;overflow:hidden}.building-grid-image img{object-fit:cover;width:100%;height:100%;display:block}.building-grid-placeholder{color:#9ca3af;background:#f3f4f6;border-radius:8px;justify-content:center;align-items:center;width:100%;height:120px;display:flex}.building-grid-info{flex-direction:column;gap:.25rem;display:flex}.building-grid-name{color:#111827;font-size:.9375rem;font-weight:600;line-height:1.4}.building-grid-desc{color:#6b7280;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8125rem;line-height:1.4;display:-webkit-box;overflow:hidden}.building-link{color:#374151;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.building-link:hover{background:#f3f4f6;border-color:#d1d5db}.no-buildings{color:#9ca3af;padding:1rem 1.5rem;font-size:.8125rem;font-style:italic}.no-projects{text-align:center;color:#9ca3af;padding:3rem}.building-page{max-width:1400px;margin:0 auto;padding:2rem}.building-header{border-bottom:2px solid #e4e4e7;margin-bottom:2rem;padding-bottom:1.5rem}.building-cover{background:#f3f4f6;width:100%;height:200px;margin-bottom:1rem;overflow:hidden}.building-cover img{object-fit:cover;width:100%;height:100%;display:block}.building-breadcrumb{color:#71717a;margin-bottom:.5rem;font-size:.8125rem}.building-breadcrumb a{color:#71717a;text-decoration:none;transition:color .15s}.building-breadcrumb a:hover{color:#3b82f6}.breadcrumb-sep{margin:0 .5rem}.breadcrumb-current{color:#374151;font-weight:500}.building-name{letter-spacing:-.025em;margin:.25rem 0;font-size:1.75rem;font-weight:700}.building-desc{color:#71717a;margin:0;font-size:.875rem}.building-header-actions{justify-content:flex-end;display:flex}.building-title-row{justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.building-header-actions .btn-primary{color:#fff;cursor:pointer;background:#18181b;border:none;border-radius:6px;flex-shrink:0;padding:.5rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background-color .15s;display:inline-block}.building-header-actions .btn-primary:hover{background:#27272a}.kanban-board{grid-template-columns:repeat(4,1fr);align-items:stretch;gap:1rem;display:grid}.kanban-column{background:#f9fafb;border-radius:10px;flex-direction:column;height:100%;display:flex}.kanban-column-header{background:#f3f4f6;border-bottom:1px solid #e4e4e7;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex;position:relative}.kanban-column-header h2{text-transform:uppercase;letter-spacing:.05em;color:#374151;margin:0;font-size:.8125rem;font-weight:600}.kanban-count{color:#a1a1aa;background:#e4e4e7;border-radius:9999px;padding:.125rem .5rem;font-size:.75rem;font-weight:500;position:absolute;right:1rem}.kanban-cards{flex-direction:column;flex:1;gap:.75rem;padding:.75rem;display:flex;overflow-y:auto}.kanban-card{color:inherit;background:#fff;border:1px solid #e4e4e7;border-radius:8px;padding:.875rem;text-decoration:none;transition:border-color .15s,box-shadow .15s}.kanban-card:hover{border-color:#a1a1aa;box-shadow:0 2px 8px #0000000f}.kanban-card-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.kanban-card-number{color:#71717a;font-size:.75rem;font-weight:700}.kanban-card-date{color:#a1a1aa;font-size:.6875rem}.kanban-card-title{margin:0 0 .25rem;font-size:.875rem;font-weight:600;line-height:1.3}.kanban-card-body{color:#71717a;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 .5rem;font-size:.75rem;line-height:1.4;display:-webkit-box;overflow:hidden}.kanban-card-client{color:#a1a1aa;border-top:1px solid #f3f4f6;padding-top:.5rem;font-size:.6875rem}.kanban-card-author{color:#6b7280;padding-top:.25rem;font-size:.6875rem;font-style:italic}.kanban-response-count{color:#71717a;background:#e4e4e7;border-radius:.625rem;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;font-size:.6875rem;font-weight:600;line-height:1;display:flex;position:absolute;bottom:.5rem;right:.5rem}.kanban-card{position:relative}@keyframes newQueryGlow{0%{border-color:#3b82f6;box-shadow:0 0 #3b82f6b3}50%{border-color:#60a5fa;box-shadow:0 0 20px 5px #3b82f666}to{border-color:#e4e4e7;box-shadow:0 0 #3b82f600}}.kanban-card.new-query-glow{border-color:#3b82f6;animation:2s ease-out newQueryGlow}.create-issue{max-width:680px;padding:2rem}.create-issue h1{letter-spacing:-.025em;margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.auto-populated-info{margin-bottom:1.5rem}.auto-populated-info .project-title{color:#6b7280;margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.auto-populated-info .building-title{color:#374151;font-size:1.25rem;font-weight:600}.form-group{margin-bottom:1.25rem}.form-group label{color:#374151;margin-bottom:.375rem;font-size:.8125rem;font-weight:500;display:block}.form-group input[type=text],.form-group textarea,.form-group select{border:1px solid #d4d4d8;border-radius:8px;width:100%;padding:.625rem .75rem;font-family:inherit;font-size:.875rem;transition:border-color .15s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 2px #3b82f61a}.form-group select:disabled{color:#a1a1aa;cursor:not-allowed;background:#f9fafb}.form-row{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.form-group p{color:#71717a;margin-top:.25rem;font-size:.75rem}.error{color:#dc2626;background:#fef2f2;border-radius:6px;margin-bottom:1rem;padding:.5rem .75rem;font-size:.8125rem}.create-issue button[type=submit]{color:#fff;cursor:pointer;background:#18181b;border:none;border-radius:8px;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition:background .15s}.create-issue button[type=submit]:hover:not(:disabled){background:#27272a}.create-issue button:disabled{opacity:.6;cursor:not-allowed}.form-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.btn-cancel{color:#3f3f46;cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:6px;padding:.6rem 1.2rem;font-size:.875rem;font-weight:500;transition:background .15s,border-color .15s}.btn-cancel:hover{background:#f4f4f5;border-color:#a1a1aa}.file-previews{background:#f9fafb;border:1px solid #e4e4e7;border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-top:.5rem;padding:.75rem;display:grid}.preview-item{aspect-ratio:1;background:#f3f4f6;border-radius:6px;position:relative;overflow:hidden}.preview-item.image img{object-fit:contain;width:100%;height:100%;display:block}.preview-item.pdf{position:relative;overflow:hidden}.preview-pdf-canvas{width:100%;height:100%;display:block}.pdf-preview-placeholder{text-align:center;word-break:break-word;color:#71717a;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:1rem;font-size:.75rem;line-height:1.4;display:flex}.pdf-preview-placeholder span{flex-direction:column;align-items:center;gap:.25rem;display:flex}.pdf-preview-placeholder svg{fill:#71717a;width:32px;height:32px}.remove-preview{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.625rem;transition:background .15s;display:flex;position:absolute;top:4px;right:4px}.remove-preview:hover{background:#dc2626e6}.project-home{max-width:960px;margin:0 auto;padding:2rem 1rem}.project-home.loading{color:#71717a;justify-content:center;align-items:center;min-height:60vh;font-size:1.125rem;display:flex}.project-home.not-found{color:#ef4444;justify-content:center;align-items:center;min-height:60vh;font-size:1.125rem;display:flex}.project-home-header{text-align:center;margin-bottom:3rem}.back-link{color:#3b82f6;margin-bottom:1.5rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-block}.project-cover{border-radius:12px;max-width:400px;margin:0 auto 1.5rem;overflow:hidden;box-shadow:0 4px 12px #0000001a}.project-cover img{width:100%;height:auto;display:block}.project-home-header h1{color:#18181b;margin:0 0 .5rem;font-size:2rem;font-weight:700}.project-description{color:#71717a;margin:0;font-size:1rem}.buildings-section{margin-top:2rem}.buildings-section h2{color:#18181b;margin:0 0 1rem;font-size:1.25rem;font-weight:600}.no-buildings{color:#71717a;font-style:italic}.building-list{flex-direction:column;display:flex}.building-card{color:inherit;background:#f9fafb;border:1px solid #e4e4e7;border-radius:12px;padding:1.5rem;text-decoration:none;transition:all .15s;display:block}.building-card:hover{background:#f3f4f6;border-color:#d4d4d8;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.building-card h3{color:#18181b;margin:0 0 .5rem;font-size:1.125rem;font-weight:600}.building-card p{color:#71717a;margin:0;font-size:.875rem}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;color:#18181b;background:#fafafa;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;min-height:100vh;display:flex}.client-nav{z-index:100;background:#fff;border-bottom:1px solid #e4e4e7;justify-content:space-between;align-items:center;height:56px;padding:0 2rem;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 1px 3px #0000000d}.client-nav .nav-brand{color:#18181b;letter-spacing:-.025em;font-size:.875rem;font-weight:600}.nav-user{align-items:center;gap:1rem;display:flex}.user-display-name{color:#52525b;background:#f4f4f5;border-radius:6px;padding:.25rem .75rem;font-size:.8125rem;font-weight:500}.logout-btn{color:#71717a;cursor:pointer;background:0 0;border:1px solid #e4e4e7;border-radius:6px;padding:.375rem .75rem;font-size:.8125rem}.logout-btn:hover{color:#18181b;border-color:#d4d4d8}main{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2rem}main.with-nav{padding-top:calc(56px + 2rem)}.query-page header{border-bottom:1px solid #e4e4e7;margin-bottom:2rem;padding-bottom:1.5rem}.query-page h1{letter-spacing:-.03em;margin:0;font-size:1.75rem;font-weight:600}.query-body{margin-bottom:2rem}.query-body p{color:#3f3f46;margin:0;font-size:1rem;line-height:1.7}.query-images{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:2.5rem;display:grid}.query-images figure{margin:0}.query-images img{border:1px solid #e4e4e7;border-radius:8px;width:100%;height:auto;display:block}.query-images figcaption{color:#71717a;margin-top:.5rem;font-size:.8125rem}.response-form h2{border-bottom:1px solid #e4e4e7;margin:0 0 1.25rem;padding-bottom:.75rem;font-size:1.25rem;font-weight:600}.response-form form{flex-direction:column;gap:1.25rem;display:flex}.response-form textarea{resize:vertical;border:1px solid #e4e4e7;border-radius:8px;width:100%;min-height:160px;padding:.75rem;font-family:inherit;font-size:.9375rem;line-height:1.6}.response-form textarea:focus{border-color:#27272a;outline:none}.image-upload{flex-direction:column;gap:.5rem;display:flex}.image-upload label{cursor:pointer;border:2px dashed #d4d4d8;border-radius:8px;justify-content:center;align-items:center;padding:1rem;transition:border-color .15s;display:flex}.image-upload label:hover{border-color:#a1a1aa}.image-upload input[type=file]{display:none}.image-upload span{color:#71717a;font-size:.875rem;font-weight:500}.image-upload p{color:#a1a1aa;margin:0;font-size:.8125rem}.response-form button[type=submit]{color:#fff;cursor:pointer;background:#18181b;border:none;border-radius:8px;align-self:flex-start;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500}.response-form button[type=submit]:hover:not(:disabled){background:#27272a}.response-form button:disabled{opacity:.6;cursor:not-allowed}.response-form .error{color:#dc2626;background:#fef2f2;border-radius:6px;padding:.625rem .75rem;font-size:.875rem}.success-page{justify-content:center;align-items:center;min-height:60vh;display:flex}.success-content{text-align:center}.success-icon{color:#166534;background:#f0fdf4;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 1.5rem;font-size:2rem;display:flex}.success-content h1{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.success-content p{color:#71717a;margin:0 0 1.5rem;font-size:.9375rem}.back-link{color:#27272a;font-size:.875rem;font-weight:500;text-decoration:none}.back-link:hover{text-decoration:underline}.not-found-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;display:flex}.not-found-page h1{color:#d4d4d8;margin:0 0 .5rem;font-size:3rem;font-weight:700}.not-found-page p{color:#71717a;font-size:.9375rem}.loading,.error,.not-found{text-align:center;color:#71717a;padding:2rem}.app-version{color:#d4d4d8;z-index:100;pointer-events:none;font-size:.625rem;position:fixed;bottom:.75rem;right:1rem}
