/* ══════════════════════════════
   DIALOGS — bottom sheet mobile, centered desktop
══════════════════════════════ */
.dialog-container {
  position:fixed;inset:0;z-index:var(--z-dialog);
  display:none;align-items:flex-end;justify-content:center;
}
.dialog-container.open { display:flex; }
.dialog-backdrop {
  position:absolute;inset:0;background:var(--bg-overlay);
  animation:fadeIn var(--ease) forwards;
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
}
@keyframes fadeIn { from{opacity:0}to{opacity:1} }
.dialog {
  position:relative;width:100%;max-height:92dvh;
  background:var(--bg-surface);
  border-radius:var(--radius-xl) var(--radius-xl) 0 0;
  display:flex;flex-direction:column;
  animation:slideUp var(--ease-out) forwards;overflow:hidden;z-index:1;
  box-shadow:var(--shadow-dialog);
}
@keyframes slideUp { from{transform:translateY(100%)}to{transform:translateY(0)} }
/* Handle bar */
.dialog::before {
  content:'';position:absolute;top:10px;left:50%;transform:translateX(-50%);
  width:40px;height:4px;background:var(--gray-300);border-radius:var(--radius-full);
}
.dialog__header {
  display:flex;align-items:center;justify-content:space-between;
  padding:var(--sp-7) var(--sp-5) var(--sp-4);
  border-bottom:1px solid var(--border);flex-shrink:0;
}
.dialog__title { font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--text-primary); }
.dialog__close {
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius);color:var(--text-secondary);transition:background var(--ease);
}
.dialog__close:hover { background:var(--gray-100); }
.dialog__body {
  flex:1;overflow-y:auto;padding:var(--sp-5);
  display:flex;flex-direction:column;gap:var(--sp-4);
}
.dialog__footer {
  display:flex;gap:var(--sp-3);
  padding:var(--sp-4) var(--sp-5);
  padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));
  border-top:1px solid var(--border);flex-shrink:0;
}
.dialog__footer .btn { flex:1; }

/* Search overlay */
.search-overlay {
  position:fixed;inset:0;z-index:var(--z-dialog);
  background:var(--bg-overlay);
  display:flex;align-items:flex-start;justify-content:center;
  padding:var(--sp-5);animation:fadeIn var(--ease) forwards;
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
}
.search-overlay__box {
  width:100%;max-width:520px;background:var(--bg-surface);
  border-radius:var(--radius-xl);box-shadow:var(--shadow-dialog);overflow:hidden;margin-top:var(--sp-4);
}
.search-overlay__input-wrap {
  display:flex;align-items:center;gap:var(--sp-3);
  padding:14px 18px;border-bottom:1px solid var(--border);color:var(--text-muted);
}
.search-overlay__input {
  flex:1;border:none;outline:none;font-family:var(--font);
  font-size:17px;color:var(--text-primary);background:transparent;
}
.search-overlay__results { max-height:340px;overflow-y:auto; }
.search-result-item {
  display:flex;align-items:center;gap:var(--sp-3);
  padding:12px 18px;cursor:pointer;transition:background var(--ease);
  border-bottom:1px solid var(--border);
}
.search-result-item:last-child { border-bottom:none; }
.search-result-item:hover { background:var(--gray-50); }
.search-result-item:active { background:var(--primary-50); }
.search-result-item__info { flex:1;min-width:0; }
.search-result-item__name { font-size:14px;font-weight:600;color:var(--text-primary); }
.search-result-item__sub  { font-size:12px;color:var(--text-muted);margin-top:1px; }

/* Desktop: center dialog */
@media(min-width:600px){
  .dialog-container { align-items:center; }
  .dialog { max-width:var(--dialog-max-w);border-radius:var(--radius-xl);max-height:88dvh;animation:zoomIn var(--ease) forwards; }
  .dialog::before { display:none; }
  @keyframes zoomIn { from{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)} }
}

/* Toggle switch */
.toggle { position:relative;width:46px;height:26px;cursor:pointer;flex-shrink:0; }
.toggle input { opacity:0;width:0;height:0; }
.toggle__track {
  position:absolute;inset:0;background:var(--gray-300);
  border-radius:var(--radius-full);transition:background var(--ease);
}
.toggle input:checked + .toggle__track { background:var(--primary); }
.toggle__thumb {
  position:absolute;top:3px;right:3px;
  width:20px;height:20px;background:#fff;border-radius:50%;
  transition:transform var(--ease);box-shadow:var(--shadow-xs);
}
.toggle input:checked ~ .toggle__thumb { transform:translateX(-20px); }
