@import"https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=Bookman+Old+Style:ital,wght@0,400;0,700;1,400&display=swap";.character-sheet-backdrop{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;animation:fadeIn .3s ease-out}.character-sheet-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1001;width:95vw;max-width:1000px;min-height:600px;max-height:90vh;overflow-y:auto;background:radial-gradient(circle at 20% 80%,#f5deb3f2,#deb887e6),radial-gradient(circle at 80% 20%,#d2b48ccc,#f5deb3e6),linear-gradient(45deg,rgba(139,69,19,.05) 0%,transparent 50%,rgba(139,69,19,.05) 100%),url(/assets/images/parchment.svg);background-repeat:repeat;background-size:auto;border:4px solid #8b4513;border-radius:12px;box-shadow:0 0 30px #8b451366,0 0 60px #8b451333,inset 0 0 20px #f5deb34d}.character-sheet-popup:before,.character-sheet-popup:after{content:"";position:absolute;top:-4px;bottom:-4px;width:24px;background:linear-gradient(90deg,transparent 0%,rgba(139,69,19,.8) 30%,rgba(139,69,19,.6) 70%,transparent 100%);border-radius:12px}.character-sheet-popup:before{left:-4px}.character-sheet-popup:after{right:-4px}.character-sheet-close{position:absolute;top:20px;right:40px;width:48px;height:48px;border:none;border-radius:50%;background:radial-gradient(circle at 30% 30%,gold,#b8860b),radial-gradient(circle,#8b0000,#654321);box-shadow:0 4px 8px #0000004d,inset 0 2px 4px #fff3;cursor:pointer;transition:all .2s ease;z-index:1002;font-size:24px;color:#2f1b14;font-weight:700;display:flex;align-items:center;justify-content:center}.character-sheet-close:hover{transform:scale(1.1);box-shadow:0 6px 12px #0006,inset 0 2px 4px #ffffff4d}.character-sheet-close:active{transform:scale(.95)}.character-sheet-popup{font-family:Bookman Old Style,Times New Roman,serif;color:#000;line-height:1.4;padding:1.25rem}.character-name{font-family:Libre Baskerville,Times New Roman,serif;font-size:1.8rem;font-weight:700;color:#000;text-shadow:1px 1px 2px rgba(0,0,0,.1);text-align:center;margin:0 0 .25rem;letter-spacing:1px}.character-subtitle{font-family:Libre Baskerville,serif;font-size:.95rem;color:#000;text-align:center;margin-bottom:.15rem;font-weight:400}.character-alignment{font-size:.8rem;color:#000;text-align:center;font-style:italic}.section-header{font-family:Libre Baskerville,serif;font-size:1rem;font-weight:700;color:#000;margin:0 0 .5rem;border-bottom:2px solid #8b4513;padding-bottom:.15rem;text-transform:uppercase;letter-spacing:.5px}.prof-bonus{font-size:.8rem;font-weight:400;color:#000;text-transform:none;letter-spacing:normal}.character-sheet-header{margin-bottom:1.25rem;text-align:center}.character-sheet-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1.25rem}.character-section{background:#f5deb34d;border:1px solid rgba(139,69,19,.3);border-radius:8px;padding:.75rem;box-shadow:inset 0 1px 3px #0000001a}.abilities-grid{display:grid;grid-template-columns:1fr;gap:.5rem}.ability-item{display:flex;justify-content:space-between;align-items:center;padding:.15rem 0;border-bottom:1px solid rgba(139,69,19,.2)}.ability-item:last-child{border-bottom:none}.ability-name{font-weight:700;font-size:.8rem;color:#000!important;min-width:60px}.ability-score{font-family:Courier New,monospace;font-size:1rem;font-weight:700;color:#a96300;min-width:30px;text-align:center}.ability-modifier{font-family:Courier New,monospace;font-size:.9rem;color:#000;min-width:40px;text-align:right}.ability-modifier.modifier-positive{color:#22c55e}.ability-modifier.modifier-negative{color:#ef4444}.ability-modifier.modifier-zero{color:#000}.combat-stats{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.combat-stat{display:flex;justify-content:space-between;align-items:center;padding:.35rem;background:#fff6;border-radius:4px;border:1px solid rgba(139,69,19,.2)}.stat-label{font-weight:700;font-size:.8rem}.stat-value{font-family:Courier New,monospace;font-size:.9rem;font-weight:700;color:#fff}.skills-list{display:grid;grid-template-columns:1fr 1fr;gap:.25rem}.skill-item{display:flex;justify-content:space-between;align-items:center;padding:.15rem 0;font-size:.8rem}.skill-name{flex:1}.skill-modifier{font-family:Courier New,monospace;font-weight:700;color:#000;min-width:30px;text-align:right}.more-skills{font-style:italic;color:#000;grid-column:span 2}.spells-content{display:flex;flex-direction:column;gap:.5rem}.spell-info{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:.8rem}.spell-slots{display:flex;gap:.75rem;flex-wrap:wrap}.spell-slot{background:#fff6;padding:.2rem .4rem;border-radius:4px;border:1px solid rgba(139,69,19,.2);font-size:.8rem;font-family:Courier New,monospace}.equipment-list,.features-list{display:flex;flex-wrap:wrap;gap:.5rem}.equipment-item,.feature-item{background:#fff6;padding:.2rem .4rem;border-radius:4px;border:1px solid rgba(139,69,19,.2);font-size:.8rem;white-space:nowrap}.more-items,.more-features{font-style:italic;color:#000;background:transparent!important;border:none!important}.character-sheet-popup{animation:parchmentAppear .4s ease-out}@keyframes parchmentAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(max-width:768px){.character-sheet-popup{width:95vw;padding:1rem}.character-sheet-grid{grid-template-columns:1fr;gap:1rem}.character-name{font-size:1.8rem}.character-subtitle{font-size:1rem}.combat-stats,.skills-list{grid-template-columns:1fr}.spell-info{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.character-sheet-popup{width:98vw;padding:.75rem;max-height:95vh}.character-name{font-size:1.5rem}.character-sheet-grid{gap:.75rem}.character-section{padding:.75rem}}@media(prefers-reduced-motion:reduce){.character-sheet-backdrop,.character-sheet-popup{animation:none}.character-sheet-close{transition:none}}@media(prefers-contrast:high){.character-sheet-popup{border:4px solid #000;background:#fff}.character-name,.character-sheet-popup,.character-subtitle,.character-alignment,.section-header,.prof-bonus,.ability-score,.ability-modifier,.stat-value,.skill-modifier,.more-skills,.more-items,.more-features{color:#000}.section-header{border-bottom-color:#000}}.container-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--duration-200) ease-out}.container-modal{background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-glass-lg);max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column;animation:slideUp var(--duration-300) ease-out;overflow:hidden}.container-modal-header{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-4);border-bottom:1px solid var(--border-primary);background:var(--surface-secondary)}.container-modal-title{flex:1;margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary)}.container-modal-status{display:flex;gap:var(--spacing-2)}.status-badge{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius);font-size:var(--text-xs);font-weight:var(--font-medium);border:1px solid}.status-badge.locked{background:var(--color-error-bg, rgba(255, 107, 107, .1));border-color:var(--color-error);color:var(--color-error)}.status-badge.open{background:var(--color-success-bg, rgba(76, 175, 80, .1));border-color:var(--color-success);color:var(--color-success)}.status-badge.closed{background:var(--color-warning-bg, rgba(255, 193, 7, .1));border-color:var(--color-warning);color:var(--color-warning)}.container-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-lg);line-height:1}.container-modal-close:hover{background:var(--color-error);border-color:var(--color-error);color:#fff;transform:scale(1.05)}.container-modal-body{flex:1;overflow-y:auto;padding:var(--spacing-4)}.container-message{padding:var(--spacing-3);margin:var(--spacing-4);border-radius:var(--border-radius);text-align:center;font-size:var(--text-sm);border:1px solid}.locked-message{background:var(--color-error-bg, rgba(255, 107, 107, .1));border-color:var(--color-error);color:var(--color-error)}.closed-message{background:var(--color-warning-bg, rgba(255, 193, 7, .1));border-color:var(--color-warning);color:var(--color-warning)}.container-contents{display:flex;flex-direction:column;gap:var(--spacing-3)}.container-section-title{margin:0 0 var(--spacing-2) 0;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary)}.container-empty{padding:var(--spacing-6);text-align:center;color:var(--text-secondary);font-style:italic}.container-items-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.container-item{padding:var(--spacing-3);background:var(--surface-secondary);border:1px solid var(--border-primary);border-radius:var(--border-radius);display:flex;flex-direction:column;gap:var(--spacing-2);transition:all var(--transition-fast)}.container-item:hover{border-color:var(--border-secondary);box-shadow:var(--shadow-sm)}.container-item-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2)}.container-item-name{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--text-primary);flex:1}.container-item-quantity{color:var(--text-secondary);font-weight:var(--font-normal)}.container-item-remove{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--border-primary);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);font-size:14px}.container-item-remove:hover{background:var(--color-error);border-color:var(--color-error);transform:scale(1.05)}.container-item-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4;font-style:italic}.container-item-actions{display:flex;align-items:center;gap:var(--spacing-2)}.quantity-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-base);font-weight:var(--font-bold)}.quantity-btn:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff;transform:scale(1.05)}.quantity-btn:disabled{opacity:.5;cursor:not-allowed}.quantity-value{min-width:40px;text-align:center;font-size:var(--text-base);font-weight:var(--font-medium);color:var(--text-primary)}.container-modal-footer{padding:var(--spacing-4);border-top:1px solid var(--border-primary);background:var(--surface-secondary)}.add-item-form{display:flex;flex-direction:column;gap:var(--spacing-2)}.form-row{display:flex;gap:var(--spacing-2)}.form-input{flex:1;padding:var(--spacing-2) var(--spacing-3);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.form-input.quantity-input{flex:0 0 80px}.add-item-btn{padding:var(--spacing-2) var(--spacing-4);background:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--border-radius);color:#fff;font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.add-item-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.add-item-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.container-modal-overlay,.container-modal{animation:none}.container-modal-close:hover,.container-item-remove:hover,.quantity-btn:hover,.add-item-btn:hover{transform:none}}.container-modal-close:focus-visible,.container-item-remove:focus-visible,.quantity-btn:focus-visible,.add-item-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.solid-theme .container-modal{box-shadow:var(--shadow-default)}.solid-theme .container-modal-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}.token-toolbar{position:absolute;background:var(--surface-primary);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-glass-lg);z-index:2;min-width:280px;max-width:320px;animation:slideIn var(--duration-300) ease-out;overflow:hidden;pointer-events:none}.token-toolbar-main{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3)}.token-toolbar-primary{display:flex;align-items:center;gap:var(--spacing-1)}.token-toolbar-separator{width:1px;height:24px;background:var(--border-primary);margin:0 var(--spacing-1)}.token-toolbar-secondary{display:flex;align-items:center;gap:var(--spacing-1)}.token-toolbar-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid transparent;border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);position:relative;-webkit-user-select:none;user-select:none;pointer-events:auto}.token-toolbar-btn:hover:not(.danger){background:var(--surface-hover);border-color:var(--border-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.token-toolbar-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 0 8px rgba(var(--color-primary-rgb),.3),inset 0 1px 2px #ffffff1a}.token-toolbar-btn.danger{color:var(--color-error);border-color:var(--color-error)}.token-toolbar-btn.danger:hover{background:var(--color-error);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.token-toolbar-icon{font-size:16px;line-height:1}.token-toolbar-panel{background:var(--surface-secondary);border-top:1px solid var(--border-primary);animation:slideDown var(--duration-200) ease-out}.token-panel-header{padding:var(--spacing-3) var(--spacing-4) var(--spacing-2);border-bottom:1px solid var(--border-subtle)}.token-panel-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin:0;text-align:center}.token-panel-content{padding:var(--spacing-3) var(--spacing-4)}.text-panel input{width:100%;padding:var(--spacing-2) var(--spacing-3);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);font-size:var(--text-base);transition:border-color var(--transition-fast);pointer-events:auto}.text-panel input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.conditions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-2)}.condition-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1);padding:var(--spacing-2);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);text-align:center;min-height:60px;pointer-events:auto}.condition-btn:hover{background:var(--surface-hover);border-color:var(--border-secondary);transform:translateY(-1px)}.condition-btn.active{background:var(--color-success);border-color:var(--color-success);color:#fff;box-shadow:var(--shadow-sm)}.condition-icon{font-size:18px;line-height:1}.condition-name{font-size:var(--text-xs);font-weight:var(--font-medium);line-height:1.2}.player-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.player-btn{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);position:relative;pointer-events:auto}.player-btn:hover{background:var(--surface-hover);border-color:var(--border-secondary);transform:translateY(-1px)}.player-btn.active{background:var(--color-secondary);border-color:var(--color-secondary);color:#fff;box-shadow:var(--shadow-sm)}.player-icon{font-size:16px;line-height:1}.player-name{font-size:var(--text-sm);font-weight:var(--font-medium);flex:1}.player-check{font-size:var(--text-sm);font-weight:var(--font-bold);color:inherit}.no-players-message{text-align:center;color:var(--text-muted);font-size:var(--text-sm);padding:var(--spacing-4);font-style:italic}@media(prefers-reduced-motion:reduce){.token-toolbar,.token-toolbar-panel,.token-toolbar-btn,.condition-btn,.player-btn,.option-btn{animation:none;transition:none}.token-toolbar-btn:hover:not(.danger),.condition-btn:hover,.player-btn:hover,.option-btn:hover{transform:none}}.token-toolbar-btn:focus-visible,.condition-btn:focus-visible,.player-btn:focus-visible,.option-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.solid-theme .token-toolbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface-primary);box-shadow:var(--shadow-default)}.solid-theme .token-toolbar-panel{background:var(--surface-secondary)}.solid-theme .token-toolbar-btn:hover:not(.danger),.solid-theme .condition-btn:hover,.solid-theme .player-btn:hover,.solid-theme .option-btn:hover{background:var(--surface-hover);box-shadow:var(--shadow-sm)}.solid-theme .text-panel input,.solid-theme .option-btn,.solid-theme .condition-btn,.solid-theme .player-btn{background:var(--surface-primary)}.prop-toolbar{position:absolute;background:var(--surface-primary);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-glass-lg);z-index:2;min-width:280px;max-width:320px;animation:slideIn var(--duration-300) ease-out;overflow:hidden;pointer-events:none}.prop-toolbar-main{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3)}.prop-toolbar-primary{display:flex;align-items:center;gap:var(--spacing-1)}.prop-toolbar-separator{width:1px;height:24px;background:var(--border-primary);margin:0 var(--spacing-1)}.prop-toolbar-secondary{display:flex;align-items:center;gap:var(--spacing-1)}.prop-toolbar-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid transparent;border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);position:relative;-webkit-user-select:none;user-select:none;pointer-events:auto}.prop-toolbar-btn:hover:not(.danger){background:var(--surface-hover);border-color:var(--border-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.prop-toolbar-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 0 8px rgba(var(--color-primary-rgb),.3),inset 0 1px 2px #ffffff1a}.prop-toolbar-btn.danger{color:var(--color-error);border-color:var(--color-error)}.prop-toolbar-btn.danger:hover{background:var(--color-error);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.prop-toolbar-icon{font-size:16px;line-height:1}.prop-toolbar-panel{background:var(--surface-secondary);border-top:1px solid var(--border-primary);animation:slideDown var(--duration-200) ease-out}.prop-panel-header{padding:var(--spacing-3) var(--spacing-4) var(--spacing-2);border-bottom:1px solid var(--border-subtle)}.prop-panel-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin:0;text-align:center}.prop-panel-content{padding:var(--spacing-3) var(--spacing-4)}.options-panel{display:flex;flex-direction:column;gap:var(--spacing-3)}.option-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3)}.option-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium);min-width:60px}.option-controls{display:flex;align-items:center;gap:var(--spacing-2);flex:1}.option-btn{padding:var(--spacing-1) var(--spacing-2);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast);min-width:32px;text-align:center;pointer-events:auto}.option-btn:hover{background:var(--surface-hover);border-color:var(--border-secondary)}.option-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.option-value{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--font-medium);min-width:40px;text-align:center}.state-buttons{display:flex;flex-direction:column;gap:var(--spacing-2)}.state-btn{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);pointer-events:auto}.state-btn:hover{background:var(--surface-hover);border-color:var(--border-secondary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.state-btn.active{background:var(--color-success);border-color:var(--color-success);color:#fff;box-shadow:var(--shadow-sm)}.state-icon{font-size:18px;line-height:1}.state-label{font-size:var(--text-sm);font-weight:var(--font-medium);flex:1}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px);max-height:0}to{opacity:1;transform:translateY(0);max-height:500px}}@media(prefers-reduced-motion:reduce){.prop-toolbar,.prop-toolbar-panel,.prop-toolbar-btn,.state-btn,.option-btn{animation:none;transition:none}.prop-toolbar-btn:hover:not(.danger),.state-btn:hover,.option-btn:hover{transform:none}}.prop-toolbar-btn:focus-visible,.state-btn:focus-visible,.option-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.solid-theme .prop-toolbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface-primary);box-shadow:var(--shadow-default)}.solid-theme .prop-toolbar-panel{background:var(--surface-secondary)}.solid-theme .prop-toolbar-btn:hover:not(.danger),.solid-theme .state-btn:hover,.solid-theme .option-btn:hover{background:var(--surface-hover);box-shadow:var(--shadow-sm)}.solid-theme .option-btn,.solid-theme .state-btn{background:var(--surface-primary)}Consolidated styles for dice rolling,animation,and 3D rendering. Organized into logical sections for maintainability. ============================================================================= */ .dice-animation-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;overflow:hidden}.dice-animation-container{position:relative;width:100%;height:100%;perspective:1200px;perspective-origin:center center}.animated-die{position:absolute;left:50%;top:50%;width:100px;height:100px;transform-style:preserve-3d;animation:diceRoll 2s cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:var(--delay, 0s)}.animated-die.landed{animation:diceLand .3s cubic-bezier(.68,-.55,.265,1.55) forwards;animation-delay:calc(var(--delay, 0s) + 1.7s)}.die-inner{position:relative;transform-style:preserve-3d;width:100%;height:100%}@keyframes diceRoll{0%{transform:translate(var(--start-x, 0%),var(--start-y, -100%)) rotateX(0) rotateY(0) rotate(0) scale(.5);opacity:0}10%{opacity:1}40%{transform:translate(calc(var(--start-x, 0%) * .5),-20%) rotateX(calc(var(--rotate-x, 360deg) * .3)) rotateY(calc(var(--rotate-y, 360deg) * .3)) rotate(calc(var(--rotate-z, 360deg) * .3)) scale(1.2)}70%{transform:translateY(10%) rotateX(calc(var(--rotate-x, 360deg) * .7)) rotateY(calc(var(--rotate-y, 360deg) * .7)) rotate(calc(var(--rotate-z, 360deg) * .7)) scale(1.1)}85%{transform:translate(0) rotateX(var(--rotate-x, 360deg)) rotateY(var(--rotate-y, 360deg)) rotate(var(--rotate-z, 360deg)) scale(1)}92%{transform:translateY(2%) rotateX(var(--rotate-x, 360deg)) rotateY(var(--rotate-y, 360deg)) rotate(var(--rotate-z, 360deg)) scale(1.05)}to{transform:translate(0) rotateX(var(--rotate-x, 360deg)) rotateY(var(--rotate-y, 360deg)) rotate(var(--rotate-z, 360deg)) scale(1)}}@keyframes diceLand{0%{transform:translate(0) rotateX(var(--rotate-x, 360deg)) rotateY(var(--rotate-y, 360deg)) rotate(var(--rotate-z, 360deg)) scale(1)}50%{transform:translateY(-5%) rotateX(0) rotateY(0) rotate(0) scale(1.15)}70%{transform:translateY(2%) rotateX(0) rotateY(0) rotate(0) scale(.95)}85%{transform:translateY(-1%) rotateX(0) rotateY(0) rotate(0) scale(1.05)}to{transform:translate(0) rotateX(0) rotateY(0) rotate(0) scale(1.3);filter:drop-shadow(0 10px 30px rgba(0,0,0,.5))}}.cube{position:relative;transform-style:preserve-3d;width:100%;height:100%}.cube-face{position:absolute;display:flex;align-items:center;justify-content:center;width:100px;height:100px;border:2px solid rgba(255,255,255,.3);border-radius:8px;font-size:48px;font-weight:700;color:#fff;box-shadow:inset 0 0 20px #ffffff1a,0 5px 15px #0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cube-face.front{transform:rotateY(0) translateZ(50px)}.cube-face.back{transform:rotateY(180deg) translateZ(50px)}.cube-face.right{transform:rotateY(90deg) translateZ(50px)}.cube-face.left{transform:rotateY(-90deg) translateZ(50px)}.cube-face.top{transform:rotateX(90deg) translateZ(50px)}.cube-face.bottom{transform:rotateX(-90deg) translateZ(50px)}.cube.show-face-1{transform:rotateY(0) rotateX(0)}.cube.show-face-2{transform:rotateX(-90deg) rotateY(0)}.cube.show-face-3{transform:rotateY(-90deg) rotateX(0)}.cube.show-face-4{transform:rotateY(90deg) rotateX(0)}.cube.show-face-5{transform:rotateX(90deg) rotateY(0)}.cube.show-face-6{transform:rotateY(180deg) rotateX(0)}.dots{position:relative;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:15px}.dot{width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #0000004d,inset 0 1px 2px #ffffff80}.dot.top-left{grid-column:1;grid-row:1}.dot.top-right{grid-column:3;grid-row:1}.dot.middle-left{grid-column:1;grid-row:2}.dot.center{grid-column:2;grid-row:2}.dot.middle-right{grid-column:3;grid-row:2}.dot.bottom-left{grid-column:1;grid-row:3}.dot.bottom-right{grid-column:3;grid-row:3}.polyhedron{position:relative;transform-style:preserve-3d;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:12px;border:2px solid rgba(255,255,255,.3);box-shadow:inset 0 0 30px #fff3,0 5px 20px #0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.d4-shape{clip-path:polygon(50% 0%,0% 100%,100% 100%);background:linear-gradient(135deg,var(--die-color, #8b5cf6),#6d28d9)}.d8-shape{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);background:linear-gradient(135deg,var(--die-color, #10b981),#059669)}.d10-shape{clip-path:polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%);background:linear-gradient(135deg,var(--die-color, #3b82f6),#2563eb)}.d12-shape{clip-path:polygon(50% 0%,80% 10%,100% 35%,100% 65%,80% 90%,50% 100%,20% 90%,0% 65%,0% 35%,20% 10%);background:linear-gradient(135deg,var(--die-color, #f59e0b),#d97706)}.d20-shape{clip-path:polygon(50% 0%,75% 5%,95% 25%,100% 50%,95% 75%,75% 95%,50% 100%,25% 95%,5% 75%,0% 50%,5% 25%,25% 5%);background:linear-gradient(135deg,var(--die-color, #ec4899),#db2777)}.die-result{position:relative;z-index:10;font-size:48px;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5),0 0 10px rgba(255,255,255,.3);animation:resultPop .3s cubic-bezier(.68,-.55,.265,1.55)}@keyframes resultPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.animated-die.d4,.animated-die.d4 .cube-face,.animated-die.d4 .polyhedron{width:80px;height:80px}.animated-die.d4 .die-result{font-size:36px}.animated-die.d20,.animated-die.d12,.animated-die.d20 .polyhedron,.animated-die.d12 .polyhedron{width:120px;height:120px}.animated-die.d20 .die-result,.animated-die.d12 .die-result{font-size:56px}.animated-die.d20.crit-success .polyhedron{animation:critSuccessGlow .5s ease-in-out infinite alternate}@keyframes critSuccessGlow{0%{box-shadow:inset 0 0 30px #fff3,0 0 30px #10b981cc,0 0 60px #10b98199}to{box-shadow:inset 0 0 30px #ffffff4d,0 0 50px #10b981,0 0 100px #10b981cc}}.animated-die.d20.crit-failure .polyhedron{animation:critFailureGlow .5s ease-in-out infinite alternate}@keyframes critFailureGlow{0%{box-shadow:inset 0 0 30px #fff3,0 0 30px #ef4444cc,0 0 60px #ef444499}to{box-shadow:inset 0 0 30px #ffffff4d,0 0 50px #ef4444,0 0 100px #ef4444cc}}@media(max-width:768px){.animated-die,.cube-face,.polyhedron{width:70px;height:70px}.die-result{font-size:32px}}#dice-box canvas{width:100%!important;height:100%!important;display:block!important;position:relative!important;z-index:1!important}.dice-roller{display:flex;flex-direction:column;gap:.5rem;max-width:1000px;margin:0 auto;width:100%;box-sizing:border-box}.dice-roller__input,.dice-roller__history{position:relative;overflow:hidden;padding:1rem;border-radius:var(--border-radius-xl);border:1px solid var(--glass-border);background:var(--glass-surface-strong);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);box-shadow:var(--shadow-glass-lg)}.dice-roller__input:before,.dice-roller__history:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent)}.dice-roller__input h2,.dice-roller__history h3{margin-bottom:1.5rem;color:var(--glass-text, white);font-weight:700;font-size:1.5rem}.dice-roller__roll-controls{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.dice-roller__expression{padding:.5rem;border:1px solid var(--glass-border);border-radius:var(--border-radius);font-size:.95rem;font-family:JetBrains Mono,monospace;color:var(--glass-text, white);background:var(--glass-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.dice-roller__expression::placeholder{color:var(--glass-text-light, rgba(255, 255, 255, .5))}.dice-roller__expression:focus{outline:none;border-color:#fff6;background:var(--glass-surface-hover);box-shadow:0 0 0 3px #ffffff1a,0 0 20px #fff3}.dice-roller__roll-btn{padding:.5rem 1rem;width:100%;border:1px solid rgba(255,255,255,.2);font-size:.95rem;color:#fff;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));box-shadow:0 4px 20px #6366f14d}.dice-roller__roll-btn:hover{transform:translateY(-3px);box-shadow:0 8px 30px #6366f166}.dice-roller__roll-options{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:1rem;gap:0rem}.dice-roller__roll-results{margin-top:1rem}.dice-roller__roll-result{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border:1px solid var(--glass-border);border-radius:var(--border-radius);margin-bottom:.5rem;background:var(--glass-surface);transition:all .2s ease}.dice-roller__roll-result:hover{background:var(--glass-surface-hover);border-color:#ffffff4d}.dice-roller__roll-expression{font-family:JetBrains Mono,monospace;color:var(--glass-text);font-size:.9rem}.dice-roller__roll-total{font-size:1.2rem;font-weight:700;color:var(--color-primary)}.dice-roller__roll-details{margin-top:.25rem;font-size:.8rem;color:var(--glass-text-muted)}.dice-roller__history{overflow-y:auto;max-height:300px}.dice-roller__history-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--glass-border)}.dice-roller__history-item:last-child{border-bottom:none}.dice-roller__history-expression{font-family:JetBrains Mono,monospace;color:var(--glass-text);font-size:.85rem}.dice-roller__history-total{font-weight:600;color:var(--color-primary)}.dice-roller__history-time{font-size:.75rem;color:var(--glass-text-muted)}.dice-roller__clear-history-btn{cursor:pointer;margin-top:1rem;padding:.5rem 1rem;border:1px solid rgba(239,68,68,.3);border-radius:var(--border-radius);font-size:.85rem;color:#ef4444;background:#ef44441a;transition:all .2s ease}.dice-roller__clear-history-btn:hover{background:#ef444433;border-color:#ef444480}.dice-roller__die-selection{display:flex;flex-wrap:wrap;gap:var(--spacing-2);justify-content:center;margin-bottom:var(--spacing-4)}.dice-roller__die-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border-primary);border-radius:var(--border-radius);min-width:50px;min-height:40px;background:var(--surface-secondary);color:var(--text-primary, white);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.dice-roller__die-btn:hover{transform:translateY(-2px);border-color:var(--color-primary);color:#fff;background:var(--color-primary);box-shadow:var(--shadow-md)}.dice-roller__die-btn:active{transform:translateY(0) scale(.98)}.dice-roller__die-icon{font-size:var(--text-sm);font-weight:var(--font-bold);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.5px}.die-icon{font-size:var(--text-sm);font-weight:var(--font-bold);font-family:var(--font-mono);text-shadow:0 2px 4px rgba(0,0,0,.2);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dice-roller__dice-builder{margin-top:2rem}.dice-roller__dice-builder h3{font-size:1.2rem;color:var(--glass-text-muted);font-weight:600}.dice-roller__clear-queue-btn:hover{background:#ef44444d;border-color:#ef444499;transform:scale(1.05)}.dice-roller__clear-queue-btn:active{transform:scale(.95)}.die-type-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:.75rem}.die-type-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;position:relative;overflow:hidden;cursor:pointer;padding:.25rem;border:2px solid var(--glass-border);border-radius:var(--border-radius);min-height:35px;background:var(--glass-surface);color:var(--text-primary, white);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px 1px #ffffff1a,0 4px 8px #0003;transition:all .3s ease}.die-type-btn:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent)}.die-type-btn:hover{transform:translateY(-4px);border-color:#6366f199;background:var(--glass-surface-hover);box-shadow:inset 0 1px 1px #fff3,0 8px 16px #6366f14d,0 0 20px #6366f133}.die-type-btn:active{transform:translateY(-2px) scale(.98);box-shadow:inset 0 2px 4px #0003,0 4px 8px #6366f133}.die-label{padding:.2rem .5rem;border-radius:4px;border:1px solid rgba(99,102,241,.2);font-size:.75rem;font-weight:600;color:var(--glass-text-muted);background:#6366f11a}.dice-roller__modifiers-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--glass-border)}.dice-roller__modifiers-section h4{margin:0 0 .75rem;font-size:1rem;color:var(--glass-text-muted);font-weight:600}.dice-roller__modifier-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.dice-roller__modifier-btn{cursor:pointer;padding:.25rem .5rem;border:1px solid var(--glass-border);border-radius:var(--border-radius);font-family:JetBrains Mono,monospace;font-weight:600;font-size:.85rem;color:var(--glass-text, white);background:var(--glass-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px 1px #ffffff1a,0 2px 4px #0003;transition:all .2s ease}.dice-roller__modifier-btn:hover{transform:translateY(-2px);border-color:#ffffff4d;background:var(--glass-surface-hover);box-shadow:inset 0 1px 1px #fff3,0 4px 8px #0000004d}.dice-roller__modifier-btn:active{transform:translateY(0);box-shadow:inset 0 2px 4px #0003,0 2px 4px #0003}.dice-roller__rolls-list{overflow-y:auto;max-height:450px;padding-right:.5rem}.dice-roller__no-rolls{text-align:center;padding:3rem;color:var(--glass-text-muted);font-style:italic}.dice-roller__roll{padding:1.5rem;border:1px solid var(--glass-border);border-radius:var(--border-radius);border-bottom:1px solid var(--glass-border);margin-bottom:1rem;background:var(--glass-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transition:all .3s ease}.dice-roller__roll:hover{background:var(--glass-surface-hover);transform:translate(5px);box-shadow:var(--shadow-glass)}.dice-roller__roll--private{border-left:4px solid var(--color-primary);padding-left:calc(1.5rem - 4px);background:#6366f11a}.dice-roller__roll--new{animation:newRollFlash 1.2s cubic-bezier(.4,0,.2,1)}.dice-roller__roll-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.dice-roller__roller-name{font-weight:700;color:var(--glass-text);background:linear-gradient(135deg,#fff,#f0f9ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dice-roller__roll-meta{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--glass-text-light)}.dice-roller__roll-time{font-family:JetBrains Mono,monospace}.dice-roller__private-tag{padding:.1rem .4rem;border-radius:4px;font-size:.7rem;font-weight:600;color:#fff;background:var(--color-primary)}.dice-roller__reroll-btn{cursor:pointer;padding:.2rem;border:none;font-size:1.1rem;line-height:1;color:var(--glass-text-muted);background:none;transition:all .2s ease}.dice-roller__reroll-btn:hover{color:var(--color-accent);transform:rotate(90deg)}@keyframes newRollFlash{0%{background:var(--glass-surface-strong);transform:scale(1.02);box-shadow:0 0 20px #fff3}to{background:var(--glass-surface);transform:scale(1);box-shadow:none}}.dice-roller__roll-result .discarded-roll{text-decoration:line-through;color:var(--glass-text-muted);opacity:.6}.dice-roller__roll-result .kept-roll{font-weight:700;color:var(--glass-text)}.dice-roller__roll-result .crit-success{color:var(--color-success);font-weight:700;text-shadow:0 0 8px rgba(16,185,129,.5)}.dice-roller__roll-result .crit-failure{color:var(--color-error);font-weight:700;text-shadow:0 0 8px rgba(239,68,68,.5)}.dice-roller__roll-total.crit-success,.dice-roller__roll-total.crit-failure{background:#0003}.dice-pool{display:inline-flex;align-items:center;gap:.25rem;margin:0 .15rem}.pool-label{font-weight:700;font-size:.9em;color:var(--color-primary);opacity:.8}.dice-roller__theme-toggle-btn,.dice-roller__sound-toggle-btn{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer;padding:.5rem;border:1px solid var(--glass-border);border-radius:8px;width:40px;height:40px;font-size:1.2rem;color:var(--glass-text);background:var(--glass-surface);transition:all .2s ease}.dice-roller__theme-toggle-btn:before,.dice-roller__sound-toggle-btn:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent)}.dice-roller__theme-toggle-btn:hover,.dice-roller__sound-toggle-btn:hover{transform:translateY(-2px);border-color:#ffffff4d;background:var(--glass-surface-hover);box-shadow:0 4px 12px #0003,inset 0 1px 1px #ffffff1a}.dice-roller__theme-toggle-btn:active,.dice-roller__sound-toggle-btn:active{transform:translateY(0);box-shadow:0 2px 4px #0003,inset 0 2px 4px #0000001a}@media(max-width:768px){.dice-roller{margin:0 1rem;max-width:calc(100vw - 2rem)}.dice-roller__dice-builder>div:first-child{flex-direction:column;align-items:flex-start;gap:.5rem}.dice-roller__clear-queue-btn{align-self:flex-end;margin-top:-2.5rem}.dice-input,.dice-history{padding:.75rem}.dice-input h2,.dice-history h3{font-size:1.25rem}.roll-result{flex-direction:column;align-items:flex-start;gap:.5rem}.roll-total{align-self:flex-end}.cube-face,.polyhedron{width:70px;height:70px}.die-result{font-size:32px}}.asset-browser{padding:1.5rem;border:1px solid var(--glass-border);border-radius:var(--border-radius-lg);background:var(--glass-surface-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-glass)}.asset-browser-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--glass-border)}.asset-browser-header h3{margin:0;font-size:1.3rem;font-weight:600;color:var(--glass-text)}.cache-info{display:flex;align-items:center;gap:1rem;font-size:.85rem;color:var(--glass-text-muted)}.asset-controls{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.asset-search{flex:1;min-width:200px}.asset-browser-search{margin-bottom:1rem}.asset-browser-filters{padding:8px 16px;display:flex;gap:8px;border-bottom:1px solid var(--glass-border);margin-bottom:1rem;flex-wrap:wrap}.asset-browser-content{flex:1;overflow-y:auto}.search-input{width:100%;padding:.75rem;border:1px solid var(--glass-border);border-radius:var(--border-radius);background:var(--glass-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);font-size:.9rem;color:var(--glass-text);transition:all .3s ease}.search-input:focus{outline:none;border-color:#fff6;box-shadow:0 0 0 3px #ffffff1a;background:var(--glass-surface-hover)}.search-input::placeholder{color:var(--glass-text-light)}.category-filter{min-width:150px}.category-select{width:100%;padding:.75rem;border:1px solid var(--glass-border);border-radius:var(--border-radius);background:var(--glass-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);font-size:.9rem;color:var(--glass-text);transition:all .3s ease}.category-select:focus{outline:none;border-color:#fff6;box-shadow:0 0 0 3px #ffffff1a;background:var(--glass-surface-hover)}.asset-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--glass-text-muted)}.loading-spinner{width:40px;height:40px;margin-bottom:1rem;border:3px solid var(--glass-surface);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.asset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2rem}.asset-card{overflow:hidden;cursor:pointer;border:1px solid var(--glass-border);border-radius:var(--border-radius);background:var(--glass-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-glass);transition:all .3s ease}.asset-card:hover{background:var(--glass-surface-hover);border-color:#ffffff4d;transform:translateY(-2px);box-shadow:var(--shadow-glass-lg)}.asset-thumbnail{position:relative;width:100%;padding-bottom:100%;overflow:hidden}.asset-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .3s ease}.asset-card:hover .asset-thumbnail img{transform:scale(1.05)}.asset-overlay{position:absolute;top:.5rem;right:.5rem;padding:.25rem .5rem;border-radius:4px;background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-size:.75rem;font-weight:500;color:#fff}.asset-delete-btn{position:absolute;top:.5rem;right:.5rem;width:2rem;height:2rem;border-radius:50%;background:#dc2626e6;border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .2s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.asset-delete-btn:hover{background:#dc2626;transform:scale(1.1);box-shadow:0 2px 8px #0000004d}.asset-delete-btn:active{transform:scale(.95)}.asset-info{padding:1rem}.asset-name{margin:0 0 .5rem;font-size:.95rem;font-weight:600;color:var(--glass-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-meta{font-size:.8rem;color:var(--glass-text-muted)}.asset-size{font-size:.75rem}.asset-browser-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-top:1px solid var(--glass-border);margin-top:1rem}.asset-count{font-size:.9rem;color:var(--glass-text-muted)}.asset-actions{display:flex;gap:.75rem}.load-more{margin-top:2rem;text-align:center}.no-assets{padding:3rem;color:var(--glass-text-muted);text-align:center}.no-assets p{margin:0;font-size:1.1rem}.scene-tabs{position:relative;display:flex;align-items:center;overflow:hidden;height:40px;border-bottom:1px solid var(--border-primary);background:var(--surface-secondary)}.scene-tabs__scroll-arrow{display:flex;z-index:10;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;cursor:pointer;width:24px;height:24px;border:1px solid var(--border-primary);border-radius:var(--border-radius);font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-secondary);background:var(--surface-primary);transition:all var(--transition-fast)}.scene-tabs__scroll-arrow:hover:not(.scene-tabs__scroll-arrow--disabled){transform:scale(1.1);color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.scene-tabs__scroll-arrow--disabled{cursor:not-allowed;opacity:.5;background:var(--surface-secondary)}.scene-tabs__scroll-arrow--left{margin-right:var(--spacing-1)}.scene-tabs__scroll-arrow--right{margin-left:var(--spacing-1)}.scene-tabs__container{position:relative;display:flex;align-items:end;overflow-x:auto;flex:1;height:40px;padding:0 var(--spacing-2);gap:var(--spacing-1);scroll-behavior:smooth}.scene-tabs__container::-webkit-scrollbar{display:none}.scene-tabs__container{display:none}.scene-tabs__tab{position:relative;display:flex;align-items:center;-webkit-user-select:none;user-select:none;cursor:pointer;min-width:120px;max-width:240px;height:32px;gap:var(--spacing-2);padding:0 var(--spacing-3);margin-top:var(--spacing-2);border-radius:var(--border-radius) var(--border-radius) 0 0;border:1px solid var(--border-primary);border-bottom:none;background:var(--surface-primary);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.scene-tabs__tab:hover:not(.scene-tabs__tab--active){transform:translateY(-1px);background:var(--surface-hover);box-shadow:var(--shadow-md)}.scene-tabs__tab--active{z-index:5;height:36px;margin-top:0;border-bottom:1px solid var(--surface-primary);border-color:var(--color-primary);background:var(--surface-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.2)}.scene-tabs__tab--active:after{position:absolute;z-index:10;bottom:-1px;left:0;right:0;height:1px;content:"";background:var(--surface-primary)}.scene-tabs__tab-visibility{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;font-size:var(--text-xs);opacity:.8}.scene-tabs__tab-name{flex:1;overflow:hidden;font-weight:var(--font-medium);font-size:var(--text-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.scene-tabs__tab--active .scene-tabs__tab-name{color:var(--text-primary);font-weight:var(--font-semibold)}.scene-tabs__tab--active .scene-tabs__tab-visibility{color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-medium);line-height:1.2;padding:var(--spacing-1) var(--spacing-2);text-align:center;outline:none;opacity:.9}.scene-tabs__tab-input{flex:1;min-width:80px;max-width:200px;border:2px solid var(--color-primary);border-radius:var(--border-radius);background:var(--surface-primary);box-shadow:0 0 8px rgba(var(--color-primary-rgb),.3)}.scene-tabs__tab-input:focus{background:#fff;box-shadow:0 0 12px rgba(var(--color-primary-rgb),.5)}.scene-tabs__tab--dragging{opacity:.5;transform:rotate(3deg);transition:all var(--transition-fast);z-index:100;box-shadow:var(--shadow-lg)}.scene-tabs__tab--drag-over{transform:scale(1.05);transition:all var(--transition-fast)}.scene-tabs__tab[draggable=true]{cursor:grab}.scene-tabs__tab[draggable=true]:active{cursor:grabbing}.scene-tabs__tab-delete{display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;width:20px;height:20px;margin-left:var(--spacing-1);padding:var(--spacing-1);border:none;border-radius:var(--border-radius);opacity:0}.scene-tabs__tab:hover .scene-tabs__tab-delete{opacity:1}.scene-tabs__tab-delete:hover{background:rgba(var(--color-error-rgb),.2);color:var(--color-error);transform:scale(1.1)}.scene-tabs__tab--new{min-width:40px!important;max-width:40px!important;justify-content:center;background:var(--surface-secondary)!important;border:1px dashed var(--border-primary)!important;padding:0!important}.scene-tabs__tab--new:hover{background:var(--color-primary)!important;border-color:var(--color-primary)!important}.scene-tabs__tab-new-button{display:flex;align-items:center;justify-content:center;cursor:pointer;width:100%;height:100%;border:none;transition:all var(--transition-fast)}.scene-tabs__tab-new-button:hover{color:var(--color-primary);transform:scale(1.2)}.scene-panel{display:flex;flex-direction:column;height:100%;gap:var(--spacing-2)}.scene-panel__header{-webkit-backdrop-filter:var(--glass-blur-strong);background:var(--glass-surface-strong);backdrop-filter:var(--glass-blur-strong);border:1px solid var(--glass-border);border-radius:var(--border-radius-lg);padding:var(--spacing-4);box-shadow:var(--shadow-glass);animation:glassAppear .6s ease-out}.scene-panel__header h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-primary);text-shadow:0 0 10px rgba(var(--color-primary-rgb),.3)}.scene-panel__meta{display:flex;gap:var(--spacing-4);font-size:var(--text-sm);color:var(--glass-text-muted);border-top:1px solid var(--glass-border);padding-top:var(--spacing-2);margin-top:var(--spacing-2)}.scene-panel__content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-2)}.scene-panel__section{-webkit-backdrop-filter:var(--glass-blur-strong);background:var(--glass-surface-strong);backdrop-filter:var(--glass-blur-strong);border:1px solid var(--glass-border);border-radius:var(--border-radius-lg);padding:var(--spacing-4);box-shadow:var(--shadow-glass);animation:glassAppear .6s ease-out}.scene-panel__section h4{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-lg);font-weight:var(--font-semibold);padding-bottom:var(--spacing-2)}.scene-panel__field{margin-bottom:var(--spacing-4)}.scene-panel__field:last-child{margin-bottom:0}.scene-panel__field label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium)}.scene-panel__field-display{-webkit-backdrop-filter:var(--glass-blur);background:var(--glass-surface);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--border-radius);min-height:var(--spacing-4);padding:var(--spacing-3);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-sm);box-shadow:var(--shadow-glass-sm)}.scene-panel__field-display:hover{border-color:var(--color-accent);box-shadow:var(--shadow-glass)}.scene-panel__field-display--multiline{min-height:var(--spacing-12);white-space:pre-wrap}.scene-panel__field-input{-webkit-backdrop-filter:var(--glass-blur);width:100%;background:var(--glass-surface);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--border-radius);font-family:inherit;box-shadow:var(--shadow-glass-sm);padding:var(--spacing-3);font-size:var(--text-sm);color:var(--glass-text)}.scene-panel__field-input--multiline{resize:vertical;min-height:var(--spacing-16)}.scene-panel__field-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-glass),0 0 0 2px rgba(var(--color-primary-rgb),.2)}.scene-panel__visibility-options{display:flex;flex-direction:row;gap:var(--spacing-3)}.scene-panel__visibility-option{-webkit-backdrop-filter:var(--glass-blur);background:var(--glass-surface);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--border-radius);display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-glass-sm)}.scene-panel__visibility-option:hover{background:var(--glass-surface-hover);border-color:var(--color-accent);box-shadow:var(--shadow-glass)}.scene-panel__visibility-option input[type=radio]{margin:0}.scene-panel__visibility-icon{font-size:var(--text-base);flex-shrink:0}.scene-panel__visibility-details{flex:1}.scene-panel__visibility-details strong{display:block;font-size:var(--text-sm);color:var(--glass-text)}.scene-panel__checkbox-label{display:flex!important;align-items:center;gap:var(--spacing-2);cursor:pointer;font-size:var(--text-sm);-webkit-backdrop-filter:var(--glass-blur);background:var(--glass-surface);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--border-radius);margin-bottom:0!important;padding:var(--spacing-2);transition:all var(--transition-fast);box-shadow:var(--shadow-glass-sm)}.scene-panel__checkbox-label:hover{background:var(--glass-surface-hover);border-color:var(--color-accent)}.scene-panel__checkbox-label input[type=checkbox]{margin:0}.scene-panel__range-input{outline:none;width:100%;height:6px;border-radius:3px;-webkit-appearance:none;background:var(--glass-surface);appearance:none}.scene-panel__range-input::-webkit-slider-thumb{appearance:none;width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer}.scene-panel__range-input::-moz-range-thumb{width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer;border:none}.scene-panel__color-input{background:transparent;width:50px;height:32px;border:1px solid var(--glass-border);border-radius:4px;cursor:pointer}.scene-panel__color-input::-webkit-color-swatch-wrapper{padding:0}.scene-panel__color-input::-webkit-color-swatch{border:none;border-radius:2px}.scene-panel__button{font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--spacing-3) var(--spacing-4);border:none;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast)}.scene-panel__button--primary{background:var(--color-primary);color:#fff}.scene-panel__button--primary:hover{background:var(--color-secondary)}.scene-panel__button--danger{background:var(--color-error);color:#fff}.scene-panel__button--danger:hover{background:#dc2626}.scene-panel__empty-state{-webkit-backdrop-filter:var(--glass-blur);background:var(--glass-surface);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--border-radius-lg);padding:var(--spacing-8) var(--spacing-4);text-align:center;color:var(--glass-text-muted);box-shadow:var(--shadow-glass)}.scene-panel__empty-state p{font-size:var(--text-sm);line-height:1.5}.scene-panel__danger-zone{-webkit-backdrop-filter:var(--glass-blur-strong);background:var(--glass-surface-strong);backdrop-filter:var(--glass-blur-strong);border:1px solid rgba(var(--color-error-rgb),.3)!important;border-radius:var(--border-radius-lg)!important;box-shadow:var(--shadow-glass),0 0 20px rgba(var(--color-error-rgb),.1)!important;position:relative}.scene-panel__danger-zone:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--color-error-rgb),.6),transparent)}.scene-panel__danger-zone h4{color:var(--color-error)}.scene-panel__upload-options{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--spacing-4);margin-bottom:var(--spacing-3)}.scene-panel__upload-divider{font-size:var(--text-sm);font-weight:var(--font-medium)}.scene-panel__upload-hint{text-align:center;font-size:var(--text-xs);color:var(--glass-text-muted);margin-top:var(--spacing-2)}.asset-browser-overlay{position:fixed;inset:0;-webkit-backdrop-filter:blur(8px);background:#000000b3;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:2rem}.asset-browser-modal{display:flex;flex-direction:column;overflow:hidden;width:100%;max-width:900px;max-height:80vh;border:1px solid var(--glass-border);border-radius:var(--border-radius-lg)}.asset-browser-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--glass-border);background:var(--glass-surface)}.asset-browser-header h3{font-size:1.2rem;font-weight:600}.asset-browser-modal .asset-browser{flex:1;overflow:auto;background:transparent;border:none;border-radius:0;box-shadow:none}.scene-manager{display:flex;min-height:0;height:100%;flex:1}.scene-manager--empty{height:100%;display:flex;align-items:center;justify-content:center}.scene-manager__empty-state{-webkit-backdrop-filter:var(--glass-blur-strong);background:var(--glass-surface-strong);backdrop-filter:var(--glass-blur-strong);padding:var(--spacing-12);border-radius:var(--border-radius-xl);text-align:center;border:1px solid var(--glass-border);box-shadow:var(--shadow-glass-lg);max-width:500px}.scene-manager__empty-state h2{font-size:var(--text-2xl);color:var(--glass-text);font-weight:var(--font-bold);margin-bottom:var(--spacing-4)}.scene-manager__empty-state p{margin-bottom:var(--spacing-8);font-size:var(--text-base);color:var(--glass-text-muted)}.scene-manager__sidebar{width:350px;display:flex;flex-direction:column;gap:var(--spacing-4)}.scene-manager__controls{display:flex;align-items:center;justify-content:space-between;-webkit-backdrop-filter:var(--glass-blur);background:var(--glass-surface);backdrop-filter:var(--glass-blur);padding:var(--spacing-6);border-radius:var(--border-radius-lg);border:1px solid var(--glass-border);box-shadow:var(--shadow-glass)}.scene-manager__controls h3{font-size:var(--text-lg);font-weight:var(--font-bold)}.scene-manager__list{flex:1;display:flex;flex-direction:column;overflow-y:auto;gap:var(--spacing-4);padding-right:var(--spacing-2)}.scene-manager__item{-webkit-backdrop-filter:var(--glass-blur);background:var(--glass-surface);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--border-radius-lg);padding:var(--spacing-6);position:relative;overflow:hidden;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.scene-manager__item:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s}.scene-manager__item:hover{background:var(--glass-surface-hover);transform:translateY(-2px);box-shadow:var(--shadow-glass-lg)}.scene-manager__item:hover:before{left:100%}.scene-manager__item--active{background:var(--glass-surface-strong);border-color:#ffffff4d;box-shadow:0 0 20px #fff3}.scene-manager__item-info{flex:1}.scene-manager__item-name{font-size:var(--text-base);font-weight:var(--font-semibold)}.scene-manager__item-description{font-size:var(--text-sm);line-height:1.4}.scene-manager__item-date{font-size:var(--text-xs);font-family:var(--font-mono)}.scene-manager__item-preview{margin-top:var(--spacing-4)}.scene-manager__item-thumbnail{width:100%;height:80px;object-fit:cover;border-radius:var(--border-radius);border:1px solid var(--glass-border)}.scene-manager__item-actions{display:flex;gap:var(--spacing-2);margin-top:var(--spacing-4)}.scene-manager__item-actions .btn{font-size:var(--text-sm)}.scene-manager__main{flex:1;display:flex;flex-direction:column;-webkit-backdrop-filter:var(--glass-blur);background:var(--glass-surface);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-glass);overflow:hidden;min-height:0;height:100%}.scene-manager__empty-canvas{display:flex;align-items:center;justify-content:center;color:var(--glass-text-muted);font-size:var(--text-lg);font-style:italic}.scene-manager__canvas-container{width:100%;height:100%;position:relative;overflow:hidden}.scene-manager__canvas{width:100%;height:100%;display:block;background:var(--surface-primary)}.scene-manager__camera-controls{background:var(--glass-surface);padding:var(--spacing-2) var(--spacing-4);display:flex;align-items:center;gap:var(--spacing-4);border-radius:var(--border-radius);border:1px solid var(--glass-border)}.scene-manager__camera-controls--disabled{opacity:.6}.scene-manager__zoom-controls{display:flex;align-items:center;gap:var(--spacing-2)}.scene-manager__zoom-controls .btn{font-size:var(--text-base);font-weight:var(--font-bold)}.scene-manager__zoom-display{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--glass-text);min-width:45px;text-align:center}.scene-manager__camera-actions{display:flex;gap:var(--spacing-2)}.scene-manager__camera-actions .btn{font-size:var(--text-base)}.scene-manager__position-display{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--glass-text-light)}.scene-manager__follow-indicator{background:var(--glass-surface);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius);border:1px solid var(--glass-border);font-size:var(--text-sm);color:var(--glass-text-muted);font-weight:var(--font-medium)}.scene-editor__overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-8)}.scene-editor{display:flex;flex-direction:column;-webkit-backdrop-filter:var(--glass-blur-strong);overflow:hidden;background:var(--glass-surface-strong);backdrop-filter:var(--glass-blur-strong);border:1px solid var(--glass-border);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-glass-xl);width:100%;max-width:600px;max-height:80vh;animation:modalAppear .3s ease-out}@keyframes modalAppear{0%{opacity:0;transform:translateY(-50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.scene-editor__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-6);border-bottom:1px solid var(--glass-border);background:var(--glass-surface)}.scene-editor__header h2{font-size:var(--text-xl);font-weight:var(--font-bold)}.scene-editor__content{flex:1;overflow-y:auto;padding:var(--spacing-8)}.scene-editor__form-section{margin-bottom:var(--spacing-8)}.scene-editor__form-section:last-child{margin-bottom:0}.scene-editor__form-section h3{font-size:var(--text-lg);font-weight:var(--font-semibold);border-bottom:1px solid var(--glass-border);margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-2)}.scene-editor__form-field{margin-bottom:var(--spacing-6)}.scene-editor__form-field label{display:block;font-weight:var(--font-semibold);font-size:var(--text-sm)}.scene-editor__form-input,.scene-editor__form-textarea{width:100%;padding:var(--spacing-3);border:1px solid var(--glass-border);border-radius:var(--border-radius);background:var(--glass-surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:var(--glass-blur);font-size:var(--text-sm);transition:all var(--transition-fast)}.scene-editor__form-input:focus,.scene-editor__form-textarea:focus{outline:none;border-color:#fff6;box-shadow:0 0 0 3px #ffffff1a;background:var(--glass-surface-hover)}.scene-editor__form-input[type=color]{height:40px;padding:var(--spacing-1)}.scene-editor__form-input[type=range]{-webkit-appearance:none;background:transparent;appearance:none}.scene-editor__form-input[type=range]::-webkit-slider-track{background:var(--glass-surface);height:6px;border-radius:3px;border:1px solid var(--glass-border)}.scene-editor__form-input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:20px;width:20px;border-radius:50%;background:var(--color-primary);border:2px solid white;cursor:pointer;box-shadow:0 2px 10px #0000004d}.scene-editor__checkbox-field{display:flex;align-items:center;gap:var(--spacing-3)}.scene-editor__checkbox-field input[type=checkbox]{transform:scale(1.2)}.scene-editor__checkbox-field label{cursor:pointer}.scene-editor__opacity-value{margin-left:var(--spacing-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--glass-text-light)}.scene-editor__background-preview{background:var(--glass-surface);padding:var(--spacing-4);display:flex;gap:var(--spacing-4);align-items:flex-start;border-radius:var(--border-radius);border:1px solid var(--glass-border)}.scene-editor__background-thumbnail{width:100px;height:60px;object-fit:cover;border-radius:var(--border-radius);border:1px solid var(--glass-border)}.scene-editor__background-info{flex:1}.scene-editor__background-info p{font-family:var(--font-mono);font-size:var(--text-sm)}.scene-editor__background-upload{-webkit-backdrop-filter:var(--glass-blur);background:var(--glass-surface);padding:var(--spacing-8);text-align:center;border:2px dashed var(--glass-border);backdrop-filter:var(--glass-blur);border-radius:var(--border-radius-lg);transition:all var(--transition-fast)}.scene-editor__background-upload:hover{border-color:#fff6;background:var(--glass-surface-hover)}.scene-editor__footer{display:flex;justify-content:flex-end;gap:var(--spacing-4);padding:var(--spacing-6);border-top:1px solid var(--glass-border);background:var(--glass-surface)}.scene-editor__footer .btn{width:auto;padding:var(--spacing-3) var(--spacing-6)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;padding:var(--spacing-3) var(--spacing-6);border:1px solid var(--glass-border);border-radius:var(--border-radius);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--glass-text);text-decoration:none;background:var(--glass-surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);transition:all .3s cubic-bezier(.4,0,.2,1)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--small{padding:var(--spacing-2) var(--spacing-4);font-size:var(--text-xs)}.btn--primary{border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 20px rgba(var(--color-primary-rgb),.3)}.btn--primary:hover:not(:disabled),.btn--primary:focus-visible{transform:translateY(-2px);box-shadow:0 6px 25px rgba(var(--color-primary-rgb),.4);outline:2px solid var(--color-primary);outline-offset:2px}.btn--secondary{background:var(--glass-surface-hover)}.btn--secondary:hover:not(:disabled),.btn--secondary:focus-visible{background:var(--glass-surface-strong);transform:translateY(-1px);outline:2px solid var(--glass-border);outline-offset:2px}.btn--danger{border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 20px rgba(var(--color-error-rgb),.3)}.btn--danger:hover:not(:disabled),.btn--danger:focus-visible{transform:translateY(-2px);box-shadow:0 6px 25px rgba(var(--color-error-rgb),.4);outline:2px solid var(--color-error);outline-offset:2px}.scene-list::-webkit-scrollbar{width:6px}.scene-list::-webkit-scrollbar-track{background:var(--glass-surface)}.scene-list::-webkit-scrollbar-thumb{background:var(--glass-border)}.scene-list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.scene-management{display:flex;flex-direction:column;width:100%;height:100%}.scene-management__header{padding:var(--spacing-4);border-bottom:1px solid var(--border-primary);background:var(--surface-secondary)}.scene-management__header-top{display:flex;align-items:center;justify-content:space-between}.scene-management__header-top h3{font-size:var(--text-xl);font-weight:var(--font-bold)}.scene-management__back-button{background:transparent;border:1px solid var(--border-primary);color:var(--text-secondary);padding:var(--spacing-2);border-radius:var(--border-radius);cursor:pointer;font-size:var(--text-lg);transition:all var(--transition-fast);width:32px;height:32px;display:flex;align-items:center;justify-content:center}.scene-management__back-button:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--color-primary)}.scene-management__controls{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4)}.scene-management__sort-controls{display:flex;align-items:center;gap:var(--spacing-2)}.scene-management__sort-controls label{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-sm);color:var(--text-secondary)}.scene-management__sort-controls select{background:var(--surface-primary);border:1px solid var(--border-primary);color:var(--text-primary);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius);font-size:var(--text-sm)}.scene-management__sort-order-btn{background:var(--surface-primary);border:1px solid var(--border-primary);color:var(--text-secondary);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius);cursor:pointer;font-size:var(--text-base);transition:all var(--transition-fast)}.scene-management__sort-order-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.scene-management__selection-controls{display:flex;align-items:center;gap:var(--spacing-3)}.scene-management__select-all-btn{background:var(--surface-primary);border:1px solid var(--border-primary);color:var(--text-primary);border-radius:var(--border-radius);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition-fast)}.scene-management__select-all-btn:hover{background:var(--color-primary);color:#fff}.scene-management__selection-count{font-size:var(--text-sm);font-weight:var(--font-medium)}.scene-management__bulk-actions{background:var(--surface-primary);border:1px solid var(--color-primary);border-radius:var(--border-radius);padding:var(--spacing-3);margin-top:var(--spacing-3)}.scene-management__bulk-actions-label{font-size:var(--text-sm);font-weight:var(--font-medium)}.scene-management__bulk-action-buttons{display:flex;align-items:center;flex-wrap:wrap}.scene-management__bulk-btn{background:var(--surface-secondary);border:1px solid var(--border-primary);color:var(--text-primary);border-radius:var(--border-radius);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition-fast);white-space:nowrap}.scene-management__bulk-btn:hover{background:var(--surface-hover);transform:translateY(-1px)}.scene-management__bulk-btn--visibility:hover{background:var(--color-secondary);color:#fff}.scene-management__bulk-btn--delete{background:var(--color-error);color:#fff}.scene-management__bulk-btn--delete:hover{background:#dc2626;transform:translateY(-1px)}.scene-management__bulk-separator{width:1px;height:24px}.scene-management__list{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:var(--spacing-2);max-height:100%}.scene-management__item{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto 1fr auto;grid-template-areas:"checkbox header actions" "checkbox content actions" "checkbox stats actions";gap:var(--spacing-2) var(--spacing-4);cursor:pointer;background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);min-height:140px;flex-shrink:0}.scene-management__item:hover{background:var(--surface-hover);border-color:var(--color-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.scene-management__item--selected{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.3)}.scene-management__item--selected .scene-management__item-name,.scene-management__item--selected .scene-management__item-description,.scene-management__item--selected .scene-management__item-meta,.scene-management__item--selected .scene-management__item-stat{color:#fff}.scene-management__item-checkbox{grid-area:checkbox;display:flex;align-items:flex-start;justify-content:center}.scene-management__item-checkbox input[type=checkbox]{width:18px;height:18px}.scene-management__item-header{grid-area:header;display:flex;flex-direction:column;gap:var(--spacing-1)}.scene-management__item-content{grid-area:content;display:flex;flex-direction:column;gap:var(--spacing-2);min-width:0}.scene-management__item-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-3)}.scene-management__item-name{font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0;line-height:1.3;letter-spacing:-.01em}.scene-management__item-meta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-1);font-size:var(--text-xs);color:var(--text-secondary)}.scene-management__item-visibility{display:flex;align-items:center;gap:var(--spacing-1);white-space:nowrap;padding:var(--spacing-1) var(--spacing-2);border-radius:calc(var(--border-radius) * .75);font-size:var(--text-xs);font-weight:var(--font-medium);border:1px solid var(--border-primary)}.scene-management__item-id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);opacity:.6;font-weight:var(--font-normal)}.scene-management__item-description{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:1.5;font-style:italic;opacity:.9}.scene-management__item-stats{grid-area:stats;display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--spacing-1)}.scene-management__item-stat{display:flex;align-items:center;gap:var(--spacing-1);white-space:nowrap}.scene-management__item-actions{grid-area:actions;display:flex;align-items:flex-start;justify-content:flex-end;flex-shrink:0;gap:var(--spacing-1)}.scene-management__action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;position:relative;overflow:hidden}.scene-management__action-btn:hover{background:var(--surface-hover);color:var(--text-primary);transform:translateY(-1px)}.scene-management__action-btn--edit:hover{background:var(--color-secondary);color:#fff}.scene-management__action-btn--duplicate:hover{background:var(--color-primary);color:#fff}.scene-management__action-btn--delete:hover{background:var(--color-error);color:#fff}.scene-management__empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.scene-management__empty-state h4{color:var(--text-primary)}.scene-management__empty-state p{margin:0 0 var(--spacing-4) 0}.scene-management__create-btn{font-size:var(--text-base);font-weight:var(--font-medium);padding:var(--spacing-3) var(--spacing-4);border:none;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast)}.scene-management__create-btn:hover{background:var(--color-secondary);transform:translateY(-1px)}.scene-panel-header-top{display:flex;align-items:center;justify-content:space-between}.scene-panel-header-top h3{flex:1}.scene-management-toggle{background:var(--surface-secondary);border:1px solid var(--border-primary);color:var(--text-primary);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--border-radius);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition-fast);white-space:nowrap;flex-shrink:0}.scene-management-toggle:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-1px)}.drawing-properties{-webkit-backdrop-filter:var(--glass-blur-strong);background:var(--glass-surface-strong);backdrop-filter:var(--glass-blur-strong);position:absolute;top:20px;right:20px;width:300px;border:1px solid var(--glass-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-glass-xl);z-index:1000;animation:slideInRight .3s ease}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.drawing-properties__header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4);border-bottom:1px solid var(--glass-border)}.drawing-properties__header h3{text-transform:capitalize}.drawing-properties__close-btn{background:transparent;border:none;color:var(--glass-text);width:24px;height:24px;display:flex;align-items:center;justify-content:center;padding:0;font-size:var(--text-xl);line-height:1;cursor:pointer;border-radius:var(--border-radius);transition:all var(--transition-fast)}.drawing-properties__close-btn:hover{background:var(--glass-surface-hover);color:var(--color-primary)}.drawing-properties__content{display:flex;flex-direction:column;gap:var(--spacing-4);overflow-y:auto;max-height:calc(100vh - 120px)}.drawing-properties__property-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.drawing-properties__property-group label{font-size:var(--text-sm);font-weight:var(--font-medium);opacity:.9}.drawing-properties__color-input-group{display:flex;align-items:center;gap:var(--spacing-2)}.drawing-properties__color-picker{width:50px;height:36px;border:1px solid var(--glass-border);border-radius:var(--border-radius);cursor:pointer;background:transparent}.drawing-properties__color-text{flex:1;padding:var(--spacing-2) var(--spacing-3);background:var(--glass-surface);border:1px solid var(--glass-border);border-radius:var(--border-radius);color:var(--glass-text);font-size:var(--text-sm);font-family:var(--font-mono)}.drawing-properties__color-text:focus{outline:none;border-color:var(--color-primary);background:var(--glass-surface-hover)}.drawing-properties__slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;border:1px solid var(--glass-border);outline:none;cursor:pointer}.drawing-properties__slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid white;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.drawing-properties__slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 8px rgba(var(--color-primary-rgb),.5)}.drawing-properties__slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid white;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.drawing-properties__slider::-moz-range-thumb:hover{transform:scale(1.2);box-shadow:0 0 8px rgba(var(--color-primary-rgb),.5)}.remote-cursors-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:var(--z-cursors)}.remote-cursor{position:absolute;display:flex;flex-direction:column;align-items:center;pointer-events:none;animation:cursor-fade-in .2s ease-out}.cursor-pointer{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:12px solid var(--color-primary);filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));animation:cursor-pulse 2s ease-in-out infinite}.cursor-label{background:var(--surface-primary);color:var(--text-primary);padding:2px 6px;border-radius:3px;font-size:11px;font-weight:500;white-space:nowrap;margin-top:2px;border:1px solid var(--border-primary);box-shadow:var(--shadow-sm);max-width:80px;overflow:hidden;text-overflow:ellipsis}@keyframes cursor-fade-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes cursor-pulse{0%,to{opacity:1}50%{opacity:.7}}.generator-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.generator-overlay{position:fixed;top:var(--header-height, 60px);left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:30;display:flex;align-items:flex-start;justify-content:center;padding:2rem}.generator-overlay-content{width:100%;max-width:1200px;height:100%;background:var(--surface-primary);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:0 8px 32px #0000004d}.generator-overlay-close{position:absolute;top:1rem;right:1rem;background:#000000b3;border:1px solid rgba(255,255,255,.2);color:var(--text-primary, #fff);font-size:1.25rem;width:2rem;height:2rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:31;transition:all .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.generator-overlay-close:hover{background:#ffffff1a;border-color:#fff6;transform:scale(1.1)}.generator-panel .panel-header{padding:1rem;background:var(--glass-surface-strong, rgba(0, 0, 0, .4));border-bottom:1px solid var(--glass-border, rgba(255, 255, 255, .1));flex-shrink:0}.generator-panel .panel-header h2{margin:0 0 .5rem;font-size:1.25rem;color:var(--text-primary)}.generator-panel .panel-instructions{margin:0;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.generator-panel .panel-instructions strong{color:var(--text-primary);font-weight:600}.generator-panel .saving-indicator{margin:.5rem 0 0;font-size:.875rem;color:var(--accent-color, #6366f1);font-style:italic}.generator-iframe-container{flex:1;position:relative;overflow:hidden;background:#1a1a1a;min-height:0}.generator-iframe{width:100%;height:100%;border:none;display:block}.generator-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--text-secondary);z-index:10}.generator-loading .spinner{width:40px;height:40px;margin:0 auto 1rem;border:3px solid var(--glass-border, rgba(255, 255, 255, .1));border-top-color:var(--accent-color, #6366f1);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.generator-loading p{margin:0;font-size:.875rem;color:var(--text-secondary)}.theme-solid .generator-panel .panel-header{background:var(--surface-medium, #2a2a2a);border-bottom:1px solid var(--border-color, #444)}.theme-solid .generator-loading .spinner{border-color:var(--border-color, #444);border-top-color:var(--accent-color, #6366f1)}.shortcuts-panel kbd{display:inline-block;padding:.125rem .5rem;font-size:.75rem;font-family:monospace;font-weight:600;line-height:1.5;color:var(--text-primary, #fff);background:var(--glass-surface-medium, rgba(255, 255, 255, .1));border:1px solid var(--glass-border, rgba(255, 255, 255, .2));border-radius:4px;box-shadow:0 1px 2px #0000004d;white-space:nowrap}.shortcuts-panel span{color:var(--text-secondary, rgba(255, 255, 255, .7))}.shortcuts-panel::-webkit-scrollbar{width:8px}.shortcuts-panel::-webkit-scrollbar-track{background:#0003;border-radius:4px}.shortcuts-panel::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.shortcuts-panel::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.toast-container{position:absolute;top:13rem;right:1rem;z-index:1000;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{padding:.75rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;box-shadow:0 4px 12px #00000080;animation:slideIn .3s ease-out;pointer-events:auto;max-width:350px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast-success{background:#22c55ee6;color:#fff;border:1px solid rgba(34,197,94,1)}.toast-info{background:#3b82f6e6;color:#fff;border:1px solid rgba(59,130,246,1)}.toast-warning{background:#f59e0be6;color:#fff;border:1px solid rgba(245,158,11,1)}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:768px){.generator-panel .panel-header{padding:.75rem}.generator-panel .panel-header h2{font-size:1.125rem}.generator-panel .panel-instructions{font-size:.8125rem}.shortcuts-panel{font-size:.75rem!important}.shortcuts-panel kbd{font-size:.6875rem;padding:.0625rem .375rem}.toast-container{right:.5rem;top:.5rem}.toast{max-width:280px;font-size:.8125rem;padding:.625rem .875rem}}.character-card{position:relative;display:flex;flex-direction:column;gap:1rem;transition:transform .2s ease,box-shadow .2s ease}.character-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.character-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.character-card-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--slate-50, #f8fafc);flex:1}.character-date{font-size:.875rem;color:var(--slate-400, #94a3b8);white-space:nowrap}.character-info{display:flex;flex-wrap:wrap;gap:.5rem}.character-detail{display:inline-block;padding:.25rem .75rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:12px;font-size:.875rem;color:var(--slate-200, #e2e8f0)}.character-actions{display:flex;gap:.5rem;margin-top:auto}.character-manager-form{display:flex;flex-direction:column;gap:1.5rem}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group label{font-size:.875rem;font-weight:500;color:var(--slate-200, #e2e8f0)}.glass-input-wrapper{position:relative}.glass-input{width:100%;padding:.75rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.2);border-radius:12px;font-size:1rem;color:var(--slate-50, #f8fafc);transition:all .3s ease}.glass-input:focus{outline:none;background:#ffffff1a;border-color:#fff6;box-shadow:0 0 0 3px #ffffff1a}.glass-input:disabled{opacity:.5;cursor:not-allowed}.glass-input::placeholder{color:var(--slate-400, #94a3b8)}.error-message{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#fca5a5;font-size:.875rem}.error-icon{font-size:1.25rem}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--slate-50, #f8fafc)}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--slate-400, #94a3b8);cursor:pointer;padding:.25rem;line-height:1;transition:color .2s ease}.modal-close:hover:not(:disabled){color:var(--slate-50, #f8fafc)}.modal-footer{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}@media(max-width:768px){.character-card-header{flex-direction:column;gap:.5rem}.character-date{align-self:flex-start}.character-actions{flex-direction:column}.character-actions button{width:100%}.modal-content{width:95%;max-height:95vh}.modal-footer{flex-direction:column-reverse}.modal-footer button{width:100%}}.dashboard-page{min-height:100vh;padding:2rem;background:var(--bg-primary, #0a0e1a);color:var(--text-primary, #e5e5e5)}.dashboard-header{margin-bottom:3rem}.dashboard-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}.dashboard-title-section h1{font-size:2.5rem;margin:0 0 .5rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-subtitle{font-size:1.1rem;color:var(--text-secondary, #a0a0a0);margin:0}.dashboard-section{margin-bottom:3rem}.dashboard-section h2{font-size:1.75rem;margin:0 0 1.5rem;color:var(--text-primary, #e5e5e5)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.section-header h2{margin:0}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.campaign-card{padding:1.5rem;border-radius:12px;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);transition:all .3s ease;cursor:pointer}.campaign-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000004d;border-color:#667eea80}.campaign-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.campaign-card-header h3{font-size:1.25rem;margin:0;color:var(--text-primary, #e5e5e5);flex:1}.campaign-date{font-size:.85rem;color:var(--text-secondary, #a0a0a0);white-space:nowrap}.campaign-description{font-size:.95rem;color:var(--text-secondary, #a0a0a0);margin:0 0 1rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.campaign-actions{display:flex;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.empty-state{padding:4rem 2rem;text-align:center;border-radius:12px;background:#ffffff08;border:2px dashed rgba(255,255,255,.1)}.empty-state-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h3{font-size:1.5rem;margin:0 0 .5rem;color:var(--text-primary, #e5e5e5)}.empty-state p{font-size:1rem;color:var(--text-secondary, #a0a0a0);margin:0 0 1.5rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.loading-state p{color:var(--text-secondary, #a0a0a0);margin:0}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{width:100%;max-width:500px;max-height:90vh;overflow-y:auto;padding:2rem;border-radius:16px;background:#141828f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{margin:0;font-size:1.5rem;color:var(--text-primary, #e5e5e5)}.modal-close{background:none;border:none;color:var(--text-secondary, #a0a0a0);font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:all .2s ease}.modal-close:hover{background:#ffffff1a;color:var(--text-primary, #e5e5e5)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{margin-bottom:1.5rem}.modal-body .input-group{margin-bottom:1.25rem}.modal-body .input-group:last-child{margin-bottom:0}.modal-body textarea.glass-input{resize:vertical;min-height:100px;font-family:inherit}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.document-filters{padding:1rem;margin-bottom:1.5rem}.filter-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.filter-input{flex:1;min-width:200px;padding:.75rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary, #e5e5e5);font-size:.95rem;transition:all .2s ease}.filter-input:focus{outline:none;border-color:#667eea80;background:#ffffff14}.filter-select{padding:.75rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary, #e5e5e5);font-size:.95rem;cursor:pointer}.upload-queue{padding:1rem;margin-bottom:1.5rem}.upload-item{padding:.75rem;background:#667eea1a;border-radius:8px;margin-bottom:.75rem}.upload-item:last-child{margin-bottom:0}.upload-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.upload-filename{font-weight:500;color:var(--text-primary, #e5e5e5)}.upload-status{font-size:.85rem;color:var(--text-secondary, #a0a0a0);text-transform:capitalize}.upload-progress-bar{height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.upload-progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s ease}.upload-error{margin-top:.5rem;color:#ff6b6b;font-size:.85rem}.document-card{padding:1.5rem;border-radius:12px;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);transition:all .3s ease}.document-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000004d;border-color:#667eea80}.document-card-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.document-type-icon{font-size:1.5rem;flex-shrink:0}.document-card-header h3{font-size:1.1rem;margin:0;color:var(--text-primary, #e5e5e5);flex:1}.document-description{color:var(--text-secondary, #a0a0a0);font-size:.9rem;margin:0 0 1rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.document-meta{display:flex;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.document-type,.document-size{font-size:.85rem;color:var(--text-secondary, #a0a0a0)}.document-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.document-tag{padding:.25rem .75rem;background:#667eea33;border-radius:12px;font-size:.8rem;color:#a5b4fc}.document-actions{display:flex;gap:.5rem;margin-top:1rem}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem;padding:1rem}.pagination-info{color:var(--text-secondary, #a0a0a0);font-size:.9rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-primary, #e5e5e5);font-weight:500}.file-input,.text-input,.select-input{width:100%;padding:.75rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary, #e5e5e5);font-size:.95rem;font-family:inherit;transition:all .2s ease}.file-input{cursor:pointer}.text-input:focus,.select-input:focus{outline:none;border-color:#667eea80;background:#ffffff14}textarea.text-input{resize:vertical;min-height:80px}.file-preview{margin-top:.5rem;padding:.75rem;background:#667eea1a;border-radius:8px;color:var(--text-primary, #e5e5e5);font-size:.9rem}.document-viewer-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:2rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.document-viewer{width:100%;max-width:1200px;max-height:90vh;display:flex;flex-direction:column;background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:hidden}.document-viewer-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);background:#0003}.document-viewer-title h2{margin:0;font-size:1.5rem;color:var(--text-primary, #e5e5e5)}.document-viewer-description{margin:.5rem 0 0;color:var(--text-secondary, #a0a0a0);font-size:.9rem}.document-viewer-close{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:var(--text-primary, #e5e5e5);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.document-viewer-close:hover{background:#fff3;border-color:#ffffff4d}.document-viewer-toolbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#0003;border-bottom:1px solid rgba(255,255,255,.1);flex-wrap:wrap;gap:1rem}.toolbar-group{display:flex;align-items:center;gap:.75rem}.toolbar-btn{padding:.5rem 1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:var(--text-primary, #e5e5e5);font-size:.9rem;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}.toolbar-btn:hover:not(:disabled){background:#fff3;border-color:#ffffff4d}.toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.page-indicator,.zoom-indicator{color:var(--text-secondary, #a0a0a0);font-size:.9rem;min-width:100px;text-align:center}.document-viewer-content{flex:1;overflow:auto;background:#0003;display:flex;align-items:center;justify-content:center;padding:2rem}.pdf-canvas-container{display:flex;align-items:center;justify-content:center}.pdf-canvas{max-width:100%;height:auto;box-shadow:0 4px 12px #0000004d;border-radius:4px}.document-iframe{width:100%;height:100%;border:none;background:#fff;border-radius:4px}.document-viewer-footer{padding:1rem 1.5rem;background:#0003;border-top:1px solid rgba(255,255,255,.1)}.document-meta{display:flex;gap:1.5rem;margin-bottom:.75rem;flex-wrap:wrap}.meta-item{color:var(--text-secondary, #a0a0a0);font-size:.85rem}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;text-align:center}.error-state{color:#ff6b6b}.error-icon{font-size:2rem}@media(max-width:768px){.dashboard-page{padding:1rem}.dashboard-title-section h1{font-size:2rem}.dashboard-grid{grid-template-columns:1fr}.dashboard-header-content,.section-header{flex-direction:column;align-items:stretch}.modal-content{padding:1.5rem}}@layer reset,tokens,base,layouts,critical-components;@layer reset{*{margin:0;padding:0;box-sizing:border-box}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}@layer tokens{:root{--indigo-50: #eef2ff;--indigo-100: #e0e7ff;--indigo-200: #c7d2fe;--indigo-300: #a5b4fc;--indigo-400: #818cf8;--indigo-500: #6366f1;--indigo-600: #4f46e5;--indigo-700: #4338ca;--indigo-800: #3730a3;--indigo-900: #312e81;--purple-50: #faf5ff;--purple-100: #f3e8ff;--purple-200: #e9d5ff;--purple-300: #d8b4fe;--purple-400: #c084fc;--purple-500: #a855f7;--purple-600: #9333ea;--purple-700: #7c3aed;--purple-800: #6b21a8;--purple-900: #581c87;--cyan-50: #ecfeff;--cyan-100: #cffafe;--cyan-200: #a5f3fc;--cyan-300: #67e8f9;--cyan-400: #22d3ee;--cyan-500: #06b6d4;--cyan-600: #0891b2;--cyan-700: #0e7490;--cyan-800: #155e75;--cyan-900: #164e63;--emerald-50: #ecfdf5;--emerald-100: #d1fae5;--emerald-200: #a7f3d0;--emerald-300: #6ee7b7;--emerald-400: #34d399;--emerald-500: #10b981;--emerald-600: #059669;--emerald-700: #047857;--emerald-800: #065f46;--emerald-900: #064e3b;--amber-50: #fffbeb;--amber-100: #fef3c7;--amber-200: #fde68a;--amber-300: #fcd34d;--amber-400: #fbbf24;--amber-500: #f59e0b;--amber-600: #d97706;--amber-700: #b45309;--amber-800: #92400e;--amber-900: #78350f;--red-50: #fef2f2;--red-100: #fee2e2;--red-200: #fecaca;--red-300: #fca5a5;--red-400: #f87171;--red-500: #ef4444;--red-600: #dc2626;--red-700: #b91c1c;--red-800: #991b1b;--red-900: #7f1d1d;--blue-50: #eff6ff;--blue-100: #dbeafe;--blue-200: #bfdbfe;--blue-300: #93c5fd;--blue-400: #60a5fa;--blue-500: #3b82f6;--blue-600: #2563eb;--blue-700: #1d4ed8;--blue-800: #1e40af;--blue-900: #1e3a8a;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-600: #475569;--slate-700: #334155;--slate-800: #1e293b;--slate-900: #0f172a;--color-primary: var(--indigo-500);--color-primary-hover: var(--indigo-600);--color-primary-active: var(--indigo-700);--color-primary-rgb: 99, 102, 241;--color-secondary: var(--purple-500);--color-secondary-hover: var(--purple-600);--color-secondary-active: var(--purple-700);--color-secondary-rgb: 168, 85, 247;--color-accent: var(--cyan-500);--color-accent-hover: var(--cyan-600);--color-accent-active: var(--cyan-700);--color-success: var(--emerald-500);--color-success-hover: var(--emerald-600);--color-warning: var(--amber-500);--color-warning-hover: var(--amber-600);--color-error: var(--red-500);--color-error-hover: var(--red-600);--color-info: var(--blue-500);--color-info-hover: var(--blue-600);--color-surface: var(--surface-primary);--color-text: var(--text-primary);--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-secondary: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-tertiary: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);--gradient-dark: linear-gradient(135deg, #2d1b69 0%, #11998e 100%);--gradient-aurora: linear-gradient( 135deg, #667eea 0%, #764ba2 50%, #f093fb 100% );--glass-surface: rgba(255, 255, 255, .1);--glass-surface-hover: rgba(255, 255, 255, .15);--glass-surface-strong: rgba(255, 255, 255, .2);--glass-surface-subtle: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .2);--glass-border-strong: rgba(255, 255, 255, .3);--glass-border-subtle: rgba(255, 255, 255, .1);--glass-text: rgba(255, 255, 255, .9);--glass-text-muted: rgba(255, 255, 255, .7);--glass-text-light: rgba(255, 255, 255, .5);--glass-text-strong: rgba(255, 255, 255, 1);--glass-dark: rgba(0, 0, 0, .1);--glass-dark-hover: rgba(0, 0, 0, .15);--glass-dark-strong: rgba(0, 0, 0, .2);--glass-dark-border: rgba(0, 0, 0, .2);--glass-blur: blur(20px);--glass-blur-strong: blur(40px);--glass-blur-subtle: blur(10px);--surface-primary: var(--glass-surface);--surface-secondary: var(--glass-surface-strong);--surface-hover: var(--glass-surface-hover);--surface-glass: var(--glass-surface);--border-primary: var(--glass-border);--border-secondary: var(--glass-border-strong);--border-subtle: var(--glass-border-subtle);--text-primary: var(--glass-text);--text-secondary: var(--glass-text-muted);--text-muted: var(--glass-text-light);--text-strong: var(--glass-text-strong);--bg-primary: var(--gradient-primary);--bg-surface: var(--glass-surface);--bg-panel: var(--glass-surface);--bg-modal: var(--glass-surface-strong);--spacing-0: 0;--spacing-0_5: .125rem;--spacing-1: .25rem;--spacing-1_5: .375rem;--spacing-2: .5rem;--spacing-2_5: .625rem;--spacing-3: .75rem;--spacing-3_5: .875rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-7: 1.75rem;--spacing-8: 2rem;--spacing-9: 2.25rem;--spacing-10: 2.5rem;--spacing-11: 2.75rem;--spacing-12: 3rem;--spacing-14: 3.5rem;--spacing-16: 4rem;--spacing-20: 5rem;--spacing-24: 6rem;--spacing-28: 7rem;--spacing-32: 8rem;--spacing-xs: var(--spacing-1);--spacing-sm: var(--spacing-2);--spacing-md: var(--spacing-4);--spacing-lg: var(--spacing-6);--spacing-xl: var(--spacing-8);--spacing-2xl: var(--spacing-12);--spacing-3xl: var(--spacing-16);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--text-6xl: 3.75rem;--text-7xl: 4.5rem;--text-8xl: 6rem;--text-9xl: 8rem;--font-thin: 100;--font-extralight: 200;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--font-black: 900;--leading-3: .75rem;--leading-4: 1rem;--leading-5: 1.25rem;--leading-6: 1.5rem;--leading-7: 1.75rem;--leading-8: 2rem;--leading-9: 2.25rem;--leading-10: 2.5rem;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--radius-none: 0;--radius-sm: .125rem;--radius-default: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--border-radius: var(--radius-xl);--border-radius-lg: var(--radius-2xl);--border-radius-xl: var(--radius-3xl);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-default: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--shadow-glass: 0 8px 32px 0 rgba(31, 38, 135, .37);--shadow-glass-lg: 0 15px 35px rgba(31, 38, 135, .2), 0 5px 15px rgba(0, 0, 0, .07);--shadow-glass-xl: 0 25px 50px -12px rgba(0, 0, 0, .4);--shadow-primary: 0 10px 15px -3px rgba(var(--color-primary-rgb), .1), 0 4px 6px -2px rgba(var(--color-primary-rgb), .05);--shadow-secondary: 0 10px 15px -3px rgba(var(--color-secondary-rgb), .1), 0 4px 6px -2px rgba(var(--color-secondary-rgb), .05);--z-0: 0;--z-10: 10;--z-20: 20;--z-30: 30;--z-40: 40;--z-50: 50;--z-auto: auto;--z-dropdown: var(--z-10);--z-sticky: var(--z-20);--z-fixed: var(--z-30);--z-modal-backdrop: var(--z-40);--z-modal: var(--z-50);--z-popover: var(--z-50);--z-tooltip: var(--z-50);--z-toolbar: var(--z-30);--z-panel: var(--z-20);--z-overlay: var(--z-40);--z-base: var(--z-0);--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-75: 75ms;--duration-100: .1s;--duration-150: .15s;--duration-200: .2s;--duration-300: .3s;--duration-500: .5s;--duration-700: .7s;--duration-1000: 1s;--transition-fast: var(--duration-150) var(--ease-out);--transition-base: var(--duration-200) var(--ease-in-out);--transition-slow: var(--duration-300) var(--ease-in-out);--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px}[data-theme=solid],.solid-theme{--surface-primary: var(--slate-800);--surface-secondary: var(--slate-700);--surface-hover: var(--slate-600);--bg-surface: var(--slate-800);--bg-panel: var(--slate-700);--bg-modal: var(--slate-800);--border-primary: var(--slate-600);--border-secondary: var(--slate-500);--border-subtle: var(--slate-700);--text-primary: var(--slate-50);--text-secondary: var(--slate-200);--text-muted: var(--slate-400);--text-strong: var(--slate-100);--bg-primary: var(--slate-800);--glass-blur: none;--glass-blur-strong: none;--glass-blur-subtle: none;--solid-bg-primary: var(--surface-primary);--solid-bg-secondary: var(--surface-secondary);--solid-bg-tertiary: var(--slate-600);--solid-bg-hover: var(--surface-hover);--solid-bg-active: var(--slate-500);--solid-border: var(--border-primary);--solid-border-light: var(--border-secondary);--solid-text: var(--text-primary);--solid-text-muted: var(--text-secondary);--solid-text-light: var(--text-muted)}:root{--glass-bg: var(--surface-primary);--glass-surface: var(--surface-primary);--glass-surface-strong: var(--surface-secondary);--glass-surface-weak: var(--surface-subtle);--glass-surface-hover: var(--surface-hover);--glass-border: var(--border-primary);--glass-text: var(--text-primary);--glass-text-secondary: var(--text-secondary);--glass-text-muted: var(--text-secondary);--glass-text-light: var(--text-muted);--glass-hover-bg: var(--surface-hover);--glass-shadow: var(--shadow-glass);--primary-bg: var(--color-primary);--primary-border: var(--color-primary);--primary-text: white;--primary-rgb: var(--color-primary-rgb);--secondary-bg: var(--color-secondary);--secondary-border: var(--color-secondary);--die-color: var(--color-primary);--rotate-x: 0deg;--rotate-y: 0deg;--rotate-z: 0deg;--start-x: 0px;--start-y: 0px;--delay: 0ms}.solid-theme{--glass-bg: var(--surface-primary);--glass-surface: var(--surface-primary);--glass-surface-strong: var(--surface-secondary);--glass-surface-weak: var(--surface-subtle);--glass-surface-hover: var(--surface-hover);--glass-border: var(--border-primary);--glass-text: var(--text-primary);--glass-text-secondary: var(--text-secondary);--glass-text-muted: var(--text-secondary);--glass-text-light: var(--text-muted);--glass-hover-bg: var(--surface-hover);--glass-shadow: var(--shadow-default)}}@layer base;@layer base{:root{--indigo-50: #eef2ff;--indigo-100: #e0e7ff;--indigo-200: #c7d2fe;--indigo-300: #a5b4fc;--indigo-400: #818cf8;--indigo-500: #6366f1;--indigo-600: #4f46e5;--indigo-700: #4338ca;--indigo-800: #3730a3;--indigo-900: #312e81;--purple-50: #faf5ff;--purple-100: #f3e8ff;--purple-200: #e9d5ff;--purple-300: #d8b4fe;--purple-400: #c084fc;--purple-500: #a855f7;--purple-600: #9333ea;--purple-700: #7c3aed;--purple-800: #6b21a8;--purple-900: #581c87;--cyan-50: #ecfeff;--cyan-100: #cffafe;--cyan-200: #a5f3fc;--cyan-300: #67e8f9;--cyan-400: #22d3ee;--cyan-500: #06b6d4;--cyan-600: #0891b2;--cyan-700: #0e7490;--cyan-800: #155e75;--cyan-900: #164e63;--emerald-50: #ecfdf5;--emerald-100: #d1fae5;--emerald-200: #a7f3d0;--emerald-300: #6ee7b7;--emerald-400: #34d399;--emerald-500: #10b981;--emerald-600: #059669;--emerald-700: #047857;--emerald-800: #065f46;--emerald-900: #064e3b;--amber-50: #fffbeb;--amber-100: #fef3c7;--amber-200: #fde68a;--amber-300: #fcd34d;--amber-400: #fbbf24;--amber-500: #f59e0b;--amber-600: #d97706;--amber-700: #b45309;--amber-800: #92400e;--amber-900: #78350f;--red-50: #fef2f2;--red-100: #fee2e2;--red-200: #fecaca;--red-300: #fca5a5;--red-400: #f87171;--red-500: #ef4444;--red-600: #dc2626;--red-700: #b91c1c;--red-800: #991b1b;--red-900: #7f1d1d;--blue-50: #eff6ff;--blue-100: #dbeafe;--blue-200: #bfdbfe;--blue-300: #93c5fd;--blue-400: #60a5fa;--blue-500: #3b82f6;--blue-600: #2563eb;--blue-700: #1d4ed8;--blue-800: #1e40af;--blue-900: #1e3a8a;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-600: #475569;--slate-700: #334155;--slate-800: #1e293b;--slate-900: #0f172a;--color-primary: var(--indigo-500);--color-primary-hover: var(--indigo-600);--color-primary-active: var(--indigo-700);--color-primary-rgb: 99, 102, 241;--color-secondary: var(--purple-500);--color-secondary-hover: var(--purple-600);--color-secondary-active: var(--purple-700);--color-secondary-rgb: 168, 85, 247;--color-accent: var(--cyan-500);--color-accent-hover: var(--cyan-600);--color-accent-active: var(--cyan-700);--color-success: var(--emerald-500);--color-success-hover: var(--emerald-600);--color-warning: var(--amber-500);--color-warning-hover: var(--amber-600);--color-error: var(--red-500);--color-error-hover: var(--red-600);--color-info: var(--blue-500);--color-info-hover: var(--blue-600);--color-surface: var(--surface-primary);--color-text: var(--text-primary);--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-secondary: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-tertiary: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);--gradient-dark: linear-gradient(135deg, #2d1b69 0%, #11998e 100%);--gradient-aurora: linear-gradient( 135deg, #667eea 0%, #764ba2 50%, #f093fb 100% );--glass-surface: rgba(255, 255, 255, .1);--glass-surface-hover: rgba(255, 255, 255, .15);--glass-surface-strong: rgba(255, 255, 255, .2);--glass-surface-subtle: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .2);--glass-border-strong: rgba(255, 255, 255, .3);--glass-border-subtle: rgba(255, 255, 255, .1);--glass-text: rgba(255, 255, 255, .9);--glass-text-muted: rgba(255, 255, 255, .7);--glass-text-light: rgba(255, 255, 255, .5);--glass-text-strong: rgba(255, 255, 255, 1);--glass-dark: rgba(0, 0, 0, .1);--glass-dark-hover: rgba(0, 0, 0, .15);--glass-dark-strong: rgba(0, 0, 0, .2);--glass-dark-border: rgba(0, 0, 0, .2);--glass-blur: blur(20px);--glass-blur-strong: blur(40px);--glass-blur-subtle: blur(10px);--surface-primary: var(--glass-surface);--surface-secondary: var(--glass-surface-strong);--surface-hover: var(--glass-surface-hover);--surface-glass: var(--glass-surface);--border-primary: var(--glass-border);--border-secondary: var(--glass-border-strong);--border-subtle: var(--glass-border-subtle);--text-primary: var(--glass-text);--text-secondary: var(--glass-text-muted);--text-muted: var(--glass-text-light);--text-strong: var(--glass-text-strong);--bg-primary: var(--gradient-primary);--bg-surface: var(--glass-surface);--bg-panel: var(--glass-surface);--bg-modal: var(--glass-surface-strong);--spacing-0: 0;--spacing-0_5: .125rem;--spacing-1: .25rem;--spacing-1_5: .375rem;--spacing-2: .5rem;--spacing-2_5: .625rem;--spacing-3: .75rem;--spacing-3_5: .875rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-7: 1.75rem;--spacing-8: 2rem;--spacing-9: 2.25rem;--spacing-10: 2.5rem;--spacing-11: 2.75rem;--spacing-12: 3rem;--spacing-14: 3.5rem;--spacing-16: 4rem;--spacing-20: 5rem;--spacing-24: 6rem;--spacing-28: 7rem;--spacing-32: 8rem;--spacing-xs: var(--spacing-1);--spacing-sm: var(--spacing-2);--spacing-md: var(--spacing-4);--spacing-lg: var(--spacing-6);--spacing-xl: var(--spacing-8);--spacing-2xl: var(--spacing-12);--spacing-3xl: var(--spacing-16);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--text-6xl: 3.75rem;--text-7xl: 4.5rem;--text-8xl: 6rem;--text-9xl: 8rem;--font-thin: 100;--font-extralight: 200;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--font-black: 900;--leading-3: .75rem;--leading-4: 1rem;--leading-5: 1.25rem;--leading-6: 1.5rem;--leading-7: 1.75rem;--leading-8: 2rem;--leading-9: 2.25rem;--leading-10: 2.5rem;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--radius-none: 0;--radius-sm: .125rem;--radius-default: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--border-radius: var(--radius-xl);--border-radius-lg: var(--radius-2xl);--border-radius-xl: var(--radius-3xl);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-default: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--shadow-glass: 0 8px 32px 0 rgba(31, 38, 135, .37);--shadow-glass-lg: 0 15px 35px rgba(31, 38, 135, .2), 0 5px 15px rgba(0, 0, 0, .07);--shadow-glass-xl: 0 25px 50px -12px rgba(0, 0, 0, .4);--shadow-primary: 0 10px 15px -3px rgba(var(--color-primary-rgb), .1), 0 4px 6px -2px rgba(var(--color-primary-rgb), .05);--shadow-secondary: 0 10px 15px -3px rgba(var(--color-secondary-rgb), .1), 0 4px 6px -2px rgba(var(--color-secondary-rgb), .05);--z-0: 0;--z-10: 10;--z-20: 20;--z-30: 30;--z-40: 40;--z-50: 50;--z-auto: auto;--z-dropdown: var(--z-10);--z-sticky: var(--z-20);--z-fixed: var(--z-30);--z-modal-backdrop: var(--z-40);--z-modal: var(--z-50);--z-popover: var(--z-50);--z-tooltip: var(--z-50);--z-toolbar: var(--z-30);--z-panel: var(--z-20);--z-overlay: var(--z-40);--z-base: var(--z-0);--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-75: 75ms;--duration-100: .1s;--duration-150: .15s;--duration-200: .2s;--duration-300: .3s;--duration-500: .5s;--duration-700: .7s;--duration-1000: 1s;--transition-fast: var(--duration-150) var(--ease-out);--transition-base: var(--duration-200) var(--ease-in-out);--transition-slow: var(--duration-300) var(--ease-in-out);--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px}[data-theme=solid],.solid-theme{--surface-primary: var(--slate-800);--surface-secondary: var(--slate-700);--surface-hover: var(--slate-600);--bg-surface: var(--slate-800);--bg-panel: var(--slate-700);--bg-modal: var(--slate-800);--border-primary: var(--slate-600);--border-secondary: var(--slate-500);--border-subtle: var(--slate-700);--text-primary: var(--slate-50);--text-secondary: var(--slate-200);--text-muted: var(--slate-400);--text-strong: var(--slate-100);--bg-primary: var(--slate-800);--glass-blur: none;--glass-blur-strong: none;--glass-blur-subtle: none;--solid-bg-primary: var(--surface-primary);--solid-bg-secondary: var(--surface-secondary);--solid-bg-tertiary: var(--slate-600);--solid-bg-hover: var(--surface-hover);--solid-bg-active: var(--slate-500);--solid-border: var(--border-primary);--solid-border-light: var(--border-secondary);--solid-text: var(--text-primary);--solid-text-muted: var(--text-secondary);--solid-text-light: var(--text-muted)}:root{--glass-bg: var(--surface-primary);--glass-surface: var(--surface-primary);--glass-surface-strong: var(--surface-secondary);--glass-surface-weak: var(--surface-subtle);--glass-surface-hover: var(--surface-hover);--glass-border: var(--border-primary);--glass-text: var(--text-primary);--glass-text-secondary: var(--text-secondary);--glass-text-muted: var(--text-secondary);--glass-text-light: var(--text-muted);--glass-hover-bg: var(--surface-hover);--glass-shadow: var(--shadow-glass);--primary-bg: var(--color-primary);--primary-border: var(--color-primary);--primary-text: white;--primary-rgb: var(--color-primary-rgb);--secondary-bg: var(--color-secondary);--secondary-border: var(--color-secondary);--die-color: var(--color-primary);--rotate-x: 0deg;--rotate-y: 0deg;--rotate-z: 0deg;--start-x: 0px;--start-y: 0px;--delay: 0ms}.solid-theme{--glass-bg: var(--surface-primary);--glass-surface: var(--surface-primary);--glass-surface-strong: var(--surface-secondary);--glass-surface-weak: var(--surface-subtle);--glass-surface-hover: var(--surface-hover);--glass-border: var(--border-primary);--glass-text: var(--text-primary);--glass-text-secondary: var(--text-secondary);--glass-text-muted: var(--text-secondary);--glass-text-light: var(--text-muted);--glass-hover-bg: var(--surface-hover);--glass-shadow: var(--shadow-default)}}@layer base;@layer base{*{margin:0;padding:0;box-sizing:border-box}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}@layer base{:root{--button-text-color: white}.glass-button.primary,.glass-button.secondary{color:var(--button-text-color)}body{position:relative;min-height:100vh;font-family:var(--font-sans);color:var(--text-primary);line-height:var(--leading-normal);background:var(--bg-primary);background-attachment:fixed}body:before{position:fixed;z-index:-1;top:0;left:0;width:100%;height:100%;content:"";background:radial-gradient(circle at 20% 50%,rgba(120,119,198,.3) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,119,198,.3) 0%,transparent 50%),radial-gradient(circle at 40% 80%,rgba(120,219,255,.3) 0%,transparent 50%);animation:float 20s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-20px) rotate(1deg)}66%{transform:translateY(10px) rotate(-1deg)}}#root{position:relative;z-index:1;min-height:100vh}.glass-panel{border:1px solid var(--border-primary);border-radius:var(--border-radius);background:var(--surface-primary);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-glass)}.glass-button{display:inline-flex;align-items:center;cursor:pointer;gap:var(--spacing-2);padding:.5rem;border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);text-decoration:none;-webkit-backdrop-filter:var(--glass-blur-subtle);background:var(--surface-primary);backdrop-filter:var(--glass-blur-subtle);transition:all var(--transition-fast)}.glass-button:hover{transform:translateY(-1px);background:var(--surface-hover);border-color:var(--border-secondary)}.glass-button.primary{background:var(--color-primary);border-color:var(--color-primary)}.glass-button.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.player-bar{display:flex;align-items:center;overflow:hidden;gap:var(--spacing-4);padding:var(--spacing-2) var(--spacing-3);max-height:52px}.connected-players{display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;gap:var(--spacing-3);flex-wrap:nowrap}.player-indicator{display:flex;align-items:center;flex-shrink:0;gap:var(--spacing-2);padding:var(--spacing-1) var(--spacing-2);white-space:nowrap}.host-badge{padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.05em}.player-info{display:flex;align-items:center;gap:var(--spacing-3)}.player-avatar{display:flex;align-items:center;justify-content:center;width:var(--spacing-8);height:var(--spacing-8);border:2px solid var(--border-primary);border-radius:var(--radius-full);font-size:var(--text-lg);background:var(--surface-secondary)}.player-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.player-role{font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.loading-spinner{display:inline-block;width:var(--spacing-4);height:var(--spacing-4);border:2px solid transparent;border-top:2px solid currentColor;border-radius:var(--radius-full);animation:spin var(--duration-1000) linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.solid-theme body{background:var(--bg-primary)}.solid-theme body:before{display:none}.solid-theme .glass-panel,.solid-theme .glass-button{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:var(--shadow-default)}}@layer layouts{:root{--header-height: 60px}.game-layout{width:100vw;height:100vh;position:fixed;top:0;left:0;display:grid!important;grid-template-rows:var(--header-height) 1fr;grid-template-columns:1fr var(--sidebar-width, 300px);grid-template-areas:"header header" "scene panel";background:var(--bg-primary);overflow:hidden;transition:grid-template-columns .1s ease-out}.game-layout[data-panel-expanded=false]{grid-template-columns:1fr var(--sidebar-width, 60px);grid-template-areas:"header header" "scene panel"}.game-layout-empty{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.layout-header{grid-area:header;display:flex;align-items:center;justify-content:space-between;-webkit-backdrop-filter:var(--glass-blur);background:var(--surface-primary);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border-primary);padding:var(--spacing-2) var(--spacing-4);z-index:var(--z-sticky);gap:var(--spacing-4);min-height:var(--header-height)}.header-left{flex:0 0 auto}.header-center{flex:1 1 auto;display:flex;justify-content:center}.header-right{flex:1 1 auto;display:flex;justify-content:flex-end;align-items:center}.layout-scene{grid-area:scene;display:grid;grid-template-rows:auto 1fr;grid-template-areas:"scene-tabs" "scene-content";position:relative;overflow:hidden;background:var(--bg-surface)}.scene-content{grid-area:scene-content;position:relative;background:var(--bg-surface);overflow:hidden;z-index:1}.scene-canvas-container{width:100%;height:100%;position:relative;overflow:hidden}.scene-canvas{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none}.scene-tab-bar{grid-area:scene-tabs;display:flex;align-items:center;background:var(--surface-primary);border-bottom:1px solid var(--border-primary);-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);padding:var(--spacing-1) var(--spacing-4);min-height:var(--spacing-12)}.scene-tabs{display:flex;align-items:center;gap:var(--spacing-1);flex:1;overflow-x:auto;-ms-overflow-style:none;list-style:none;margin:0;padding:0}.scene-tabs::-webkit-scrollbar{display:none}@supports (scrollbar-width: none){.scene-tabs{scrollbar-width:none}}.scene-tab{position:relative;display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius) var(--border-radius) 0 0;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium);white-space:nowrap;min-width:120px;max-width:200px}.scene-tab.active{background:var(--bg-surface);color:var(--text-primary);border-bottom-color:var(--bg-surface);z-index:1}.scene-tab:hover:not(.active){background:var(--surface-hover);color:var(--text-primary)}.scene-tab input[type=radio]{display:none}.scene-tab input[type=radio]:checked~.scene-label{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #6366f14d;border-radius:var(--border-radius);padding:var(--spacing-2) var(--spacing-4)}.scene-tab label{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.scene-tab label:hover{background:var(--surface-hover)}.scene-remove{padding:var(--spacing-1);border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--border-radius);transition:all var(--transition-fast);font-size:var(--text-xs);opacity:0;margin-left:var(--spacing-1)}.scene-tab:hover .scene-remove{opacity:1}.scene-remove:hover{background:var(--color-error);color:#fff}.layout-panel{grid-area:panel;background:var(--surface-primary);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-left:1px solid var(--border-primary);display:grid;grid-template-rows:auto 1fr;overflow:hidden;position:relative;box-shadow:-4px 0 20px #0000001a;z-index:var(--z-panel);height:100%;max-height:100vh}.layout-panel.positioned{position:fixed!important;bottom:auto!important;right:auto!important;height:600px;max-height:calc(100vh - 20px);border-radius:var(--border-radius-lg);border:1px solid var(--border-primary);box-shadow:var(--shadow-glass-xl)}.layout-panel.dragging{opacity:.9;box-shadow:0 10px 40px #0000004d;transform:scale(1.02);transition:none!important;height:100%;max-height:100vh}.layout-panel.resetting{transition:all .3s cubic-bezier(.4,0,.2,1)!important;height:100%;max-height:100vh}.panel-drag-handle{padding:var(--spacing-3);cursor:grab;background:var(--surface-secondary);border-bottom:1px solid var(--border-primary);text-align:center;transition:all var(--transition-base);-webkit-user-select:none;user-select:none;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden}.panel-drag-handle:hover{background:var(--surface-hover)}.panel-drag-handle:active{cursor:grabbing;background:var(--surface-secondary)}.panel-drag-handle:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff1a;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s,height .3s}.panel-drag-handle:hover:after{width:100px;height:100px}.sidebar-resize-handle{position:absolute;left:-6px;top:0;bottom:0;width:12px;cursor:ew-resize;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1) 25%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.1) 75%,transparent);border-left:2px solid rgba(255,255,255,.1);transition:all var(--transition-base);z-index:10}.sidebar-resize-handle:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:4px;height:40px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.3) 20%,rgba(255,255,255,.6) 50%,rgba(255,255,255,.3) 80%,transparent);border-radius:2px;opacity:.7;transition:all var(--transition-base)}.sidebar-resize-handle:hover{background:linear-gradient(90deg,transparent,rgba(255,255,255,.15) 25%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.15) 75%,transparent);border-left-color:#ffffff4d;box-shadow:0 0 10px #ffffff1a}.sidebar-resize-handle:hover:before{opacity:1;height:60px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.5) 20%,rgba(255,255,255,.8) 50%,rgba(255,255,255,.5) 80%,transparent)}.sidebar-resize-handle:active{background:linear-gradient(90deg,transparent,rgba(255,255,255,.2) 25%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.2) 75%,transparent);border-left-color:#ffffff80;box-shadow:0 0 15px #fff3}.sidebar-resize-handle:active:before{opacity:1;transform:translate(-50%,-50%) scale(1.1)}.sidebar-resize-handle.dragging{background:linear-gradient(90deg,transparent,rgba(99,102,241,.3) 25%,rgba(99,102,241,.5) 50%,rgba(99,102,241,.3) 75%,transparent);border-left-color:#6366f199}.sidebar-resize-handle.dragging:before{opacity:1;background:linear-gradient(to bottom,transparent,rgba(99,102,241,.6) 20%,rgba(99,102,241,.9) 50%,rgba(99,102,241,.6) 80%,transparent)}.horizontal-panel-tabs{display:flex;align-items:center;gap:var(--spacing-1);list-style:none;margin:0;padding:0}.horizontal-panel-tab{position:relative}.horizontal-panel-tab label{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--border-radius);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent;font-size:var(--text-sm);font-weight:var(--font-medium);-webkit-user-select:none;user-select:none}.horizontal-panel-tab input[type=radio]{display:none}.horizontal-panel-tab input[type=radio]:checked+span,.horizontal-panel-tab input[type=radio]:checked~span{background:var(--surface-primary);color:var(--text-primary);border-color:var(--border-primary)}.horizontal-panel-tab:hover label{background:var(--surface-hover);color:var(--text-primary)}.panel-icon{font-size:var(--text-base);width:var(--spacing-5);text-align:center;flex-shrink:0}.panel-label{font-size:var(--text-sm);font-weight:var(--font-medium);white-space:nowrap}.horizontal-panel-toggle{margin-left:var(--spacing-2)}.horizontal-panel-toggle button{padding:var(--spacing-2) var(--spacing-3);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base)}.horizontal-panel-toggle button:hover{background:var(--surface-hover)}.toggle-icon{font-size:var(--text-lg);font-weight:var(--font-bold)}.context-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}.context-panel__content{flex:1;overflow-y:auto}.context-panel__body{padding:var(--spacing-6);display:flex;flex-direction:column;min-height:0;flex:1}.context-panel__collapsed-content{padding:var(--spacing-4);display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.context-panel__collapsed-icon{font-size:var(--text-2xl);color:var(--text-muted)}.panel-section{margin-bottom:var(--spacing-8)}.panel-section h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-2);border-bottom:1px solid var(--border-primary)}.lobby-panel__section{margin-bottom:var(--spacing-4)}.lobby-panel__section h3{margin-bottom:var(--spacing-2);font-size:var(--text-lg)}.lobby-panel__online-controls{margin-top:var(--spacing-2)}.lobby-panel__room-code-input-group{margin-bottom:var(--spacing-2)}.lobby-panel__help-text{margin-bottom:var(--spacing-3);font-size:var(--text-sm)}.lobby-panel__room-info-grid{gap:var(--spacing-3);margin-bottom:var(--spacing-3)}.lobby-panel__room-info-item{margin-bottom:0}.lobby-panel__players-list{gap:var(--spacing-2)}.lobby-panel__actions{margin-top:var(--spacing-3)}.lobby-panel .glass-panel{padding:var(--spacing-4)}.lobby-panel .glass-panel h3{margin-bottom:var(--spacing-3);font-size:var(--text-lg)}.lobby-panel .glass-panel.info{padding:var(--spacing-3)}.lobby-panel .glass-panel.info ul{margin:var(--spacing-2) 0 0 0;padding-left:var(--spacing-4)}.lobby-panel .glass-panel.info li{margin-bottom:var(--spacing-1);font-size:var(--text-sm)}.lobby-panel__online-controls{display:flex;flex-direction:column;gap:var(--spacing-3)}.lobby-panel__online-controls .lobby-panel__help-text{margin:0 0 var(--spacing-1) 0;font-size:var(--text-sm);line-height:1.4}.lobby-panel__room-code-input-group{margin:0}.lobby-panel .glass-button.primary{align-self:flex-start;min-width:180px}.game-toolbar{display:flex;background:#1e293b99;-webkit-backdrop-filter:var(--glass-blur-strong);backdrop-filter:var(--glass-blur-strong);border:1px solid var(--border-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-glass-lg);transition:all var(--transition-base);pointer-events:auto}.game-toolbar.floating{transform:translate(var(--tw-translate-x, 0),var(--tw-translate-y, 0))}.game-toolbar.docked{width:auto;max-width:none;border-radius:var(--border-radius);justify-content:flex-start;margin:0;padding:var(--spacing-2) var(--spacing-3)}.game-toolbar.docked .toolbar-content{width:auto}.toolbar-docked-layout{display:flex;flex-direction:column;gap:var(--spacing-2)}.toolbar-docked-row{display:flex;align-items:center;gap:var(--spacing-1);flex-wrap:nowrap}.game-toolbar.docked .toolbar-btn{display:flex;align-items:center;justify-content:center;padding:var(--spacing-3);min-width:48px;min-height:48px}.game-toolbar.docked .tool-icon{font-size:var(--text-xl)}.game-toolbar.docked .toolbar-btn[title]:hover:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#000000e6;color:#fff;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--border-radius);font-size:var(--text-sm);white-space:nowrap;pointer-events:none;margin-bottom:var(--spacing-2);z-index:1000}@media(max-width:1400px){.game-toolbar.docked .toolbar-btn{padding:var(--spacing-2);min-width:40px;min-height:40px}.game-toolbar.docked .tool-icon{font-size:var(--text-lg)}}@media(max-width:1100px){.toolbar-docked-row{flex-wrap:wrap}.game-toolbar.docked .toolbar-btn{padding:var(--spacing-2);min-width:36px;min-height:36px}.game-toolbar.docked .tool-icon{font-size:var(--text-base)}}.game-toolbar.positioned{transform:translate(calc(-50% + var(--tw-translate-x, 0px)),var(--tw-translate-y, 0))!important}.game-toolbar.dragging{opacity:.9;box-shadow:0 10px 40px #0000004d;transform:translate(calc(-50% + var(--tw-translate-x, 0px)),var(--tw-translate-y, 0)) scale(1.02);cursor:grabbing!important;transition:none!important}.game-toolbar.resetting{transition:all .3s cubic-bezier(.4,0,.2,1)!important}.toolbar-controls{display:flex;flex-direction:column;background:var(--surface-secondary);border-right:1px solid var(--border-primary);border-radius:var(--border-radius) 0 0 var(--border-radius);align-self:stretch}.toolbar-drag-handle{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2);cursor:grab;transition:all var(--transition-base);-webkit-user-select:none;user-select:none;flex:1;position:relative;overflow:hidden}.toolbar-drag-handle:hover{background:var(--surface-hover)}.toolbar-drag-handle:active{cursor:grabbing;background:var(--surface-secondary)}.toolbar-drag-handle:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff1a;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s,height .3s}.toolbar-drag-handle:hover:after{width:100px;height:100px}.compact-toggle{display:flex;align-items:center;justify-content:center;padding:var(--spacing-1);background:transparent;border:none;border-top:1px solid var(--border-primary);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.compact-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.compact-toggle:active{transform:scale(.95)}.compact-icon{font-size:var(--text-sm);line-height:1}.drag-dots{display:block;font-size:var(--text-base);color:var(--text-muted);-webkit-user-select:none;user-select:none;line-height:1;writing-mode:vertical-lr}.toolbar-content{display:flex;flex-direction:column;padding:var(--spacing-1)}.toolbar-row{display:flex;align-items:center;gap:var(--spacing-1)}.toolbar-row-secondary{border-top:1px solid var(--border-primary);padding-top:var(--spacing-1);margin-top:var(--spacing-1)}.toolbar-group{display:flex;align-items:center;gap:var(--spacing-1)}.camera-group{margin-left:auto}.toolbar-btn{padding:var(--spacing-2);border:1px solid transparent;background:transparent;color:var(--text-primary);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-sm);display:flex;align-items:center;justify-content:center;min-width:28px;height:28px;-webkit-user-select:none;user-select:none}.toolbar-btn:hover{background:var(--surface-hover);border-color:var(--border-primary)}.toolbar-btn:active{transform:scale(.95)}.toolbar-btn.active{background:var(--surface-secondary);border-color:#ffffff4d;box-shadow:inset 0 2px 6px #0003}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-separator{width:1px;height:24px;background:var(--border-primary);margin:0 var(--spacing-1);opacity:.5}.tool-icon{font-size:var(--text-sm);line-height:1;display:flex;align-items:center;justify-content:center}.zoom-display{min-width:50px!important;font-family:JetBrains Mono,monospace;padding:var(--spacing-2) var(--spacing-3)!important}.zoom-text{font-weight:var(--font-semibold);font-size:var(--text-xs);color:var(--text-primary)}.layout-players{position:absolute;top:var(--spacing-4);left:50%;transform:translate(-50%);z-index:var(--z-overlay)}.player-bar{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-2) var(--spacing-3);background:var(--surface-primary);-webkit-backdrop-filter:var(--glass-blur-strong);backdrop-filter:var(--glass-blur-strong);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-glass-lg);max-height:calc(var(--header-height) - var(--spacing-4));overflow:hidden}.connected-players{display:flex;align-items:center;gap:var(--spacing-3);flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.player-indicator{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-1) var(--spacing-2);background:var(--surface-secondary);border-radius:var(--border-radius-md);white-space:nowrap;flex-shrink:0}.host-badge{font-size:var(--text-xs);font-weight:var(--font-bold);color:#fff;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-sm);text-transform:uppercase;letter-spacing:.05em}.player-info{display:flex;align-items:center;gap:var(--spacing-3)}.player-avatar{width:var(--spacing-8);height:var(--spacing-8);border-radius:var(--radius-full);background:var(--surface-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);border:2px solid var(--border-primary);font-weight:var(--font-bold);color:var(--text-primary)}.player-avatar.host-avatar{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff}.player-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-2)}.player-role{font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.player-token{width:40px;height:40px;border-radius:50%;background:var(--surface-secondary);border:2px solid var(--border-primary);display:flex;align-items:center;justify-content:center;font-weight:var(--font-bold);font-size:var(--text-lg);color:var(--text-primary);transition:all var(--transition-base);cursor:pointer}.player-token:hover{transform:scale(1.1);box-shadow:var(--shadow-md)}.player-token.host{border-color:var(--color-primary);background:linear-gradient(135deg,#6366f133,#8b5cf633)}.player-token.connected{border-color:var(--color-success)}.player-token.disconnected{opacity:.5;border-color:var(--color-error)}.game-toolbar.compact .toolbar-btn{padding:var(--spacing-1);min-width:28px;height:28px;font-size:var(--text-xs)}.game-toolbar.compact .tool-icon{font-size:var(--text-xs)}.game-toolbar.compact .toolbar-separator{height:20px;margin:0 calc(var(--spacing-1) * .5)}.game-toolbar.compact .toolbar-content{padding:calc(var(--spacing-1) * .5)}.game-toolbar.compact .toolbar-row{gap:calc(var(--spacing-1) * .5)}.game-toolbar.compact .toolbar-group{gap:calc(var(--spacing-1) * .25)}.game-toolbar:not(.dragging):hover,.layout-panel:not(.dragging):hover{box-shadow:0 6px 24px #00000026;height:100%;max-height:100vh}.dragging *{user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}@media(prefers-reduced-motion:reduce){.game-toolbar,.layout-panel,.scene-tab,.horizontal-panel-tab,.toolbar-btn,.panel-drag-handle,.toolbar-drag-handle{transition:none!important}.layout-panel{height:100%;max-height:100vh}.toolbar-drag-handle:after,.panel-drag-handle:after{transition:none!important}}.scene-tab:focus-visible,.horizontal-panel-tab:focus-visible,.toolbar-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.token-search-input::placeholder{color:var(--glass-text-muted);opacity:1}.modal-backdrop{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--spacing-4)}.character-creation-wizard.character-wizard-modal{position:fixed!important;inset:0;z-index:var(--z-modal)!important;display:flex;align-items:center;justify-content:center;padding:var(--spacing-4)}.character-wizard-modal .modal-backdrop{position:absolute;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:0}.character-wizard-modal .wizard-container{max-width:1200px;max-height:90vh;width:100%;background:var(--solid-bg-primary, var(--surface-primary, #ffffff));border:1px solid var(--solid-border, var(--border-primary, #d1d5db));border-radius:var(--border-radius-lg);box-shadow:var(--shadow-glass-xl);overflow:hidden;position:relative;z-index:1}.character-wizard-fullpage .wizard-container{background:var(--solid-bg-primary, #ffffff);width:100%;height:100vh;background:var(--solid-bg-primary, var(--surface-primary));position:relative}@media(max-width:768px){.modal-backdrop,.character-creation-wizard.character-wizard-modal{padding:var(--spacing-2)}.character-wizard-modal .wizard-container{max-height:95vh;border-radius:var(--border-radius)}}.documents-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.documents-panel-header{padding:1rem;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.documents-panel-header h3{margin:0 0 .25rem;font-size:1.25rem;color:var(--text-primary, #e5e5e5)}.panel-description{margin:0;font-size:.85rem;color:var(--text-secondary, #a0a0a0)}.documents-search{padding:1rem;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.search-input-wrapper{position:relative}.search-input{width:100%;padding:.75rem 2.5rem .75rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary, #e5e5e5);font-size:.9rem;transition:all .2s ease}.search-input:focus{outline:none;border-color:#667eea80;background:#ffffff14}.search-clear-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-secondary, #a0a0a0);cursor:pointer;padding:.5rem;font-size:1rem;line-height:1;transition:color .2s ease}.search-clear-btn:hover{color:var(--text-primary, #e5e5e5)}.documents-filter{padding:0 1rem 1rem}.type-filter-select{width:100%;padding:.75rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary, #e5e5e5);font-size:.9rem;cursor:pointer;transition:all .2s ease}.type-filter-select:focus{outline:none;border-color:#667eea80;background:#ffffff14}.quick-results{padding:0 1rem;margin-bottom:1rem}.quick-results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:.5rem 0;border-bottom:1px solid rgba(102,126,234,.3)}.quick-results-header span{font-size:.85rem;font-weight:500;color:var(--text-primary, #e5e5e5)}.result-count{background:#667eea33;padding:.25rem .75rem;border-radius:12px;color:#a5b4fc}.quick-result-item{display:flex;gap:.75rem;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease}.quick-result-item:hover{background:#ffffff0f;border-color:#667eea66;transform:translate(4px)}.result-icon{font-size:1.25rem;flex-shrink:0}.result-content{flex:1;min-width:0}.result-title{font-weight:500;color:var(--text-primary, #e5e5e5);margin-bottom:.25rem;font-size:.9rem}.result-snippet{font-size:.8rem;color:var(--text-secondary, #a0a0a0);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.documents-list{flex:1;overflow-y:auto;padding:0 1rem 1rem}.document-list-item{display:flex;gap:.75rem;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease}.document-list-item:hover{background:#ffffff0f;border-color:#667eea66;transform:translate(4px)}.document-icon{font-size:1.5rem;flex-shrink:0;line-height:1}.document-info{flex:1;min-width:0}.document-title{font-weight:500;color:var(--text-primary, #e5e5e5);margin-bottom:.25rem;font-size:.95rem}.document-desc{font-size:.8rem;color:var(--text-secondary, #a0a0a0);line-height:1.4;margin-bottom:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.document-tags-compact{display:flex;gap:.25rem;flex-wrap:wrap}.tag-compact{padding:.15rem .5rem;background:#667eea26;border-radius:8px;font-size:.7rem;color:#a5b4fc}.documents-pagination{padding:.75rem 1rem;border-top:1px solid var(--border-primary, rgba(255, 255, 255, .1));text-align:center}.pagination-text{font-size:.85rem;color:var(--text-secondary, #a0a0a0)}.panel-loading,.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.panel-empty .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.6}.panel-empty p{margin:.5rem 0;color:var(--text-secondary, #a0a0a0)}.panel-empty .empty-hint{font-size:.85rem;opacity:.7}}@layer critical-components{:root{--toolbar-padding: 8px;--toolbar-border-radius: 12px;--toolbar-min-width: 200px;--toolbar-section-gap: 12px;--toolbar-button-gap: 4px;--toolbar-button-padding: 8px 12px;--toolbar-button-border-radius: 8px;--toolbar-button-font-size: 13px;--toolbar-icon-size: 16px;--toolbar-icon-width: 20px;--toolbar-label-font-size: 13px;--toolbar-section-label-font-size: 11px;--toolbar-section-label-spacing: .5px;--toolbar-section-label-margin: 6px}.game-toolbar.compact{--toolbar-padding: 3px;--toolbar-border-radius: 6px;--toolbar-min-width: 140px;--toolbar-section-gap: 6px;--toolbar-button-gap: 2px;--toolbar-button-padding: 4px 6px;--toolbar-button-border-radius: 4px;--toolbar-button-font-size: 11px;--toolbar-icon-size: 14px;--toolbar-icon-width: 16px;--toolbar-label-font-size: 10px;--toolbar-section-label-font-size: 9px;--toolbar-section-label-spacing: .3px;--toolbar-section-label-margin: 3px}.layout-toolbar{position:absolute;bottom:var(--spacing-4);left:50%;transform:translate(-50%);z-index:var(--z-toolbar);display:flex;flex-direction:column;align-items:flex-start;gap:0}.layout-toolbar>*{flex:0 0 auto}#toolbar-info-banner{box-sizing:border-box;background:var(--glass-surface-strong);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);color:var(--glass-text);font-family:sans-serif;padding:8px 16px;margin:0 8px;border-radius:6px;border:1px solid var(--glass-border);min-height:38px;display:flex;left:0;align-items:flex-start;justify-content:space-between;transition:all .2s ease-out;pointer-events:auto}#toolbar-info-banner .shortcut{background-color:var(--glass-surface);color:var(--glass-text-muted);padding:2px 8px;border-radius:4px;border:1px solid var(--glass-border);font-size:12px;font-weight:600;font-family:monospace}.game-toolbar{display:grid;grid-template-rows:auto auto;gap:4px;padding:4px;background-color:var(--glass-surface-strong);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);border:1px solid var(--glass-border);border-radius:8px;pointer-events:auto;align-self:center}.toolbar-row{display:flex;flex-direction:row;gap:4px}.toolbar-btn{display:flex;align-items:center;justify-content:center;height:40px;width:40px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:linear-gradient(to bottom,#ffffff0d,#fff0);color:var(--glass-text-muted);font-size:16px;transition:all .15s ease;aspect-ratio:1 / 1;box-shadow:inset 0 1px 1px #ffffff1a,0 2px 4px #0000004d}.toolbar-btn:hover{border-color:#fff3;background:linear-gradient(to bottom,#ffffff1a,#ffffff0d);transform:translateY(-1px);box-shadow:inset 0 1px 1px #fff3,0 4px 8px #0006}.toolbar-btn:active{transform:translateY(1px) scale(.98);box-shadow:inset 0 2px 4px #0000004d}.toolbar-btn.active{background:linear-gradient(135deg,var(--color-primary),rgba(var(--color-primary-rgb, 0, 188, 212),.8));border:2px solid var(--color-primary);color:#fff;box-shadow:inset 0 1px 2px #ffffff4d,0 0 0 2px rgba(var(--color-primary-rgb, 0, 188, 212),.2),0 4px 12px rgba(var(--color-primary-rgb, 0, 188, 212),.4);transform:translateY(0);font-weight:600;animation:activePulse 2s ease-in-out infinite}.toolbar-btn.active:hover{background:linear-gradient(135deg,var(--color-primary),rgba(var(--color-primary-rgb, 0, 188, 212),.9));transform:translateY(-1px);box-shadow:inset 0 1px 2px #fff6,0 0 0 2px rgba(var(--color-primary-rgb, 0, 188, 212),.3),0 6px 16px rgba(var(--color-primary-rgb, 0, 188, 212),.5);animation:none}.toolbar-btn.disabled{cursor:not-allowed;opacity:.5}.toolbar-btn.disabled:hover{transform:none;background:transparent;border-color:transparent;box-shadow:none}.toolbar-btn.dm-only:before{position:absolute;z-index:1;top:-2px;left:-2px;padding:var(--spacing-1);border-radius:var(--border-radius);content:"👑";font-size:var(--text-xs);background:#000c}.tool-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--toolbar-icon-width);font-size:32px;text-align:center}.tool-label{display:none}.style-panel{position:absolute;z-index:calc(var(--z-toolbar) + 1);top:0;left:calc(100% + var(--spacing-2));min-width:200px;padding:var(--spacing-4);border:1px solid var(--border-primary);border-radius:var(--border-radius);background:var(--surface-primary);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-glass-lg);animation:slideIn var(--duration-300) ease-out}.style-section{margin-bottom:var(--spacing-4)}.style-section:last-child{margin-bottom:0}.style-section h4{margin:0 0 var(--spacing-3) 0;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.style-controls{display:flex;flex-direction:column;gap:var(--spacing-3)}.style-controls label{display:flex;flex-direction:column;gap:var(--spacing-1);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-secondary)}.style-controls input,.style-controls select{padding:var(--spacing-2);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);font-size:var(--text-sm);background:var(--surface-secondary);transition:border-color var(--transition-fast)}.style-controls input:focus,.style-controls select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.style-controls input[type=color]{width:40px;height:32px;padding:2px;cursor:pointer}.style-controls input[type=range]{-webkit-appearance:none;appearance:none;height:6px;background:var(--surface-secondary);border-radius:3px;outline:none}.style-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer}.style-controls input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer;border:none}.dm-panel{position:absolute;top:0;left:calc(100% + var(--spacing-2));background:var(--surface-primary);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-primary);border-radius:var(--border-radius);padding:var(--spacing-4);box-shadow:var(--shadow-glass-lg);min-width:180px;z-index:calc(var(--z-toolbar) + 1);animation:slideIn var(--duration-300) ease-out}.dm-section{margin-bottom:var(--spacing-4)}.dm-section:last-child{margin-bottom:0}.dm-section h4{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin:0 0 var(--spacing-3) 0}.dm-controls{display:flex;flex-direction:column;gap:var(--spacing-3)}.dm-controls label{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.dm-controls input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary)}.dm-quick-actions{display:flex;flex-direction:column;gap:var(--spacing-2);margin-top:var(--spacing-3)}.btn.btn-small{padding:var(--spacing-1) var(--spacing-3);font-size:var(--text-xs);border-radius:var(--border-radius);border:1px solid var(--border-primary);background:var(--surface-secondary);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);font-weight:var(--font-medium)}.btn.btn-small:hover{background:var(--surface-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn.btn-danger{border-color:var(--color-error);color:var(--color-error)}.btn.btn-danger:hover{background:var(--color-error);color:#fff}.dice-buttons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-1)}.dice-buttons-grid .toolbar-btn{min-width:0;justify-content:center;aspect-ratio:1}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes activePulse{0%,to{box-shadow:inset 0 1px 2px #ffffff4d,0 0 0 2px rgba(var(--color-primary-rgb, 0, 188, 212),.2),0 4px 12px rgba(var(--color-primary-rgb, 0, 188, 212),.4)}50%{box-shadow:inset 0 1px 2px #ffffff4d,0 0 0 3px rgba(var(--color-primary-rgb, 0, 188, 212),.4),0 4px 16px rgba(var(--color-primary-rgb, 0, 188, 212),.6)}}@media(prefers-reduced-motion:reduce){.game-toolbar,.style-panel,.dm-panel,.toolbar-btn,.toolbar-btn.active{animation:none;transition:none}.toolbar-btn:hover:not(.disabled),.toolbar-btn.active:hover{transform:none}.btn.btn-small:hover{transform:none}}.toolbar-btn:focus-visible,.btn.btn-small:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.solid-theme .game-toolbar,.solid-theme .style-panel,.solid-theme .dm-panel{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface-primary);box-shadow:var(--shadow-default)}.solid-theme .toolbar-btn:hover:not(.disabled){background:var(--surface-hover);box-shadow:var(--shadow-sm)}.solid-theme .style-controls input,.solid-theme .style-controls select{background:var(--surface-secondary)}.toolbar-btn[data-id=zoom-in] .tool-icon,.toolbar-btn[data-id=zoom-out] .tool-icon{font-size:16px}}@layer critical-components{.settings-container{display:flex;flex-direction:column;flex:1;height:100%;max-width:900px;width:100%;min-height:0}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--border-primary)}.settings-header h2{margin:0;font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text-primary)}.settings-actions{display:flex;align-items:center;gap:var(--spacing-4)}.settings-content{display:flex;flex-direction:column;flex:1;overflow-y:auto;gap:var(--spacing-10);min-height:0}.settings-section{padding:var(--spacing-6);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);background:var(--surface-primary);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-glass);animation:glassAppear var(--duration-500) ease-out}.settings-section-header{margin-bottom:var(--spacing-2);padding-bottom:var(--spacing-2);border-bottom:1px solid var(--border-primary)}.settings-section-header h3{margin:0 0 var(--spacing-2) 0;font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--text-primary)}.settings-description{margin:0;font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed)}.settings-section-content{display:flex;flex-direction:column;gap:var(--spacing-6)}.setting-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-8);padding:var(--spacing-4) 0}.setting-item:not(:last-child){border-bottom:1px solid var(--border-subtle)}.setting-label{flex:1;min-width:0}.setting-name{display:block;margin-bottom:var(--spacing-1);font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary)}.setting-desc{display:block;font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal)}.setting-control{flex-shrink:0;min-width:120px}.setting-select,.setting-input{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);font-size:var(--text-sm);background:var(--surface-secondary);-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--transition-base)}.setting-select:focus,.setting-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1);background:var(--surface-hover)}.setting-input[type=number]{text-align:center}.setting-toggle{position:relative;display:inline-block;width:60px;height:34px}.setting-toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;border:1px solid var(--border-primary);border-radius:34px;background:var(--surface-secondary);-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--duration-300)}.toggle-slider:before{position:absolute;left:3px;bottom:3px;height:26px;width:26px;border-radius:50%;content:"";background:#fff;box-shadow:var(--shadow-sm);transition:all var(--duration-300)}input:checked+.toggle-slider{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border-color:var(--color-primary)}input:focus+.toggle-slider{box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}input:checked+.toggle-slider:before{transform:translate(26px)}input:disabled+.toggle-slider{cursor:not-allowed;opacity:.5}.volume-control{display:flex;align-items:center;gap:var(--spacing-4)}.volume-slider{flex:1;outline:none;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;border:1px solid var(--border-primary);background:var(--surface-secondary)}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;cursor:pointer;height:20px;width:20px;border-radius:50%;border:2px solid white;background:var(--color-primary);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.volume-slider::-moz-range-thumb{cursor:pointer;height:20px;width:20px;border-radius:50%;border:2px solid white;background:var(--color-primary);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.volume-slider:disabled{cursor:not-allowed;opacity:.5}.volume-value{min-width:40px;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);text-align:center}.color-scheme-picker-modern{width:100%;min-width:300px}.current-palette{margin-bottom:var(--spacing-6)}.palette-swatches{display:flex;justify-content:center;gap:var(--spacing-2);margin:0 auto var(--spacing-4)}.color-swatch-modern{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1)}.swatch-color{width:48px;height:32px;border-radius:var(--border-radius);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.swatch-color:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.color-code{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.palette-name{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);text-align:center}.scheme-selector{position:relative}.dropdown-container{position:relative;width:100%}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;cursor:pointer;width:100%;padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--border-primary);border-radius:var(--border-radius);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);background:var(--surface-secondary);-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);transition:all var(--transition-base)}.dropdown-trigger:hover{background:var(--surface-hover);border-color:var(--border-secondary)}.dropdown-trigger:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.dropdown-arrow{font-size:var(--text-sm);color:var(--text-secondary);transition:transform var(--transition-base)}.dropdown-arrow.open{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:100%;left:0;right:0;z-index:var(--z-dropdown);overflow-y:auto;margin-top:var(--spacing-2);max-height:400px;border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);background:var(--surface-primary);-webkit-backdrop-filter:var(--glass-blur-strong);backdrop-filter:var(--glass-blur-strong);box-shadow:var(--shadow-glass-xl);animation:dropdownAppear var(--duration-200) ease-out}@keyframes dropdownAppear{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-section{padding:var(--spacing-4) 0}.dropdown-section:not(:last-child){border-bottom:1px solid var(--border-primary)}.section-title{display:block;padding:0 var(--spacing-4) var(--spacing-3) var(--spacing-4);margin-bottom:var(--spacing-2);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.dropdown-item{display:flex;align-items:center;cursor:pointer;width:100%;padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-4);color:var(--text-primary);font-size:var(--text-sm);text-align:left;background:transparent;border:none;transition:all var(--transition-fast)}.dropdown-item:hover{background:var(--surface-hover)}.dropdown-item.active{border-left:3px solid var(--color-primary);padding-left:calc(var(--spacing-4) - 3px);background:var(--surface-secondary)}.mini-palette{display:flex;flex-shrink:0;gap:var(--spacing-1)}.mini-swatch{width:16px;height:16px;border-radius:3px;border:1px solid var(--border-subtle)}.scheme-label{flex:1;font-weight:var(--font-medium)}.generate-random{color:var(--color-primary);font-weight:var(--font-semibold)}.generate-random:hover{background:rgba(var(--color-primary-rgb),.1)}.backup-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-3);padding:var(--spacing-4);border-radius:var(--border-radius);border:1px solid var(--border-subtle);background:var(--surface-subtle)}.stat-item{display:flex;flex-direction:column;gap:var(--spacing-1)}.stat-label{font-size:var(--text-xs);color:var(--text-secondary);font-weight:var(--font-medium)}.stat-value{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--font-semibold)}.stat-value.dirty{color:var(--color-warning)}.stat-value.clean{color:var(--color-success)}.setting-button{display:flex;align-items:center;justify-content:center;cursor:pointer;padding:var(--spacing-3) var(--spacing-6);min-width:140px;gap:var(--spacing-2);border:none;border-radius:var(--border-radius);font-size:var(--text-sm);font-weight:var(--font-semibold);transition:all var(--transition-fast)}.setting-button.primary{background:var(--color-primary);color:#fff}.setting-button.primary:hover{background:var(--color-primary-hover)}.setting-button.secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-primary)}.setting-button.secondary:hover{background:var(--surface-hover)}.setting-button.tertiary{background:var(--surface-subtle);color:var(--text-secondary);border:1px solid var(--border-subtle)}.setting-button.tertiary:hover{color:var(--text-primary);border-color:var(--border-primary)}.setting-button:disabled{cursor:not-allowed;opacity:.6}.loading-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin var(--duration-1000) linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glassAppear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tab-nav button{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5)}.tab-nav button svg{flex-shrink:0;opacity:.8;transition:all var(--transition-base)}.tab-nav button:hover svg,.tab-nav button.active svg{transform:translateY(-1px);opacity:1}.setting-item:has(.color-scheme-picker-modern){flex-direction:column;align-items:flex-start;gap:var(--spacing-4)}.setting-item:has(.color-scheme-picker-modern) .setting-label{display:flex;flex-direction:row;align-items:baseline;gap:var(--spacing-4)}.dropdown-menu::-webkit-scrollbar{width:6px}.dropdown-menu::-webkit-scrollbar-track{border-radius:3px;background:var(--surface-secondary)}.dropdown-menu::-webkit-scrollbar-thumb{border-radius:3px;background:var(--border-primary)}.dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--border-secondary)}@media(prefers-reduced-motion:reduce){.settings-section,.dropdown-menu,.toggle-slider,.volume-slider::-webkit-slider-thumb,.swatch-color,.setting-button{animation:none;transition:none}.swatch-color:hover,.setting-button:hover{transform:none}.tab-nav button:hover svg,.tab-nav button.active svg{transform:none}}.setting-toggle:focus-within .toggle-slider,.setting-button:focus-visible,.dropdown-trigger:focus-visible,.dropdown-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.solid-theme .settings-section,.solid-theme .dropdown-menu{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--surface-primary);box-shadow:var(--shadow-default)}.solid-theme .setting-select,.solid-theme .setting-input,.solid-theme .dropdown-trigger{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--surface-secondary)}.solid-theme .toggle-slider{-webkit-backdrop-filter:none;backdrop-filter:none}}@layer critical-components{.welcome-page{position:fixed;top:0;left:0;z-index:1000;width:100vw;height:100vh;overflow:hidden}.welcome-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.welcome-panel{position:relative;width:50%;margin-left:auto;margin-right:auto;max-width:1000px;padding:1.5rem;border-radius:16px;text-align:center}.account-menu{background-color:#0000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:absolute;top:1rem;right:1rem;z-index:10}.account-bubble{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:all .3s ease;padding:0}.account-bubble:hover{background:#ffffff1a;border-color:#667eea80;transform:scale(1.05)}.account-icon{font-size:1.5rem;opacity:.8}.account-bubble:hover .account-icon{opacity:1}.account-dropdown{position:absolute;top:calc(100% + .25rem);right:0;min-width:200px;padding:.5rem;background:#141828f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:12px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .2s ease,transform .2s ease,visibility 0s linear .3s;pointer-events:none}.account-menu:hover .account-dropdown,.account-dropdown:hover{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;transition:opacity .2s ease,transform .2s ease,visibility 0s linear 0s}.account-dropdown-header{padding:.75rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.5rem}.dropdown-title{font-size:.9rem;font-weight:600;color:var(--text-primary, #e5e5e5);text-transform:uppercase;letter-spacing:.05em;opacity:.7}.account-option{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:8px;text-decoration:none;color:var(--text-primary, #e5e5e5);transition:all .2s ease;cursor:pointer}.account-option:hover{background:#ffffff0d}.option-icon{width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;flex-shrink:0}.google-icon{background:linear-gradient(135deg,#4285f4,#34a853);color:#fff}.discord-icon{background:linear-gradient(135deg,#5865f2,#7289da);color:#fff}.option-text{font-size:.95rem;font-weight:500;color:var(--text-primary, #e5e5e5)}.account-dropdown-footer{padding:.75rem;border-top:1px solid rgba(255,255,255,.1);margin-top:.5rem}.dropdown-hint{font-size:.8rem;color:var(--text-secondary, rgba(255, 255, 255, .7));opacity:.7;font-style:italic}.welcome-background{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.welcome-background img{width:100%;height:100%;object-fit:cover;object-position:center}.background-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#101828b3,#1e293b99,#0f172acc)}.background-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.particle{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff6;animation:float 8s infinite ease-in-out}.brand-section{margin-bottom:2.5rem}.brand-logo{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:1rem}.welcome-logo{max-width:200px;height:auto;margin-bottom:1rem}.logo-icon{font-size:4rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.brand-title{margin:0;font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#fff,#e2e8f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 2px 4px rgba(0,0,0,.3)}.brand-tagline{margin:0;font-size:1.1rem;font-style:italic;color:#fffc}.form-section{display:flex;flex-direction:column;gap:2rem}.input-group{display:flex;flex-direction:column;gap:.75rem;text-align:left}.input-group label{font-size:1rem;font-weight:600;color:#ffffffe6}.glass-input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:1rem;z-index:1;font-size:1.2rem;color:#fff9}.glass-input{width:100%;padding:.35rem 1rem .35rem 3rem;border:1px solid rgba(255,255,255,.2);border-radius:12px;-webkit-backdrop-filter:blur(10px);background:#ffffff1a;backdrop-filter:blur(10px);font-size:1rem;color:#fff;transition:all .3s ease}.glass-input::placeholder{color:#ffffff80}.glass-input:focus{outline:none;border-color:#3b82f680;background:#ffffff26;box-shadow:0 0 0 3px #3b82f61a}.role-selection{display:flex;flex-direction:column;gap:1rem;text-align:left}.role-selection label{font-size:1rem;font-weight:600;color:#ffffffe6}.role-cards{display:flex;gap:1rem}.role-card{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem;border:2px solid rgba(255,255,255,.2);border-radius:16px;-webkit-backdrop-filter:blur(10px);background:#ffffff14;backdrop-filter:blur(10px);text-align:center;cursor:pointer;transition:all .3s ease}.role-card:hover{border-color:#fff6;background:#ffffff1f;transform:translateY(-2px)}.role-card.selected{border-color:#3b82f699;background:#3b82f626;box-shadow:0 0 20px #3b82f633}.role-icon{font-size:2.5rem;margin-bottom:.5rem}.role-info h3{margin:0;font-size:1.2rem;font-weight:600;color:#fff}.role-info p{margin:0;font-size:.9rem;line-height:1.4;color:#ffffffb3}.selection-indicator{position:absolute;top:.75rem;right:.75rem;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#3b82f6cc;font-size:.9rem;font-weight:700;color:#fff;opacity:0;transition:opacity .3s ease}.role-card.selected .selection-indicator{opacity:1}.begin-adventure-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1rem;padding:1.25rem 2rem;border-radius:16px;font-size:1.1rem;font-weight:600;transition:all .3s ease}.begin-adventure-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.begin-adventure-btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.begin-adventure-btn span{font-size:1.2rem}.campaign-selection{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.campaign-label{font-size:.95rem;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .9))}.campaign-dropdown{padding:.75rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:1rem;color:#fff;cursor:pointer;transition:all .3s ease}.campaign-dropdown:hover{border-color:#ffffff4d;background:#ffffff26}.campaign-dropdown:focus{outline:none;border-color:#3b82f680;background:#ffffff26;box-shadow:0 0 0 3px #3b82f61a}.campaign-dropdown option{background:var(--slate-800, #1e293b);color:var(--slate-50, #f8fafc);padding:.5rem}.no-campaigns-hint{font-size:.9rem;color:var(--text-secondary, rgba(255, 255, 255, .7));line-height:1.5}.dashboard-link{color:var(--color-primary, #6366f1);text-decoration:underline;font-weight:600;transition:color .2s ease}.dashboard-link:hover{color:var(--color-primary-hover, #4f46e5)}.loading-state{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-secondary, rgba(255, 255, 255, .7))}.dm-actions{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}@keyframes float{0%,to{transform:translateY(0) translate(0) scale(1);opacity:.4}33%{transform:translateY(-20px) translate(10px) scale(1.1);opacity:.8}66%{transform:translateY(10px) translate(-5px) scale(.9);opacity:.6}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}33%{transform:translateY(-20px) translate(10px) scale(1.1);opacity:.8}66%{transform:translateY(10px) translate(-5px) scale(.9);opacity:.6}}.dev-mock-data-toggle{position:absolute!important;top:20px!important;right:20px!important;z-index:1000!important;display:flex!important;align-items:center!important;gap:10px!important;padding:10px 16px!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:8px!important;background:#000000b3!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}.dev-mock-data-toggle__label{font-size:12px!important;font-weight:500!important;color:#fff!important;opacity:.7!important}.dev-mock-data-toggle__input{position:absolute!important;width:0!important;height:0!important;opacity:0!important}.dev-mock-data-toggle__slider{position:absolute!important;inset:0!important;background-color:#374151!important;border-radius:24px!important;cursor:pointer!important;transition:background-color .3s!important}.dev-mock-data-toggle__knob{position:absolute!important;left:3px!important;bottom:3px!important;width:18px!important;height:18px!important;background-color:#fff!important;border-radius:50%!important;content:""!important;transition:left .3s!important}.dev-mock-data-toggle__switch{position:relative!important;display:inline-block!important;width:44px!important;height:24px!important;cursor:pointer!important;opacity:1!important}.dev-mock-data-toggle__switch--loading{cursor:wait!important;opacity:.5!important}.dev-mock-data-toggle__input{opacity:0!important;width:0!important;height:0!important;position:absolute!important}.dev-mock-data-toggle__slider{position:absolute!important;cursor:pointer!important;inset:0!important;background-color:#374151!important;transition:background-color .3s!important;border-radius:24px!important}.dev-mock-data-toggle__input:checked+.dev-mock-data-toggle__slider{background-color:#4ade80!important}.dev-mock-data-toggle__knob{position:absolute!important;content:""!important;height:18px!important;width:18px!important;left:3px!important;bottom:3px!important;background-color:#fff!important;transition:left .3s!important;border-radius:50%!important}.dev-mock-data-toggle__input:checked+.dev-mock-data-toggle__slider .dev-mock-data-toggle__knob{left:23px!important}.dev-mock-data-toggle__spinner{font-size:20px;animation:spin 1s linear infinite}}@layer critical-components{.player-setup,.dm-setup{position:fixed;top:0;left:0;z-index:1000;overflow-y:auto;width:100vw;height:100vh;background:linear-gradient(135deg,#101828f2,#1e293be6,#0f172af2)}.setup-background{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%}.background-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0000004d}.setup-content{position:relative;z-index:2;display:flex;justify-content:center;padding:2rem;min-height:100vh}.setup-panel{max-width:900px;width:100%;padding:2.5rem;margin:auto}.setup-header{margin-bottom:3rem}.header-content{flex:1;text-align:center;color:#fff}.header-content h1{margin:0 0 .5rem;font-size:2rem;font-weight:700;color:#fff}.header-content p{margin:0;color:#fffc;font-size:1.1rem}.setup-section{margin-bottom:3rem}.setup-section h2{display:flex;align-items:center;margin:0 0 1.5rem;gap:.75rem;border-bottom:2px solid rgba(255,255,255,.1);padding-bottom:.75rem;font-size:1.5rem;font-weight:600;color:#fff}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{margin:0;border:none;padding:0}.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.character-card{position:relative;cursor:pointer;padding:1.5rem;border:2px solid rgba(255,255,255,.1);border-radius:16px;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.character-card:hover{border-color:#ffffff4d;background:#ffffff14;transform:translateY(-2px)}.character-card.selected{border-color:#3b82f699;background:#3b82f61a;box-shadow:0 0 20px #3b82f633}.character-info h3{margin:0 0 .5rem;font-size:1.3rem;font-weight:600;color:#fff}.character-info p{margin:.25rem 0;color:#fffc;font-size:.95rem}.character-background{font-style:italic;color:#fff9!important}.last-used{font-size:.85rem!important;color:#ffffff80!important}.character-stats{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.stat-mini{display:flex;flex-direction:column;align-items:center;padding:.5rem;min-width:45px;background:#ffffff1a;border-radius:8px}.stat-name{font-size:.7rem;color:#fff9;font-weight:600}.stat-value{font-size:.9rem;color:#fff;font-weight:700}.character-actions{position:absolute;top:1rem;right:1rem}.delete-btn{cursor:pointer;padding:.2rem;border:2px solid rgba(255,255,255,.8);border-radius:6px;background:none;font-size:1.2rem;opacity:.6;transition:opacity .3s ease}.delete-btn:hover{opacity:1;background:#f003}.selection-indicator{position:absolute;top:1rem;left:1rem;display:flex;align-items:center;justify-content:center;width:24px;height:24px;opacity:1;transition:opacity .3s ease}.character-select-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border:2px solid rgba(255,255,255,.6);border-radius:4px;background:#ffffff1a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;transition:all .2s ease;position:relative}.character-select-checkbox:hover{border-color:#ffffffe6;background:#fff3;transform:scale(1.1)}.character-select-checkbox:active{background:#3b82f6cc;border-color:#3b82f6;transform:scale(.95)}.character-select-checkbox:active:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:.8rem;font-weight:700}.empty-state{text-align:center;padding:3rem 2rem;border:2px dashed rgba(255,255,255,.2);background:#ffffff0d;border-radius:16px}.empty-icon{margin-bottom:1rem;font-size:4rem}.empty-state h3{margin:0 0 .5rem;font-size:1.5rem;color:#fff}.empty-state p{margin:0 0 2rem;color:#ffffffb3}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:1.5rem}.config-form .input-group{display:flex;flex-direction:column;gap:.5rem}.glass-textarea{padding:.875rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:1rem;font-family:inherit;resize:vertical;transition:all .3s ease}.glass-textarea::placeholder{color:#ffffff80}.glass-textarea:focus{outline:none;border-color:#3b82f680;background:#ffffff26;box-shadow:0 0 0 3px #3b82f61a}.join-form{padding:2rem;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;border-radius:16px}.form-row{display:flex;align-items:end;gap:1rem;margin-bottom:1rem}.join-btn{flex-shrink:0;min-width:140px}.selected-character-info{padding:1rem;border:1px solid rgba(59,130,246,.3);margin-top:1rem;background:#3b82f61a;border-radius:8px}.selected-character-info p{margin:0;color:#fff;font-size:.95rem}.character-hint{padding:1rem;border:1px solid rgba(255,193,7,.3);margin-top:1rem;background:#ffc1071a;border-radius:8px}.character-hint p{margin:0;color:#fffc;font-size:.9rem}.role-card-group{display:flex;flex-direction:column;flex:1;gap:1rem}.player-actions,.dm-actions{display:flex;flex-direction:column;gap:1rem;padding:1rem;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;border-radius:12px}.divider-small:before{position:absolute;top:50%;left:0;right:0;height:1px;background:#fff3;content:""}.divider-small span{position:relative;padding:0 1rem;background:#00000080;color:#fff9;font-size:.85rem}.quick-join-form{display:flex;align-items:end;gap:.75rem}.action-btn{display:flex;align-items:center;justify-content:center;padding:.3rem .6rem;gap:.5rem;min-width:140px;border-radius:10px;font-size:.95rem;font-weight:600;transition:all .3s ease}.player-actions,.dm-actions{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.quick-join-section{display:flex;flex-direction:column;gap:.75rem}.divider-small{text-align:center;position:relative;margin:.5rem 0}.divider-small:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#fff3}.divider-small span{background:#00000080;padding:0 1rem;color:#fff9;font-size:.85rem;position:relative}.quick-join-form{display:flex;gap:.75rem;align-items:end}.room-input{flex:1}.action-btn{padding:.3rem .6rem;font-size:.95rem;font-weight:600;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s ease;min-width:140px}.game-summary{padding:2rem;border:1px solid rgba(59,130,246,.3);background:#3b82f61a}.game-summary h3{margin:0 0 1rem;font-size:1.4rem;font-weight:700;color:#fff}.summary-description{margin:0 0 1.5rem;color:#fffc;font-style:italic}.summary-details{display:flex;flex-direction:column;gap:.75rem}.detail-item{display:flex;gap:1rem}.detail-label{min-width:80px;font-weight:600;color:#ffffffb3}.detail-value{color:#fff}.create-room-section{text-align:center;padding:2rem;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;border-radius:16px}.create-description{margin:0 0 2rem;color:#fffc;font-size:1.1rem}.create-room-btn{padding:1.25rem 2rem;min-width:200px;border-radius:12px;font-size:1.1rem;font-weight:600}.form-hint{margin:1rem 0 0;color:#fff9;font-size:.9rem;font-style:italic}.linear-game-layout{position:fixed;top:0;left:0;display:flex;flex-direction:column;width:100vw;height:100vh;background:var(--color-background-primary)}.game-header{display:flex;justify-content:space-between;align-items:center;z-index:100;padding:1rem 2rem;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.room-info h2{margin:0;font-size:1.3rem;color:#fff}.room-info p{margin:.25rem 0 0;color:#fffc;font-size:.9rem}.room-info-compact{display:flex;align-items:center;gap:1rem;font-size:.9rem}.room-code{padding:.25rem .75rem;border:1px solid rgba(59,130,246,.3);background:#3b82f633;border-radius:6px;color:#fff;font-weight:600}.player-name{color:#fffc;font-weight:500}.header-action{margin-left:1rem}.glass-button.small{padding:.5rem;min-width:auto;width:auto;font-size:1rem}.game-setup-content{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.setup-panel{text-align:center;max-width:600px;width:100%;padding:3rem}.dm-setup-prompt h2,.player-waiting h2{margin:0 0 1rem;font-size:2rem;color:#fff}.dm-setup-prompt p,.player-waiting p{margin:0 0 2rem;color:#fffc;font-size:1.1rem}.setup-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem}.waiting-animation{margin-top:2rem}.loading-dots{display:flex;justify-content:center;gap:.5rem}.loading-dots span{width:12px;height:12px;border-radius:50%;background:#fff9;animation:loading-bounce 1.4s ease-in-out infinite both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes loading-bounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.empty-scene-state{display:flex;align-items:center;justify-content:center;height:100%;min-height:400px}.empty-scene-content{text-align:center;padding:3rem;border:2px dashed rgba(255,255,255,.2);max-width:500px;background:#ffffff0d;border-radius:16px}.empty-scene-content h3{margin:0 0 1rem;font-size:1.5rem;color:#fff}.empty-scene-content p{margin:0;color:#fffc;font-size:1.1rem}.dev-tools{position:relative;align-items:center;width:80%;margin-top:2rem;padding:1.5rem;border:1px solid rgba(255,193,7,.3);background:#ffc1071a;border-radius:12px}.dev-divider{border:none;height:1px;margin:0 0 1rem;background:#ffc1074d}.dev-title{text-align:center;margin:0 0 1rem;color:#ffc107e6;font-size:1rem;font-weight:600}.dev-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.dev-btn{padding:.5rem .75rem!important;min-width:auto!important;font-size:.85rem!important;color:#fff!important;white-space:nowrap}.dev-btn:hover{background:#ffc10733;border-color:#ffc10780}.login-section{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:400px;margin:0 auto}.login-section .action-btn{justify-content:flex-start;padding:.75rem 1.5rem}.login-section .btn-icon{font-size:1.2rem;font-weight:700;width:24px;text-align:center}.login-section .google{background-color:#4285f4;border-color:#4285f4}.login-section .google:hover{background-color:#5a95f5}.login-section .discord{background-color:#5865f2;border-color:#5865f2}.login-section .discord:hover{background-color:#6b75f3}.divider-large{text-align:center;position:relative;margin:2rem 0;width:100%;max-width:400px;margin-left:auto;margin-right:auto}.divider-large:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#fff3}.divider-large span{background:#1f2937;padding:0 1.5rem;color:#fff9;font-size:1rem;font-weight:600;position:relative}}.m-0{margin:0}.m-1{margin:var(--spacing-1)}.m-2{margin:var(--spacing-2)}.m-3{margin:var(--spacing-3)}.m-4{margin:var(--spacing-4)}.m-5{margin:var(--spacing-5)}.m-6{margin:var(--spacing-6)}.m-8{margin:var(--spacing-8)}.m-10{margin:var(--spacing-10)}.m-12{margin:var(--spacing-12)}.m-16{margin:var(--spacing-16)}.m-20{margin:var(--spacing-20)}.m-auto{margin:auto}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:var(--spacing-1);margin-right:var(--spacing-1)}.mx-2{margin-left:var(--spacing-2);margin-right:var(--spacing-2)}.mx-3{margin-left:var(--spacing-3);margin-right:var(--spacing-3)}.mx-4{margin-left:var(--spacing-4);margin-right:var(--spacing-4)}.mx-6{margin-left:var(--spacing-6);margin-right:var(--spacing-6)}.mx-8{margin-left:var(--spacing-8);margin-right:var(--spacing-8)}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:var(--spacing-1);margin-bottom:var(--spacing-1)}.my-2{margin-top:var(--spacing-2);margin-bottom:var(--spacing-2)}.my-3{margin-top:var(--spacing-3);margin-bottom:var(--spacing-3)}.my-4{margin-top:var(--spacing-4);margin-bottom:var(--spacing-4)}.my-6{margin-top:var(--spacing-6);margin-bottom:var(--spacing-6)}.my-8{margin-top:var(--spacing-8);margin-bottom:var(--spacing-8)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing-1)}.ml-2{margin-left:var(--spacing-2)}.ml-3{margin-left:var(--spacing-3)}.ml-4{margin-left:var(--spacing-4)}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-1{margin-right:var(--spacing-1)}.mr-2{margin-right:var(--spacing-2)}.mr-3{margin-right:var(--spacing-3)}.mr-4{margin-right:var(--spacing-4)}.mr-auto{margin-right:auto}.p-0{padding:0}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-5{padding:var(--spacing-5)}.p-6{padding:var(--spacing-6)}.p-8{padding:var(--spacing-8)}.p-10{padding:var(--spacing-10)}.p-12{padding:var(--spacing-12)}.p-16{padding:var(--spacing-16)}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:var(--spacing-1);padding-right:var(--spacing-1)}.px-2{padding-left:var(--spacing-2);padding-right:var(--spacing-2)}.px-3{padding-left:var(--spacing-3);padding-right:var(--spacing-3)}.px-4{padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.px-6{padding-left:var(--spacing-6);padding-right:var(--spacing-6)}.px-8{padding-left:var(--spacing-8);padding-right:var(--spacing-8)}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:var(--spacing-1);padding-bottom:var(--spacing-1)}.py-2{padding-top:var(--spacing-2);padding-bottom:var(--spacing-2)}.py-3{padding-top:var(--spacing-3);padding-bottom:var(--spacing-3)}.py-4{padding-top:var(--spacing-4);padding-bottom:var(--spacing-4)}.py-6{padding-top:var(--spacing-6);padding-bottom:var(--spacing-6)}.py-8{padding-top:var(--spacing-8);padding-bottom:var(--spacing-8)}.hidden{display:none}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-grow-0{flex-grow:0}.flex-grow{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink{flex-shrink:1}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-5{grid-column:span 5 / span 5}.col-span-6{grid-column:span 6 / span 6}.col-span-full{grid-column:1 / -1}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.row-span-1{grid-row:span 1 / span 1}.row-span-2{grid-row:span 2 / span 2}.row-span-3{grid-row:span 3 / span 3}.row-span-4{grid-row:span 4 / span 4}.row-span-5{grid-row:span 5 / span 5}.row-span-6{grid-row:span 6 / span 6}.row-span-full{grid-row:1 / -1}.gap-0{gap:0}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.gap-10{gap:var(--spacing-10)}.gap-12{gap:var(--spacing-12)}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{right:0;left:0}.inset-y-0{top:0;bottom:0}.top-0{top:0}.top-1{top:var(--spacing-1)}.top-2{top:var(--spacing-2)}.top-4{top:var(--spacing-4)}.top-auto{top:auto}.right-0{right:0}.right-1{right:var(--spacing-1)}.right-2{right:var(--spacing-2)}.right-4{right:var(--spacing-4)}.right-auto{right:auto}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing-1)}.bottom-2{bottom:var(--spacing-2)}.bottom-4{bottom:var(--spacing-4)}.bottom-auto{bottom:auto}.left-0{left:0}.left-1{left:var(--spacing-1)}.left-2{left:var(--spacing-2)}.left-4{left:var(--spacing-4)}.left-auto{left:auto}.w-0{width:0}.w-full{width:100%}.w-screen{width:100vw}.w-auto{width:auto}.w-fit{width:fit-content}.w-1{width:var(--spacing-1)}.w-2{width:var(--spacing-2)}.w-3{width:var(--spacing-3)}.w-4{width:var(--spacing-4)}.w-5{width:var(--spacing-5)}.w-6{width:var(--spacing-6)}.w-8{width:var(--spacing-8)}.w-10{width:var(--spacing-10)}.w-12{width:var(--spacing-12)}.w-16{width:var(--spacing-16)}.w-20{width:var(--spacing-20)}.w-24{width:var(--spacing-24)}.w-32{width:var(--spacing-32)}.w-48{width:var(--spacing-48)}.w-64{width:var(--spacing-64)}.w-80{width:var(--spacing-80)}.w-96{width:var(--spacing-96)}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-w-fit{min-width:fit-content}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.h-0{height:0}.h-full{height:100%}.h-screen{height:100vh}.h-auto{height:auto}.h-fit{height:fit-content}.h-1{height:var(--spacing-1)}.h-2{height:var(--spacing-2)}.h-3{height:var(--spacing-3)}.h-4{height:var(--spacing-4)}.h-5{height:var(--spacing-5)}.h-6{height:var(--spacing-6)}.h-8{height:var(--spacing-8)}.h-10{height:var(--spacing-10)}.h-12{height:var(--spacing-12)}.h-16{height:var(--spacing-16)}.h-20{height:var(--spacing-20)}.h-24{height:var(--spacing-24)}.h-32{height:var(--spacing-32)}.h-48{height:var(--spacing-48)}.h-64{height:var(--spacing-64)}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-fit{min-height:fit-content}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}.text-5xl{font-size:var(--text-5xl)}.text-6xl{font-size:var(--text-6xl)}.font-thin{font-weight:var(--font-thin)}.font-light{font-weight:var(--font-light)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.font-extrabold{font-weight:var(--font-extrabold)}.font-black{font-weight:var(--font-black)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-strong{color:var(--text-strong)}.text-white{color:#fff}.text-black{color:#000}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.underline{text-decoration:underline}.overline{text-decoration:overline}.line-through{text-decoration:line-through}.no-underline{text-decoration:none}.leading-none{line-height:1}.leading-tight{line-height:var(--leading-tight)}.leading-snug{line-height:var(--leading-snug)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.leading-loose{line-height:var(--leading-loose)}.bg-transparent{background-color:transparent}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-accent{background-color:var(--color-accent)}.bg-success{background-color:var(--color-success)}.bg-warning{background-color:var(--color-warning)}.bg-error{background-color:var(--color-error)}.bg-info{background-color:var(--color-info)}.bg-surface{background-color:var(--surface-primary)}.bg-surface-secondary{background-color:var(--surface-secondary)}.bg-surface-subtle{background-color:var(--surface-subtle)}.border-0{border-width:0}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-8{border-width:8px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-none{border-style:none}.border-primary{border-color:var(--border-primary)}.border-secondary{border-color:var(--border-secondary)}.border-subtle{border-color:var(--border-subtle)}.border-transparent{border-color:transparent}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--border-radius-sm)}.rounded{border-radius:var(--border-radius)}.rounded-md{border-radius:var(--border-radius-md)}.rounded-lg{border-radius:var(--border-radius-lg)}.rounded-xl{border-radius:var(--border-radius-xl)}.rounded-2xl{border-radius:var(--border-radius-2xl)}.rounded-3xl{border-radius:var(--border-radius-3xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-none{box-shadow:none}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow{box-shadow:var(--shadow-default)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-2xl{box-shadow:var(--shadow-2xl)}.shadow-inner{box-shadow:var(--shadow-inner)}.shadow-glass{box-shadow:var(--shadow-glass)}.shadow-glass-lg{box-shadow:var(--shadow-glass-lg)}.shadow-glass-xl{box-shadow:var(--shadow-glass-xl)}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.z-base{z-index:var(--z-base)}.z-sticky{z-index:var(--z-sticky)}.z-panel{z-index:var(--z-panel)}.z-overlay{z-index:var(--z-overlay)}.z-modal{z-index:var(--z-modal)}.z-tooltip{z-index:var(--z-tooltip)}.z-dropdown{z-index:var(--z-dropdown)}.z-fixed{z-index:var(--z-fixed)}.z-toolbar{z-index:var(--z-toolbar)}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.transition-none{transition:none}.transition-all{transition:all var(--transition-base)}.transition{transition:color var(--transition-base),background-color var(--transition-base),border-color var(--transition-base),text-decoration-color var(--transition-base),fill var(--transition-base),stroke var(--transition-base),opacity var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.transition-colors{transition:color var(--transition-base),background-color var(--transition-base),border-color var(--transition-base),text-decoration-color var(--transition-base),fill var(--transition-base),stroke var(--transition-base)}.transition-opacity{transition:opacity var(--transition-base)}.transition-shadow{transition:box-shadow var(--transition-base)}.transition-transform{transition:transform var(--transition-base)}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:var(--duration-200)}.duration-300{transition-duration:var(--duration-300)}.duration-500{transition-duration:var(--duration-500)}.duration-700{transition-duration:var(--duration-700)}.duration-1000{transition-duration:var(--duration-1000)}.ease-linear{transition-timing-function:linear}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.transform{transform:var(--transform)}.transform-none{transform:none}.scale-0{transform:scale(0)}.scale-50{transform:scale(.5)}.scale-75{transform:scale(.75)}.scale-90{transform:scale(.9)}.scale-95{transform:scale(.95)}.scale-100{transform:scale(1)}.scale-105{transform:scale(1.05)}.scale-110{transform:scale(1.1)}.scale-125{transform:scale(1.25)}.scale-150{transform:scale(1.5)}.rotate-0{transform:rotate(0)}.rotate-1{transform:rotate(1deg)}.rotate-2{transform:rotate(2deg)}.rotate-3{transform:rotate(3deg)}.rotate-6{transform:rotate(6deg)}.rotate-12{transform:rotate(12deg)}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-180{transform:rotate(180deg)}.-rotate-180{transform:rotate(-180deg)}.-rotate-90{transform:rotate(-90deg)}.-rotate-45{transform:rotate(-45deg)}.-rotate-12{transform:rotate(-12deg)}.-rotate-6{transform:rotate(-6deg)}.-rotate-3{transform:rotate(-3deg)}.-rotate-2{transform:rotate(-2deg)}.-rotate-1{transform:rotate(-1deg)}.translate-x-0{transform:translate(0)}.translate-x-1{transform:translate(var(--spacing-1))}.translate-x-2{transform:translate(var(--spacing-2))}.translate-x-4{transform:translate(var(--spacing-4))}.-translate-x-1{transform:translate(calc(-1 * var(--spacing-1)))}.-translate-x-2{transform:translate(calc(-1 * var(--spacing-2)))}.-translate-x-4{transform:translate(calc(-1 * var(--spacing-4)))}.translate-y-0{transform:translateY(0)}.translate-y-1{transform:translateY(var(--spacing-1))}.translate-y-2{transform:translateY(var(--spacing-2))}.translate-y-4{transform:translateY(var(--spacing-4))}.-translate-y-1{transform:translateY(calc(-1 * var(--spacing-1)))}.-translate-y-2{transform:translateY(calc(-1 * var(--spacing-2)))}.-translate-y-4{transform:translateY(calc(-1 * var(--spacing-4)))}@media(min-width:1024px){.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:text-lg{font-size:var(--text-lg)}.lg\:text-xl{font-size:var(--text-xl)}.lg\:text-2xl{font-size:var(--text-2xl)}}.glass{background:var(--surface-primary);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-glass)}.glass-strong{background:var(--surface-secondary);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);border:1px solid var(--border-secondary);box-shadow:var(--shadow-glass-lg)}.glass-subtle{background:var(--surface-subtle);backdrop-filter:var(--glass-blur-subtle);-webkit-backdrop-filter:var(--glass-blur-subtle);border:1px solid var(--border-subtle);box-shadow:var(--shadow-glass)}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:outline-none:focus{outline:none}.focus\:ring:focus{box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.focus\:ring-primary:focus{box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}@media(prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition:none}.motion-reduce\:transform-none{transform:none}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}@media(prefers-contrast:high){:root{--border-primary: #000000;--border-secondary: #333333;--text-primary: #000000;--text-secondary: #333333;--bg-primary: #ffffff;--surface-primary: #ffffff;--glass-blur: none;--glass-blur-strong: none;--glass-blur-subtle: none}.glass,.glass-strong,.glass-subtle{backdrop-filter:none;-webkit-backdrop-filter:none;border-width:2px}}
