.modal-overlay{align-items:center;backdrop-filter:blur(4px);background:rgba(0,0,0,.5);display:none;inset:0;justify-content:center;position:fixed;z-index:1000}.modal-overlay.active{display:flex}.action-modal{background:rgba(0,0,0,.5);box-sizing:border-box;display:none;height:100vh;left:0;margin:0;overflow-y:auto;padding:1rem;position:fixed;top:0;width:100vw;z-index:10000}.action-modal.show{display:block}.modal-cancel-confirmation{height:100vh;left:0;margin:0;padding:1rem;position:fixed;top:0;transform:none;width:100vw}.modal-cancel-confirmation.show,
.modal-cancel-confirmation[style*="display: flex"]{display:block}
.modal-cancel-confirmation.action-modal.show,.modal-cancel-confirmation.show.action-modal{display:block;visibility:visible}.action-modal-overlay{display:none}.action-modal-content{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(0,0,0,.2);max-height:90vh;max-width:400px;overflow-y:auto;width:calc(100vw - 2rem);z-index:10001}.action-modal-content,.modal-cancel-confirmation .action-modal-content{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.action-modal-header{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;padding:var(--space-lg)}.action-modal-header h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.action-modal-close{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--space-xs);transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.action-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.action-modal-body{padding:var(--space-lg)}.action-modal-description{color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-lg)}.action-modal-footer{border-top:1px solid var(--border-subtle);display:flex;gap:var(--space-md);justify-content:flex-end;padding:var(--space-lg)}.action-modal .action-buttons-hero{align-items:stretch;flex-direction:column;gap:var(--space-sm)}.action-modal .btn-action-hero{font-size:var(--font-size-base);max-width:none;min-height:var(--touch-target-min);padding:var(--space-md) var(--space-lg);width:100%}.quick-edit-modal{box-shadow:0 20px 60px rgba(0,0,0,.3);max-height:90vh;max-width:600px;overflow:hidden;width:90%}.quick-edit-modal .modal-header{background:var(--bg-accent);cursor:default;padding:var(--space-xl)}.quick-edit-modal .modal-title{align-items:center;display:flex;font-size:1.5rem;font-weight:700;gap:var(--space-md)}.quick-edit-modal .modal-title .modal-emoji{align-items:center;background:var(--bg-accent);border-radius:var(--radius-md);display:flex;flex-shrink:0;font-size:2rem;height:50px;justify-content:center;width:50px}.quick-edit-modal .card-subtitle{font-size:1rem;font-weight:500;margin-top:var(--space-sm)}.quick-edit-modal .modal-close-square{align-items:center;background:var(--state-error-border);border:none;border-radius:var(--radius-sm);color:var(--text-inverse);cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;height:32px;justify-content:center;margin-left:var(--space-md);transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;width:32px}.quick-edit-modal .modal-close-square:hover{background:var(--state-error-text);box-shadow:0 2px 8px rgba(239,68,68,.3);color:var(--text-inverse);transform:translateY(-1px)}.quick-edit-modal .modal-body{max-height:50vh;overflow-y:auto}.quick-edit-modal .full-edit-btn{align-items:center;background:var(--interactive-primary);border:2px solid var(--interactive-primary);border-radius:var(--radius-md);color:var(--text-inverse);cursor:pointer;display:flex;font-family:var(--font-primary);font-size:.875rem;font-weight:600;gap:var(--space-sm);min-height:var(--touch-target-min);padding:var(--space-md) var(--space-lg);transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.quick-edit-modal .full-edit-btn:hover{background:var(--interactive-primary-hover);border-color:var(--interactive-primary-hover);box-shadow:0 2px 8px rgba(37,99,235,.2);transform:translateY(-1px)}.quick-edit-modal .save-changes-btn{align-items:center;background:var(--state-success-border);border:2px solid var(--state-success-border);border-radius:var(--radius-md);color:var(--text-inverse);cursor:pointer;display:flex;font-family:var(--font-primary);font-size:.875rem;font-weight:600;gap:var(--space-sm);min-height:var(--touch-target-min);padding:var(--space-md) var(--space-lg);transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.quick-edit-modal .save-changes-btn:hover{background:var(--state-success-text);border-color:var(--state-success-text);box-shadow:0 2px 8px rgba(34,197,94,.2);transform:translateY(-1px)}.delete-confirm-modal{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.15);max-width:480px;overflow:hidden;width:90%}.delete-modal-header{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;padding:var(--space-lg) var(--space-lg) var(--space-md)}.delete-modal-title{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.delete-modal-close{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--space-xs);transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.delete-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.delete-modal-body{padding:var(--space-lg);text-align:center}.delete-warning-icon-container{margin-bottom:var(--space-lg)}.delete-warning-icon{color:var(--state-error-text);font-size:3rem;opacity:.8}.delete-warning-content{margin:0 auto;max-width:400px}.delete-warning-message{color:var(--text-primary);font-size:1rem;line-height:1.5;margin-bottom:var(--space-md)}.delete-warning-note{color:var(--text-secondary);font-size:.875rem;line-height:1.4;margin-bottom:0}.delete-modal-actions{background:var(--bg-subtle);border-top:1px solid var(--border-subtle);display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg) var(--space-lg)}.cancel-delete-btn{align-items:center;background:var(--bg-surface);border:2px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;display:flex;flex:1;font-family:var(--font-primary);font-size:.875rem;font-weight:600;justify-content:center;min-height:var(--touch-target-min);padding:var(--space-md) var(--space-lg);transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.cancel-delete-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateY(-1px)}.confirm-delete-btn{align-items:center;background:var(--state-error-border);border:2px solid var(--state-error-border);border-radius:var(--radius-md);color:var(--text-inverse);cursor:pointer;display:flex;flex:1;font-family:var(--font-primary);font-size:.875rem;font-weight:600;justify-content:center;min-height:var(--touch-target-min);padding:var(--space-md) var(--space-lg);transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.confirm-delete-btn:hover{background:var(--state-error-text);border-color:var(--state-error-text);box-shadow:0 2px 8px rgba(239,68,68,.3);transform:translateY(-1px)}.image-zoom-modal{align-items:center;background:rgba(0,0,0,.7);cursor:pointer;display:flex;height:100%;justify-content:center;left:0;opacity:0;padding:var(--space-lg);position:fixed;top:0;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;visibility:hidden;width:100%;z-index:10000}.image-zoom-modal.active{opacity:1;visibility:visible}.image-zoom-content{background:#fff;border-radius:var(--radius-md);box-shadow:0 8px 24px rgba(0,0,0,.3);cursor:default;max-height:400px;max-width:500px;padding:var(--space-md);position:relative}.image-zoom-content img{border-radius:var(--radius-sm);display:block;height:auto;width:100%}.image-zoom-close{align-items:center;background:var(--state-error-border);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:30px;justify-content:center;margin:0;position:absolute;right:8px;top:8px;transform:none;transition:background-color .2s ease,transform .2s ease;width:30px;z-index:9999}.image-zoom-close:hover{background:var(--state-error-text);transform:scale(1.1)}.emoji-modal{align-items:center;display:flex;height:100%;justify-content:center;left:0;padding:var(--space-md);position:fixed;top:0;width:100%;z-index:10000}.emoji-modal.hidden{display:none}.emoji-modal-overlay{background:rgba(0,0,0,.5);cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%}.emoji-modal-content{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:0 20px 40px rgba(0,0,0,.15);display:flex;flex-direction:column;max-height:80vh;max-width:600px;overflow:hidden;position:relative;width:100%}.emoji-modal-header{align-items:center;background:var(--bg-primary);border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;padding:var(--space-lg)}.emoji-modal-title{flex:1}.emoji-modal-title h3{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-sm) 0}.current-emoji-preview{align-items:center;color:var(--text-secondary);display:flex;font-size:var(--font-size-sm);gap:var(--space-sm)}.emoji-medium{font-size:1.5rem;line-height:1}.emoji-modal-close{align-items:center;background:var(--state-error-border);border:var(--border-width-medium) solid var(--state-error-border);border-radius:var(--radius-md);color:var(--text-inverse);cursor:pointer;display:flex;font-size:1.25rem;font-weight:700;height:2.5rem;justify-content:center;line-height:1;margin-left:var(--space-md);transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;width:2.5rem}.emoji-modal-close:hover{background:var(--state-error-text);border-color:var(--state-error-text);box-shadow:0 4px 8px rgba(239,68,68,.3);transform:translateY(-1px)}.emoji-modal-body{flex:1;overflow-y:auto;padding:var(--space-lg)}@media (width <= 480px){.action-modal{padding:.75rem}.action-modal-content{border-radius:var(--radius-md);max-width:none;width:calc(100vw - 1.5rem)}
    .action-modal-body,
    .action-modal-footer,.action-modal-header{padding:var(--space-md)}.action-modal .btn-action-hero{font-size:var(--font-size-sm);padding:var(--space-sm) var(--space-md)}}@media (width >= 481px){.action-modal .action-buttons-hero{flex-direction:row;gap:var(--space-md);justify-content:center}.action-modal .btn-action-hero{flex:0 0 auto;max-width:160px;min-width:120px;width:auto}}@media (width < 768px){
    .delete-confirm-modal,.quick-edit-modal{max-height:90vh;width:95%}.modal-actions{flex-direction:column;gap:var(--space-sm)}
    .cancel-delete-btn,
    .confirm-delete-btn,.full-edit-btn,
    .save-changes-btn{justify-content:center;text-align:center;width:100%}.emoji-modal{padding:var(--space-sm)}.emoji-modal-content{max-height:90vh}.emoji-modal-header{padding:var(--space-md)}.emoji-modal-body{padding:0 var(--space-sm) var(--space-sm) var(--space-sm)}.image-zoom-content{margin:var(--space-md);max-height:300px;max-width:350px}.image-zoom-close{font-size:1rem;height:30px;right:6px;top:6px;width:30px}}@media (width >= 768px) and (width <= 1199px){.emoji-modal-content{max-height:85vh;max-width:700px}.image-zoom-content{margin:var(--space-md);max-height:360px;max-width:450px}}@media (width >= 1200px){.emoji-modal{padding:var(--space-lg)}.emoji-modal-content{max-height:95vh;max-width:1200px;width:90vw}.emoji-modal-header{border-bottom:2px solid var(--border-subtle);padding:var(--space-xl)}.emoji-modal-title h3{font-size:var(--font-size-2xl);margin-bottom:var(--space-md)}.current-emoji-preview{font-size:var(--font-size-base);gap:var(--space-md)}.emoji-medium{font-size:2rem}.emoji-modal-body{max-height:calc(95vh - var(--space-xl)*2);overflow-y:auto;padding:0}}@media (prefers-reduced-motion:reduce){
    .action-modal-close,
    .delete-modal-close,
    .emoji-modal-close,.image-zoom-modal,
    .quick-edit-modal .modal-close-square{transition:none}
    .action-modal-close:hover,
    .delete-modal-close:hover,
    .emoji-modal-close:hover,.image-zoom-close:hover,
    .quick-edit-modal .modal-close-square:hover{transform:none}}@media (prefers-contrast:high){
    .action-modal,
    .image-zoom-modal,.modal-overlay{background:rgba(0,0,0,.8)}.action-modal-content,
    .delete-confirm-modal,
    .emoji-modal-content,
    .image-zoom-content,
    .quick-edit-modal{border:2px solid var(--text-primary)}}