/* components/panel.css — Calendar · task-detail popover + overlay (tool-style)
   Раньше — правый sidebar на всю высоту; теперь попап рядом с элементом-источником
   (карточка события / строка ленты), позиционируется инлайн-style из task-detail.js. */

.panel-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.12);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur-2) var(--ease-out);
  z-index: 70;
}
.panel-overlay.open { opacity: 1; pointer-events: auto; }

.panel {
  position: fixed;
  /* left/top выставляются инлайн из task-detail.js (позиция рядом с источником
     или центр экрана, если источник не найден) — здесь только габариты/визуал. */
  top: 0;
  left: 0;
  width: 400px;
  max-width: min(400px, 92vw);
  max-height: calc(100vh - var(--sp-8));
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-4);
  box-shadow: var(--shadow-modal);
  opacity: 0;
  transform: scale(0.97);
  transition: opacity var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);
  z-index: 71;
  display: flex;
  flex-direction: column;
  pointer-events: none;
}
.panel.open { opacity: 1; transform: none; pointer-events: auto; }

/* Боковой режим: широкие источники (строки списков задач/клиентов) и открытие
   без источника (поиск). Инлайн left/top сброшены из task-detail.js. */
.panel.is-side {
  top: 0; right: 0; left: auto;
  height: 100vh;
  max-height: 100vh;
  width: min(420px, 92vw);
  max-width: none;
  border-radius: 0;
  border-top: 0; border-right: 0; border-bottom: 0;
  transform: translateX(12px);
}
.panel.is-side.open { transform: none; }

.panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5);
  border-bottom: 1px solid var(--border);
  flex: none;
}
.panel-body { flex: 1; min-height: 0; overflow-y: auto; padding: var(--sp-5); }
.panel-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5);
  border-top: 1px solid var(--border);
  flex: none;
}

@media (max-width: 520px) {
  /* Экран слишком узкий, чтобы попап осмысленно «прижимался» к источнику —
     центрируем и растягиваем почти на всю ширину (JS всё равно клэмпит left/top,
     это лишь подстраховка ширины). */
  .panel { width: 92vw; }
}

/* ── Popover (inline create on calendar) ── */
.popover {
  position: absolute;
  z-index: 75;
  width: 320px;
  max-width: 90vw;
  background: var(--white);
  border: 1px solid var(--ink-200);
  border-radius: var(--r-4);
  box-shadow: var(--shadow-modal);
  padding: var(--sp-5);
}
