.undo-button-container{z-index:1000;position:fixed;bottom:2rem;right:2rem}.undo-button{background:var(--primary-color,#4a90e2);color:#fff;cursor:pointer;border:none;border-radius:2rem;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #0003}.undo-button:hover:not(:disabled){background:var(--primary-hover,#357abd);transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}.undo-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #0003}.undo-button:disabled,.undo-button.pending{background:var(--neutral-600,#888);cursor:not-allowed;opacity:.7}.undo-icon{font-size:1.5rem;line-height:1}.undo-text{font-weight:600}.undo-button.rollback{background:var(--warning-color,#e67e22)}.undo-button.rollback:hover:not(:disabled){background:var(--warning-hover,#d35400)}.rollback-confirm-popover{background:var(--surface-color,#2a2a2a);border:1px solid var(--warning-color,#e67e22);z-index:1001;border-radius:.5rem;min-width:280px;padding:1rem 1.25rem;position:absolute;bottom:calc(100% + .75rem);right:0;box-shadow:0 4px 16px #0006}.rollback-confirm-popover p{color:var(--text-secondary,#ccc);margin:0 0 .75rem;font-size:.9rem}.rollback-confirm-buttons{justify-content:flex-end;gap:.5rem;display:flex}.btn-secondary{background:var(--neutral-600,#666);color:#fff;cursor:pointer;border:none;border-radius:.25rem;padding:.4rem .75rem;font-size:.85rem}.btn-secondary:hover{background:var(--neutral-500,#888)}.btn-warning{background:var(--warning-color,#e67e22);color:#fff;cursor:pointer;border:none;border-radius:.25rem;padding:.4rem .75rem;font-size:.85rem;font-weight:600}.btn-warning:hover{background:var(--warning-hover,#d35400)}.undo-cancel-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:.25rem;padding:.3rem .75rem;font-size:.85rem;transition:all .2s}.undo-cancel-btn:hover{background:#ffffff40;border-color:#ffffff80}.undone-event{opacity:.6;color:var(--error-color,#e74c3c);text-decoration:line-through}.undo-status-banner{z-index:1100;color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:0 0 .5rem .5rem;min-width:300px;padding:1rem 2rem;position:fixed;top:0;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.undo-status-content{flex-direction:column;align-items:center;gap:.75rem;display:flex}.undo-status-icon{font-size:1.5rem}.undo-status-text{font-size:1rem;font-weight:600}.approval-progress{gap:1rem;font-size:.85rem;display:flex}.approval-progress .approved{color:#4ade80}.approval-progress .denied{color:#f87171}.approval-progress .pending{color:#fbbf24}.undo-approval-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.undo-approval-modal{background:var(--surface-color,#2a2a2a);border-radius:.75rem;width:90%;max-width:500px;overflow:hidden;box-shadow:0 8px 32px #00000080}.undo-approval-modal .modal-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:1.5rem 2rem}.undo-approval-modal .modal-header h2{margin:0;font-size:1.5rem}.undo-approval-modal .modal-body{padding:2rem}.requesting-player{margin-bottom:1rem;font-size:1.1rem}.requesting-player strong{color:var(--accent-color,#4a90e2)}.action-description{background:var(--background-darker,#1a1a1a);border-radius:.5rem;max-height:200px;margin:1rem 0;padding:1rem;font-family:monospace;font-size:.9rem;overflow-y:auto}.approval-explanation{color:var(--text-secondary,#ccc);margin:1rem 0;font-size:.95rem}.warning{background:#fbbf241a;border-left:4px solid #fbbf24;border-radius:.25rem;padding:.75rem 1rem;font-size:.9rem}.undo-approval-modal .modal-footer{background:var(--surface-darker,#1f1f1f);justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;display:flex}.btn-large{cursor:pointer;border:none;border-radius:.5rem;padding:.75rem 2rem;font-size:1rem;font-weight:600;transition:all .2s}.btn-danger{color:#fff;background:#ef4444}.btn-danger:hover{background:#dc2626}.btn-primary{background:var(--primary-color,#4a90e2);color:#fff}.btn-primary:hover{background:var(--primary-hover,#357abd)}.undo-toast{z-index:1500;color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:.5rem;align-items:center;gap:1rem;max-width:400px;padding:1rem 1.5rem;animation:.3s ease-out slideIn;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 4px 16px #0000004d}@keyframes slideIn{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}.toast-content{flex-direction:column;flex:1;gap:.25rem;display:flex}.toast-icon{font-size:1.5rem}.toast-message{font-size:1rem;font-weight:600}.toast-detail{opacity:.9;font-size:.85rem}.toast-dismiss{color:#fff;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0 .5rem;font-size:1.5rem;transition:opacity .2s}.toast-dismiss:hover{opacity:1}.undo-confirm-popover{background:var(--surface-color,#2a2a2a);border:1px solid var(--warning-color,#e67e22);z-index:1001;border-radius:.5rem;min-width:300px;max-width:360px;padding:1rem 1.25rem;position:absolute;bottom:calc(100% + .75rem);right:0;box-shadow:0 4px 16px #0006}.undo-confirm-popover p{color:var(--text-secondary,#ccc);margin:0 0 .75rem;font-size:.9rem;line-height:1.4}.undo-events-preview{background:var(--background-darker,#1a1a1a);border:1px solid var(--border-color,#333);border-radius:.5rem;max-height:300px;margin:1rem 0;padding:.75rem;overflow-y:auto}.undo-events-preview .event-group{border-radius:.25rem;align-items:flex-start;gap:.5rem;margin-bottom:.25rem;padding:.4rem .5rem;font-size:.85rem;line-height:1.4;display:flex}.undo-events-preview .event-group .event-summary{flex:1}.undo-events-preview .event-group.undo-highlighted{background:#ef444426;border-left:3px solid #ef4444;padding-left:calc(.5rem - 3px)}.player-color-cube-sm{border-radius:2px;flex-shrink:0;width:12px;height:12px;margin-top:3px}.perspective-toggle{border:1px solid var(--border-color,#444);border-radius:.25rem;gap:0;width:fit-content;margin:.75rem 0 0;display:flex;overflow:hidden}.perspective-toggle .btn-sm{background:var(--surface-color,#2a2a2a);color:var(--text-secondary,#aaa);cursor:pointer;border:none;padding:.3rem .75rem;font-size:.8rem;transition:all .15s}.perspective-toggle .btn-sm:not(:last-child){border-right:1px solid var(--border-color,#444)}.perspective-toggle .btn-sm.active{background:var(--primary-color,#4a90e2);color:#fff;font-weight:600}.perspective-toggle .btn-sm:hover:not(.active){background:var(--surface-lighter,#3a3a3a)}