/* period-filter.css — единый выбор периода (пресеты + календарь диапазона).
   Как на странице сводной маржинальности.
   Сетка календаря на фиксированных колонках: 1fr имеет min-width:auto и на узких
   экранах ячейки раздували грид до 3 колонок вместо 7. */

.pf{
  position:relative; flex:0 0 auto; display:inline-block;
  --pf-accent:var(--accent,#5B4FE9);
  --pf-accent-soft:#dbeafe;
  --pf-surface:var(--surface,#fff);
  --pf-surface2:var(--surface2,#f8fafc);
  --pf-border:var(--border,#e2e8f0);
  --pf-text:var(--text,#0f172a);
  --pf-muted:var(--muted,#64748b);
  font-family:inherit;
  -webkit-text-size-adjust:100%; text-size-adjust:100%;
}
.pf *{box-sizing:border-box}

.pf-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;background:var(--pf-surface);
  border:1px solid var(--pf-border);border-radius:10px;
  font-family:inherit;font-size:13px;font-weight:600;
  cursor:pointer;white-space:nowrap;color:var(--pf-text);
  transition:border-color .15s,box-shadow .15s;
}
.pf-btn:hover{border-color:var(--pf-accent)}
.pf.open .pf-btn{border-color:var(--pf-accent);box-shadow:0 0 0 3px rgba(91,79,233,.12)}
.pf-lbl{color:var(--pf-muted);font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}
.pf-val{font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-car{color:var(--pf-muted);font-size:10px;margin-left:2px}

.pf-pop{
  display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:60;
  background:var(--pf-surface);border:1px solid var(--pf-border);
  border-radius:12px;box-shadow:0 8px 24px rgba(15,28,46,.12);
  padding:12px;width:278px;
}
.pf.open .pf-pop{display:block}
.pf-pop.right{left:auto;right:0}

.pf-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.pf-chip{
  padding:6px 11px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;
  background:var(--pf-surface2);border:1px solid var(--pf-border);
  color:var(--pf-text);font-family:inherit;line-height:1.3;white-space:nowrap;
}
.pf-chip:hover{border-color:var(--pf-accent);color:var(--pf-accent)}
.pf-chip.active{background:var(--pf-accent);color:#fff;border-color:var(--pf-accent)}

.pf-divider{
  font-size:10px;font-weight:700;color:var(--pf-muted);text-transform:uppercase;
  letter-spacing:.04em;margin:0 0 9px;display:flex;align-items:center;gap:8px;
}
.pf-divider::before,.pf-divider::after{content:'';flex:1;height:1px;background:var(--pf-border)}

.pf-cal{user-select:none}
.pf-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.pf-cal-title{font-weight:600;font-size:13px;color:var(--pf-text);text-transform:capitalize}
.pf-nav{
  width:28px;height:28px;flex:0 0 28px;border-radius:7px;border:1px solid var(--pf-border);
  background:#fff;color:var(--pf-muted);font-size:15px;line-height:1;
  display:grid;place-items:center;cursor:pointer;font-family:inherit;padding:0;
}
.pf-nav:hover{background:var(--pf-surface2);color:var(--pf-text)}

/* Фиксированные колонки И строки: и ширина, и высота заданы явно,
   чтобы сетка не разъезжалась ни по горизонтали, ни по вертикали. */
.pf-dow,.pf-grid{
  display:grid;grid-template-columns:repeat(7,34px);
  column-gap:2px;row-gap:2px;justify-content:space-between;
  align-content:start;
}
.pf-grid{grid-auto-rows:34px}
.pf-dow{margin-bottom:4px;grid-auto-rows:16px}
.pf-dow span{text-align:center;font-size:10px;font-weight:700;color:var(--pf-muted);text-transform:uppercase;line-height:1.6}

.pf-cell{
  width:34px;height:34px;min-width:0;min-height:0;margin:0;padding:0;
  display:block;text-align:center;line-height:34px;
  font-size:12px;font-weight:500;
  color:var(--pf-text);border-radius:7px;cursor:pointer;position:relative;
  transition:background .15s,color .15s;
}
.pf-cell.empty{cursor:default}
.pf-cell:not(.empty):not(.disabled):hover{background:var(--pf-surface2)}
.pf-cell.disabled{color:#cbd5e1;opacity:.4;cursor:not-allowed}
.pf-cell.in-range{background:var(--pf-accent-soft);border-radius:0}
.pf-cell.range-start,.pf-cell.range-end{background:var(--pf-accent);color:#fff;font-weight:700}
.pf-cell.range-start{border-radius:7px 0 0 7px}
.pf-cell.range-end{border-radius:0 7px 7px 0}
.pf-cell.range-start.range-end{border-radius:7px}
.pf-cell.today::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--pf-accent)}
.pf-cell.range-start.today::after,.pf-cell.range-end.today::after{background:#fff}

.pf-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--pf-border)}
.pf-sel{font-size:11px;color:var(--pf-muted);font-weight:500;font-variant-numeric:tabular-nums;line-height:1.3}
.pf-apply{padding:7px 14px;border-radius:8px;border:none;background:var(--pf-accent);color:#fff;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;flex:0 0 auto}
.pf-apply:hover:not(:disabled){filter:brightness(1.06)}
.pf-apply:disabled{opacity:.4;cursor:not-allowed}

/* Ширина не должна превышать экран; позицию по горизонтали правит JS (fitPopup). */
.pf-pop{max-width:calc(100vw - 20px)}
