/**
 * Modal Component Styles
 * Container-aware modal component with layer support
 */

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgb(0 0 0 / 50%);
  z-index: 9998;
  transition: opacity 0.3s ease;
  opacity: 0;
}

.modal-overlay.modal-active {
  opacity: 1;
}

.modal-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 20px;
  container-type: inline-size;
}.modal{background-color:var(--modal-bg,#fff);border-radius:8px;box-shadow:0 10px 40px rgb(0 0 0 / 20%);max-height:90vh;display:flex;flex-direction:column;position:relative;width:100%}.modal-small{max-width:400px}.modal-medium{max-width:600px}.modal-large{max-width:900px}.modal-fullscreen{max-width:100%;max-height:100%;height:100%;border-radius:0}.modal-header{padding:20px;border-bottom:1px solid var(--border-color,#e0e0e0);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-title{margin:0;font-size:20px;font-weight:600;color:var(--text-primary,#333)}.modal-close{background:none;border:none;font-size:28px;color:var(--text-secondary,#666);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color 0.2s;margin-left:16px}/* Container query for touch-friendly modal close button */
@container (max-width: 768px) {
  .modal-close {
    width: 44px;
    height: 44px;
  }
}.modal-close:hover{background-color:var(--hover-bg,rgb(0 0 0 / 5%))}.modal-close:focus{outline:2px solid var(--focus-color,#4a6fa5);outline-offset:2px}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-footer{padding:16px 20px;border-top:1px solid var(--border-color,#e0e0e0);display:flex;gap:12px;justify-content:flex-end;flex-shrink:0}.modal-btn{padding:8px 16px;border:1px solid var(--border-color,#ddd);background-color:var(--btn-bg,#f5f5f5);color:var(--text-primary,#333);border-radius:4px;font-size:14px;cursor:pointer;transition:all 0.2s;font-weight:500;min-width:80px}.modal-btn:hover{background-color:var(--btn-hover-bg,#e0e0e0)}.modal-btn:focus{outline:2px solid var(--focus-color,#4a6fa5);outline-offset:2px}.modal-btn-primary{background-color:var(--primary-color,#4a6fa5);color:white;border-color:var(--primary-color,#4a6fa5)}.modal-btn-primary:hover{background-color:var(--primary-hover,#385580);border-color:var(--primary-hover,#385580)}.modal-confirm .modal-header{background-color:var(--confirm-bg,#e3f2fd);border-bottom-color:var(--confirm-border,#90caf9)}.modal-alert .modal-header{background-color:var(--alert-bg,#fff3cd);border-bottom-color:var(--alert-border,#ffeaa7)}.modal-alert .modal-title{color:var(--alert-color,#856404)}.modal-prompt{display:flex;flex-direction:column;gap:12px}.modal-prompt label{font-weight:500;color:var(--text-primary,#333)}.modal-prompt-input{width:100%;padding:8px 12px;border:1px solid var(--border-color,#ddd);border-radius:4px;font-size:14px;transition:border-color 0.2s}.modal-prompt-input:focus{outline:none;border-color:var(--focus-color,#4a6fa5);box-shadow:0 0 0 3px rgb(74 111 165 / 10%)}.modal:focus{outline:2px solid var(--focus-color,#4a6fa5);outline-offset:2px}.dark-theme .modal{background-color:var(--modal-bg,#1e1e1e);color:var(--text-primary,#f5f5f5)}.dark-theme .modal-header{border-bottom-color:var(--border-color,#333)}.dark-theme .modal-title{color:var(--text-primary,#f5f5f5)}.dark-theme .modal-close{color:var(--text-secondary,#aaa)}.dark-theme .modal-close:hover{background-color:var(--hover-bg,rgb(255 255 255 / 10%))}.dark-theme .modal-footer{border-top-color:var(--border-color,#333)}.dark-theme .modal-btn{background-color:var(--btn-bg,#2a2a2a);color:var(--text-primary,#f5f5f5);border-color:var(--border-color,#444)}.dark-theme .modal-btn:hover{background-color:var(--btn-hover-bg,#3a3a3a)}.dark-theme .modal-prompt-input{background-color:var(--input-bg,#2a2a2a);color:var(--text-primary,#f5f5f5);border-color:var(--border-color,#444)}.modal-container.fade{opacity:0;transition:opacity 0.3s ease}.modal-container.fade.modal-active{opacity:1}.modal-container.slide .modal{transform:translateY(-50px);transition:transform 0.3s ease}.modal-container.zoom .modal{transform:scale(0.8);opacity:0;transition:transform 0.3s ease,opacity 0.3s ease}.modal-container.slide.modal-active .modal{transform:translateY(0)}.modal-container.zoom.modal-active .modal{transform:scale(1);opacity:1}/* Container query for compact modal layout */
@container (max-width: 600px) {
  .modal-container {
    padding: 10px;
  }
  
  .modal {
    max-height: 100%;
  }
  
  .modal-header {
    padding: 16px;
  }
  
  .modal-body {
    padding: 16px;
  }
  
  .modal-footer {
    padding: 12px 16px;
    flex-wrap: wrap;
  }
  
  .modal-btn {
    flex: 1;
    min-width: 0;
  }
}.modal-body h3{margin-top:0;margin-bottom:16px;font-size:18px;font-weight:600}.modal-body p{margin-bottom:16px;line-height:1.6}.modal-body p:last-child{margin-bottom:0}.modal-body ul,.modal-body ol{margin-bottom:16px;padding-left:24px}.modal-body li{margin-bottom:8px}.modal-loading .modal-body{display:flex;align-items:center;justify-content:center;min-height:120px}.modal-loading .modal-body::after{content:"";width:32px;height:32px;border:3px solid var(--border-color,#ddd);border-top-color:var(--primary-color,#4a6fa5);border-radius:50%;animation:modal-spin 0.8s linear infinite}@keyframes modal-spin{to{transform:rotate(360deg)}}