:root {
    --modal-backdrop: rgba(0,0,0,.6);
    --modal-bg: #101316;         /* dark-friendly neutral */
    --modal-text: #e7eaee;
    --modal-border: #2a2f36;
    --focus: 2px solid #82b1ff;
    --radius: 16px;
    --shadow: 0 20px 50px rgba(0,0,0,.35);
    --gap: 14px;
  }

  .btn {
    padding: .6rem 1rem;
    border-radius: 8px;
    border: 1px solid #333a41;
    background: #1a1f25;
    color: #e7eaee;
    cursor: pointer;
  }
  .btn:hover { filter: brightness(1.1); }
  .btn--primary {
    background: #2557e0;
    border-color: #2e5fff;
    color: white;
  }

  /* Root (hidden by default) */
  .modal[aria-hidden="true"] { display: none; }

  /* Backdrop + centering layer */
  .modal {
    position: fixed; inset: 0; z-index: 1000;
  }
  /*.modal.is-open {
    display: flex;
  }*/
  .modal__backdrop {
    position: absolute; inset: 0;
    background: var(--modal-backdrop);
    backdrop-filter: blur(2px);
    opacity: 0; transition: opacity .18s ease-out;
  }
  .modal__dialog {
    position: relative;
    box-sizing: border-box;
	width: fit-content;
    max-width: 80vw;
	max-height: 92vh;
    margin: 2vh auto;
    background: var(--modal-bg);
    color: var(--modal-text);
    border: 1px solid var(--modal-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    display: flex; flex-direction: column;
    opacity: 0; transform: translateY(10px);
    transition: opacity .18s ease-out, transform .18s ease-out;
    outline: none;
	z-index: 1;
	overflow: hidden;
  }
  .modal.is-open .modal__backdrop { opacity: 1; }
  .modal.is-open .modal__dialog { opacity: 1; transform: translateY(0); }

  .modal__header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 1rem 1rem .75rem 1rem; border-bottom: 1px solid var(--modal-border);
  }
  .modal__title { margin: 0; font-size: 1.1rem; }
  .modal__close {
    border: none; background: transparent; color: var(--modal-text);
    font-size: 1.5rem; line-height: 1; cursor: pointer; padding: .25rem .5rem;
  }

.modal__body {
    padding: 1rem;
    overflow-y: auto;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
	flex-direction: column;
    justify-content: center;
	width: fit-content;
	max-width: 100%;
}


  
  .field { display: grid; gap: .4rem; margin-block: .6rem; }
  .field input, .field textarea {
    width: 100%; padding: .6rem .7rem; border-radius: 8px;
    background: #161b21; border: 1px solid #2a2f36; color: var(--modal-text);
  }
  .field input:focus, .field textarea:focus { outline: var(--focus); outline-offset: 2px; }
  .field_inline input:focus, .field textarea:focus { outline: var(--focus); outline-offset: 2px; }
  .field_inline {
	display: flex;
	align-items: center;
	gap: 0.5rem;
  }
  .actions { display: flex; gap: .5rem; margin-top: var(--gap); }

  /* Prevent background scroll when a modal is open */
  body.modal-open { overflow: hidden; }

  /* Motion-respect */
  @media (prefers-reduced-motion: reduce) {
    .modal__backdrop, .modal__dialog { transition: none; }
  }
  
  /* Footer with buttons pinned to dialog bottom */
.modal {
  padding: 0 0 calc(5rem + env(safe-area-inset-bottom));
}

/* iOS 11–12 legacy syntax (harmless elsewhere) */
.modal {
  padding-bottom: calc(5rem + constant(safe-area-inset-bottom));
}

@supports (max-height: 100dvh) {
  .modal {
    max-height: 100dvh;
  }
}