/* In-app alert / confirm — replaces native browser dialogs */
.app-dialog-modal{
  z-index: 2100;
}
.app-dialog-modal .modal-dialog{
  max-width: 420px;
}
.app-dialog-modal .modal-content{
  border: 1px solid var(--panel-border, #e6e8ee);
  border-radius: 20px;
  background: var(--surface, #fff);
  color: var(--text, #1c2333);
  box-shadow: 0 24px 60px rgba(8, 12, 24, .45);
  overflow: hidden;
}
.app-dialog-modal .modal-body{
  padding: 28px 26px 24px;
  text-align: center;
}
.app-dialog-icon{
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: rgba(99, 102, 241, .16);
  color: #818cf8;
  font-size: 1.55rem;
}
.app-dialog-modal.is-success .app-dialog-icon{
  background: rgba(22, 163, 74, .16);
  color: #4ade80;
}
.app-dialog-modal.is-warning .app-dialog-icon{
  background: rgba(241, 181, 51, .16);
  color: #f1b533;
}
.app-dialog-modal.is-danger .app-dialog-icon{
  background: rgba(220, 38, 38, .16);
  color: #f87171;
}
.app-dialog-title{
  margin: 0 0 8px;
  font-size: 1.2rem;
  font-weight: 800;
}
.app-dialog-text{
  margin: 0 0 22px;
  color: var(--muted, #65718a);
  font-size: .95rem;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}
.app-dialog-actions{
  display: flex;
  justify-content: center;
  gap: 10px;
}
.app-dialog-actions .btn{
  min-width: 118px;
  border-radius: 999px;
  font-weight: 700;
}
.app-dialog-modal.is-warning .btn-primary{
  background: var(--warning, #f1b533);
  border-color: var(--warning, #f1b533);
  color: #161922;
}
.app-dialog-modal.is-danger .btn-primary{
  background: var(--danger, #f06a7c);
  border-color: var(--danger, #f06a7c);
  color: #fff;
}
[data-bs-theme="dark"] .app-dialog-modal .modal-content{
  background: var(--surface, #191e2b);
  border-color: rgba(255,255,255,.1);
  color: var(--text, #f5f7fb);
}
[data-bs-theme="dark"] .app-dialog-modal .btn-outline-secondary{
  color: #d7deee;
  border-color: rgba(255,255,255,.16);
}
[data-bs-theme="dark"] .app-dialog-modal .btn-outline-secondary:hover{
  background: var(--surface-hover, #252c3d);
  color: #fff;
}

body.parent-phone-gate-open{
  overflow: hidden;
}
.parent-phone-gate{
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(8, 10, 18, .78);
}
.parent-phone-gate-card{
  width: min(440px, 100%);
  border: 1px solid var(--panel-border, #e6e8ee);
  border-radius: 20px;
  background: var(--surface, #fff);
  color: var(--text, #1c2333);
  box-shadow: 0 24px 60px rgba(8, 12, 24, .45);
  padding: 28px 26px 22px;
  text-align: left;
}
.parent-phone-gate-icon{
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: rgba(99, 102, 241, .16);
  color: #818cf8;
  font-size: 1.55rem;
}
.parent-phone-gate-card h2{
  margin: 0 0 8px;
  font-size: 1.2rem;
  font-weight: 800;
  text-align: center;
}
.parent-phone-gate-card > p{
  margin: 0 0 18px;
  color: var(--muted, #65718a);
  font-size: .95rem;
  line-height: 1.5;
  text-align: center;
}
.parent-phone-gate-card .form-label{
  font-weight: 600;
  margin-top: 10px;
}
.parent-phone-gate-card .form-control{
  margin-bottom: 4px;
}
.parent-phone-gate-error{
  color: #b42318;
  font-size: .9rem;
  margin: 8px 0 4px;
}
.parent-phone-gate-card .btn-primary{
  margin-top: 14px;
  border-radius: 999px;
  font-weight: 700;
}
.parent-phone-gate-logout{
  display: block;
  text-align: center;
  margin-top: 14px;
  font-size: .9rem;
  color: var(--muted, #65718a);
}
[data-bs-theme="dark"] .parent-phone-gate-card{
  background: var(--surface, #191e2b);
  border-color: rgba(255,255,255,.1);
  color: var(--text, #f5f7fb);
}
[data-bs-theme="dark"] .parent-phone-gate-error{
  color: #f87171;
}
.modal-backdrop.app-dialog-back{
  z-index: 2090;
  background: rgba(8, 10, 18, .72);
}
