.r704-period { min-width:0; width:100%; }
.r704-period-label { display:block; margin-bottom:7px; color:#697386; font-size:13px; line-height:1.4; }
.dashboard-page .r704-period-trigger { display:flex; align-items:center; gap:10px; width:100%; min-height:48px; padding:10px 12px; border:1px solid #dfe5ef; border-radius:10px; background:#fff; color:#111827; font:inherit; font-size:14px; text-align:left; cursor:pointer; }
.r704-period-trigger span { flex:1; min-width:0; overflow-wrap:anywhere; }
.r704-period-trigger svg { flex-shrink:0; }
.r704-period-trigger:hover { border-color:#6f72f6; }
.r704-period-trigger:focus-visible, .r704-period-dialog button:focus-visible, .r704-period-dialog input:focus-visible, .r704-period-dialog select:focus-visible, .r704-period-dialog summary:focus-visible { outline:3px solid #6f72f6; outline-offset:2px; }
.r704-period-dialog { box-sizing:border-box; position:fixed; inset:auto; left:var(--period-left,12px); top:var(--period-top,12px); width:min(440px,calc(100vw - 24px)); max-width:none; max-height:calc(100dvh - var(--period-top,12px) - 12px); margin:0; padding:0; border:1px solid #dfe5ef; border-radius:18px; background:#fff; color:#111827; font-family:inherit; font-size:14px; box-shadow:0 16px 54px #23375826; overflow:hidden; }
.r704-period-dialog[open] { display:flex; flex-direction:column; }
.r704-period-dialog::backdrop { background:#11182740; }
.r704-period-dialog *, .r704-period-dialog *::before, .r704-period-dialog *::after { box-sizing:border-box; }
.r704-period-dialog button, .r704-period-dialog select, .r704-period-dialog input { font-family:inherit; }
.r704-period-dialog button { cursor:pointer; }
.dashboard-page .r704-period-dialog button { margin:0; letter-spacing:normal; text-transform:none; }
.r704-period-dialog button:disabled, .r704-period-trigger:disabled { opacity:.5; cursor:not-allowed; }
.r704-period-handle { display:none; }
.r704-period-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px 4px; flex-shrink:0; }
.r704-period-heading h2 { margin:0; font-size:20px; font-weight:750; line-height:1.4; }
.r704-period-dialog .r704-icon-button { display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0; border:0; border-radius:10px; background:transparent; color:#111827; }
.r704-icon-button:hover { background:#f1f2fa; }
.r704-period-content { padding:8px 16px 12px; overflow-y:auto; min-height:0; overscroll-behavior:contain; }
.r704-period-quick { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.r704-period-quick button { font-size:12px; padding-inline:4px; }
.r704-period-quick button, .r704-period-more button { min-height:44px; padding:8px; border:1px solid #dfe5ef; border-radius:10px; background:#f7f8fc; color:#344054; font-size:13px; line-height:1.35; }
.r704-period-quick button[aria-pressed=true], .r704-period-more button[aria-pressed=true] { border-color:#6f72f6; background:#efedff; color:#4e43b8; }
.r704-period-more { margin:4px 0 8px; }
.r704-period-more summary { min-height:36px; display:flex; align-items:center; width:max-content; padding:6px 0; color:#6252cc; font-size:13px; cursor:pointer; }
.r704-period-more summary svg { margin-right:6px; }
.r704-period-more[open] summary svg { transform:rotate(180deg); }
.r704-period-more > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding-bottom:8px; }
.r704-period-dates { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:end; gap:6px; }
.r704-period-dates label { min-width:0; }
.r704-period-dates label > span { display:block; color:#697386; font-size:12px; margin-bottom:5px; }
.r704-period-dialog .r704-period-dates input { display:block; width:100%; min-width:0; max-width:100%; height:46px; margin:0; padding:8px; color:#111827; background:#fff; border:1px solid #dfe5ef; border-radius:10px; font-size:16px; font-weight:500; }
.r704-period-dash { align-self:center; padding-top:20px; color:#697386; }
.r704-month-navigation { display:flex; justify-content:space-between; align-items:center; gap:4px; margin:12px 0 4px; }
.r704-month-navigation > div { display:flex; gap:0; min-width:0; }
.r704-period-dialog .r704-month-navigation select { min-width:0; height:44px; max-width:135px; padding:6px 2px; border:0; background:#fff; color:#111827; font-size:15px; font-weight:650; }
.r704-calendar-row { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.r704-calendar [role=columnheader] { display:flex; justify-content:center; align-items:center; min-height:32px; color:#697386; font-size:12px; }
.r704-calendar [role=gridcell] { display:flex; align-items:center; justify-content:center; min-width:0; margin-block:2px; }
.r704-calendar [role=gridcell].is-range { background:#eeebff; }
.r704-calendar [role=gridcell].is-start { border-radius:24px 0 0 24px; }
.r704-calendar [role=gridcell].is-end { border-radius:0 24px 24px 0; }
.r704-calendar [role=gridcell].is-start.is-end { border-radius:24px; }
.r704-period-dialog .r704-calendar button { display:flex; align-items:center; justify-content:center; width:100%; max-width:44px; min-width:0; height:44px; padding:0; border:0; border-radius:50%; background:transparent; color:#111827; font-size:14px; }
.r704-calendar button.is-other-month { color:#9299a8; }
.r704-period-dialog .r704-calendar button.is-endpoint { background:#6b59e8; color:#fff; }
.r704-calendar button[aria-current=date]:not(.is-endpoint) { box-shadow:inset 0 0 0 1px #6f72f6; }
.r704-calendar button:hover:not(.is-endpoint) { background:#e2ddff; }
.r704-period-hint { margin:10px 0 0; min-height:32px; color:#697386; font-size:12px; line-height:1.45; }
.r704-period-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; flex-shrink:0; padding:12px 16px; border-top:1px solid #e6e9f2; background:#fff; }
.r704-period-footer > span { font-size:12px; color:#697386; }
.r704-period-footer > div { display:flex; gap:8px; margin-left:auto; }
.r704-period-footer button { min-height:44px; padding:9px 13px; border:1px solid #dfe5ef; border-radius:10px; background:#fff; color:#111827; font-size:14px; }
.r704-period-footer button.r704-period-apply { background:#6b59e8; border-color:#6b59e8; color:#fff; }
.dashboard-page .dashboard-filters-r704 .dashboard-filter-column-period { display:flex; flex-direction:row; flex-wrap:wrap; align-items:flex-end; justify-content:flex-start; gap:8px; min-width:0; }
.dashboard-page .dashboard-filters-r704 .dashboard-filter-column-period > .r704-period { flex:1 1 220px; min-width:0; }
.dashboard-page .dashboard-filters-r704 .dashboard-filter-column-period > .dashboard-filter-footer { flex:0 1 auto; width:auto; min-width:0; }
.dashboard-page .dashboard-filters-r704 .dashboard-filter-actions { gap:8px; }
.dashboard-page .dashboard-filters-r704 .dashboard-filter-actions button { min-height:44px; }
.dashboard-page .dashboard-filters-r704 .dashboard-filter-column-period .dashboard-reset { display:inline-flex; justify-content:center; align-items:center; width:44px; min-width:44px; padding:0; }
.dashboard-page .dashboard-filters-r704 .dashboard-filter-column-period .dashboard-reset span { display:none; }
@media(max-width:760px) {
  .r704-period-dialog { left:0; right:0; top:auto; bottom:0; width:100%; max-height:calc(100dvh - 12px); border-radius:20px 20px 0 0; padding-bottom:env(safe-area-inset-bottom); }
  .r704-period-handle { display:block; width:36px; min-height:4px; border-radius:3px; background:#d5dae4; align-self:center; margin-top:8px; }
  .r704-period-heading { padding-top:4px; }
  .r704-period-content { padding-inline:12px; }
  .r704-period-footer { padding-inline:12px; }
  .r704-period-dialog .r704-period-dates input { padding-inline:4px; }
  .r704-period-quick { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:no-preference) { .r704-period-dialog[open] { animation:r704-period-enter .16s ease-out; } @keyframes r704-period-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } } }
@media(max-width:350px) { .r704-period-content { padding-inline:5px; } }
