/*!
 * Datacenter Room Builder
 * (c) 2026 Nicolas Choquet <contact@nicolas-choquet.fr>
 * https://nicolaschoquet.fr
 */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: flex-start;
  z-index: 20;
  overflow-y: auto;

  &.centered {
    align-items: center;
  }
}

.modal-container {
  background: light-dark(#fff, #3B4253);
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  max-width: 800px;
  width: 100%;
}

.modal-header h3 {
  margin-top: 0;
  margin-bottom: 1rem;
}

.modal-body {
  margin-bottom: 1.5rem;
}

.modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s ease;
  border: none;
  line-height: 1.25rem;
}

.btn-secondary {
  background-color: #6c757d;
  color: white;
}

.btn-secondary:hover {
  background-color: #5a6268;
}

.btn-danger {
  background-color: #e74c3c;
  color: white;
}

.btn-danger:hover {
  background-color: #c0392b;
}

/* Transitions */
.modal-enter-active,
.modal-leave-active {
  transition: opacity 0.3s ease;
}

.modal-enter-from,
.modal-leave-to {
  opacity: 0;
}

.loader-container {
  height: 100%;
  width: 100%;
  min-height: 500px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.loader {
  width: 48px;
  height: 48px;
  border: 5px solid #FFF;
  border-bottom-color: #FF3D00;
  border-radius: 50%;
  display: inline-block;
  box-sizing: border-box;
  animation: rotation 1s linear infinite;
}

@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.sn-notifications-container{--sn-success-color:#6fcf97;--sn-success-progress-color:#54aa78;--sn-error-color:#eb5757;--sn-error-progress-color:#c04545;--sn-warning-color:#f2c94c;--sn-warning-progress-color:#c4a64f;--sn-info-color:#51cdf3;--sn-info-progress-color:#54a9c4;--sn-notifications-gap:20px;--sn-notifications-padding:20px;--sn-notify-width:320px;--sn-notify-radius:6px;--sn-notify-transition-timing-function:ease;--sn-notify-transition-duration:.5s;--sn-notify-autoclose-timeout:30s;--sn-notify-padding:.75em;--sn-notify-icon-size:2em;--sn-notify-close-icon-size:1em;--sn-notify-border-size:1px;--sn-notify-border-color:transparent;--sn-notify-border-style:solid;--sn-notify-progress-color:#333;--sn-notify-close-icon-color:#333;--sn-notify-title-color:#333;--sn-notify-text-color:#4d4d4d;--sn-notify-shadow-color:transparent;--sn-notify-progress-height:5px;pointer-events:none;z-index:9999;grid-gap:var(--sn-notifications-gap);align-content:flex-start;gap:var(--sn-notifications-gap);width:100%;max-width:100%;min-height:100vh;max-height:100vh;padding:var(--sn-notifications-padding);grid-auto-rows:min-content;display:grid;position:fixed;inset:0}.sn-notifications-container.sn-is-x-center{justify-content:center}.sn-notifications-container.sn-is-y-center{place-content:center flex-end}.sn-notifications-container.sn-is-center{place-content:center}.sn-notifications-container.sn-is-left{justify-content:flex-start}.sn-notifications-container.sn-is-right{justify-content:flex-end}.sn-notifications-container.sn-is-top{align-content:flex-start}.sn-notifications-container.sn-is-bottom{align-content:flex-end}.sn-notify{pointer-events:auto;transition-timing-function:var(--sn-notify-transition-timing-function);transition-duration:var(--sn-notify-transition-duration);border-radius:var(--sn-notify-radius);background-color:var(--sn-notify-background-color,transparent);border:var(--sn-notify-border-size) var(--sn-notify-border-style) var(--sn-notify-border-color);padding:var(--sn-notify-padding);box-sizing:border-box;width:var(--sn-notify-width);align-items:center;text-decoration:none;transition-property:transform,opacity;display:flex;position:relative;overflow:hidden}.sn-notify-icon{width:var(--sn-notify-icon-size);height:var(--sn-notify-icon-size);color:var(--sn-notify-icon-color);flex-shrink:0;justify-content:center;align-items:center;margin-right:.75em;display:flex}.sn-notify-close{-webkit-user-select:none;user-select:none;cursor:pointer;height:var(--sn-notify-close-icon-size);width:var(--sn-notify-close-icon-size);color:var(--sn-notify-close-icon-color);justify-content:center;align-items:center;display:flex;position:absolute;top:.75em;right:.75em}.sn-notify-title{padding-right:calc(var(--sn-notify-padding) + var(--sn-notify-close-icon-size));color:var(--sn-notify-title-color);font-size:1rem;font-weight:600}.sn-notify-text{color:var(--sn-notify-text-color);margin-top:.25rem;font-size:.875rem}.sn-notify-outline{--sn-notify-background-color:#fff;--sn-notify-border-color:var(--sn-success-color);box-shadow:0 2px 26px var(--sn-notify-shadow-color)}.sn-notify-outline.sn-notify-success{--sn-notify-border-color:var(--sn-success-color);--sn-notify-icon-color:var(--sn-success-color);--sn-notify-shadow-color:#52d7001a}.sn-notify-outline.sn-notify-error{--sn-notify-border-color:var(--sn-error-color);--sn-notify-icon-color:var(--sn-error-color);--sn-notify-shadow-color:#d700001a}.sn-notify-outline.sn-notify-warning{--sn-notify-border-color:var(--sn-warning-color);--sn-notify-icon-color:var(--sn-warning-color);--sn-notify-shadow-color:#f2c94c1a}.sn-notify-outline.sn-notify-info{--sn-notify-border-color:var(--sn-info-color);--sn-notify-icon-color:var(--sn-info-color);--sn-notify-shadow-color:#54afca1a}.sn-notify-outline .sn-notify-title{--sn-notify-title-color:#333}.sn-notify-outline .sn-notify-text{--sn-notify-text-color:#4d4d4d}.sn-notify-outline .sn-notify-close{--sn-notify-close-icon-color:#828282}.sn-notify-filled{--sn-notify-title-color:#333;--sn-notify-text-color:#333;--sn-notify-icon-color:#333;--sn-notify-close-icon-color:#333}.sn-notify-filled.sn-notify-success{--sn-notify-background-color:var(--sn-success-color)}.sn-notify-filled.sn-notify-error{--sn-notify-background-color:var(--sn-error-color)}.sn-notify-filled.sn-notify-warning{--sn-notify-background-color:var(--sn-warning-color)}.sn-notify-filled.sn-notify-info{--sn-notify-background-color:var(--sn-info-color)}.sn-notify-fade{opacity:0;will-change:opacity}.sn-notify-fade-in{opacity:1}.sn-notify-slide{opacity:0;will-change:opacity,transform;transform:translate3d(var(--sn-notify-x),var(--sn-notify-y),0)}.sn-is-left .sn-notify-slide{--sn-notify-x:-100%;--sn-notify-y:0}.sn-is-right .sn-notify-slide,.sn-is-y-center:not(.sn-is-left) .sn-notify-slide{--sn-notify-x:100%;--sn-notify-y:0}.sn-is-top.sn-is-x-center .sn-notify-slide,.sn-is-x-center .sn-notify-slide{--sn-notify-y:-100%;--sn-notify-x:0}.sn-is-bottom.sn-is-x-center .sn-notify-slide{--sn-notify-y:100%;--sn-notify-x:0}.sn-notify-slide-in{opacity:1;transform:translateZ(0)}.sn-notify-autoclose{padding-bottom:calc(var(--sn-notify-padding) + var(--sn-notify-progress-height))}.sn-notify-autoclose.sn-notify-success{--sn-notify-progress-color:var(--sn-success-progress-color)}.sn-notify-autoclose.sn-notify-error{--sn-notify-progress-color:var(--sn-error-progress-color)}.sn-notify-autoclose.sn-notify-warning{--sn-notify-progress-color:var(--sn-warning-progress-color)}.sn-notify-autoclose.sn-notify-info{--sn-notify-progress-color:var(--sn-info-progress-color)}.sn-notify-autoclose:before{content:"";will-change:width;width:100%;height:var(--sn-notify-progress-height);background-color:var(--sn-notify-progress-color);animation:progress var(--sn-notify-autoclose-timeout) linear forwards;border-radius:0 999px 999px 0;display:block;position:absolute;bottom:0;left:0}.sn-notify-content{padding-right:calc(var(--sn-notify-close-icon-size) + 2px)}@keyframes progress{to{width:0%}}
/*$vite$:1*/