.back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--muted);color:var(--muted-foreground);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.back-button:hover{background:var(--accent);border-color:var(--border);color:var(--foreground);transform:translate(-2px)}.back-button:active{transform:translate(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sheet-overlay-in .2s ease-out}.sheet-overlay[data-state=closed]{animation:sheet-overlay-out .2s ease-in}@keyframes sheet-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-overlay-out{0%{opacity:1}to{opacity:0}}.sheet-content{position:fixed;z-index:1001;background:var(--card);box-shadow:var(--shadow-xl);outline:none}.sheet-bottom{inset-inline:0;bottom:0;border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl);border-top:1px solid var(--border);max-height:85vh;animation:sheet-slide-up .3s cubic-bezier(.32,.72,0,1)}.sheet-bottom[data-state=closed]{animation:sheet-slide-down .25s cubic-bezier(.32,.72,0,1)}@keyframes sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-slide-down{0%{transform:translateY(0)}to{transform:translateY(100%)}}.sheet-top{inset-inline:0;top:0;border-bottom-left-radius:var(--radius-2xl);border-bottom-right-radius:var(--radius-2xl);border-bottom:1px solid var(--border);max-height:85vh;animation:sheet-slide-down-in .3s cubic-bezier(.32,.72,0,1)}.sheet-top[data-state=closed]{animation:sheet-slide-up-out .25s cubic-bezier(.32,.72,0,1)}@keyframes sheet-slide-down-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes sheet-slide-up-out{0%{transform:translateY(0)}to{transform:translateY(-100%)}}.sheet-left{top:0;bottom:0;left:0;width:85vw;max-width:400px;border-right:1px solid var(--border);animation:sheet-slide-right .3s cubic-bezier(.32,.72,0,1)}.sheet-left[data-state=closed]{animation:sheet-slide-left-out .25s cubic-bezier(.32,.72,0,1)}@keyframes sheet-slide-right{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sheet-slide-left-out{0%{transform:translate(0)}to{transform:translate(-100%)}}.sheet-right{top:0;bottom:0;right:0;width:85vw;max-width:400px;border-left:1px solid var(--border);animation:sheet-slide-left .3s cubic-bezier(.32,.72,0,1)}.sheet-right[data-state=closed]{animation:sheet-slide-right-out .25s cubic-bezier(.32,.72,0,1)}@keyframes sheet-slide-left{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes sheet-slide-right-out{0%{transform:translate(0)}to{transform:translate(100%)}}.sheet-close{position:absolute;top:var(--space-md);right:var(--space-md);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--muted);border:none;border-radius:var(--radius-full);color:var(--muted-foreground);cursor:pointer;transition:all var(--transition-fast)}.sheet-close:hover{background:var(--accent);color:var(--foreground)}.sheet-close:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.sheet-header{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-lg);padding-right:calc(var(--space-lg) + 40px);text-align:left}.sheet-title{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--foreground)}.sheet-description{margin:0;font-size:var(--text-sm);color:var(--muted-foreground)}.sheet-bottom:before{content:"";position:absolute;top:var(--space-sm);left:50%;transform:translate(-50%);width:40px;height:4px;background:var(--border);border-radius:var(--radius-full)}@supports (padding-bottom: env(safe-area-inset-bottom)){.sheet-bottom{padding-bottom:env(safe-area-inset-bottom)}}.toolbar-container{position:absolute;top:var(--space-lg);left:50%;transform:translate(-50%);z-index:var(--z-sticky);display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.toolbar{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.toolbar-primary{animation:toolbar-slide-down .4s var(--ease-out-expo)}@keyframes toolbar-slide-down{0%{opacity:0;transform:translateY(-12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.toolbar-secondary{padding:var(--space-xs) var(--space-sm);background:var(--popover);border-color:var(--border);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.96);pointer-events:none;transition:opacity .25s var(--ease-out-expo),transform .25s var(--ease-out-expo),visibility .25s}.toolbar-secondary.visible{opacity:1;visibility:visible;transform:translateY(0) scale(1);pointer-events:auto}.toolbar-group{display:flex;align-items:center;gap:var(--space-2xs)}.toolbar-tools{gap:var(--space-2xs)}.toolbar-separator{width:1px;height:20px;background:var(--border);margin:0 var(--space-xs);flex-shrink:0}.toolbar-button{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--muted-foreground);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform .1s var(--ease-out-expo),box-shadow var(--transition-fast)}.toolbar-button svg{flex-shrink:0;transition:transform var(--transition-fast)}.toolbar-button:hover:not(:disabled){background:var(--accent);border-color:var(--border);color:var(--foreground)}.toolbar-button:hover:not(:disabled) svg{transform:scale(1.05)}.toolbar-button:active:not(:disabled){transform:scale(.95)}.toolbar-button.active{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.toolbar-button:disabled{opacity:.4;cursor:not-allowed}.toolbar-button-delete:hover:not(:disabled){background:var(--status-error-muted);border-color:var(--destructive);color:var(--destructive)}.toolbar-button-export:hover:not(:disabled){background:var(--status-success-muted);border-color:var(--success);color:var(--success)}.toolbar-button:after{content:attr(title);position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);padding:6px 10px;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;color:var(--popover-foreground);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast);z-index:100}.toolbar-button:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.color-picker{display:flex;align-items:center;gap:3px;padding:var(--space-xs);background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md)}.color-swatch{position:relative;width:18px;height:18px;padding:0;border:2px solid transparent;border-radius:var(--radius-xs);cursor:pointer;transition:transform var(--transition-fast),border-color var(--transition-fast)}.color-swatch:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #00000026;pointer-events:none}.color-swatch:hover{transform:scale(1.15);z-index:1}.color-swatch.active{border-color:var(--foreground);transform:scale(1.1);box-shadow:0 0 0 2px var(--card)}.toolbar-control{display:flex;align-items:center;gap:var(--space-sm)}.toolbar-control-label{display:flex;align-items:center;justify-content:center;color:var(--muted-foreground);transition:color var(--transition-fast)}.toolbar-control:hover .toolbar-control-label{color:var(--foreground)}.toolbar-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:56px;height:4px;background:var(--border);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast)}.toolbar-slider:hover{background:var(--muted-foreground)}.toolbar-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--primary);border:2px solid var(--card);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.toolbar-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:var(--shadow-md)}.toolbar-slider::-moz-range-thumb{width:14px;height:14px;background:var(--primary);border:2px solid var(--card);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-sm)}.toolbar-control-value{min-width:28px;font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--muted-foreground);text-align:right;transition:color var(--transition-fast)}.toolbar-control:hover .toolbar-control-value{color:var(--foreground)}.mobile-toolbar{position:fixed;top:var(--space-md);left:50%;transform:translate(-50%);z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-xs);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);animation:mobile-toolbar-enter .3s var(--ease-out-expo)}@keyframes mobile-toolbar-enter{0%{opacity:0;transform:translate(-50%) translateY(-20px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.mobile-toolbar-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:none;border-radius:var(--radius-full);color:var(--muted-foreground);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),transform .1s}.mobile-toolbar-btn:active:not(:disabled){transform:scale(.92)}.mobile-toolbar-btn.active{background:var(--primary);color:var(--primary-foreground)}.mobile-toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.mobile-toolbar-more{background:var(--muted)}.mobile-toolbar-more.has-active{background:var(--primary);color:var(--primary-foreground)}.mobile-toolbar-divider{width:1px;height:24px;background:var(--border);margin:0 var(--space-2xs)}.mobile-secondary-toolbar{position:fixed;bottom:var(--space-lg);left:50%;transform:translate(-50%);z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);animation:mobile-secondary-enter .25s var(--ease-out-expo)}@keyframes mobile-secondary-enter{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.mobile-slider-group{display:flex;align-items:center}.mobile-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:80px;height:4px;background:var(--border);border-radius:var(--radius-full);cursor:pointer}.mobile-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--primary);border:2px solid var(--card);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-sm)}.mobile-slider::-moz-range-thumb{width:18px;height:18px;background:var(--primary);border:2px solid var(--card);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-sm)}.mobile-tool-sheet{padding:var(--space-lg);padding-top:calc(var(--space-lg) + var(--space-md))}.sheet-tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);margin-bottom:var(--space-lg)}.sheet-tool-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-md);background:var(--muted);border:2px solid transparent;border-radius:var(--radius-lg);color:var(--foreground);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform .1s}.sheet-tool-btn:active:not(:disabled){transform:scale(.96)}.sheet-tool-btn.active{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.sheet-tool-btn:disabled{opacity:.4;cursor:not-allowed}.sheet-tool-icon{display:flex;align-items:center;justify-content:center}.sheet-tool-label{font-size:var(--text-xs);font-weight:500}.sheet-style-section{padding:var(--space-md);margin-bottom:var(--space-lg);background:var(--muted);border-radius:var(--radius-lg)}.sheet-section-title{margin:0 0 var(--space-md) 0;font-size:var(--text-sm);font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.sheet-style-row{margin-bottom:var(--space-md)}.sheet-style-row:last-child{margin-bottom:0}.sheet-slider-label{display:flex;justify-content:space-between;margin-bottom:var(--space-xs);font-size:var(--text-sm);color:var(--foreground)}.sheet-slider-value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted-foreground)}.sheet-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:var(--border);border-radius:var(--radius-full);cursor:pointer}.sheet-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;background:var(--primary);border:3px solid var(--card);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-md)}.sheet-slider::-moz-range-thumb{width:20px;height:20px;background:var(--primary);border:3px solid var(--card);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-md)}.sheet-actions{display:flex;gap:var(--space-sm)}.sheet-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);background:var(--muted);border:none;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform .1s}.sheet-action-btn:active{transform:scale(.97)}.sheet-action-btn.danger{color:var(--destructive)}.sheet-action-btn.danger:hover{background:var(--status-error-muted)}.sheet-action-btn.primary{background:var(--primary);color:var(--primary-foreground)}.sheet-action-btn.primary:hover{background:var(--accent-secondary)}@media (max-width: 480px){.mobile-toolbar{top:var(--space-sm);padding:6px;gap:2px}.mobile-toolbar-btn{width:36px;height:36px}.mobile-toolbar-divider{height:20px}.mobile-secondary-toolbar{bottom:var(--space-md);left:var(--space-sm);right:var(--space-sm);transform:none;justify-content:center}@keyframes mobile-secondary-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.sheet-tool-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-xs)}.sheet-tool-btn{padding:var(--space-sm)}}@supports (padding-bottom: env(safe-area-inset-bottom)){.mobile-secondary-toolbar{bottom:calc(var(--space-lg) + env(safe-area-inset-bottom))}}.canvas-container{position:absolute!important;top:0;left:0;z-index:10;pointer-events:auto}.annotation-canvas{position:absolute;top:0;left:0;z-index:10}.canvas-container.is-drawing{animation:canvas-pulse 1.5s ease-in-out infinite}@keyframes canvas-pulse{0%,to{box-shadow:inset 0 0 0 1px #ff6b5b00}50%{box-shadow:inset 0 0 0 1px #ff6b5b26}}.canvas-container .upper-canvas{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}@media (hover: none) and (pointer: coarse){.canvas-container{touch-action:manipulation}.canvas-container .corner{width:16px!important;height:16px!important}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.canvas-container canvas{image-rendering:-webkit-optimize-contrast}}@media (prefers-reduced-motion: reduce){.canvas-container.is-drawing{animation:none}}.user-cursors-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;overflow:hidden}.user-cursor{position:absolute;top:0;left:0;pointer-events:none;transition:transform .1s ease-out;will-change:transform;z-index:1001}.cursor-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.cursor-label{position:absolute;top:20px;left:14px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;color:#fff;white-space:nowrap;box-shadow:0 2px 8px #0003;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.comment-indicator{position:absolute;display:flex;align-items:center;gap:2px;padding:4px 6px;background:var(--primary);border:2px solid var(--card);border-radius:12px;color:var(--primary-foreground);cursor:pointer;z-index:100;transform:translate(-50%,-100%);transition:transform var(--transition-fast),box-shadow var(--transition-fast);font-family:var(--font-sans)}.comment-indicator:hover{transform:translate(-50%,-100%) scale(1.1);box-shadow:var(--shadow-glow)}.comment-indicator.resolved{background:var(--success)}.comment-count{font-size:11px;font-weight:700}.comment-panel{position:fixed;width:320px;max-height:450px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;z-index:1000;display:flex;flex-direction:column;animation:panel-enter .2s var(--ease-out-expo)}@keyframes panel-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.comment-panel.resolved{border-color:var(--success)}.comment-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border);background:var(--muted)}.comment-panel-title{font-weight:600;font-size:var(--text-base);color:var(--foreground)}.comment-panel-actions{display:flex;align-items:center;gap:var(--space-sm)}.comment-resolve-btn{padding:var(--space-xs) var(--space-sm);background:transparent;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--muted-foreground);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.comment-resolve-btn:hover{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.comment-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--muted-foreground);cursor:pointer;transition:all var(--transition-fast)}.comment-close-btn:hover{background:var(--accent);color:var(--foreground)}.comment-list{flex:1;overflow-y:auto;max-height:280px}.comment-item{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border)}.comment-item:last-child{border-bottom:none}.comment-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.comment-author{font-weight:600;font-size:var(--text-sm);color:var(--foreground)}.comment-time{font-size:var(--text-xs);color:var(--muted-foreground)}.comment-delete-btn{margin-left:auto;display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--muted-foreground);cursor:pointer;opacity:0;transition:all var(--transition-fast)}.comment-item:hover .comment-delete-btn{opacity:1}.comment-delete-btn:hover{background:var(--status-error-muted);color:var(--destructive)}.comment-content{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--muted-foreground);margin:0;white-space:pre-wrap;word-break:break-word}.comment-input-container{padding:var(--space-md) var(--space-lg);background:var(--muted);border-top:1px solid var(--border);display:flex;gap:var(--space-sm)}.comment-textarea{flex:1;padding:var(--space-sm) var(--space-md);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-sm);resize:none;outline:none;transition:border-color var(--transition-fast)}.comment-textarea:focus{border-color:var(--primary)}.comment-textarea::placeholder{color:var(--muted-foreground)}.comment-submit-btn{padding:var(--space-sm) var(--space-lg);background:var(--primary);border:none;border-radius:var(--radius-lg);color:var(--primary-foreground);font-weight:600;font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.comment-submit-btn:hover:not(:disabled){background:var(--accent-secondary)}.comment-submit-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.comment-panel{position:fixed;left:var(--space-md)!important;right:var(--space-md)!important;bottom:var(--space-md)!important;top:auto!important;width:auto;max-width:none;max-height:60vh}.comment-list{max-height:40vh}}@media (max-width: 480px){.comment-panel{left:0!important;right:0!important;bottom:0!important;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:70vh}.comment-panel-header{padding:var(--space-lg)}.comment-item{padding:var(--space-md)}.comment-input-container{padding:var(--space-md);flex-direction:column}.comment-textarea{min-height:60px}.comment-submit-btn{width:100%}.comment-delete-btn{opacity:1}}.pdf-viewer{display:flex;flex-direction:column;height:100%;position:relative;background:var(--canvas-bg);overflow:hidden}.pdf-viewer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at center,var(--border) 1px,transparent 1px);background-size:32px 32px;pointer-events:none;opacity:.3;z-index:0}.pdf-viewer-controls{position:absolute;bottom:var(--space-xl);left:50%;transform:translate(-50%);z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-xs) var(--space-sm);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);animation:controls-entrance .5s var(--ease-out-expo) .2s backwards}@keyframes controls-entrance{0%{opacity:0;transform:translate(-50%) translateY(16px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.pdf-viewer-controls button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--muted-foreground);font-family:var(--font-mono);font-size:var(--text-md);font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-instant)}.pdf-viewer-controls button:hover{background:var(--accent);color:var(--foreground)}.pdf-viewer-controls button:active{transform:scale(.92)}.pdf-viewer-controls span{min-width:56px;padding:0 var(--space-sm);text-align:center;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--foreground);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-wide)}.pdf-viewer-pages{flex:1;overflow:auto;padding:var(--space-3xl);padding-top:88px;padding-bottom:88px;display:flex;flex-direction:column;align-items:center;gap:var(--space-2xl);position:relative;z-index:1}.pdf-page{position:relative;background:#fff;border-radius:var(--radius-xs);box-shadow:0 0 0 1px var(--border),var(--shadow-lg);animation:page-reveal .6s var(--ease-out-expo) backwards;transition:box-shadow var(--transition-normal),transform var(--transition-normal)}@keyframes page-reveal{0%{opacity:0;transform:translateY(32px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.pdf-page:hover{box-shadow:0 0 0 1px var(--border),var(--shadow-xl);transform:translateY(-2px)}.pdf-page:nth-child(1){animation-delay:.1s}.pdf-page:nth-child(2){animation-delay:.18s}.pdf-page:nth-child(3){animation-delay:.26s}.pdf-page:nth-child(4){animation-delay:.34s}.pdf-page:nth-child(5){animation-delay:.42s}.pdf-page:nth-child(n+6){animation-delay:.5s}.pdf-page-loading{display:flex;align-items:center;justify-content:center;min-width:600px;min-height:800px;background:var(--muted);border-radius:var(--radius-sm);animation:skeleton-pulse 2s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:.6}50%{opacity:1}}.pdf-page-loading:after{content:"";width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pdf-viewer-loading,.pdf-viewer-error,.pdf-viewer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-lg);color:var(--muted-foreground);font-size:var(--text-md);font-weight:500;animation:state-fade-in .5s var(--ease-out-expo)}@keyframes state-fade-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.pdf-viewer-loading:before{content:"";width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.pdf-viewer-error{color:var(--destructive)}.pdf-viewer-error:before{content:"!";display:flex;align-items:center;justify-content:center;width:56px;height:56px;font-size:var(--text-xl);font-weight:700;background:var(--status-error-muted);border:1px solid var(--destructive);border-radius:var(--radius-lg);margin-bottom:var(--space-xs)}.pdf-viewer-empty:before{content:"";width:72px;height:72px;background:var(--muted);border:1px dashed var(--border);border-radius:var(--radius-xl);margin-bottom:var(--space-sm)}@media (max-width: 768px){.pdf-viewer-pages{padding:var(--space-lg);padding-top:80px;padding-bottom:80px;gap:var(--space-xl);align-items:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch}.pdf-viewer-controls{bottom:var(--space-lg);left:var(--space-lg);transform:none}.pdf-viewer-controls span{min-width:48px;font-size:var(--text-xs)}.pdf-page{max-width:calc(100vw - var(--space-2xl))}.pdf-page canvas{max-width:100%;height:auto!important}.pdf-page:hover{transform:none;box-shadow:0 0 0 1px var(--border),var(--shadow-lg)}}@media (max-width: 480px){.pdf-viewer-pages{padding:var(--space-md);padding-top:72px;padding-bottom:72px;gap:var(--space-lg)}.pdf-page{max-width:calc(100vw - var(--space-lg));border-radius:var(--radius-xs)}.pdf-page-loading{min-width:100%;min-height:300px}.pdf-viewer-controls{bottom:var(--space-md);left:var(--space-md);padding:var(--space-xs)}.pdf-viewer-controls button{width:28px;height:28px;font-size:var(--text-sm)}.pdf-viewer-controls span{min-width:40px;padding:0 var(--space-xs);font-size:10px}}.participant-actions{position:relative}.participant-actions-trigger{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--muted-foreground);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.participant-item:hover .participant-actions-trigger{opacity:1}.participant-actions-trigger:hover{background:var(--accent);border-color:var(--border);color:var(--foreground)}.participant-actions-menu{position:absolute;right:0;top:100%;margin-top:var(--space-xs);background:var(--popover);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xs);min-width:180px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);animation:menuFadeIn .15s var(--ease-out-expo)}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.participant-actions-menu button{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);background:transparent;color:var(--popover-foreground);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.participant-actions-menu button:hover{background:var(--accent)}.participant-actions-danger{color:var(--destructive)!important}.participant-actions-danger:hover{background:var(--status-error-muted)!important}.participant-actions-divider{height:1px;background:var(--border);margin:var(--space-xs) 0}.participants-panel{display:flex;flex-direction:column;gap:var(--space-md)}.participants-panel-header{display:flex;align-items:center;justify-content:space-between}.participants-panel-title{display:flex;align-items:center;gap:var(--space-md)}.participants-label{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:700;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.1em}.participants-count-badge{display:flex;align-items:baseline;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-sm);background:linear-gradient(135deg,oklch(from var(--primary) l c h / .15),oklch(from var(--primary) l c h / .08));border:1px solid oklch(from var(--primary) l c h / .2);border-radius:var(--radius-full)}.participants-count-number{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700;color:var(--primary);line-height:1}.participants-count-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;color:var(--muted-foreground);text-transform:lowercase}.participants-grid{display:flex;flex-direction:column;gap:var(--space-xs)}.participant-card{position:relative;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);transition:transform .25s var(--ease-out-expo),box-shadow .25s var(--ease-out-expo),border-color .2s ease;animation:card-entrance .5s var(--ease-out-expo) backwards;animation-delay:calc(var(--stagger) * .06s)}@keyframes card-entrance{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.participant-card:hover{transform:translateY(-2px);border-color:oklch(from var(--primary) l c h / .3);box-shadow:0 8px 24px #00000014,0 4px 8px #0000000a,0 0 0 1px oklch(from var(--primary) l c h / .1)}.participant-card.is-current{background:linear-gradient(135deg,oklch(from var(--primary) l c h / .05) 0%,var(--card) 50%);border-color:oklch(from var(--primary) l c h / .2)}.participant-card.is-muted{opacity:.6}.participant-card.is-speaking{border-color:var(--success);box-shadow:0 0 0 1px var(--success),0 0 20px oklch(from var(--success) l c h / .2)}.participant-avatar{position:relative;flex-shrink:0}.participant-avatar-inner{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-lg);box-shadow:inset 0 1px 1px #fff3,0 2px 4px #0000001a;transition:transform .2s var(--ease-out-expo)}.participant-card:hover .participant-avatar-inner{transform:scale(1.05)}.participant-initials{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:700;color:#fff;text-shadow:0 1px 2px oklch(0 0 0 / .2);letter-spacing:.02em}.speaking-rings{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;pointer-events:none}.speaking-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--success);border-radius:var(--radius-lg);opacity:0;animation:ring-pulse 1.5s ease-out infinite}.speaking-ring:nth-child(1){animation-delay:0s}.speaking-ring:nth-child(2){animation-delay:.3s}.speaking-ring:nth-child(3){animation-delay:.6s}@keyframes ring-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}.participant-status-dot{position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;background:var(--muted-foreground);border:2px solid var(--card);border-radius:50%;transition:all .2s ease}.participant-status-dot.in-voice{background:var(--success);box-shadow:0 0 8px oklch(from var(--success) l c h / .5)}.participant-status-dot.muted{background:var(--destructive)}.participant-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2xs)}.participant-name-row{display:flex;align-items:center;gap:var(--space-xs)}.participant-name{font-family:var(--font-sans);font-size:var(--text-base);font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.participant-you-badge{padding:1px 6px;background:var(--muted);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:9px;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.participant-host-badge{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:var(--radius-sm);color:#fff;box-shadow:0 2px 4px oklch(from #f59e0b l c h / .3)}.participant-meta{display:flex;align-items:center;gap:var(--space-sm)}.participant-activity{display:flex;align-items:center;gap:var(--space-2xs);padding:2px 6px;background:var(--muted);border-radius:var(--radius-sm);transition:background .2s ease}.participant-card:hover .participant-activity{background:var(--accent)}.activity-icon{display:flex;align-items:center;color:var(--muted-foreground)}.activity-page{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--muted-foreground)}.participant-voice{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-sm);color:var(--muted-foreground);transition:all .2s ease}.participant-voice.speaking{color:var(--success);animation:voice-pulse .8s ease-in-out infinite}.participant-voice.muted{color:var(--destructive)}@keyframes voice-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.participant-actions{flex-shrink:0;opacity:0;transform:translate(4px);transition:opacity .2s ease,transform .2s ease}.participant-card:hover .participant-actions{opacity:1;transform:translate(0)}.participants-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl) var(--space-lg);text-align:center}.participants-empty .empty-icon{width:48px;height:48px;background:linear-gradient(135deg,var(--muted) 0%,var(--accent) 100%);border:2px dashed var(--border);border-radius:var(--radius-xl);animation:empty-pulse 2s ease-in-out infinite}@keyframes empty-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.participants-empty span{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--muted-foreground)}@media (max-width: 480px){.participant-card{padding:var(--space-sm)}.participant-avatar-inner{width:36px;height:36px}.participant-initials{font-size:var(--text-xs)}.participant-name{font-size:var(--text-sm)}.participant-actions{opacity:1;transform:none}}.voice-panel{position:relative;padding:var(--space-lg);margin:0 var(--space-xl) var(--space-md);background:linear-gradient(135deg,oklch(from var(--card) l c h / .9),oklch(from var(--card) l c h / .7));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid oklch(from var(--primary) l c h / .15);border-radius:var(--radius-xl);box-shadow:0 4px 24px #0000000f,inset 0 1px #ffffff1a;animation:voice-panel-entrance .5s var(--ease-out-expo) .2s backwards}@keyframes voice-panel-entrance{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.voice-panel:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:60%;height:1px;background:linear-gradient(90deg,transparent 0%,var(--primary) 50%,transparent 100%);opacity:.4}.voice-panel-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.voice-panel-icon{color:var(--primary);animation:icon-pulse 3s ease-in-out infinite}@keyframes icon-pulse{0%,to{opacity:.7}50%{opacity:1}}.voice-panel-title{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--foreground);letter-spacing:.01em}.voice-panel-status{margin-left:auto;padding:3px 10px;font-family:var(--font-mono);font-size:10px;font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.voice-panel-status.connected{background:linear-gradient(135deg,oklch(from var(--success) l c h / .15),oklch(from var(--success) l c h / .08));color:var(--success);border:1px solid oklch(from var(--success) l c h / .2)}.voice-mic-selector{position:relative;margin-bottom:var(--space-md)}.voice-mic-button{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;transition:all .2s ease}.voice-mic-button:hover:not(:disabled){border-color:var(--primary);box-shadow:0 0 0 3px oklch(from var(--primary) l c h / .1)}.voice-mic-button:disabled{opacity:.5;cursor:not-allowed}.voice-mic-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-foreground)}.voice-mic-chevron{color:var(--muted-foreground);transition:transform .2s var(--ease-out-expo)}.voice-mic-chevron.open{transform:rotate(180deg)}.voice-mic-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:100;padding:var(--space-xs);background:var(--popover);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 10px 40px #00000026,0 4px 12px #00000014;animation:dropdown-enter .2s var(--ease-out-expo)}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.voice-mic-option{display:block;width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:all .15s ease}.voice-mic-option:hover{background:var(--accent)}.voice-mic-option.active{background:var(--primary);color:var(--primary-foreground)}.voice-mic-empty{padding:var(--space-lg);text-align:center;color:var(--muted-foreground);font-size:var(--text-sm)}.voice-test-section{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.voice-test-btn{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:transparent;border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--muted-foreground);font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;transition:all .2s ease}.voice-test-btn:hover{border-color:var(--primary);color:var(--primary);background:oklch(from var(--primary) l c h / .05)}.voice-test-btn.testing{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.voice-test-meter{flex:1;height:8px;background:var(--muted);border-radius:var(--radius-full);overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.voice-test-meter-fill{height:100%;background:linear-gradient(90deg,var(--success) 0%,oklch(.7 .2 100) 60%,var(--warning) 80%,var(--destructive) 100%);border-radius:var(--radius-full);transition:width .05s linear}.voice-error{padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);background:oklch(from var(--destructive) l c h / .1);border:1px solid oklch(from var(--destructive) l c h / .2);border-radius:var(--radius-lg);color:var(--destructive);font-size:var(--text-xs);font-weight:500}.voice-join-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg,var(--primary) 0%,oklch(from var(--primary) calc(l - .05) c h) 100%);border:none;border-radius:var(--radius-xl);color:var(--primary-foreground);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;cursor:pointer;overflow:hidden;transition:all .25s var(--ease-out-expo);box-shadow:0 4px 12px oklch(from var(--primary) l c h / .3),inset 0 1px #ffffff26}.voice-join-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,oklch(1 0 0 / .2) 50%,transparent 100%);transition:left .5s ease}.voice-join-btn:hover:not(:disabled):before{left:100%}.voice-join-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px oklch(from var(--primary) l c h / .4),inset 0 1px #fff3}.voice-join-btn:active:not(:disabled){transform:translateY(0)}.voice-join-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.voice-controls{display:flex;flex-direction:column;gap:var(--space-sm)}.voice-control-buttons{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.voice-control-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2xs);padding:var(--space-md);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all .2s ease}.voice-control-btn:hover{background:var(--accent);border-color:var(--border);transform:translateY(-1px)}.voice-control-btn.active{background:oklch(from var(--destructive) l c h / .1);border-color:oklch(from var(--destructive) l c h / .3);color:var(--destructive)}.voice-leave-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:1px solid oklch(from var(--destructive) l c h / .3);border-radius:var(--radius-lg);color:var(--destructive);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.voice-leave-btn:hover{background:oklch(from var(--destructive) l c h / .1);border-color:var(--destructive)}@media (max-width: 480px){.voice-panel{margin:0 var(--space-lg) var(--space-sm);padding:var(--space-md)}.voice-control-btn{padding:var(--space-sm)}}.sidebar{display:flex;flex-direction:column;width:320px;min-width:320px;background:linear-gradient(180deg,var(--sidebar) 0%,oklch(from var(--sidebar) calc(l - .02) c h) 100%);border-left:1px solid var(--border);animation:sidebar-entrance .6s var(--ease-out-expo) .1s backwards}@keyframes sidebar-entrance{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}.sidebar-header{position:relative;padding:var(--space-xl) var(--space-xl) var(--space-lg);background:linear-gradient(180deg,oklch(from var(--card) l c h / .8),oklch(from var(--card) l c h / .4));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid oklch(from var(--border) l c h / .5)}.sidebar-header:before{content:"";position:absolute;top:0;left:var(--space-xl);right:var(--space-xl);height:2px;background:linear-gradient(90deg,transparent 0%,var(--primary) 50%,transparent 100%);opacity:.5}.sidebar-title-group{display:flex;align-items:center;gap:var(--space-md)}.sidebar-title-icon{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(135deg,var(--primary) 0%,oklch(from var(--primary) calc(l + .1) calc(c - .05) h) 100%);border-radius:var(--radius-lg);color:#fff;box-shadow:0 4px 12px oklch(from var(--primary) l c h / .35),inset 0 1px #fff3}.sidebar-title-icon-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border:2px solid var(--primary);border-radius:calc(var(--radius-lg) + 3px);opacity:.3;animation:title-ring-pulse 3s ease-in-out infinite}@keyframes title-ring-pulse{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.4;transform:scale(1.05)}}.sidebar-title-text{display:flex;align-items:baseline;gap:var(--space-sm)}.sidebar-title{margin:0;font-family:var(--font-sans);font-size:var(--text-2xl);font-weight:800;color:var(--foreground);letter-spacing:-.03em;line-height:1}.sidebar-title-badge{padding:3px 8px;background:linear-gradient(135deg,oklch(from var(--success) l c h / .15),oklch(from var(--success) l c h / .08));border:1px solid oklch(from var(--success) l c h / .25);border-radius:var(--radius-full);font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--success);text-transform:uppercase;letter-spacing:.08em;animation:badge-glow 2s ease-in-out infinite}@keyframes badge-glow{0%,to{box-shadow:0 0 oklch(from var(--success) l c h / 0)}50%{box-shadow:0 0 8px 2px oklch(from var(--success) l c h / .2)}}.sidebar-status{padding:var(--space-md) var(--space-xl)}.connection-status{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;transition:all .2s ease}.connection-indicator{position:relative;width:8px;height:8px;border-radius:50%;flex-shrink:0}.connection-indicator:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;opacity:0}.connection-status--connected .connection-indicator{background:var(--success);box-shadow:0 0 8px var(--success)}.connection-status--connected .connection-indicator:before{border:2px solid var(--success);animation:status-pulse 2s ease-out infinite}.connection-status--connected{border-color:oklch(from var(--success) l c h / .3);background:oklch(from var(--success) l c h / .08)}.connection-status--connected .connection-label{color:var(--success)}.connection-status--connecting .connection-indicator{background:var(--warning);box-shadow:0 0 8px var(--warning);animation:indicator-blink 1s ease-in-out infinite}.connection-status--connecting{border-color:oklch(from var(--warning) l c h / .3);background:oklch(from var(--warning) l c h / .08)}.connection-status--connecting .connection-label{color:var(--warning)}.connection-status--disconnected .connection-indicator{background:var(--destructive);box-shadow:0 0 8px var(--destructive)}.connection-status--disconnected{border-color:oklch(from var(--destructive) l c h / .3);background:oklch(from var(--destructive) l c h / .08)}.connection-status--disconnected .connection-label{color:var(--destructive)}.connection-label{color:var(--muted-foreground);transition:color .2s ease}@keyframes status-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}@keyframes indicator-blink{0%,to{opacity:1}50%{opacity:.3}}.sidebar-content{flex:1;overflow-y:auto;padding:var(--space-lg) var(--space-xl) var(--space-xl);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.sidebar-content::-webkit-scrollbar{width:6px}.sidebar-content::-webkit-scrollbar-track{background:transparent}.sidebar-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}.sidebar-content::-webkit-scrollbar-thumb:hover{background:var(--muted-foreground)}.sidebar-close{display:none;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--muted-foreground);cursor:pointer;transition:all .2s ease}.sidebar-close:hover{background:var(--accent);border-color:var(--border);color:var(--foreground);transform:scale(1.05)}.sidebar-close:active{transform:scale(.95)}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:calc(var(--z-modal) - 1);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}@media (max-width: 1024px){.sidebar{width:280px;min-width:280px}}@media (max-width: 768px){.sidebar-backdrop{display:block}.sidebar-backdrop.visible{opacity:1;visibility:visible}.sidebar{position:fixed;top:0;right:0;bottom:0;width:320px;min-width:320px;max-width:90vw;z-index:var(--z-modal);transform:translate(100%);transition:transform .35s var(--ease-out-expo);box-shadow:-20px 0 60px #0003,-8px 0 24px #0000001a}.sidebar.sidebar--open{transform:translate(0)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--space-lg)}.sidebar-title{margin-bottom:0}.sidebar-close{display:flex}}@media (max-width: 480px){.sidebar{width:100%;max-width:100%}.sidebar-content{padding:var(--space-md) var(--space-lg) var(--space-lg)}}.context-menu{position:fixed;min-width:180px;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-xs);z-index:1001;animation:context-menu-enter .15s var(--ease-out-expo)}@keyframes context-menu-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--popover-foreground);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.context-menu-item:hover{background:var(--accent)}.context-menu-item.danger{color:var(--destructive)}.context-menu-item.danger:hover{background:var(--status-error-muted)}.context-menu-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;opacity:.7}.context-menu-icon svg{width:16px;height:16px}@media (max-width: 480px){.context-menu{min-width:200px;padding:var(--space-sm)}.context-menu-item{padding:var(--space-md) var(--space-lg);font-size:var(--text-base)}.context-menu-icon{width:20px;height:20px}.context-menu-icon svg{width:20px;height:20px}}.kicked-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.kicked-content{text-align:center;max-width:400px;padding:var(--space-3xl);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);animation:contentSlideUp .4s var(--ease-out-expo) .1s backwards}@keyframes contentSlideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.kicked-icon{color:var(--destructive);margin-bottom:var(--space-xl)}.kicked-title{font-family:var(--font-sans);font-size:var(--text-2xl);font-weight:700;color:var(--foreground);margin:0 0 var(--space-md) 0;letter-spacing:var(--tracking-tight)}.kicked-message{font-family:var(--font-sans);font-size:var(--text-base);color:var(--muted-foreground);margin:0 0 var(--space-2xl) 0;line-height:var(--leading-relaxed)}.kicked-button{background:var(--primary);color:var(--primary-foreground);border:none;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.kicked-button:hover{background:var(--accent-secondary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.kicked-button:active{transform:translateY(0)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--canvas-bg)}.app-main{display:flex;flex:1;overflow:hidden;position:relative}.app-content{flex:1;overflow:auto;display:flex;flex-direction:column;position:relative}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--space-xl);background:var(--canvas-bg);animation:loading-fade-in .6s var(--ease-out-expo)}@keyframes loading-fade-in{0%{opacity:0}to{opacity:1}}.app-loading-spinner{position:relative;width:56px;height:56px}.app-loading-spinner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid var(--surface-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:spinner-rotate .8s linear infinite}.app-loading-spinner:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:2px solid transparent;border-top-color:var(--accent-secondary);border-radius:50%;animation:spinner-rotate 1.2s linear infinite reverse;opacity:.6}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.app-loading-text{font-family:var(--font-sans);font-size:var(--text-md);font-weight:500;color:var(--text-secondary);letter-spacing:var(--tracking-wide);animation:loading-text-pulse 2s ease-in-out infinite}@keyframes loading-text-pulse{0%,to{opacity:.7}50%{opacity:1}}.app-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--space-lg);padding:var(--space-2xl);background:var(--canvas-bg);animation:error-entrance .5s var(--ease-out-expo)}@keyframes error-entrance{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.app-error-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;font-size:var(--text-2xl);font-weight:700;color:var(--status-error);background:var(--status-error-muted);border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-xl);animation:error-icon-shake .5s var(--ease-out-expo) .2s}@keyframes error-icon-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.app-error-title{font-family:var(--font-sans);font-size:var(--text-xl);font-weight:700;color:var(--text-primary);margin:0;letter-spacing:var(--tracking-tight)}.app-error-message{font-family:var(--font-sans);font-size:var(--text-md);color:var(--text-secondary);text-align:center;max-width:420px;line-height:var(--leading-relaxed)}.app-error-retry{margin-top:var(--space-sm);padding:var(--space-md) var(--space-2xl);font-family:var(--font-sans);font-size:var(--text-base);font-weight:600;color:var(--canvas-bg);letter-spacing:var(--tracking-wide);background:var(--accent-primary);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-instant),box-shadow var(--transition-fast);box-shadow:var(--shadow-sm)}.app-error-retry:hover{background:var(--accent-secondary);transform:translateY(-2px);box-shadow:var(--shadow-md),var(--shadow-glow)}.app-error-retry:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.app-no-token{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--space-lg);padding:var(--space-2xl);background:var(--canvas-bg);animation:no-token-entrance .5s var(--ease-out-expo)}@keyframes no-token-entrance{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-no-token:before{content:"";width:64px;height:64px;background:linear-gradient(135deg,var(--surface-secondary) 0%,var(--surface-tertiary) 100%);border:1px solid var(--border-default);border-radius:var(--radius-xl);margin-bottom:var(--space-sm)}.app-no-token-title{font-family:var(--font-sans);font-size:var(--text-xl);font-weight:700;color:var(--text-primary);letter-spacing:var(--tracking-tight)}.app-no-token-message{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-tertiary);text-align:center;max-width:360px;line-height:var(--leading-relaxed)}.mobile-sidebar-toggle{display:none;position:fixed;bottom:var(--space-xl);right:var(--space-xl);z-index:var(--z-sticky);align-items:center;justify-content:center;gap:var(--space-xs);width:56px;height:56px;padding:0;background:var(--primary);border:none;border-radius:var(--radius-full);color:var(--primary-foreground);cursor:pointer;box-shadow:var(--shadow-lg);transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.mobile-sidebar-toggle:hover{background:var(--accent-secondary);transform:scale(1.05);box-shadow:var(--shadow-xl)}.mobile-sidebar-toggle:active{transform:scale(.95)}.mobile-sidebar-toggle-count{position:absolute;top:-4px;right:-4px;min-width:22px;height:22px;padding:0 var(--space-xs);display:flex;align-items:center;justify-content:center;background:var(--status-success);border:2px solid var(--canvas-bg);border-radius:var(--radius-full);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;color:#fff}@media (max-width: 768px){.mobile-sidebar-toggle{display:flex}}@media (max-width: 480px){.app-error,.app-loading,.app-no-token{padding:var(--space-xl)}.app-error-title,.app-no-token-title{font-size:var(--text-lg)}.app-error-message,.app-no-token-message{font-size:var(--text-sm)}.mobile-sidebar-toggle{bottom:var(--space-lg);right:var(--space-lg);width:48px;height:48px}.mobile-sidebar-toggle svg{width:18px;height:18px}}@font-face{font-family:Geist;src:url(https://cdn.jsdelivr.net/npm/geist@1.3.0/dist/fonts/geist-sans/Geist-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(https://cdn.jsdelivr.net/npm/geist@1.3.0/dist/fonts/geist-sans/Geist-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(https://cdn.jsdelivr.net/npm/geist@1.3.0/dist/fonts/geist-sans/Geist-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(https://cdn.jsdelivr.net/npm/geist@1.3.0/dist/fonts/geist-sans/Geist-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(https://cdn.jsdelivr.net/npm/geist@1.3.0/dist/fonts/geist-mono/GeistMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(https://cdn.jsdelivr.net/npm/geist@1.3.0/dist/fonts/geist-mono/GeistMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--base-50: oklch(.985 .0013 286.84);--base-100: oklch(.967 .0027 286.38);--base-200: oklch(.92 .0053 286.32);--base-300: oklch(.871 .008 286.29);--base-400: oklch(.705 .012 286.07);--base-500: oklch(.552 .016 285.94);--base-600: oklch(.442 .0147 285.79);--base-700: oklch(.37 .012 285.81);--base-800: oklch(.274 .008 286.03);--base-900: oklch(.21 .0053 285.89);--base-950: oklch(.141 .004 285.83);--base-1000: oklch(.096 .0027 285.79);--background: var(--base-50);--foreground: var(--base-800);--card: white;--card-foreground: var(--base-800);--popover: white;--popover-foreground: var(--base-800);--primary: oklch(.565 .195 268);--primary-foreground: white;--secondary: var(--base-300);--secondary-foreground: var(--base-800);--muted: var(--base-100);--muted-foreground: var(--base-500);--accent: var(--base-200);--accent-foreground: var(--base-800);--destructive: oklch(.577 .245 27.325);--destructive-foreground: white;--success: oklch(.627 .194 149.214);--success-foreground: white;--warning: oklch(.769 .188 70.08);--warning-foreground: var(--base-900);--border: oklch(.92 .002 286);--input: var(--base-200);--ring: var(--primary);--sidebar: var(--base-100);--sidebar-foreground: var(--base-800);--sidebar-primary: oklch(.565 .195 268);--sidebar-primary-foreground: white;--sidebar-accent: var(--base-200);--sidebar-accent-foreground: var(--base-800);--sidebar-border: var(--base-200);--canvas-bg: var(--base-100);--canvas-elevated: var(--base-50);--surface-primary: var(--card);--surface-secondary: var(--base-100);--surface-tertiary: var(--base-200);--surface-hover: var(--base-300);--accent-primary: var(--primary);--accent-secondary: oklch(.65 .18 268);--accent-muted: oklch(.565 .195 268 / .12);--accent-glow: oklch(.565 .195 268 / .25);--text-primary: var(--foreground);--text-secondary: var(--muted-foreground);--text-tertiary: var(--base-400);--text-muted: var(--base-300);--status-success: var(--success);--status-success-muted: oklch(.627 .194 149.214 / .15);--status-warning: var(--warning);--status-warning-muted: oklch(.769 .188 70.08 / .15);--status-error: var(--destructive);--status-error-muted: oklch(.577 .245 27.325 / .15);--status-info: oklch(.623 .214 255.092);--status-info-muted: oklch(.623 .214 255.092 / .15);--border-subtle: oklch(0 0 0 / .04);--border-default: var(--border);--border-visible: oklch(0 0 0 / .12);--border-accent: oklch(.565 .195 268 / .3);--shadow-xs: 0 1px 2px oklch(0 0 0 / .05);--shadow-sm: 0 1px 3px oklch(0 0 0 / .08), 0 1px 2px oklch(0 0 0 / .04);--shadow-md: 0 4px 6px oklch(0 0 0 / .08), 0 2px 4px oklch(0 0 0 / .04);--shadow-lg: 0 10px 15px oklch(0 0 0 / .1), 0 4px 6px oklch(0 0 0 / .05);--shadow-xl: 0 20px 25px oklch(0 0 0 / .12), 0 8px 10px oklch(0 0 0 / .06);--shadow-glow: 0 0 20px oklch(.565 .195 268 / .15);--shadow-inner: inset 0 2px 4px oklch(0 0 0 / .05);--glass-bg: oklch(1 0 0 / .8);--glass-bg-elevated: oklch(1 0 0 / .9);--glass-border: oklch(0 0 0 / .08);--glass-blur: blur(12px);--glass-saturate: saturate(150%);--space-2xs: 2px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--radius: .5rem;--radius-xs: 4px;--radius-sm: calc(var(--radius) - 4px);--radius-md: calc(var(--radius) - 2px);--radius-lg: var(--radius);--radius-xl: calc(var(--radius) + 4px);--radius-2xl: calc(var(--radius) + 8px);--radius-full: 9999px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.175, .885, .32, 1.275);--transition-instant: .1s var(--ease-out-expo);--transition-fast: .15s var(--ease-out-expo);--transition-normal: .25s var(--ease-out-expo);--transition-slow: .4s var(--ease-out-expo);--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Geist Mono", "SF Mono", "Fira Code", monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.65;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .02em;--tracking-wider: .06em;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500}.dark{--background: var(--base-950);--foreground: var(--base-200);--card: oklch(.18 .005 285.9);--card-foreground: var(--base-200);--popover: oklch(.18 .005 285.9);--popover-foreground: var(--base-200);--primary: oklch(.73 .17 268);--primary-foreground: var(--base-900);--secondary: var(--base-700);--secondary-foreground: var(--base-200);--muted: var(--base-900);--muted-foreground: var(--base-400);--accent: var(--base-800);--accent-foreground: var(--base-200);--destructive: oklch(.704 .191 22.216);--destructive-foreground: white;--success: oklch(.696 .17 162.48);--success-foreground: var(--base-900);--warning: oklch(.828 .189 84.429);--warning-foreground: var(--base-900);--border: oklch(.26 .006 285.9);--input: oklch(.28 .008 285.9);--ring: var(--primary);--sidebar: var(--base-1000);--sidebar-foreground: var(--base-200);--sidebar-primary: oklch(.73 .17 268);--sidebar-primary-foreground: var(--base-900);--sidebar-accent: var(--base-900);--sidebar-accent-foreground: var(--base-200);--sidebar-border: var(--base-900);--canvas-bg: var(--base-950);--canvas-elevated: var(--base-900);--surface-primary: var(--card);--surface-secondary: var(--base-900);--surface-tertiary: var(--base-800);--surface-hover: var(--base-700);--accent-primary: var(--primary);--accent-secondary: oklch(.78 .15 268);--accent-muted: oklch(.73 .17 268 / .15);--accent-glow: oklch(.73 .17 268 / .3);--text-primary: var(--foreground);--text-secondary: var(--muted-foreground);--text-tertiary: var(--base-500);--text-muted: var(--base-600);--status-success: var(--success);--status-success-muted: oklch(.696 .17 162.48 / .2);--status-warning: var(--warning);--status-warning-muted: oklch(.828 .189 84.429 / .2);--status-error: var(--destructive);--status-error-muted: oklch(.704 .191 22.216 / .2);--status-info: oklch(.707 .165 254.624);--status-info-muted: oklch(.707 .165 254.624 / .2);--border-subtle: oklch(1 0 0 / .04);--border-default: var(--border);--border-visible: oklch(1 0 0 / .12);--border-accent: oklch(.73 .17 268 / .4);--shadow-xs: 0 1px 2px oklch(0 0 0 / .3);--shadow-sm: 0 2px 4px oklch(0 0 0 / .3), 0 1px 2px oklch(0 0 0 / .4);--shadow-md: 0 4px 16px oklch(0 0 0 / .4), 0 2px 4px oklch(0 0 0 / .3);--shadow-lg: 0 8px 32px oklch(0 0 0 / .5), 0 4px 8px oklch(0 0 0 / .3);--shadow-xl: 0 16px 48px oklch(0 0 0 / .6), 0 8px 16px oklch(0 0 0 / .4);--shadow-glow: 0 0 24px oklch(.73 .17 268 / .25);--glass-bg: oklch(.14 .004 285.83 / .85);--glass-bg-elevated: oklch(.18 .005 285.9 / .9);--glass-border: oklch(1 0 0 / .08)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1}body,#root{height:100%;width:100%;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background:var(--background)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-tertiary);border:2px solid transparent;border-radius:var(--radius-full);background-clip:content-box;transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--surface-hover);background-clip:content-box}::-webkit-scrollbar-corner{background:transparent}:focus{outline:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--accent-muted);color:var(--text-primary)}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}*{border-color:var(--border)}@media (pointer: coarse){button,[role=button]{-webkit-user-select:none;user-select:none}button,[role=button],a{min-height:44px;min-width:44px}@media (hover: none){*:hover{transition-duration:0s!important}}}body{overscroll-behavior-y:contain}@supports (-webkit-touch-callout: none){body,#root{min-height:-webkit-fill-available}}.pdf-viewer,.annotation-canvas{-webkit-touch-callout:none}.pdf-viewer-pages,.sidebar-content,.comment-list{-webkit-overflow-scrolling:touch}
