@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Montserrat:wght@300;400;500;600&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--dark-green: #183E40;--light-green: #0D6363;--accent-green: #4C8380;--light-gray: #F9F9F9;--primary-black: #2C2C2C;--cream: #ECE2DF;--latte: #DCCFC0;--blush: #DFC7BF;--lavender: #DAD4DE;--success: #4C8380;--success-light: rgba(76, 131, 128, .1);--danger: #9B4D4D;--danger-light: rgba(155, 77, 77, .1);--warning: #B8956B;--warning-light: rgba(184, 149, 107, .15);--white: #FFFFFF;--off-white: #FAFAF9;--gray-50: #F7F6F5;--gray-100: #EFEEED;--gray-200: #E2E0DE;--gray-300: #C9C6C3;--gray-400: #9F9B97;--gray-500: #6B6662;--gray-600: #4A4744;--gray-700: #363432;--gray-800: #252322;--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Montserrat", -apple-system, BlinkMacSystemFont, sans-serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(24, 62, 64, .04);--shadow-md: 0 4px 12px rgba(24, 62, 64, .06);--shadow-lg: 0 8px 24px rgba(24, 62, 64, .08);--shadow-xl: 0 16px 48px rgba(24, 62, 64, .1);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-weight:400;background-color:var(--off-white);color:var(--primary-black);line-height:1.6;letter-spacing:.01em}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:400;line-height:1.3;letter-spacing:.02em;color:var(--dark-green)}.app{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--white) 0%,var(--off-white) 100%)}.header{background:var(--white);border-bottom:1px solid var(--gray-200);padding:var(--space-md) var(--space-xl);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2}.header h1{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:var(--dark-green);letter-spacing:.08em;text-transform:uppercase}.header nav{display:flex;gap:var(--space-xs)}.header nav a{font-family:var(--font-body);font-size:.8125rem;font-weight:500;color:var(--gray-500);text-decoration:none;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);transition:all var(--transition-base);letter-spacing:.05em;text-transform:uppercase;position:relative}.header nav a:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--accent-green);transition:all var(--transition-base);transform:translate(-50%)}.header nav a:hover{color:var(--dark-green)}.header nav a:hover:after{width:60%}.header nav a.active{color:var(--dark-green)}.header nav a.active:after{width:60%;background:var(--light-green)}.header-auth{display:flex;align-items:center;gap:var(--space-sm)}.header-user{font-size:.75rem;color:var(--gray-500);max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-badge{font-size:.625rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-green);border:1px solid var(--accent-green);border-radius:var(--radius-sm);padding:.125rem .375rem}.auth-gate,.auth-loading{max-width:28rem;margin:var(--space-3xl) auto;padding:var(--space-2xl);text-align:center;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.auth-gate h2{margin-bottom:var(--space-md)}.auth-gate p{color:var(--gray-600);margin-bottom:var(--space-lg)}.auth-meta{font-size:.875rem}.auth-actions{display:flex;gap:var(--space-sm);justify-content:center}.btn-ghost{background:transparent;border:1px solid var(--gray-300);color:var(--gray-600)}.btn-ghost:hover{border-color:var(--accent-green);color:var(--dark-green)}.btn-sm{font-size:.75rem;padding:var(--space-xs) var(--space-md)}.main-content{flex:1;padding:var(--space-lg) var(--space-xl);max-width:1600px;margin:0 auto;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-family:var(--font-body);font-size:.8125rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn-primary{background-color:var(--dark-green);color:var(--white);border-color:var(--dark-green)}.btn-primary:hover{background-color:var(--light-green);border-color:var(--light-green);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-success{background-color:var(--accent-green);color:var(--white);border-color:var(--accent-green)}.btn-success:hover{background-color:var(--light-green);border-color:var(--light-green);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-danger{background-color:var(--danger);color:var(--white);border-color:var(--danger)}.btn-danger:hover{background-color:#8a4343;border-color:#8a4343;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:transparent;color:var(--gray-600);border-color:var(--gray-300)}.btn-secondary:hover{background-color:var(--gray-100);color:var(--dark-green);border-color:var(--gray-400)}.btn-ghost{background-color:transparent;color:var(--dark-green);border-color:transparent}.btn-ghost:hover{background-color:var(--cream)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn:disabled:hover{transform:none;box-shadow:none}.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-xl);border:1px solid var(--gray-100);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-md);font-family:var(--font-body);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-sm)}.status-pending{background-color:var(--warning-light);color:var(--warning)}.status-approved{background-color:var(--success-light);color:var(--light-green)}.status-rejected{background-color:var(--danger-light);color:var(--danger)}.dropzone{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);padding:var(--space-3xl);text-align:center;cursor:pointer;transition:all var(--transition-base);background:linear-gradient(135deg,var(--white) 0%,var(--gray-50) 100%);position:relative;overflow:hidden}.dropzone:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--cream) 0%,var(--lavender) 100%);opacity:0;transition:opacity var(--transition-base)}.dropzone:hover,.dropzone.active{border-color:var(--accent-green);border-style:solid}.dropzone:hover:before,.dropzone.active:before{opacity:.15}.dropzone-content{position:relative;z-index:1}.dropzone-icon{width:64px;height:64px;margin:0 auto var(--space-lg);color:var(--accent-green);opacity:.7}.dropzone h3{font-family:var(--font-display);font-size:1.5rem;color:var(--dark-green);margin-bottom:var(--space-sm)}.dropzone p{font-family:var(--font-body);font-size:.9375rem;color:var(--gray-500);margin-bottom:var(--space-xs)}.dropzone .hint{font-size:.8125rem;color:var(--gray-400)}.file-list{display:flex;flex-direction:column;gap:var(--space-md)}.file-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);background:var(--white);border-radius:var(--radius-md);border:1px solid var(--gray-100);transition:all var(--transition-base)}.file-item:hover{border-color:var(--cream);box-shadow:var(--shadow-md);transform:translateY(-2px)}.file-item-info{display:flex;flex-direction:column;gap:var(--space-xs)}.file-item-name{font-family:var(--font-body);font-weight:500;font-size:.9375rem;color:var(--dark-green);letter-spacing:.01em}.file-item-meta{font-size:.75rem;color:var(--gray-400);letter-spacing:.02em}.file-item-actions{display:flex;gap:var(--space-sm);align-items:center}.viewer-container{position:relative;width:100%;height:calc(100vh - 200px);min-height:500px;background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.viewer-canvas{width:100%;height:100%}.viewer-page{display:flex;flex-direction:column;gap:var(--space-lg);min-height:calc(100vh - 140px)}.viewer-main{display:flex;flex-direction:column;gap:var(--space-md);flex:1}.viewer-bottom-section{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.viewer-sidebar{display:flex;flex-direction:column;gap:var(--space-md);overflow-y:auto}.approval-panel{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-xl);border:1px solid var(--gray-100);box-shadow:var(--shadow-sm)}.approval-panel h3{font-family:var(--font-display);font-size:1.25rem;margin-bottom:var(--space-lg);color:var(--dark-green);padding-bottom:var(--space-md);border-bottom:1px solid var(--gray-100)}.approval-actions{display:flex;gap:var(--space-md)}.comment-thread{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-xl);border:1px solid var(--gray-100);box-shadow:var(--shadow-sm);flex:1;display:flex;flex-direction:column}.comment-thread-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--gray-100)}.comment-thread-header h3{font-family:var(--font-display);font-size:1.25rem;color:var(--dark-green);margin:0}.comment-thread-actions{display:flex;gap:var(--space-xs)}.comment-action-btn{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--gray-500);transition:all var(--transition-fast)}.comment-action-btn:hover{color:var(--dark-green);background:var(--gray-100)}.comment-action-btn.active{color:var(--white);background:var(--accent-green)}.pin-placement-prompt{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--success-light);border:1px solid var(--accent-green);border-radius:var(--radius-md);margin-bottom:var(--space-md);font-size:.8125rem;color:var(--dark-green);animation:fadeIn .2s ease}.new-thread-form{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--gray-50);border-radius:var(--radius-md);border:1px solid var(--gray-200);margin-bottom:var(--space-md);animation:fadeIn .2s ease}.new-thread-form-label{display:flex;align-items:center;gap:var(--space-xs);font-size:.75rem;font-weight:600;color:var(--accent-green);text-transform:uppercase;letter-spacing:.05em}.new-thread-form input{padding:var(--space-sm) var(--space-md);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.875rem;background:var(--white);transition:all var(--transition-fast)}.new-thread-form input:focus{outline:none;border-color:var(--accent-green);box-shadow:0 0 0 3px var(--success-light)}.new-thread-form input::placeholder{color:var(--gray-400)}.new-thread-form-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.comments-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm);padding-right:var(--space-xs)}.thread-card{border-radius:var(--radius-md);border:1px solid var(--gray-100);background:var(--white);transition:all var(--transition-fast);overflow:hidden}.thread-card:hover{border-color:var(--gray-200);box-shadow:var(--shadow-sm)}.thread-card--highlighted{border-color:var(--accent-green);box-shadow:0 0 0 2px var(--success-light)}.thread-card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);cursor:pointer;gap:var(--space-sm)}.thread-card-header-left{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.thread-card-header-right{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.pin-composite{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;cursor:pointer;flex-shrink:0}.pin-composite--sidebar{padding:0}.pin-avatar{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:var(--white);font-size:.625rem;font-weight:700;font-family:var(--font-body);letter-spacing:.02em}.pin-number{position:absolute;bottom:-2px;right:-4px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;color:var(--white);font-size:.5625rem;font-weight:700;font-family:var(--font-body);border:2px solid var(--white);line-height:1}.pin-composite--sidebar:hover .pin-avatar{filter:brightness(.85)}.pin-composite--active .pin-avatar{box-shadow:0 0 0 2px var(--white),0 0 0 4px var(--accent-green)}.thread-general-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:12px;background:var(--gray-200);color:var(--gray-600);font-size:.6875rem;font-weight:600;white-space:nowrap}.thread-card-author{display:flex;align-items:center;gap:3px;font-size:.75rem;font-weight:600;color:var(--gray-600);white-space:nowrap}.thread-reply-count,.thread-card-date{font-size:.6875rem;color:var(--gray-400);white-space:nowrap}.thread-card-content{padding:0 var(--space-md) var(--space-sm);font-size:.8125rem;color:var(--gray-600);line-height:1.5;cursor:pointer}.thread-replies{border-top:1px solid var(--gray-100);padding:var(--space-sm) var(--space-md) var(--space-md);animation:fadeIn .15s ease}.thread-reply{padding:var(--space-sm) 0;border-bottom:1px solid var(--gray-50)}.thread-reply:last-of-type{border-bottom:none}.thread-reply-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.thread-reply-author{display:flex;align-items:center;gap:3px;font-size:.75rem;font-weight:600;color:var(--gray-600)}.thread-reply-content{font-size:.8125rem;color:var(--gray-600);line-height:1.5;padding-left:15px}.thread-reply-form{display:flex;gap:var(--space-xs);margin-top:var(--space-sm)}.thread-reply-form input{flex:1;padding:6px var(--space-sm);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.8125rem;background:var(--white);transition:all var(--transition-fast)}.thread-reply-form input:focus{outline:none;border-color:var(--accent-green);box-shadow:0 0 0 2px var(--success-light)}.thread-reply-form input::placeholder{color:var(--gray-400)}.thread-reply-submit{padding:4px 8px;min-width:32px}.thread-delete-btn{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);padding:4px 8px;font-size:.6875rem;color:var(--gray-400);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.thread-delete-btn:hover{color:var(--danger);background:var(--danger-light)}.comment-pin-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:hidden}.comment-pin-badge{position:absolute;top:0;left:0;pointer-events:auto;cursor:pointer;transition:transform .1s ease,box-shadow var(--transition-fast);will-change:transform}.comment-pin-number{width:24px;height:24px;border-radius:50%;color:var(--white);font-size:.6875rem;font-weight:700;font-family:var(--font-body);display:flex;align-items:center;justify-content:center;border:2px solid var(--white);box-shadow:var(--shadow-md)}.comment-pin-number:hover{transform:scale(1.2);box-shadow:var(--shadow-lg);z-index:10}.comment-pin-number--active{box-shadow:0 0 0 3px #fff9,var(--shadow-lg);z-index:10}body.placing-pin .viewer-canvas canvas,body.placing-pin .viewer-container canvas{cursor:crosshair!important}.filter-bar{display:flex;gap:var(--space-md);align-items:center;margin-bottom:var(--space-xl);flex-wrap:wrap;padding:var(--space-lg);background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-100)}.filter-bar input,.filter-bar select{padding:var(--space-sm) var(--space-md);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.875rem;background:var(--gray-50);color:var(--gray-700);transition:all var(--transition-fast)}.filter-bar input:focus,.filter-bar select:focus{outline:none;border-color:var(--accent-green);background:var(--white);box-shadow:0 0 0 3px var(--success-light)}.filter-bar input{min-width:240px}.filter-bar select{cursor:pointer}.progress-bar{width:100%;height:4px;background:var(--gray-200);border-radius:var(--radius-sm);overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-green) 0%,var(--light-green) 100%);transition:width var(--transition-base);border-radius:var(--radius-sm)}.upload-item{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);background:var(--white);border-radius:var(--radius-md);border:1px solid var(--gray-100);box-shadow:var(--shadow-sm)}.upload-item-header{display:flex;justify-content:space-between;align-items:center}.upload-item-name{font-weight:500;color:var(--dark-green);font-size:.9375rem}.upload-item-status{font-size:.75rem;color:var(--gray-400);letter-spacing:.02em}.spinner{width:24px;height:24px;border:2px solid var(--gray-200);border-top-color:var(--accent-green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.empty-state{text-align:center;padding:var(--space-3xl);color:var(--gray-500)}.empty-state h3{font-family:var(--font-display);font-size:1.5rem;margin-bottom:var(--space-sm);color:var(--dark-green)}.empty-state p{font-size:.9375rem;color:var(--gray-400)}.history-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}.history-item{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--gray-100);font-size:.875rem}.history-item:last-child{border-bottom:none}.history-date{color:var(--gray-400);font-size:.6875rem;white-space:nowrap;letter-spacing:.02em}.history-content{flex:1;color:var(--gray-600);line-height:1.5}.history-actor{font-weight:600;color:var(--dark-green)}.home-page{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xl);align-items:start}.home-section{display:flex;flex-direction:column;gap:var(--space-lg)}.home-section h2{font-family:var(--font-display);font-size:1.75rem;color:var(--dark-green);padding-bottom:var(--space-md);border-bottom:1px solid var(--gray-200)}.files-page h2{font-family:var(--font-display);font-size:2rem;color:var(--dark-green);margin-bottom:var(--space-xl)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--gray-100);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}:focus-visible{outline:2px solid var(--accent-green);outline-offset:2px}@media (max-width: 1024px){.viewer-bottom-section,.home-page{grid-template-columns:1fr}}@media (max-width: 768px){.header{padding:var(--space-md);flex-direction:column;gap:var(--space-md)}.header h1{font-size:1.5rem}.main-content{padding:var(--space-lg)}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar input{min-width:auto;width:100%}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.fade-in{animation:fadeIn var(--transition-slow) ease-out}.slide-in{animation:slideIn var(--transition-slow) ease-out}.viewer-wrapper{position:relative;flex:1;min-height:500px;height:60vh}.object-tree-panel{position:absolute;top:var(--space-md);left:var(--space-md);bottom:var(--space-md);width:240px;max-height:calc(100% - var(--space-md) * 2);background:#1a1a1aeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-lg);z-index:20;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);transition:width var(--transition-base),padding var(--transition-base)}.object-tree-panel.collapsed{width:40px;padding:0}.panel-toggle-btn{position:absolute;top:var(--space-sm);right:var(--space-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:var(--radius-sm);color:var(--gray-300);cursor:pointer;transition:all var(--transition-fast);z-index:1}.object-tree-panel.collapsed .panel-toggle-btn{position:static;margin:6px auto}.panel-toggle-btn:hover{background:#fff3;color:var(--white)}.object-tree-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-md) var(--space-sm);border-bottom:1px solid rgba(255,255,255,.1)}.object-tree-header h4{font-family:var(--font-body);font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-400);margin:0}.node-count{font-family:var(--font-body);font-size:.625rem;font-weight:500;color:var(--gray-500);background:#ffffff1a;padding:2px 6px;border-radius:var(--radius-sm)}.object-tree-content{flex:1;overflow-y:auto;padding:var(--space-sm) 0}.tree-node-container{-webkit-user-select:none;user-select:none}.tree-node{display:flex;align-items:center;gap:var(--space-xs);padding:4px var(--space-sm);cursor:pointer;transition:background var(--transition-fast);min-height:28px}.tree-node:hover{background:#ffffff14}.tree-node.selected{background:#4c83804d}.tree-node.selected:hover{background:#4c838066}.tree-node.hidden-node{opacity:.5}.tree-toggle{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:none;border:none;color:var(--gray-400);cursor:pointer;flex-shrink:0;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.tree-toggle:hover{background:#ffffff1a;color:var(--gray-300)}.tree-toggle.invisible{visibility:hidden}.tree-node-icon{display:flex;align-items:center;justify-content:center;color:var(--accent-green);flex-shrink:0}.tree-node-name{flex:1;font-family:var(--font-body);font-size:.75rem;color:var(--gray-200);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.tree-node.selected .tree-node-name{color:#ff007f}.tree-node-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--transition-fast);flex-shrink:0}.tree-node:hover .tree-node-actions,.tree-node.selected .tree-node-actions{opacity:1}.tree-action-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:none;border:none;color:var(--gray-400);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.tree-action-btn:hover{background:#ffffff26;color:var(--white)}.tree-action-btn.visibility-toggle{color:var(--gray-500)}.tree-node.hidden-node .tree-action-btn.visibility-toggle{color:var(--gray-600)}.object-tree-footer{padding:var(--space-sm) var(--space-md);border-top:1px solid rgba(255,255,255,.1)}.clear-selection-btn{padding:2px var(--space-sm);font-family:var(--font-body);font-size:.625rem;font-weight:500;letter-spacing:.04em;color:#ff007f;background:#ff007f14;border:1px solid rgba(255,0,127,.25);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;margin-left:auto;margin-right:var(--space-xs)}.clear-selection-btn:hover{background:#ff007f26;color:#ff007f;border-color:#ff007f66}.object-tree-content::-webkit-scrollbar{width:4px}.object-tree-content::-webkit-scrollbar-track{background:#ffffff0d}.object-tree-content::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.object-tree-content::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media (max-width: 768px){.object-tree-panel{width:200px}.object-tree-panel.collapsed{width:36px}}.viewer-page-new{display:flex;flex-direction:column;gap:var(--space-md);padding:0;height:calc(100vh - 40px)}.main-content:has(.viewer-page-new){padding:var(--space-xs) var(--space-sm);max-width:none}.viewer-header-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--white);border-radius:var(--radius-md);border:1px solid var(--gray-100);flex-shrink:0}.viewer-header-left{display:flex;align-items:center;gap:var(--space-md)}.viewer-header-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--cream) 0%,var(--lavender) 100%);color:var(--dark-green)}.viewer-header-info h2{margin:0;font-family:var(--font-display);font-size:1.125rem;font-weight:400;color:var(--dark-green)}.viewer-header-info p{margin:2px 0 0;font-size:.75rem;color:var(--gray-400)}.viewer-header-center,.viewer-header-right{display:flex;align-items:center;gap:var(--space-sm)}.view-toolbar{display:flex;align-items:center;gap:2px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:2px}.view-btn{display:flex;align-items:center;gap:var(--space-xs);padding:6px 12px;border:none;background:transparent;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.8125rem;color:var(--gray-500);cursor:pointer;transition:all var(--transition-fast)}.view-btn:hover{background:var(--gray-100);color:var(--primary-black)}.view-btn.active{background:var(--dark-green);color:var(--white)}.measure-toolbar{display:flex;align-items:center;gap:2px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:2px}.measure-btn{display:flex;align-items:center;gap:var(--space-xs);padding:6px 12px;border:none;background:transparent;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.8125rem;color:var(--gray-500);cursor:pointer;transition:all var(--transition-fast)}.measure-btn:hover:not(:disabled){background:var(--gray-100);color:var(--primary-black)}.measure-btn.active{background:var(--dark-green);color:var(--white)}.measure-btn:disabled{opacity:.4;cursor:default}.measure-panel{position:fixed;z-index:15;background:#183e40eb;color:var(--white);padding:8px 16px;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.8125rem;white-space:nowrap;pointer-events:none;display:none}.measure-panel-row{display:flex;align-items:center;gap:var(--space-md);padding:2px 0}.measure-panel-label{color:#ffffffb3}.measure-panel-value{font-weight:600;font-variant-numeric:tabular-nums}body.measuring .viewer-canvas canvas{cursor:crosshair!important}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:.75rem}.viewer-main-area{flex:1;min-height:500px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--gray-200);position:relative}.qa-drawer-wrapper{position:absolute;top:0;right:0;bottom:0;z-index:20;pointer-events:none;display:flex;align-items:stretch}.qa-drawer-toggle{pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xs);background:var(--dark-green);border:none;border-radius:var(--radius-md) 0 0 var(--radius-md);cursor:pointer;color:var(--white);align-self:center;transition:background var(--transition-fast),opacity var(--transition-fast);box-shadow:-2px 0 12px #00000026;flex-shrink:0}.qa-drawer-toggle:hover{opacity:.85}.qa-drawer-toggle .toggle-arrow{transition:transform .3s ease;display:flex;align-items:center}.qa-drawer-wrapper.open .qa-drawer-toggle .toggle-arrow{transform:rotate(180deg)}.qa-drawer-panel{pointer-events:auto;background:var(--white);border-left:1px solid var(--gray-200);width:0;overflow:hidden;transition:width .3s ease;flex-shrink:0}.qa-drawer-wrapper.open .qa-drawer-panel{width:380px;overflow-y:auto}.qa-drawer-content{display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-lg);min-width:380px}.qa-drawer-content .approval-panel,.qa-drawer-content .comment-thread{border:none;box-shadow:none;padding:var(--space-md);background:var(--gray-50);border-radius:var(--radius-md)}.resizable-panels{display:flex;height:100%;background:var(--gray-100)}.resizable-panels.resizing{cursor:col-resize}.resizable-panels.resizing *{pointer-events:none}.resizable-left-panel{height:100%;overflow:hidden;background:#1a1a1a;transition:width .15s ease-out}.resizable-left-panel.collapsed{width:0!important}.resizable-right-panel{flex:1;height:100%;min-width:0;overflow:hidden}.resize-handle{width:8px;background:#2a2a2a;cursor:col-resize;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;transition:background .15s ease}.resize-handle:hover{background:#3a3a3a}.resize-handle.collapsed{cursor:default;width:24px}.collapse-toggle-btn{width:20px;height:32px;display:flex;align-items:center;justify-content:center;background:#3a3a3a;border:none;border-radius:4px;color:#888;cursor:pointer;transition:all .15s ease}.collapse-toggle-btn:hover{background:#4a4a4a;color:#fff}.object-tree-sidebar{display:flex;flex-direction:column;height:100%;background:#1a1a1a;color:var(--gray-200)}.object-tree-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--gray-500);font-size:.875rem}.object-tree-empty{display:flex;align-items:center;justify-content:center;flex:1;color:var(--gray-500);font-size:.75rem}.object-tree-sidebar .object-tree-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.object-tree-sidebar .object-tree-content{flex:1;overflow-y:auto;padding:var(--space-xs) 0}.object-tree-sidebar .object-tree-footer{flex-shrink:0}.viewer-canvas-container{width:100%;height:100%;position:relative;background:var(--off-white)}.viewer-canvas-container .viewer-container,.viewer-canvas-container .viewer-canvas{width:100%;height:100%}@media (max-width: 768px){.viewer-header-bar{flex-direction:column;gap:var(--space-sm);align-items:flex-start}.viewer-header-right{width:100%;justify-content:flex-end}}
