
/* Danmi v42 — all dialog/window frame and spacing normalization */

/* Every dialog uses border-box so outer lines align with its real width. */
.member-panel,
.admin-login-panel,
.admin-panel,
.full-view-panel,
.policy-panel,
.schedule-detail-dialog,
.member-panel *,
.admin-login-panel *,
.admin-panel *,
.full-view-panel *,
.policy-panel *,
.schedule-detail-dialog * {
  box-sizing: border-box !important;
}

/* Overlay spacing is identical on every side. */
.member-overlay,
.admin-login-overlay,
.admin-overlay,
.full-view-overlay,
.policy-overlay,
.schedule-detail-overlay {
  padding: 18px !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Normalize the actual outside frame. */
.member-panel,
.admin-login-panel,
.admin-panel,
.full-view-panel,
.policy-panel,
.schedule-detail-dialog {
  position: relative !important;
  margin: 0 auto !important;
  border-width: 1px !important;
  border-style: solid !important;
  outline: 0 !important;
  background-clip: padding-box !important;
  overflow: hidden !important;
}

/* Remove decorative pseudo frames that can sit outside the real border. */
.member-panel::before,
.member-panel::after,
.admin-login-panel::before,
.admin-login-panel::after,
.admin-panel::before,
.admin-panel::after,
.full-view-panel::before,
.full-view-panel::after,
.policy-panel::before,
.policy-panel::after,
.schedule-detail-dialog::before,
.schedule-detail-dialog::after {
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  border-radius: inherit !important;
  pointer-events: none !important;
}

/* Header spacing and divider positions. */
.member-panel-header,
.admin-login-header,
.admin-panel-header,
.full-view-header,
.policy-header,
.schedule-detail-header {
  width: 100% !important;
  margin: 0 !important;
  padding: 18px 20px !important;
  gap: 14px !important;
  border-bottom-width: 1px !important;
  border-bottom-style: solid !important;
}

.member-panel-header > div,
.admin-login-header > div,
.admin-panel-header > div,
.full-view-header > div,
.policy-header > div,
.schedule-detail-header > div {
  min-width: 0 !important;
}

/* Close buttons use the same frame and stay inside the header line. */
.member-close-button,
.admin-login-close,
.admin-close-button,
.full-view-close,
.policy-close-button,
.schedule-detail-close {
  flex: 0 0 38px !important;
  width: 38px !important;
  min-width: 38px !important;
  max-width: 38px !important;
  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: center !important;
}

/* Main body inset is unified. */
.member-panel-columns {
  width: 100% !important;
  margin: 0 !important;
  padding: 18px 20px 20px !important;
}

.admin-login-panel > :not(.admin-login-header),
.admin-panel > :not(.admin-panel-header),
.policy-content,
.schedule-detail-body {
  margin-left: 20px !important;
  margin-right: 20px !important;
}

.admin-login-panel > :last-child,
.admin-panel > :last-child,
.policy-content,
.schedule-detail-body {
  margin-bottom: 20px !important;
}

.full-view-body {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 18px 20px 20px !important;
}

/* Member modal: align the outside border, header and both inner columns. */
.member-panel {
  padding: 0 !important;
}

.member-panel-columns {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
  gap: 16px !important;
  align-items: stretch !important;
}

.member-linkage-column,
.member-auth-column {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 16px !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 18px !important;
}

.member-linkage-column > *,
.member-auth-column > * {
  max-width: 100% !important;
}

.member-benefit-card,
.member-sync-preview,
.member-server-status,
.member-session-card,
.signup-quiz-card,
.signup-profile-quiz,
.signup-consent-box,
.password-rule-card {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Form rows and controls align to exactly the same inside edge. */
.member-auth-form,
.member-auth-form label,
.member-auth-form input,
.member-auth-form select,
.member-auth-form textarea,
.member-auth-form button,
.favorite-local-tools,
.favorite-local-tools > * {
  max-width: 100% !important;
}

.member-auth-form {
  padding: 0 !important;
}

.member-auth-form label {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.member-auth-form input,
.member-auth-form select,
.member-auth-form textarea {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.member-auth-tabs {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.signup-form-scroll {
  padding-left: 0 !important;
  padding-right: 4px !important;
}

.signup-submit-fixed {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Admin tabs, cards and inputs share one horizontal line. */
.admin-tabs,
.admin-tab-panel,
.admin-security-summary,
.admin-device-status,
.admin-panel input,
.admin-panel select,
.admin-panel textarea,
.admin-login-panel input,
.admin-login-panel select,
.admin-login-panel textarea {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.admin-tabs,
.admin-tab-panel {
  width: calc(100% - 40px) !important;
  margin-left: 20px !important;
  margin-right: 20px !important;
}

/* Schedule detail cards line up with body inset. */
.schedule-detail-section,
.schedule-detail-status-row {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Light/dark border colors remain solid and consistent. */
.member-panel,
.admin-login-panel,
.admin-panel,
.full-view-panel,
.policy-panel,
.schedule-detail-dialog {
  border-color: rgba(112, 77, 132, .28) !important;
}

.member-panel-header,
.admin-login-header,
.admin-panel-header,
.full-view-header,
.policy-header,
.schedule-detail-header {
  border-bottom-color: rgba(112, 77, 132, .18) !important;
}

html[data-theme="dark"] .member-panel,
html[data-theme="dark"] .admin-login-panel,
html[data-theme="dark"] .admin-panel,
html[data-theme="dark"] .full-view-panel,
html[data-theme="dark"] .policy-panel,
html[data-theme="dark"] .schedule-detail-dialog,
body.dark-mode .member-panel,
body.dark-mode .admin-login-panel,
body.dark-mode .admin-panel,
body.dark-mode .full-view-panel,
body.dark-mode .policy-panel,
body.dark-mode .schedule-detail-dialog {
  border-color: rgba(220, 194, 255, .24) !important;
}

html[data-theme="dark"] .member-panel-header,
html[data-theme="dark"] .admin-login-header,
html[data-theme="dark"] .admin-panel-header,
html[data-theme="dark"] .full-view-header,
html[data-theme="dark"] .policy-header,
html[data-theme="dark"] .schedule-detail-header,
body.dark-mode .member-panel-header,
body.dark-mode .admin-login-header,
body.dark-mode .admin-panel-header,
body.dark-mode .full-view-header,
body.dark-mode .policy-header,
body.dark-mode .schedule-detail-header {
  border-bottom-color: rgba(220, 194, 255, .16) !important;
}

/* Mobile uses a smaller but still even frame inset. */
@media (max-width: 760px) {
  .member-overlay,
  .admin-login-overlay,
  .admin-overlay,
  .full-view-overlay,
  .policy-overlay,
  .schedule-detail-overlay {
    padding: 8px !important;
  }

  .member-panel,
  .admin-login-panel,
  .admin-panel,
  .full-view-panel,
  .policy-panel,
  .schedule-detail-dialog {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    margin: 0 !important;
  }

  .member-panel-header,
  .admin-login-header,
  .admin-panel-header,
  .full-view-header,
  .policy-header,
  .schedule-detail-header {
    padding: 14px !important;
  }

  .member-panel-columns,
  .full-view-body {
    padding: 12px 14px 14px !important;
  }

  .member-panel-columns {
    gap: 10px !important;
  }

  .member-linkage-column,
  .member-auth-column {
    padding: 12px !important;
    border-radius: 15px !important;
  }

  .admin-login-panel > :not(.admin-login-header),
  .admin-panel > :not(.admin-panel-header),
  .policy-content,
  .schedule-detail-body {
    margin-left: 14px !important;
    margin-right: 14px !important;
  }

  .admin-login-panel > :last-child,
  .admin-panel > :last-child,
  .policy-content,
  .schedule-detail-body {
    margin-bottom: 14px !important;
  }

  .admin-tabs,
  .admin-tab-panel {
    width: calc(100% - 28px) !important;
    margin-left: 14px !important;
    margin-right: 14px !important;
  }
}
