.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-box{background:#fff;padding:40px;border-radius:10px;box-shadow:0 10px 25px #0003;width:100%;max-width:400px}.auth-box h1{margin-bottom:10px;color:#667eea;font-size:32px;text-align:center}.auth-box h2{margin-bottom:30px;color:#333;font-size:24px;text-align:center}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:5px;color:#555;font-weight:500}.form-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:5px;font-size:14px}.form-group input:focus{outline:none;border-color:#667eea}.auth-box button[type=submit]{width:100%;padding:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:5px;font-size:16px;font-weight:600;margin-top:10px}.auth-box button[type=submit]:hover:not(:disabled){opacity:.9}.auth-box button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#fee;color:#c33;padding:10px;border-radius:5px;margin-bottom:20px;font-size:14px}.auth-link{text-align:center;margin-top:20px;color:#666}.auth-link a{color:#667eea;text-decoration:none;font-weight:600}.auth-link a:hover{text-decoration:underline}.divider{margin:20px 0;text-align:center;position:relative}.divider:before{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:#e5e7eb}.divider span{position:relative;background:#fff;padding:0 10px;color:#999;font-size:14px}.magic-link-button{width:100%;padding:12px;background:#fff;color:#667eea;border:2px solid #667eea;border-radius:5px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.magic-link-button:hover{background:#f3f4f6}.back-button{background:transparent;border:none;color:#667eea;font-size:14px;cursor:pointer;padding:8px 0;margin-bottom:20px;display:flex;align-items:center;gap:4px}.back-button:hover{text-decoration:underline}.magic-link-description{color:#666;font-size:14px;line-height:1.5;margin-bottom:20px;text-align:center}.success-message{text-align:center;padding:20px}.success-message svg{margin:0 auto 20px;display:block}.success-message h3{color:#10b981;font-size:24px;margin-bottom:10px}.success-message p{color:#666;font-size:14px;line-height:1.5;margin-bottom:10px}.magic-link-hint{color:#999;font-size:13px;margin-top:15px}.verifying-message{text-align:center;padding:40px 20px}.verifying-message h3{color:#667eea;font-size:20px;margin-bottom:10px}.verifying-message p{color:#666;font-size:14px}.spinner{width:48px;height:48px;border:4px solid #f3f4f6;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.notification-dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:9998;animation:fadeIn .2s ease-out}.notification-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;padding:32px;width:90%;max-width:400px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;z-index:9999;animation:slideIn .3s ease-out}.notification-dialog-content{display:flex;flex-direction:column;align-items:center;text-align:center}.notification-dialog-icon{margin-bottom:16px}.notification-dialog-success .notification-dialog-icon{color:#10b981}.notification-dialog-error .notification-dialog-icon{color:#ef4444}.notification-dialog-info .notification-dialog-icon{color:#667eea}.notification-dialog-title{font-size:20px;font-weight:600;margin:0 0 12px;color:#1f2937}.notification-dialog-message{font-size:15px;color:#6b7280;margin:0 0 24px;line-height:1.5}.notification-dialog-actions{display:flex;justify-content:center;width:100%}.notification-dialog-btn{border:none;padding:10px 32px;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;color:#fff}.notification-dialog-btn-success{background:#10b981}.notification-dialog-btn-success:hover{background:#059669}.notification-dialog-btn-error{background:#ef4444}.notification-dialog-btn-error:hover{background:#dc2626}.notification-dialog-btn-info{background:#667eea}.notification-dialog-btn-info:hover{background:#5568d3}@keyframes slideIn{0%{opacity:0;transform:translate(-50%,-45%)}to{opacity:1;transform:translate(-50%,-50%)}}.dashboard{height:100vh;display:flex;flex-direction:column}.dashboard-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px 40px;display:flex;justify-content:space-between;align-items:center}.dashboard-header h1{font-size:24px}.header-right{display:flex;align-items:center;gap:20px}.logout-btn{background:#fff3;color:#fff;border:none;padding:8px 16px;border-radius:5px;font-weight:500}.logout-btn:hover{background:#ffffff4d}.dashboard-content{flex:1;padding:40px;overflow-y:auto;background:#f5f5f5}.projects-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.projects-header h2{font-size:28px;color:#333}.create-btn{background:#667eea;color:#fff;border:none;padding:12px 24px;border-radius:5px;font-size:16px;font-weight:600}.create-btn:hover{background:#5568d3}.empty-state{text-align:center;padding:60px 20px;color:#666;font-size:18px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.project-card{background:#fff;padding:24px;border-radius:10px;box-shadow:0 2px 8px #0000001a}.project-card h3{margin-bottom:10px;color:#333;font-size:20px}.project-description{color:#666;margin-bottom:10px;min-height:40px}.project-url{margin-bottom:15px;font-size:13px}.project-url a{color:#667eea;text-decoration:none;word-break:break-all}.project-url a:hover{text-decoration:underline}.project-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:14px}.status{padding:4px 12px;border-radius:12px;font-weight:500;text-transform:capitalize}.status-draft{background:#fef3c7;color:#92400e}.status-review{background:#dbeafe;color:#1e40af}.status-approved{background:#d1fae5;color:#065f46}.created-by{color:#999}.project-actions{display:flex;gap:10px}.btn-primary{flex:1;background:#667eea;color:#fff;border:none;padding:10px;border-radius:5px;font-weight:600}.btn-primary:hover{background:#5568d3}.btn-danger{background:#ef4444;color:#fff;border:none;padding:10px 16px;border-radius:5px;font-weight:600}.btn-danger:hover{background:#dc2626}.btn-secondary{background:#e5e7eb;color:#374151;border:none;padding:10px 20px;border-radius:5px;font-weight:600}.btn-secondary:hover{background:#d1d5db}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background:#fff;padding:30px;border-radius:10px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal h2{margin-bottom:20px;color:#333}.modal .form-group{margin-bottom:20px}.modal .form-group label{display:block;margin-bottom:5px;color:#555;font-weight:500}.modal .form-group input,.modal .form-group textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:5px;font-size:14px}.modal .form-group input:focus,.modal .form-group textarea:focus{outline:none;border-color:#667eea}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.modal-subtitle{color:#6b7280;font-size:14px;margin:-10px 0 20px}.form-hint{font-size:12px;color:#6b7280;margin-top:6px;line-height:1.4}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.btn-cancel{background:#f3f4f6;color:#374151;border:none;padding:10px 20px;border-radius:5px;font-weight:500;cursor:pointer;transition:background .2s}.btn-cancel:hover{background:#e5e7eb}.voice-recorder-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.voice-recorder-modal{background:#fff;border-radius:12px;padding:24px;width:90%;max-width:400px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.recorder-header{text-align:center;margin-bottom:24px}.recorder-header h3{margin:0;font-size:20px;color:#333}.recorder-content{display:flex;flex-direction:column;align-items:center;padding:20px 0}.recording-animation{margin-bottom:20px;position:relative}.pulse-circle{width:80px;height:80px;border-radius:50%;background:#fee2e2;display:flex;align-items:center;justify-content:center;position:relative}.pulse-circle.active:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;border-radius:50%;border:2px solid #dc2626;animation:pulse 2s ease-out infinite}@keyframes pulse{0%{transform:scale(1);opacity:1}to{transform:scale(1.3);opacity:0}}.recording-time{font-size:32px;font-weight:600;color:#dc2626;margin-bottom:8px;font-variant-numeric:tabular-nums}.recording-status{font-size:14px;color:#666}.recorder-actions{display:flex;gap:12px;margin-top:20px}.recorder-actions button{flex:1;padding:12px 24px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel-recording{background:#f3f4f6;color:#666}.btn-cancel-recording:hover{background:#e5e7eb}.btn-stop-recording{background:#dc2626;color:#fff}.btn-stop-recording:hover:not(:disabled){background:#b91c1c}.btn-stop-recording:disabled{opacity:.5;cursor:not-allowed}.mockup-viewer{position:relative;width:100%;height:100%;background:#fff}.mockup-iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.mockup-placeholder{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;color:#999;font-size:18px}.placeholder-hint{font-size:14px;margin-top:10px}.annotation-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.annotation-layer{position:absolute;top:0;left:0}.comment-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.comment-modal{background:#fff;padding:25px;border-radius:10px;width:90%;max-width:400px;box-shadow:0 10px 25px #0000004d}.comment-modal h3{margin:0 0 15px;color:#333;font-size:20px}.element-info{background:#f3f4f6;padding:8px 12px;border-radius:5px;margin-bottom:15px;font-size:12px;color:#666}.element-info code{background:#e5e7eb;padding:2px 6px;border-radius:3px;font-family:monospace;font-size:11px;color:#667eea}.comment-modal textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:5px;font-size:14px;resize:vertical;font-family:inherit}.comment-modal textarea:focus{outline:none;border-color:#667eea}.comment-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:15px}.comment-modal-actions button{padding:10px 20px;border:none;border-radius:5px;font-weight:600;cursor:pointer}.comment-modal-actions button[type=button]{background:#e5e7eb;color:#374151}.comment-modal-actions button[type=button]:hover{background:#d1d5db}.comment-modal-actions button[type=submit]{background:#667eea;color:#fff}.comment-modal-actions button[type=submit]:hover{background:#5568d3}.text-edit-modal{max-width:500px}.text-edit-modal .form-group{margin-bottom:15px}.text-edit-modal .form-group label{display:block;margin-bottom:5px;font-weight:600;color:#555;font-size:13px}.original-text{background:#f9fafb;border:1px solid #e5e7eb;border-radius:5px;padding:12px;font-size:14px;color:#666;line-height:1.5;max-height:100px;overflow-y:auto}.toolbar{display:none;width:80px;background:#fff;border-right:1px solid #e5e7eb;flex-direction:column;padding:20px 10px}.toolbar-title{font-weight:600;color:#666;font-size:12px;text-transform:uppercase;text-align:center;margin-bottom:15px}.toolbar-tools{display:flex;flex-direction:column;gap:10px}.tool-btn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 8px;background:#f9fafb;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s}.tool-btn:hover{background:#f3f4f6;border-color:#e5e7eb}.tool-btn.active{background:#eef2ff;border-color:#667eea}.tool-btn.active.voice-mode{background:#f5f3ff;border-color:#8b5cf6}.tool-icon{font-size:24px}.tool-label{font-size:10px;color:#666;font-weight:500;text-align:center}.toolbar-help{margin-top:auto;padding-top:20px;font-size:11px;color:#999;text-align:center;line-height:1.4}.toolbar-help p{margin:0}.toolbar-section-divider{height:1px;background:#e5e7eb;margin:15px 0}.toolbar-actions{display:flex;flex-direction:column;gap:10px}.action-btn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 8px;background:#f9fafb;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s;color:#666;font-size:10px;font-weight:500}.action-btn:hover{background:#f3f4f6;border-color:#e5e7eb}.voice-btn{background:#f5f3ff;color:#8b5cf6}.voice-btn:hover{background:#ede9fe;border-color:#c4b5fd}.confirm-dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:2000;animation:fadeIn .2s ease}.confirm-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2001;animation:slideIn .2s ease}.confirm-dialog-content{background:#fff;border-radius:12px;padding:24px;min-width:320px;max-width:480px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.confirm-dialog-title{margin:0 0 12px;font-size:18px;font-weight:600;color:#111827}.confirm-dialog-message{margin:0 0 24px;font-size:14px;color:#6b7280;line-height:1.5}.confirm-dialog-actions{display:flex;gap:12px;justify-content:flex-end}.confirm-dialog-btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.confirm-dialog-btn-cancel{background:#f3f4f6;color:#374151}.confirm-dialog-btn-cancel:hover{background:#e5e7eb}.confirm-dialog-btn-confirm{color:#fff}.confirm-dialog-btn-confirm.danger{background:#ef4444}.confirm-dialog-btn-confirm.danger:hover{background:#dc2626}.confirm-dialog-btn-confirm.primary{background:#667eea}.confirm-dialog-btn-confirm.primary:hover{background:#5568d3}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(-50%,-48%);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}@media (max-width: 640px){.confirm-dialog-content{min-width:calc(100vw - 32px);max-width:calc(100vw - 32px)}}.annotation-sidebar{width:350px;background:#fff;border-left:1px solid #e5e7eb;display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:20px;border-bottom:1px solid #e5e7eb}.sidebar-header h2{margin:0 0 5px;font-size:20px;color:#333}.annotation-count{font-size:13px;color:#999}.sidebar-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:15px 20px;border-bottom:1px solid #e5e7eb}.sidebar-tool-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s;font-size:12px;font-weight:500;color:#666}.sidebar-tool-btn:hover{background:#f3f4f6;border-color:#d1d5db}.sidebar-tool-btn.active{background:#f9fafb;border-color:#667eea;border-width:3px;color:#667eea}.sidebar-tool-btn .tool-icon{display:flex;align-items:center;justify-content:center}.sidebar-tool-btn.active .tool-icon svg{stroke:#667eea}.sidebar-tool-btn .tool-label{font-size:11px;text-align:center;font-weight:600}.sidebar-tool-btn.active .tool-label{font-weight:700}.sidebar-mode-help{padding:10px 20px;background:#fffbeb;border-bottom:1px solid #fef3c7}.sidebar-mode-help p{margin:0;font-size:12px;color:#92400e;text-align:center}.sidebar-type-filters{display:flex;padding:15px 20px;gap:8px;border-bottom:1px solid #e5e7eb}.sidebar-type-filters button{flex:1;padding:8px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:5px;font-size:12px;font-weight:500;color:#666;transition:all .2s}.sidebar-type-filters button:hover{background:#f3f4f6}.sidebar-type-filters button.active{background:#667eea;color:#fff;border-color:#667eea}.sidebar-filters{display:flex;padding:10px 20px;gap:10px;border-bottom:1px solid #e5e7eb}.sidebar-filters button{flex:1;padding:6px 10px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:5px;font-size:12px;font-weight:500;color:#666;transition:all .2s}.sidebar-filters button:hover{background:#f3f4f6}.sidebar-filters button.active{background:#667eea;color:#fff;border-color:#667eea}.annotations-list{flex:1;overflow-y:auto;padding:10px}.empty-annotations{text-align:center;padding:60px 20px;color:#999}.empty-annotations p{margin:0}.empty-hint{font-size:13px;margin-top:8px}.annotation-item{background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;padding:15px;margin-bottom:10px;cursor:pointer;transition:all .2s}.annotation-item:hover{border-color:#667eea}.annotation-item.selected{background:#eef2ff;border-color:#667eea}.annotation-item.resolved{opacity:.6}.annotation-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.annotation-author{display:flex;gap:10px;align-items:center}.author-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.author-info{flex:1}.author-name{font-weight:600;color:#333;font-size:14px}.annotation-date{font-size:12px;color:#999;margin-top:2px}.annotation-status-badge{padding:3px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase}.annotation-status-badge.open{background:#dbeafe;color:#1e40af}.annotation-status-badge.closed{background:#d1fae5;color:#065f46}.annotation-item.closed{opacity:.7}.annotation-content{margin-bottom:12px}.annotation-content p{margin:0;color:#555;font-size:14px;line-height:1.5;word-wrap:break-word}.annotation-actions{display:flex;gap:8px}.annotation-actions button{flex:1;padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:600;transition:all .2s}.btn-resolve{background:#e0e7ff;color:#4338ca}.btn-resolve:hover{background:#c7d2fe}.btn-delete{background:#fee2e2;color:#dc2626}.btn-delete:hover{background:#fecaca}.btn-chat{background:#dbeafe;color:#1e40af}.btn-chat:hover{background:#bfdbfe}.btn-status{background:#dcfce7;color:#166534}.btn-status:hover{background:#bbf7d0}.comment-chat-section{margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}.audit-log{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:10px;margin-bottom:12px}.audit-header{font-size:12px;font-weight:600;color:#666;margin-bottom:8px;text-transform:uppercase}.audit-entry{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #e5e7eb;font-size:12px}.audit-entry:last-child{border-bottom:none}.audit-user{font-weight:600;color:#333}.audit-action{color:#667eea;font-weight:500}.audit-date{color:#999;font-size:11px;margin-left:auto}.chat-messages{max-height:200px;overflow-y:auto;margin-bottom:12px}.chat-message{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:10px;margin-bottom:8px}.chat-message:last-child{margin-bottom:0}.message-header{display:flex;gap:8px;align-items:center;margin-bottom:6px}.message-avatar{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:11px;flex-shrink:0}.message-info{display:flex;align-items:center;gap:6px;flex:1}.message-info strong{font-size:13px;color:#333}.message-date{font-size:11px;color:#999}.message-text{font-size:13px;color:#555;line-height:1.5;word-wrap:break-word}.chat-input-area{display:flex;flex-direction:column;gap:8px}.chat-input-area textarea{width:100%;padding:8px;border:1px solid #e5e7eb;border-radius:4px;font-size:13px;font-family:inherit;resize:none;transition:border-color .2s}.chat-input-area textarea:focus{outline:none;border-color:#667eea}.btn-send-reply{padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;align-self:flex-end}.btn-send-reply:hover:not(:disabled){background:#5568d3}.btn-send-reply:disabled{opacity:.5;cursor:not-allowed}.sidebar-stats{padding:15px 20px;border-top:1px solid #e5e7eb;background:#f9fafb}.stat{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.stat:last-child{margin-bottom:0}.stat-label{font-size:13px;color:#666}.stat-value{font-weight:600;color:#667eea;font-size:14px}.drawing-item{background:#fef9f3;border-color:#fed7aa}.drawing-item.selected{background:#fef3c7;border-color:#f59e0b}.annotation-type-badge{padding:3px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase}.annotation-type-badge.drawing{background:#fed7aa;color:#92400e}.drawing-preview{background:#fff;border:1px solid #e5e7eb;border-radius:5px;padding:10px;display:flex;justify-content:center;align-items:center;margin-bottom:8px}.drawing-preview svg{display:block}.drawing-info{font-size:12px;color:#92400e;margin:0;font-weight:500}.btn-delete.full-width{flex:none;width:100%}.text-edit-item{background:#eff6ff;border-color:#bfdbfe}.text-edit-item.selected{background:#dbeafe;border-color:#3b82f6}.annotation-type-badge.text-edit{background:#bfdbfe;color:#1e40af}.text-edit-preview{font-size:13px}.text-change{margin-bottom:10px}.text-change:last-child{margin-bottom:0}.text-change strong{color:#555;font-size:12px;display:block;margin-bottom:4px}.text-value{background:#fff;border:1px solid #e5e7eb;border-radius:4px;padding:8px;font-size:12px;margin-top:4px;line-height:1.4;max-height:80px;overflow-y:auto}.text-value.original{color:#dc2626;text-decoration:line-through;opacity:.7}.text-value.new{color:#059669;font-weight:500}.text-selector{margin-top:8px;padding-top:8px;border-top:1px solid #e5e7eb}.text-selector code{background:#f3f4f6;padding:4px 8px;border-radius:3px;font-size:11px;color:#3b82f6;word-break:break-all}.voice-note-item{background:#f5f3ff;border-color:#e9d5ff}.voice-note-item.selected{background:#ede9fe;border-color:#8b5cf6}.voice-note-preview{display:flex;align-items:center;gap:12px;cursor:pointer;margin-bottom:8px}.voice-note-preview:hover{opacity:.8}.voice-note-icon{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:#ede9fe;display:flex;align-items:center;justify-content:center}.voice-note-details{flex:1;min-width:0}.voice-note-label{font-size:12px;font-weight:600;color:#8b5cf6}.voice-audio-player{width:100%;height:32px;cursor:pointer}.attachments-section{margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb;display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.attachment-item{position:relative}.attachment-item a{display:block;text-decoration:none;transition:transform .2s}.attachment-item a:hover{transform:scale(1.05)}.attachment-thumbnail{width:100%;height:80px;object-fit:cover;border-radius:6px;border:1px solid #e5e7eb;background:#fff}.attachment-file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 8px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#667eea;text-align:center;min-height:80px}.attachment-file:hover{border-color:#667eea;background:#f9fafb}.attachment-name{font-size:10px;color:#666;word-break:break-word;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.reply-file-upload-section{margin-bottom:8px}.reply-file-upload-label{display:inline-block;padding:6px 12px;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;font-size:12px;transition:background .2s;color:#666}.reply-file-upload-label:hover{background:#e5e7eb}.reply-selected-files{margin-top:6px;display:flex;flex-direction:column;gap:4px}.reply-file-item{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;background:#fff;border:1px solid #e5e7eb;border-radius:4px;font-size:11px}.reply-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#555}.reply-remove-file{background:#ef4444;color:#fff;border:none;border-radius:50%;width:18px;height:18px;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:6px}.reply-remove-file:hover{background:#dc2626}.message-attachments{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:6px}.message-attachment-item{position:relative}.message-attachment-item a{display:block;text-decoration:none;transition:transform .2s}.message-attachment-item a:hover{transform:scale(1.05)}.message-attachment-thumbnail{width:100%;height:60px;object-fit:cover;border-radius:4px;border:1px solid #e5e7eb;background:#f9fafb}.message-attachment-file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 6px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;color:#667eea;text-align:center;min-height:60px}.message-attachment-file:hover{border-color:#667eea;background:#f3f4f6}.message-attachment-name{font-size:9px;color:#666;word-break:break-word;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mobile-toolbar{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:#fff;border-radius:28px;box-shadow:0 4px 16px #0000004d;padding:8px 12px;display:none;gap:4px;z-index:1000;align-items:center}.mobile-tool-btn,.mobile-annotations-btn{background:transparent;border:none;padding:10px 14px;border-radius:20px;cursor:pointer;font-size:20px;transition:all .2s;position:relative;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.mobile-tool-btn:active,.mobile-annotations-btn:active{transform:scale(.95)}.mobile-tool-btn.active{background:#667eea}.mobile-tool-btn.active .tool-icon{filter:brightness(0) invert(1)}.mobile-annotations-btn{margin-left:4px;padding-left:16px;padding-right:16px;background:#f3f4f6}.annotation-badge{position:absolute;top:6px;right:6px;background:#ef4444;color:#fff;border-radius:10px;padding:2px 6px;font-size:11px;font-weight:700;min-width:18px;text-align:center}@media (max-width: 1023px){.mobile-toolbar{display:flex}}.mobile-panel-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:1998;display:none}.mobile-panel-backdrop.active{opacity:1;pointer-events:all}.mobile-annotation-panel{position:fixed;top:0;right:-100%;width:100%;height:100vh;height:100dvh;background:#fff;box-shadow:-4px 0 16px #0003;transition:right .3s ease;z-index:1999;display:none;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.mobile-annotation-panel.open{right:0}.mobile-panel-header{padding:20px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.mobile-panel-header h3{margin:0;font-size:18px;color:#111827}.close-btn{background:#f3f4f6;border:none;width:36px;height:36px;border-radius:18px;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.close-btn:active{background:#e5e7eb}.mobile-panel-filters{padding:12px 20px;border-bottom:1px solid #e5e7eb;display:flex;gap:8px;overflow-x:auto;flex-shrink:0}.mobile-panel-filters button{padding:6px 14px;border:1px solid #d1d5db;border-radius:16px;background:#fff;color:#6b7280;font-size:13px;white-space:nowrap;cursor:pointer;transition:all .2s}.mobile-panel-filters button.active{background:#667eea;border-color:#667eea;color:#fff}.mobile-annotations-list{flex:1;overflow-y:auto;padding:12px}.empty-state{text-align:center;padding:60px 20px;color:#6b7280}.empty-state p{margin:8px 0}.empty-state .hint{font-size:14px;color:#9ca3af}.mobile-annotation-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px;margin-bottom:10px;display:flex;gap:12px;align-items:flex-start;cursor:pointer;transition:all .2s}.mobile-annotation-card:active{background:#f9fafb;transform:scale(.98)}.mobile-annotation-card.selected{border-color:#667eea;background:#f5f7ff}.card-icon{font-size:24px;flex-shrink:0}.card-content{flex:1;min-width:0}.card-text{font-size:14px;color:#111827;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-text.expanded{display:block;-webkit-line-clamp:unset;overflow:visible}.original-text{text-decoration:line-through;color:#9ca3af}.new-text{color:#10b981;font-weight:500}.card-meta{font-size:12px;color:#6b7280;display:flex;align-items:center;gap:6px}.separator{color:#d1d5db}.status{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase}.status.open{background:#dbeafe;color:#1e40af}.status.resolved{background:#d1fae5;color:#065f46}.card-actions{display:flex;gap:4px;flex-shrink:0}.action-btn{background:#f3f4f6;border:none;width:32px;height:32px;border-radius:8px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.action-btn:active{background:#e5e7eb}.action-btn.delete:active{background:#fee2e2}.voice-note-mobile{display:flex;flex-direction:column;gap:8px}.voice-label{font-size:12px;color:#6b7280;font-weight:500}.voice-note-mobile audio{width:100%;height:32px}.card-icon svg{color:#6b7280}@media (max-width: 1023px){.mobile-panel-backdrop{display:block}.mobile-annotation-panel{display:flex}}.review-page{height:100vh;display:flex;flex-direction:column;background:#f5f5f5}.review-header{background:#fff;padding:15px 30px;display:flex;align-items:center;gap:20px;box-shadow:0 2px 4px #0000001a;z-index:10}.back-btn{background:#e5e7eb;color:#374151;border:none;padding:8px 16px;border-radius:5px;font-weight:600}.back-btn:hover{background:#d1d5db}.review-header h1{flex:1;font-size:20px;color:#333;margin:0}.project-status{display:flex;align-items:center;gap:8px;font-size:14px;color:#666}.review-content{flex:1;display:flex;overflow:hidden}.review-main{flex:1;overflow:auto;position:relative}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:18px;color:#666}@media (max-width: 1023px){.review-content>div:first-child,.review-content>div:last-child{display:none}.review-main{width:100%}.review-header{padding:12px 16px}.review-header h1{font-size:16px}.back-btn{padding:6px 12px;font-size:14px}.project-status{font-size:12px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100vh}button{cursor:pointer;font-family:inherit}input,textarea{font-family:inherit}
