/*
 * Eventform calendar and operational workflows.
 *
 * Modern calendar generations, team calendars and the related event workflow
 * refinements. File order is part of the global CSS cascade contract.
 */

/* ==========================================================================\n   2026-09-01: Calendar V4 + dark PWA update dialog\n   ========================================================================== */

/* Required PWA update must respect the active dark theme as well. */
html[data-theme="dark"] .pwa-required-update{
  background:rgba(10,8,7,.84)!important;
  backdrop-filter:blur(12px) saturate(.8)!important;
}
html[data-theme="dark"] .pwa-required-update__card{
  background:linear-gradient(155deg,#211c18 0%,#181411 100%)!important;
  color:#f2e8de!important;
  border-color:#5c4939!important;
  box-shadow:0 30px 90px rgba(0,0,0,.52)!important;
}
html[data-theme="dark"] .pwa-required-update__card :is(h1,h2,h3,strong){color:#f5ece3!important}
html[data-theme="dark"] .pwa-required-update__card :is(p,small){color:#cdbfb2!important}
html[data-theme="dark"] .pwa-required-update__version{
  background:#29231e!important;
  color:#d8c9bc!important;
  border-color:#5a4839!important;
}
html[data-theme="dark"] .pwa-required-update__card .button{
  background:linear-gradient(135deg,#c99561,#9b6f45)!important;
  color:#fffaf4!important;
  border-color:transparent!important;
  box-shadow:0 12px 28px rgba(155,111,69,.24)!important;
}
html[data-theme="dark"] .pwa-required-update__card .button:disabled{opacity:.62!important}

/* New operational calendar. It is intentionally isolated from the old dashboard calendar CSS. */
.calendar-v4-page{
  display:grid;
  gap:16px;
  min-width:0;
}

.calendar-v4{
  --cal-bg:#f8f4ef;
  --cal-panel:#fffdfa;
  --cal-panel-2:#f4eee7;
  --cal-panel-3:#eee5dc;
  --cal-ink:#251d17;
  --cal-muted:#75685d;
  --cal-line:#e1d5c8;
  --cal-line-strong:#cdbbab;
  --cal-grid:rgba(111,88,68,.12);
  --cal-accent:#9b6f45;
  --cal-accent-strong:#765033;
  --cal-accent-soft:#f0dfcd;
  --cal-today:#fff4e7;
  --cal-selected:#f5eadf;
  --cal-in-progress:#9b692d;
  --cal-in-progress-bg:#fbf1e2;
  --cal-in-progress-border:#e6c99f;
  --cal-offer:#396b98;
  --cal-offer-bg:#eaf2fa;
  --cal-offer-border:#bfd5e8;
  --cal-offer-sent:#72589a;
  --cal-offer-sent-bg:#f0ebf8;
  --cal-offer-sent-border:#d5c7e6;
  --cal-confirmed:#2f7756;
  --cal-confirmed-bg:#e9f5ee;
  --cal-confirmed-border:#b9d9c7;
  --cal-service-preparation:#2f7756;
  --cal-service-event:#2f7756;
  --cal-service-cleanup:#2f7756;
  --cal-closed:#6c6259;
  --cal-closed-bg:#efebe7;
  --cal-closed-border:#d3c9bf;
  --cal-preparation:#b3603b;
  --cal-preparation-bg:#faebe3;
  --cal-preparation-border:#e8c0ad;
  --cal-todo:#2e777b;
  --cal-todo-bg:#e7f4f3;
  --cal-todo-border:#b8d9d7;
  padding:0!important;
  overflow:hidden;
  background:var(--cal-panel)!important;
  color:var(--cal-ink)!important;
  border:1px solid var(--cal-line)!important;
  border-radius:22px!important;
  box-shadow:0 18px 45px rgba(64,42,24,.08)!important;
}

.calendar-v4__hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:17px 18px;
  border-bottom:1px solid var(--cal-line);
  background:linear-gradient(135deg,var(--cal-panel),var(--cal-panel-2));
}
.calendar-v4__period-wrap{display:flex;align-items:center;gap:16px;min-width:0}
.calendar-v4__period-nav{display:flex;align-items:center;gap:7px;min-width:0}
.calendar-v4__period-copy{display:grid;gap:1px;min-width:180px;padding:0 5px}
.calendar-v4__period-copy small{color:var(--cal-muted);font-size:calc(.59rem + 1px);text-transform:uppercase;letter-spacing:.09em;font-weight:700}
.calendar-v4__period-copy strong{font-size:calc(.98rem + 1px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-v4__nav,
.calendar-v4__today,
.calendar-v4__view,
.calendar-v4__reset{
  appearance:none;
  border:1px solid var(--cal-line);
  background:var(--cal-panel);
  color:var(--cal-ink);
  font:inherit;
  cursor:pointer;
  box-shadow:none;
  transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease;
}
.calendar-v4__nav:hover,
.calendar-v4__today:hover,
.calendar-v4__view:hover,
.calendar-v4__reset:hover{border-color:var(--cal-line-strong);background:var(--cal-panel-2)}
.calendar-v4__nav:active,
.calendar-v4__today:active,
.calendar-v4__view:active{transform:translateY(1px)}
.calendar-v4__nav{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:10px;
  font-size:calc(1.25rem + 1px);
  line-height:1;
}
.calendar-v4__today{min-height:34px;padding:0 12px;border-radius:10px;font-size:calc(.72rem + 1px);font-weight:700}
.calendar-v4__metrics{display:flex;align-items:stretch;gap:7px}
.calendar-v4__metrics>span{min-width:66px;display:grid;gap:0;padding:6px 10px;border:1px solid var(--cal-line);border-radius:11px;background:rgba(255,255,255,.48)}
.calendar-v4__metrics small{color:var(--cal-muted);font-size:calc(.55rem + 1px);text-transform:uppercase;letter-spacing:.07em}
.calendar-v4__metrics strong{font-size:calc(.94rem + 1px);font-variant-numeric:tabular-nums}
.calendar-v4__views{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--cal-line);border-radius:12px;background:var(--cal-panel-2)}
.calendar-v4__view{min-height:32px;padding:0 11px;border-color:transparent;border-radius:9px;background:transparent;color:var(--cal-muted);font-size:calc(.7rem + 1px);font-weight:700;white-space:nowrap}
.calendar-v4__view.is-active{background:var(--cal-panel);color:var(--cal-accent-strong);border-color:var(--cal-line);box-shadow:0 4px 12px rgba(74,50,31,.08)}
.calendar-v4__phase-legend{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  padding:4px 8px;
  border:1px solid var(--cal-line);
  border-radius:10px;
  background:var(--cal-panel-2);
  color:var(--cal-muted);
  font-size:calc(.58rem + 1px);
  font-weight:700;
  white-space:nowrap;
}
.calendar-v4__phase-legend>span{display:inline-flex;align-items:center;gap:4px}
.calendar-v4__phase-swatch{width:18px;height:10px;border:1px solid var(--cal-line);border-radius:3px;background:var(--cal-accent)}
.calendar-v4__phase-swatch--preparation{border-color:color-mix(in srgb,var(--cal-service-preparation) 62%,var(--cal-line));background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--cal-service-preparation) 48%,var(--cal-panel)) 0 4px,color-mix(in srgb,var(--cal-service-preparation) 16%,var(--cal-panel)) 4px 8px)}
.calendar-v4__phase-swatch--event{border-color:color-mix(in srgb,var(--cal-service-event) 62%,var(--cal-line));background:color-mix(in srgb,var(--cal-service-event) 42%,var(--cal-panel))}
.calendar-v4__phase-swatch--cleanup{border-color:color-mix(in srgb,var(--cal-service-cleanup) 62%,var(--cal-line));background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--cal-service-cleanup) 48%,var(--cal-panel)) 0 4px,color-mix(in srgb,var(--cal-service-cleanup) 16%,var(--cal-panel)) 4px 8px)}


.calendar-v4__filters{
  display:grid;
  padding:12px 18px;
  border-bottom:1px solid var(--cal-line);
  background:var(--cal-panel);
}
.calendar-v4-search{position:relative;display:block;min-width:0}
.calendar-v4-search__icon{position:absolute;left:12px;top:50%;width:13px;height:13px;border:1.7px solid var(--cal-muted);border-radius:50%;transform:translateY(-58%);pointer-events:none}
.calendar-v4-search__icon::after{content:"";position:absolute;right:-4px;bottom:-3px;width:5px;height:1.7px;border-radius:2px;background:var(--cal-muted);transform:rotate(45deg);transform-origin:left center}
.calendar-v4-search input{
  height:38px;
  padding:8px 68px 8px 34px!important;
  border:1px solid var(--cal-line)!important;
  border-radius:11px!important;
  background:var(--cal-panel-2)!important;
  color:var(--cal-ink)!important;
  box-shadow:none!important;
  font-size:calc(.72rem + 1px) !important;
}
.calendar-v4-search input:focus{outline:none;border-color:rgba(155,111,69,.58)!important;box-shadow:0 0 0 3px rgba(155,111,69,.09)!important}
.calendar-v4-search input::placeholder{color:var(--cal-muted)!important;opacity:.82}
.calendar-v4-search kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:2px 6px;border:1px solid var(--cal-line);border-radius:6px;background:var(--cal-panel);color:var(--cal-muted);font:600 calc(.52rem + 1px)/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}
.calendar-v4-status-filter{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;margin:0}
.calendar-v4-status-filter>span{color:var(--cal-muted);font-size:calc(.62rem + 1px);font-weight:700}
.calendar-v4-status-filter select{height:38px;padding:7px 30px 7px 10px!important;border-radius:11px!important;background:var(--cal-panel-2)!important;color:var(--cal-ink)!important;border-color:var(--cal-line)!important;font-size:calc(.68rem + 1px) !important;box-shadow:none!important}
.calendar-v4__reset{min-height:34px;padding:0 10px;border-radius:9px;color:var(--cal-accent-strong);font-size:calc(.64rem + 1px);font-weight:700;white-space:nowrap}
.calendar-v4__reset[hidden]{display:none!important}

.calendar-v4__legend{
  display:flex;
  gap:5px 15px;
  align-items:center;
  flex-wrap:wrap;
  padding:8px 18px;
  border-bottom:1px solid var(--cal-line);
  background:var(--cal-panel-2);
}
.calendar-v4__legend span{display:inline-flex;align-items:center;gap:6px;color:var(--cal-muted);font-size:calc(.59rem + 1px);font-weight:650;cursor:pointer;user-select:none}
.calendar-v4__legend span:hover{color:var(--cal-ink)}
.calendar-v4__dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 2px var(--cal-panel)}
.calendar-v4__dot--in-progress{color:var(--cal-in-progress)}
.calendar-v4__dot--offer{color:var(--cal-offer)}
.calendar-v4__dot--offer-sent{color:var(--cal-offer-sent)}
.calendar-v4__dot--confirmed{color:var(--cal-confirmed)}
.calendar-v4__dot--closed{color:var(--cal-closed)}
.calendar-v4__dot--preparation{color:var(--cal-preparation)}
.calendar-v4__dot--todo{color:var(--cal-todo)}

.calendar-v4__workspace{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(290px,25vw,350px);
  min-height:650px;
  background:var(--cal-bg);
}
.calendar-v4.is-detail-hidden .calendar-v4__workspace{grid-template-columns:minmax(0,1fr)}
.calendar-v4__surface{min-width:0;background:var(--cal-panel);border-right:1px solid var(--cal-line)}
.calendar-v4.is-detail-hidden .calendar-v4__surface{border-right:0}
.calendar-v4__grid{min-width:0;height:100%;overflow:auto;overscroll-behavior:contain;background:var(--cal-panel)}

/* Detail panel */
.calendar-v4-detail{position:sticky;top:16px;align-self:start;display:flex;flex-direction:column;min-width:0;min-height:650px;background:linear-gradient(180deg,var(--cal-panel) 0%,var(--cal-panel-2) 100%);color:var(--cal-ink)}
.calendar-v4-detail.is-hidden{display:none!important}
.calendar-v4-detail__top{display:grid;grid-template-columns:38px minmax(0,1fr) 32px;gap:10px;align-items:start;padding:18px 17px 11px}
.calendar-v4-detail__icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;border:1px solid var(--cal-line);background:var(--cal-panel-3);position:relative}
.calendar-v4-detail__icon::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--cal-muted)}
.calendar-v4-detail__icon--in_progress{background:var(--cal-in-progress-bg);border-color:var(--cal-in-progress-border)}
.calendar-v4-detail__icon--in_progress::before{background:var(--cal-in-progress)}
.calendar-v4-detail__icon--offer{background:var(--cal-offer-bg);border-color:var(--cal-offer-border)}
.calendar-v4-detail__icon--offer::before{background:var(--cal-offer)}
.calendar-v4-detail__icon--offer_sent{background:var(--cal-offer-sent-bg);border-color:var(--cal-offer-sent-border)}
.calendar-v4-detail__icon--offer_sent::before{background:var(--cal-offer-sent)}
.calendar-v4-detail__icon--confirmed{background:var(--cal-confirmed-bg);border-color:var(--cal-confirmed-border)}
.calendar-v4-detail__icon--confirmed::before{background:var(--cal-confirmed)}
.calendar-v4-detail__icon--closed{background:var(--cal-closed-bg);border-color:var(--cal-closed-border)}
.calendar-v4-detail__icon--closed::before{background:var(--cal-closed)}
.calendar-v4-detail__icon--preparation{background:var(--cal-preparation-bg);border-color:var(--cal-preparation-border)}
.calendar-v4-detail__icon--preparation::before{background:var(--cal-preparation)}
.calendar-v4-detail__icon--todo{background:var(--cal-todo-bg);border-color:var(--cal-todo-border)}
.calendar-v4-detail__icon--todo::before{background:var(--cal-todo)}
.calendar-v4-detail__heading{min-width:0}
.calendar-v4-detail__heading .eyebrow{margin:1px 0 4px;font-size:calc(.52rem + 1px)}
body:not(.auth-page--login) .calendar-v4-detail__heading h3{font-size:calc(.86rem + 1px);line-height:1.3;overflow-wrap:anywhere}
.calendar-v4-detail__open-icon,.calendar-v4-detail__close{width:32px;height:32px;display:grid;place-items:center;padding:0;border-radius:9px;font:inherit;cursor:pointer}
.calendar-v4-detail__open-icon{border:1px solid var(--cal-line-strong);background:var(--cal-panel);color:var(--cal-accent-strong);box-shadow:none;text-decoration:none}
.calendar-v4-detail__open-icon:hover{border-color:var(--cal-accent);background:var(--cal-accent-soft);color:var(--cal-accent-strong)}
.calendar-v4-detail__open-icon[hidden],.calendar-v4-detail__quick-actions[hidden]{display:none}
.calendar-v4-detail__open-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.calendar-v4-detail__close{border:1px solid var(--cal-line);background:var(--cal-panel);color:var(--cal-muted);font-size:calc(1.15rem + 1px)}
.calendar-v4-detail__close:hover{color:var(--cal-ink);border-color:var(--cal-line-strong)}
.calendar-v4-detail__quick-actions{display:flex;align-items:stretch;gap:6px;padding:0 17px 13px}
.calendar-v4-detail__quick-actions .calendar-v4-detail__return-button{flex:1 1 auto;min-width:0}
.calendar-v4-detail__quick-actions .calendar-v4-detail__open-icon{flex:0 0 40px;width:40px;height:38px;min-height:38px;align-self:center}
.calendar-v4-detail__mobile-handle,.calendar-v4-detail__mobile-tabs{display:none}
.calendar-v4-detail__status{align-self:flex-start;margin:0 17px 10px;padding:5px 8px;border:1px solid var(--cal-line);border-radius:999px;background:var(--cal-panel);font-size:calc(.56rem + 1px);font-weight:800}
.calendar-v4-detail__status--in_progress{color:var(--cal-in-progress);background:var(--cal-in-progress-bg);border-color:var(--cal-in-progress-border)}
.calendar-v4-detail__status--offer{color:var(--cal-offer);background:var(--cal-offer-bg);border-color:var(--cal-offer-border)}
.calendar-v4-detail__status--offer_sent{color:var(--cal-offer-sent);background:var(--cal-offer-sent-bg);border-color:var(--cal-offer-sent-border)}
.calendar-v4-detail__status--confirmed{color:var(--cal-confirmed);background:var(--cal-confirmed-bg);border-color:var(--cal-confirmed-border)}
.calendar-v4-detail__status--closed{color:var(--cal-closed);background:var(--cal-closed-bg);border-color:var(--cal-closed-border)}
.calendar-v4-detail__status--preparation{color:var(--cal-preparation);background:var(--cal-preparation-bg);border-color:var(--cal-preparation-border)}
.calendar-v4-detail__status--todo{color:var(--cal-todo);background:var(--cal-todo-bg);border-color:var(--cal-todo-border)}
.calendar-v4-detail__meta{display:grid;gap:7px;padding:0 17px 13px;color:var(--cal-muted);font-size:calc(.66rem + 1px);line-height:1.45}
.calendar-v4-detail__meta-line{display:flex;align-items:flex-start;gap:7px}
.calendar-v4-detail__meta-line>i{width:14px;flex:0 0 14px;color:var(--cal-accent);font-style:normal;font-weight:800}
.calendar-v4-detail__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 17px 14px}
.calendar-v4-detail__metrics>div{display:grid;gap:2px;padding:9px 10px;border:1px solid var(--cal-line);border-radius:11px;background:var(--cal-panel)}
.calendar-v4-detail__metrics small{color:var(--cal-muted);font-size:calc(.54rem + 1px);text-transform:uppercase;letter-spacing:.07em}
.calendar-v4-detail__metrics strong{font-size:calc(.88rem + 1px);font-variant-numeric:tabular-nums}
.calendar-v4-detail__section{padding:13px 17px;border-top:1px solid var(--cal-line)}
.calendar-v4-detail__section h4{margin:0 0 9px;color:var(--cal-muted);font-size:calc(.56rem + 1px);font-weight:800;letter-spacing:.09em}
.calendar-v4-detail__agenda{display:grid;gap:7px;font-size:calc(.66rem + 1px);line-height:1.25}
.calendar-v4-detail__agenda-day{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:8px;row-gap:2px;padding:7px 8px;border:1px solid var(--cal-line);border-radius:9px;background:var(--cal-panel-2)}
.calendar-v4-detail__agenda-label{color:var(--cal-muted);white-space:nowrap}
.calendar-v4-detail__agenda-value{min-width:0;font-weight:800;font-variant-numeric:tabular-nums;color:var(--cal-accent-strong);white-space:nowrap}
.calendar-v4-detail__agenda-day>.calendar-v4-detail__agenda-label:first-child,
.calendar-v4-detail__agenda-day>.calendar-v4-detail__agenda-value:nth-child(2){padding-bottom:4px;margin-bottom:2px;border-bottom:1px solid var(--cal-line)}
.calendar-v4-detail__team{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:calc(.66rem + 1px)}
.calendar-v4-detail__avatar{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--cal-line-strong);border-radius:50%;background:var(--cal-accent-soft);color:var(--cal-accent-strong);font-size:calc(.58rem + 1px);font-weight:900}
.calendar-v4-detail__owner{display:grid;gap:1px;min-width:0}
.calendar-v4-detail__owner strong{overflow-wrap:anywhere}
.calendar-v4-detail__owner small{color:var(--cal-muted);font-size:calc(.54rem + 1px)}
.calendar-v4-detail__staffing{margin-left:auto;padding:5px 7px;border-radius:999px;background:var(--cal-panel-3);color:var(--cal-muted);font-size:calc(.56rem + 1px);font-weight:800}
.calendar-v4-detail__facts{display:grid;gap:6px;margin:0}
.calendar-v4-detail__facts>div{display:flex;justify-content:space-between;gap:12px;padding-bottom:6px;border-bottom:1px dashed var(--cal-line)}
.calendar-v4-detail__facts>div:last-child{padding-bottom:0;border-bottom:0}
.calendar-v4-detail__facts dt{color:var(--cal-muted);font-size:calc(.6rem + 1px)}
.calendar-v4-detail__facts dd{margin:0;text-align:right;font-size:calc(.62rem + 1px);font-weight:700;overflow-wrap:anywhere}
.calendar-v4-detail__actions{display:flex;margin-top:auto;padding:14px 17px 17px;border-top:1px solid var(--cal-line)}
.calendar-v4-detail__actions .button{justify-content:center;min-height:38px;padding:8px 12px;font-size:calc(.68rem + 1px)}

/* Month view */
.calendar-v4-month{min-width:860px;padding:12px}
.calendar-v4-month__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:0 2px 7px}
.calendar-v4-month__weekdays span{padding:5px 8px;color:var(--cal-muted);font-size:calc(.58rem + 1px);font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.calendar-v4-month__weekdays span.is-weekend{color:var(--cal-accent)}
.calendar-v4-month__cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--cal-line);border-left:1px solid var(--cal-line);border-radius:13px;overflow:hidden}
.calendar-v4-month__cell{padding:7px;border-right:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line);background:var(--cal-panel);cursor:pointer;outline:none;transition:background .12s ease}
.calendar-v4-month__cell:hover{background:var(--cal-panel-2)}
.calendar-v4-month__cell.is-weekend{background:rgba(155,111,69,.025)}
.calendar-v4-month__cell.is-outside{opacity:.48;background:var(--cal-panel-2)}
.calendar-v4-month__cell.is-selected{box-shadow:inset 0 0 0 2px rgba(155,111,69,.34)}
.calendar-v4-month__cell.is-today{background:var(--cal-today)}
.calendar-v4-month__cell-head{display:flex;align-items:center;gap:6px;min-height:28px;}
.calendar-v4-month__cell-head>span{display:none;color:var(--cal-muted);font-size:calc(.5rem + 1px);text-transform:uppercase}
.calendar-v4-month__cell-head>strong{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;font-size:calc(.7rem + 1px)}
.calendar-v4-month__cell.is-today .calendar-v4-month__cell-head>strong{background:var(--cal-accent);color:#fff}
.calendar-v4-month__cell-head>em{margin-left:auto;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;border-radius:999px;background:var(--cal-panel-3);color:var(--cal-muted);font-style:normal;font-size:calc(.52rem + 1px);font-weight:800}
.calendar-v4-month__events{display:grid;}
.calendar-v4-month__more{justify-self:start;padding:2px 4px;border:0;background:transparent;color:var(--cal-accent-strong);font:inherit;font-size:calc(.54rem + 1px);font-weight:750;cursor:pointer}

/* Shared calendar chips */
.calendar-v4-chip{
  --chip-color:var(--cal-muted);
  --chip-bg:var(--cal-panel-2);
  --chip-border:var(--cal-line);
  width:100%;min-width:0;display:grid;border:1px solid var(--chip-border);border-radius:7px;background:var(--chip-bg);color:var(--cal-ink);font:inherit;text-align:left;cursor:pointer;box-shadow:none;overflow:hidden
}
.calendar-v4-chip:hover{filter:brightness(.985);border-color:var(--chip-color)}
.calendar-v4-chip.is-selected{box-shadow:0 0 0 2px rgba(155,111,69,.17);border-color:var(--chip-color)}
.calendar-v4-chip>i{background:var(--chip-color)}
.calendar-v4-chip__time{color:var(--chip-color);font-size:calc(.49rem + 1px);font-weight:800;font-variant-numeric:tabular-nums}
.calendar-v4-chip__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(.54rem + 1px);font-weight:400}
.calendar-v4-chip--in_progress{--chip-color:var(--cal-in-progress);--chip-bg:var(--cal-in-progress-bg);--chip-border:var(--cal-in-progress-border)}
.calendar-v4-chip--offer{--chip-color:var(--cal-offer);--chip-bg:var(--cal-offer-bg);--chip-border:var(--cal-offer-border)}
.calendar-v4-chip--offer_sent{--chip-color:var(--cal-offer-sent);--chip-bg:var(--cal-offer-sent-bg);--chip-border:var(--cal-offer-sent-border)}
.calendar-v4-chip--confirmed{--chip-color:var(--cal-confirmed);--chip-bg:var(--cal-confirmed-bg);--chip-border:var(--cal-confirmed-border)}
.calendar-v4-chip--closed{--chip-color:var(--cal-closed);--chip-bg:var(--cal-closed-bg);--chip-border:var(--cal-closed-border)}
.calendar-v4-chip--preparation{--chip-color:var(--cal-preparation);--chip-bg:var(--cal-preparation-bg);--chip-border:var(--cal-preparation-border)}
.calendar-v4-chip--todo{--chip-color:var(--cal-todo);--chip-bg:var(--cal-todo-bg);--chip-border:var(--cal-todo-border)}

/* Week/day timeline */
.calendar-v4-timeline-shell{min-width:1000px;background:var(--cal-panel)}
.calendar-v4-timeline-shell--day{min-width:620px}
.calendar-v4-timeline__header{display:grid;grid-template-columns:68px repeat(7,minmax(128px,1fr));position:sticky;top:0;z-index:12;background:var(--cal-panel);border-bottom:1px solid var(--cal-line)}
.calendar-v4-timeline--day .calendar-v4-timeline__header{grid-template-columns:68px minmax(480px,1fr)}
.calendar-v4-timeline__corner{position:sticky;left:0;z-index:14;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 9px 9px;border-right:1px solid var(--cal-line);background:var(--cal-panel);color:var(--cal-muted);font-size:calc(.52rem + 1px);font-weight:700}
.calendar-v4-timeline__dayhead{min-height:58px;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;justify-content:center;align-content:center;column-gap:5px;padding:7px;border:0;border-right:1px solid var(--cal-line);background:var(--cal-panel);color:var(--cal-ink);font:inherit;cursor:pointer}
.calendar-v4-timeline__dayhead>span{grid-column:1/-1;color:var(--cal-muted);font-size:calc(.54rem + 1px);font-weight:800;text-transform:uppercase;letter-spacing:.08em;text-align:center}
.calendar-v4-timeline__dayhead>strong{font-size:calc(1.03rem + 1px);line-height:1.15}
.calendar-v4-timeline__dayhead>small{align-self:end;color:var(--cal-muted);font-size:calc(.49rem + 1px);text-transform:uppercase}
.calendar-v4-timeline__dayhead.is-today{background:var(--cal-today)}
.calendar-v4-timeline__dayhead.is-today>strong{color:var(--cal-accent-strong)}
.calendar-v4-timeline__dayhead.is-selected{box-shadow:inset 0 -2px 0 var(--cal-accent)}
.calendar-v4-timeline__allday{display:grid;grid-template-columns:68px repeat(7,minmax(128px,1fr));border-bottom:1px solid var(--cal-line);background:var(--cal-panel-2)}
.calendar-v4-timeline--day .calendar-v4-timeline__allday{grid-template-columns:68px minmax(480px,1fr)}
.calendar-v4-timeline__allday-label{position:sticky;left:0;z-index:11;display:flex;align-items:center;justify-content:flex-end;padding:7px 9px;border-right:1px solid var(--cal-line);background:var(--cal-panel-2);color:var(--cal-muted);font-size:calc(.5rem + 1px);font-weight:700}
.calendar-v4-timeline__allday-cell{display:grid;padding:4px;border-right:1px solid var(--cal-line)}
.calendar-v4-timeline__allday-cell .calendar-v4-chip{padding:3px 5px}
.calendar-v4-timeline__allday-more{color:var(--cal-muted);font-size:calc(.5rem + 1px);padding:0 4px}
.calendar-v4-timeline__body{display:grid;grid-template-columns:68px minmax(0,1fr)}
.calendar-v4-timeline__axis{position:sticky;left:0;z-index:10;border-right:1px solid var(--cal-line);background:var(--cal-panel)}
.calendar-v4-timeline__axis>span{position:absolute;right:8px;transform:translateY(-50%);color:var(--cal-muted);font-size:calc(.52rem + 1px);font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.calendar-v4-timeline__days{display:grid;grid-template-columns:repeat(7,minmax(128px,1fr));min-width:0}
.calendar-v4-timeline--day .calendar-v4-timeline__days{grid-template-columns:minmax(480px,1fr)}
.calendar-v4-timeline__day{position:relative;min-width:0;border-right:1px solid var(--cal-line);background-color:var(--cal-panel);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--calendar-hour-height) - 1px),var(--cal-grid) calc(var(--calendar-hour-height) - 1px),var(--cal-grid) var(--calendar-hour-height))}
.calendar-v4-timeline__day.is-weekend{background-color:rgba(155,111,69,.018)}
.calendar-v4-timeline__day.is-today{background-color:var(--cal-today)}
.calendar-v4-timeline__day.is-selected{box-shadow:inset 0 0 0 1px rgba(155,111,69,.18)}
.calendar-v4-now-line{position:absolute;left:0;right:0;height:1px;background:#cf684f;z-index:8;pointer-events:none}
.calendar-v4-now-line>i{position:absolute;left:-4px;top:-3px;width:7px;height:7px;border-radius:50%;background:#cf684f}

.calendar-v4-event{
  --event-color:var(--cal-muted);
  --event-bg:var(--cal-panel-2);
  --event-border:var(--cal-line);
  position:absolute;z-index:4;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 7px;border:1px solid var(--event-border);border-left:3px solid var(--event-color);border-radius:8px;background:var(--event-bg);color:var(--cal-ink);font:inherit;text-align:left;overflow:hidden;cursor:pointer;box-shadow:0 3px 9px rgba(45,30,20,.04);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease
}
.calendar-v4-event:hover{z-index:7;transform:translateY(-1px);box-shadow:0 9px 20px rgba(45,30,20,.13);border-color:var(--event-color)}
.calendar-v4-event.is-selected{z-index:6;box-shadow:0 0 0 2px rgba(155,111,69,.2),0 8px 18px rgba(45,30,20,.11);border-color:var(--event-color)}
.calendar-v4-event__time{color:var(--event-color);font-size:calc(.5rem + 1px);font-weight:850;line-height:1.15;font-variant-numeric:tabular-nums;white-space:nowrap}
.calendar-v4-event>strong{width:100%;font-size:calc(.58rem + 1px);font-weight:400;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.calendar-v4-event__location{width:100%;margin-top:1px;color:var(--cal-muted);font-size:calc(.48rem + 1px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-v4-event.is-compact{justify-content:center;gap:0;padding-top:4px;padding-bottom:4px}
.calendar-v4-event.is-compact .calendar-v4-event__location{display:none}
.calendar-v4-event.is-compact>strong{-webkit-line-clamp:1;white-space:nowrap;display:block}
.calendar-v4-event--in_progress{--event-color:var(--cal-in-progress);--event-bg:var(--cal-in-progress-bg);--event-border:var(--cal-in-progress-border)}
.calendar-v4-event--offer{--event-color:var(--cal-offer);--event-bg:var(--cal-offer-bg);--event-border:var(--cal-offer-border)}
.calendar-v4-event--offer_sent{--event-color:var(--cal-offer-sent);--event-bg:var(--cal-offer-sent-bg);--event-border:var(--cal-offer-sent-border)}
.calendar-v4-event--confirmed{--event-color:var(--cal-confirmed);--event-bg:var(--cal-confirmed-bg);--event-border:var(--cal-confirmed-border)}
.calendar-v4-event--closed{--event-color:var(--cal-closed);--event-bg:var(--cal-closed-bg);--event-border:var(--cal-closed-border)}
.calendar-v4-event--preparation{--event-color:var(--cal-preparation);--event-bg:var(--cal-preparation-bg);--event-border:var(--cal-preparation-border)}
.calendar-v4-event--todo{--event-color:var(--cal-todo);--event-bg:var(--cal-todo-bg);--event-border:var(--cal-todo-border)}

/* 14-day agenda */
.calendar-v4-agenda{display:grid;gap:0;min-width:700px;padding:8px 14px 18px}
.calendar-v4-agenda__day{display:grid;grid-template-columns:116px minmax(0,1fr);gap:15px;padding:13px 0;border-bottom:1px solid var(--cal-line)}
.calendar-v4-agenda__day:last-child{border-bottom:0}
.calendar-v4-agenda__day>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px 7px 0}
.calendar-v4-agenda__day>header>div{display:grid;grid-template-columns:auto auto;gap:5px;align-items:center}
.calendar-v4-agenda__day>header small{grid-column:1/-1;color:var(--cal-muted);font-size:calc(.52rem + 1px);text-transform:uppercase;font-weight:800;letter-spacing:.07em}
.calendar-v4-agenda__day>header strong{font-size:calc(1.25rem + 1px);line-height:1}
.calendar-v4-agenda__day>header>span{color:var(--cal-muted);font-size:calc(.54rem + 1px);writing-mode:vertical-rl;transform:rotate(180deg)}
.calendar-v4-agenda__day.is-today>header strong{color:var(--cal-accent-strong)}
.calendar-v4-agenda__items{display:grid;gap:5px}
.calendar-v4-agenda__item{
  --agenda-color:var(--cal-muted);
  width:100%;display:grid;gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--cal-line);border-radius:10px;background:var(--cal-panel);color:var(--cal-ink);font:inherit;text-align:left;cursor:pointer;box-shadow:none
}
.calendar-v4-agenda__item:hover{border-color:var(--agenda-color);background:var(--cal-panel-2)}
.calendar-v4-agenda__item.is-selected{box-shadow:0 0 0 2px rgba(155,111,69,.14);border-color:var(--agenda-color)}
.calendar-v4-agenda__item>i{width:6px;height:26px;border-radius:6px;background:var(--agenda-color)}
.calendar-v4-agenda__time{color:var(--agenda-color);font-size:calc(.58rem + 1px);font-weight:850;font-variant-numeric:tabular-nums;}
.calendar-v4-agenda__copy{display:grid;gap:2px;min-width:0}
.calendar-v4-agenda__copy strong{font-size:calc(.66rem + 1px);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-v4-agenda__copy small{color:var(--cal-muted);font-size:calc(.54rem + 1px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-v4-agenda__item>em{padding:4px 7px;border-radius:999px;background:var(--cal-panel-3);color:var(--cal-muted);font-style:normal;font-size:calc(.52rem + 1px);font-weight:750;}
.calendar-v4-agenda__item--in_progress{--agenda-color:var(--cal-in-progress)}
.calendar-v4-agenda__item--offer{--agenda-color:var(--cal-offer)}
.calendar-v4-agenda__item--offer_sent{--agenda-color:var(--cal-offer-sent)}
.calendar-v4-agenda__item--confirmed{--agenda-color:var(--cal-confirmed)}
.calendar-v4-agenda__item--closed{--agenda-color:var(--cal-closed)}
.calendar-v4-agenda__item--preparation{--agenda-color:var(--cal-preparation)}
.calendar-v4-agenda__item--todo{--agenda-color:var(--cal-todo)}
.calendar-v4-agenda__empty{display:grid;gap:5px;place-items:center;padding:70px 20px;color:var(--cal-muted);text-align:center}
.calendar-v4-agenda__empty strong{color:var(--cal-ink);font-size:calc(.86rem + 1px)}
.calendar-v4-agenda__empty span{font-size:calc(.65rem + 1px)}

/* Dark palette for the complete new calendar, including filter controls. */
html[data-theme="dark"] .calendar-v4{
  --cal-bg:#14110e;
  --cal-panel:#1d1915;
  --cal-panel-2:#25201b;
  --cal-panel-3:#302820;
  --cal-ink:#f1e7dd;
  --cal-muted:#b9aa9d;
  --cal-line:#493b30;
  --cal-line-strong:#665242;
  --cal-grid:rgba(220,190,160,.09);
  --cal-accent:#d09b67;
  --cal-accent-strong:#efbe8e;
  --cal-accent-soft:#3a2e24;
  --cal-today:#292017;
  --cal-selected:#30261d;
  --cal-in-progress:#e0a55f;
  --cal-in-progress-bg:#332719;
  --cal-in-progress-border:#65492c;
  --cal-offer:#7eb3df;
  --cal-offer-bg:#1c2a35;
  --cal-offer-border:#35566f;
  --cal-offer-sent:#b39bdd;
  --cal-offer-sent-bg:#282136;
  --cal-offer-sent-border:#54446f;
  --cal-confirmed:#7fc29e;
  --cal-confirmed-bg:#1d2c24;
  --cal-confirmed-border:#365846;
  --cal-service-preparation:#7fc29e;
  --cal-service-event:#7fc29e;
  --cal-service-cleanup:#7fc29e;
  --cal-closed:#b7aca2;
  --cal-closed-bg:#27231f;
  --cal-closed-border:#51473f;
  --cal-preparation:#e7966f;
  --cal-preparation-bg:#33231d;
  --cal-preparation-border:#684337;
  --cal-todo:#7bc5c6;
  --cal-todo-bg:#1b2c2d;
  --cal-todo-border:#36595a;
  box-shadow:none!important;
}
html[data-theme="dark"] .calendar-v4__metrics>span{background:#211c18}
html[data-theme="dark"] .calendar-v4-search input,
html[data-theme="dark"] .calendar-v4-status-filter select{background:var(--cal-panel-2)!important;color:var(--cal-ink)!important;border-color:var(--cal-line)!important}
html[data-theme="dark"] .calendar-v4-search kbd{background:#181411;color:var(--cal-muted);border-color:var(--cal-line)}
html[data-theme="dark"] .calendar-v4-month__cell.is-weekend,
html[data-theme="dark"] .calendar-v4-timeline__day.is-weekend{background-color:rgba(208,155,103,.025)}
html[data-theme="dark"] .calendar-v4-event{box-shadow:0 4px 12px rgba(0,0,0,.13)}
html[data-theme="dark"] .calendar-v4-event:hover{box-shadow:0 10px 24px rgba(0,0,0,.28)}

@media (max-width:1320px){
  .calendar-v4__hero{align-items:flex-start;flex-direction:column}
  .calendar-v4__views{align-self:stretch}
  .calendar-v4__view{flex:1 1 auto}
  .calendar-v4__reset{justify-self:end}
}
@media (max-width:1100px){
  .calendar-v4__workspace{grid-template-columns:minmax(0,1fr)}
  .calendar-v4__surface{border-right:0;border-bottom:1px solid var(--cal-line)}
  .calendar-v4-detail{position:static;min-height:0}
  .calendar-v4.is-detail-hidden .calendar-v4__surface{border-bottom:0}
}
@media (max-width:820px){
  .calendar-v4__period-wrap{width:100%;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
  .calendar-v4__period-copy{min-width:145px}
  .calendar-v4__metrics{margin-left:auto}
  .calendar-v4-status-filter{grid-template-columns:48px 1fr}
  .calendar-v4__legend{overflow:auto;flex-wrap:nowrap;padding-bottom:9px}
  .calendar-v4__legend span{flex:0 0 auto}
}
@media (max-width:560px){
  .calendar-v4__hero{padding:13px}
  .calendar-v4__period-nav{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 34px auto}
  .calendar-v4__period-copy{min-width:0}
  .calendar-v4__metrics{width:100%}
  .calendar-v4__metrics>span{flex:1 1 0}
  .calendar-v4__views{overflow:auto;justify-content:flex-start}
  .calendar-v4__view{flex:0 0 auto}
  .calendar-v4__filters,.calendar-v4__legend{padding-left:13px;padding-right:13px}
  .calendar-v4-detail__top{grid-template-columns:34px minmax(0,1fr) 30px;padding-left:13px;padding-right:13px}
  .calendar-v4-detail__meta,.calendar-v4-detail__metrics,.calendar-v4-detail__section,.calendar-v4-detail__actions{padding-left:13px;padding-right:13px}
  .calendar-v4-detail__status{margin-left:13px}
}

/* Calendar V5: clearer event cards, multi-day summaries, hover detail and shared vacations. */
.calendar-v4{
  --cal-vacation:#8b63b6;
  --cal-vacation-bg:#f2ebf8;
  --cal-vacation-border:#d6c2e5;
}
.calendar-v4-search kbd{display:none!important}
.calendar-v4-search input::-webkit-search-cancel-button{cursor:pointer;opacity:.72;margin-right:6px}
.calendar-v4-search input::-webkit-search-cancel-button:hover{opacity:1}
.calendar-v4__dot--vacation{color:var(--cal-vacation)}

/* Use the actual item/status colour as the complete card background, not only as a thin accent. */
.calendar-v4-chip{
  background:color-mix(in srgb,var(--item-color,var(--chip-color)) 48%,var(--cal-panel));
  border-color:color-mix(in srgb,var(--item-color,var(--chip-color)) 62%,var(--cal-line));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--item-color,var(--chip-color)) 12%,transparent);
}
.calendar-v4-chip:hover{
  background:color-mix(in srgb,var(--item-color,var(--chip-color)) 55%,var(--cal-panel));
  border-color:var(--item-color,var(--chip-color));
  filter:none;
}
.calendar-v4-chip>strong{
  text-overflow:ellipsis;
  white-space:nowrap;
}
.calendar-v4-chip>em{
  padding:2px 4px;
  border-radius:999px;
  background:color-mix(in srgb,var(--item-color,var(--chip-color)) 16%,var(--cal-panel));
  color:var(--item-color,var(--chip-color));
  font-style:normal;
  font-size:calc(.46rem + 1px);
  font-weight:900;
  white-space:nowrap;
}
.calendar-v4-chip.is-range{border-style:solid;border-left-width:2px}
.calendar-v4-chip--vacation{--chip-color:var(--cal-vacation);--chip-bg:var(--cal-vacation-bg);--chip-border:var(--cal-vacation-border)}

.calendar-v4-event{
  background:color-mix(in srgb,var(--item-color,var(--event-color)) 48%,var(--cal-panel));
  border-color:color-mix(in srgb,var(--item-color,var(--event-color)) 62%,var(--cal-line));
  border-left-color:var(--item-color,var(--event-color));
}
.calendar-v4-event:hover{
  background:color-mix(in srgb,var(--item-color,var(--event-color)) 55%,var(--cal-panel));
  border-color:var(--item-color,var(--event-color));
}
.calendar-v4-event__time{color:var(--item-color,var(--event-color))}
.calendar-v4-event--vacation{--event-color:var(--cal-vacation);--event-bg:var(--cal-vacation-bg);--event-border:var(--cal-vacation-border)}

/* Fáze přípravy/úklidu mají přednost před obecnou barevnou výplní. */
.calendar-v4-chip--service-event,
.calendar-v4-event--service-event{background:color-mix(in srgb,var(--cal-service-event,var(--item-color)) 48%,var(--cal-panel))}
.calendar-v4-chip--service-preparation,
.calendar-v4-event--service-preparation{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--cal-service-preparation) 48%,var(--cal-panel)) 0 6px,color-mix(in srgb,var(--cal-service-preparation) 18%,var(--cal-panel)) 6px 12px)}
.calendar-v4-chip--service-cleanup,
.calendar-v4-event--service-cleanup{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--cal-service-cleanup) 48%,var(--cal-panel)) 0 6px,color-mix(in srgb,var(--cal-service-cleanup) 18%,var(--cal-panel)) 6px 12px)}

.calendar-v4-agenda__item{
  grid-template-columns:6px minmax(92px,150px) minmax(0,1fr) auto;
  background:color-mix(in srgb,var(--item-color,var(--agenda-color)) 18%,var(--cal-panel));
  border-color:color-mix(in srgb,var(--item-color,var(--agenda-color)) 52%,var(--cal-line));
}
.calendar-v4-agenda__item:hover{
  background:color-mix(in srgb,var(--item-color,var(--agenda-color)) 27%,var(--cal-panel));
  border-color:var(--item-color,var(--agenda-color));
}
.calendar-v4-agenda__item.is-range{box-shadow:inset 3px 0 0 var(--item-color,var(--agenda-color))}
.calendar-v4-agenda__item--vacation{--agenda-color:var(--cal-vacation)}
.calendar-v4-agenda__time{white-space:normal;line-height:1.28}
.calendar-v4-timeline__allday-cell:has(.calendar-v4-chip){padding-top:5px;padding-bottom:5px}
.calendar-v4-timeline__allday-cell .calendar-v4-chip{min-height:30px}

/* Detail panel follows the selected item colour and can show extra notes. */
.calendar-v4-detail__icon{
  background:color-mix(in srgb,var(--item-color,var(--cal-muted)) 20%,var(--cal-panel));
  border-color:color-mix(in srgb,var(--item-color,var(--cal-muted)) 54%,var(--cal-line));
}
.calendar-v4-detail__icon::before{background:var(--item-color,var(--cal-muted))}
.calendar-v4-detail__icon--vacation{background:var(--cal-vacation-bg);border-color:var(--cal-vacation-border)}
.calendar-v4-detail__icon--vacation::before{background:var(--cal-vacation)}
.calendar-v4-detail__status{
  color:var(--item-color,var(--cal-muted));
  background:color-mix(in srgb,var(--item-color,var(--cal-muted)) 17%,var(--cal-panel));
  border-color:color-mix(in srgb,var(--item-color,var(--cal-muted)) 48%,var(--cal-line));
}
.calendar-v4-detail__status--vacation{color:var(--cal-vacation);background:var(--cal-vacation-bg);border-color:var(--cal-vacation-border)}
.calendar-v4-detail__avatar{
  background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 16%,var(--cal-panel));
  color:var(--item-color,var(--cal-accent-strong));
  border-color:color-mix(in srgb,var(--item-color,var(--cal-accent)) 50%,var(--cal-line));
}
.calendar-v4-detail__notes{display:grid;gap:9px}
.calendar-v4-detail__note{display:grid;gap:4px;padding:9px 10px;border:1px solid var(--cal-line);border-radius:10px;background:var(--cal-panel)}
.calendar-v4-detail__note strong{font-size:calc(.58rem + 1px);color:var(--cal-accent-strong)}
.calendar-v4-detail__note p{margin:0;color:var(--cal-ink);font-size:calc(.62rem + 1px);line-height:1.48;overflow-wrap:anywhere}
.calendar-v4-detail__actions{gap:8px;flex-wrap:wrap}
.calendar-v4-detail__actions .button{flex:1 1 135px;width:auto}

/* Rich hover card. It is fixed to the viewport so it is never clipped by the calendar scroll area. */
.calendar-v4-hover{
  position:fixed;
  z-index:10080;
  width:min(310px,calc(100vw - 20px));
  display:grid;
  gap:7px;
  padding:12px 13px;
  border:1px solid color-mix(in srgb,var(--item-color,var(--cal-accent)) 55%,var(--cal-line));
  border-radius:13px;
  background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 9%,var(--cal-panel));
  color:var(--cal-ink);
  box-shadow:0 18px 46px rgba(42,28,18,.22);
  pointer-events:none;
}
.calendar-v4-hover[hidden]{display:none!important}
.calendar-v4-hover__status{display:flex;align-items:center;gap:6px;color:var(--item-color,var(--cal-accent-strong));font-size:calc(.56rem + 1px);font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.calendar-v4-hover__status i{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.calendar-v4-hover>strong{font-size:calc(.78rem + 1px);line-height:1.32;overflow-wrap:anywhere}
.calendar-v4-hover__range{font-size:calc(.63rem + 1px);font-weight:800;color:var(--item-color,var(--cal-accent-strong));font-variant-numeric:tabular-nums}
.calendar-v4-hover__location{color:var(--cal-muted);font-size:calc(.61rem + 1px);line-height:1.35}
.calendar-v4-hover dl{display:grid;gap:4px;margin:2px 0 0;padding-top:7px;border-top:1px solid var(--cal-line)}
.calendar-v4-hover dl>div{display:flex;justify-content:space-between;gap:12px;font-size:calc(.58rem + 1px)}
.calendar-v4-hover dt{color:var(--cal-muted)}
.calendar-v4-hover dd{margin:0;text-align:right;font-weight:750;overflow-wrap:anywhere}
.calendar-v4-hover>small{padding-top:4px;color:var(--cal-muted);font-size:calc(.53rem + 1px)}

/* Shared vacation editor. Records are stored server-side in SystemSettings and are visible in the calendar for everyone. */
.calendar-v4-vacation-notice{margin:0}
.calendar-v4-vacation-dialog{
  width:min(620px,calc(100vw - 28px));
  max-height:calc(100vh - 40px);
  padding:0;
  border:1px solid var(--border,#d9cec2);
  border-radius:18px;
  background:var(--surface,#fffdfa);
  color:var(--text,#251d17);
  box-shadow:0 28px 80px rgba(31,21,14,.28);
  overflow:auto;
}
.calendar-v4-vacation-dialog::backdrop{background:rgba(20,15,11,.48);backdrop-filter:blur(2px)}
.calendar-v4-vacation-form{display:grid;gap:0}
.calendar-v4-vacation-dialog__head{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:14px;padding:20px 20px 15px;border-bottom:1px solid var(--border,#e1d5c8)}
.calendar-v4-vacation-dialog__head h3{margin:.2rem 0 .35rem;font-size:calc(1.15rem + 1px)}
.calendar-v4-vacation-dialog__head p{margin:0;font-size:calc(.72rem + 1px);line-height:1.45}
.calendar-v4-vacation-dialog__close{width:34px;height:34px;display:grid;place-items:center;padding:0;border:1px solid var(--border,#e1d5c8);border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:calc(1.2rem + 1px);cursor:pointer}
.calendar-v4-vacation-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px 20px}
.calendar-v4-vacation-form__grid label{display:grid;gap:6px;margin:0}
.calendar-v4-vacation-form__grid label>span{font-size:calc(.66rem + 1px);font-weight:750}
.calendar-v4-vacation-form__grid .span-2{grid-column:1/-1}
.calendar-v4-vacation-users-field{display:grid;gap:6px}
.calendar-v4-vacation-users-label{font-size:calc(.66rem + 1px);font-weight:750}
.calendar-v4-vacation-users{display:grid;gap:7px}
.calendar-v4-vacation-user-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:8px;align-items:center}
.calendar-v4-vacation-user-row select{min-width:0;width:100%}
.calendar-v4-vacation-user-action{width:38px;height:38px;min-width:38px;display:grid;place-items:center;padding:0;border:1px solid #8ccfba;border-radius:10px;background:#f5fffb;color:#147a5c;font:800 calc(1.05rem + 1px)/1 inherit;cursor:pointer}
.calendar-v4-vacation-user-action:hover{background:#e8f8f2;border-color:#55b897}
.calendar-v4-vacation-user-action:disabled{opacity:.42;cursor:not-allowed;pointer-events:none}
.calendar-v4-vacation-user-action.is-remove{border-color:#efb1ab;background:#fff8f7;color:#b7483f}
.calendar-v4-vacation-user-action.is-remove:hover{background:#fdebea;border-color:#df8278}
.calendar-v4-vacation-form__grid input,
.calendar-v4-vacation-form__grid textarea{width:100%}
.calendar-v4-vacation-form__grid input[type="color"]{height:42px;padding:4px;cursor:pointer}
.calendar-v4-vacation-note textarea{resize:vertical;min-height:66px}
.calendar-v4-vacation-form__actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px 19px;border-top:1px solid var(--border,#e1d5c8)}

html[data-theme="dark"] .calendar-v4{
  --cal-vacation:#c19ae2;
  --cal-vacation-bg:#2c2136;
  --cal-vacation-border:#59416e;
}
html[data-theme="dark"] .calendar-v4-chip{background:color-mix(in srgb,var(--item-color,var(--chip-color)) 74%,var(--cal-panel))}
html[data-theme="dark"] .calendar-v4-chip:hover{background:color-mix(in srgb,var(--item-color,var(--chip-color)) 82%,var(--cal-panel))}
html[data-theme="dark"] .calendar-v4-event{background:color-mix(in srgb,var(--item-color,var(--event-color)) 74%,var(--cal-panel))}
html[data-theme="dark"] .calendar-v4-event:hover{background:color-mix(in srgb,var(--item-color,var(--event-color)) 82%,var(--cal-panel))}
/* Filled dark-theme calendar cards keep their start time readable on colored backgrounds. */
html[data-theme="dark"] .calendar-v4-chip__time,
html[data-theme="dark"] .calendar-v4-event__time{color:#f0fafd}
html[data-theme="dark"] .calendar-v4-chip--service-event,
html[data-theme="dark"] .calendar-v4-event--service-event{background:color-mix(in srgb,var(--cal-service-event,var(--item-color)) 75%,var(--cal-panel))}
html[data-theme="dark"] .calendar-v4-chip--service-preparation,
html[data-theme="dark"] .calendar-v4-event--service-preparation{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--cal-service-preparation) 64%,var(--cal-panel)) 0 6px,color-mix(in srgb,var(--cal-service-preparation) 32%,var(--cal-panel)) 6px 12px)}
html[data-theme="dark"] .calendar-v4-chip--service-cleanup,
html[data-theme="dark"] .calendar-v4-event--service-cleanup{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--cal-service-cleanup) 64%,var(--cal-panel)) 0 6px,color-mix(in srgb,var(--cal-service-cleanup) 32%,var(--cal-panel)) 6px 12px)}
html[data-theme="dark"] .calendar-v4-agenda__item{background:color-mix(in srgb,var(--item-color,var(--agenda-color)) 35%,var(--cal-panel))}
html[data-theme="dark"] .calendar-v4-hover{background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 14%,var(--cal-panel));box-shadow:0 20px 52px rgba(0,0,0,.42)}
html[data-theme="dark"] .calendar-v4-vacation-dialog{background:#1d1915;color:#f1e7dd;border-color:#493b30}
html[data-theme="dark"] .calendar-v4-vacation-dialog__head,
html[data-theme="dark"] .calendar-v4-vacation-form__actions{border-color:#493b30}
html[data-theme="dark"] .calendar-v4-vacation-dialog__close{border-color:#493b30;color:#f1e7dd}
html[data-theme="dark"] .calendar-v4-vacation-user-action{background:#172820;border-color:#356c58;color:#91d6bd}
html[data-theme="dark"] .calendar-v4-vacation-user-action.is-remove{background:#2c1b1a;border-color:#70413d;color:#ef9b93}

@media (hover:none){.calendar-v4-hover{display:none!important}}
@media (max-width:820px){
  .calendar-v4-agenda__item>em{grid-column:2/-1;justify-self:start}
}
@media (max-width:560px){
  .calendar-v4-vacation-form__grid{grid-template-columns:1fr;padding:15px}
  .calendar-v4-vacation-form__grid .span-2{grid-column:auto}
  .calendar-v4-vacation-dialog__head{padding:16px 15px 13px}
  .calendar-v4-vacation-form__actions{padding:12px 15px 15px;flex-wrap:wrap}
  .calendar-v4-vacation-form__actions .button{flex:1 1 130px}
}

/* Calendar V6: souvisle vice-denni pruhy + spolehlive skryvani akci detailu. */
.calendar-v4-detail__actions .button[hidden],
.calendar-v4-detail__actions [data-calendar-vacation-delete][hidden]{display:none!important}

.calendar-v4-month__cells{position:relative;isolation:isolate}
.calendar-v4-month__cell{position:relative;z-index:1}

.calendar-v4-month__range,
.calendar-v4-timeline__range{
  appearance:none;
  min-width:0;
  display:flex;
  border:1px solid var(--item-color,var(--cal-accent));
  border-color:color-mix(in srgb,var(--item-color,var(--cal-accent)) 76%,var(--cal-line));
  background:var(--item-color,var(--cal-accent));
  background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 34%,var(--cal-panel));
  color:var(--cal-ink);
  font:inherit;
  line-height:1;
  cursor:pointer;
  overflow:hidden;
  box-shadow:0 3px 8px rgba(58,39,24,.08);
  transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease;
}
.calendar-v4-month__range{z-index:6;align-self:start;position:relative;isolation:isolate;border-radius:8px;background:transparent}
.calendar-v4-timeline__range{z-index:7;align-self:start;position:relative;isolation:isolate;margin:calc(5px + var(--range-lane,0) * 30px) 2.5px 0;border-radius:8px}
.calendar-v4-range__segments{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;border-radius:inherit}
.calendar-v4-range__day{
  position:absolute;
  top:0;
  bottom:0;
  left:var(--calendar-day-segment-left,0);
  width:var(--calendar-day-segment-width,100%);
  overflow:hidden;
  background:linear-gradient(rgba(255,255,255,.66),rgba(255,255,255,.66)),var(--cal-service-event,var(--item-color,var(--cal-accent)));
}
.calendar-v4-range__day.has-divider{border-left:1px dashed var(--cal-service-event,var(--item-color,var(--cal-accent)))}
.calendar-v4-range__phase{
  position:absolute;
  top:0;
  bottom:0;
  width:28%;
  pointer-events:none;
}
.calendar-v4-range__phase--preparation{
  left:0;
  border-right:1px dashed color-mix(in srgb,var(--cal-service-preparation) 56%,var(--cal-line));
  background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--cal-service-preparation) 48%,var(--cal-panel)) 0 5px,color-mix(in srgb,var(--cal-service-preparation) 16%,var(--cal-panel)) 5px 10px);
}
.calendar-v4-range__phase--cleanup{
  right:0;
  border-left:1px dashed color-mix(in srgb,var(--cal-service-cleanup) 56%,var(--cal-line));
  background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--cal-service-cleanup) 48%,var(--cal-panel)) 0 5px,color-mix(in srgb,var(--cal-service-cleanup) 16%,var(--cal-panel)) 5px 10px);
}
.calendar-v4-range__day.has-preparation:not(.has-event):not(.has-cleanup) .calendar-v4-range__phase--preparation,
.calendar-v4-range__day.has-cleanup:not(.has-event):not(.has-preparation) .calendar-v4-range__phase--cleanup{
  width:100%;
  border:0;
}
.calendar-v4-range__day.has-preparation.has-cleanup:not(.has-event) .calendar-v4-range__phase--preparation,
.calendar-v4-range__day.has-preparation.has-cleanup:not(.has-event) .calendar-v4-range__phase--cleanup{
  width:50%;
}
@supports (background:color-mix(in srgb,#000 50%,#fff)){
  .calendar-v4-range__day{
    background:color-mix(in srgb,var(--cal-service-event,var(--item-color,var(--cal-accent))) 34%,var(--cal-panel));
  }
  .calendar-v4-range__day.has-divider{
    border-left-color:color-mix(in srgb,var(--cal-service-event,var(--item-color,var(--cal-accent))) 56%,var(--cal-line));
  }
  .calendar-v4-range__phase--preparation{
    border-right-color:color-mix(in srgb,var(--cal-service-preparation) 56%,var(--cal-line));
    background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--cal-service-preparation) 48%,var(--cal-panel)) 0 5px,color-mix(in srgb,var(--cal-service-preparation) 16%,var(--cal-panel)) 5px 10px);
  }
  .calendar-v4-range__phase--cleanup{
    border-left-color:color-mix(in srgb,var(--cal-service-cleanup) 56%,var(--cal-line));
    background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--cal-service-cleanup) 48%,var(--cal-panel)) 0 5px,color-mix(in srgb,var(--cal-service-cleanup) 16%,var(--cal-panel)) 5px 10px);
  }
}
html[data-theme="dark"] .calendar-v4-range__day{
  background:linear-gradient(rgba(10,29,39,.18),rgba(10,29,39,.18)),var(--cal-service-event,var(--item-color,var(--cal-accent)));
}
.calendar-v4-month__range>i,
.calendar-v4-month__range>.calendar-v4-range__copy,
.calendar-v4-month__range>.calendar-v4-range__continuation,
.calendar-v4-timeline__range>i,
.calendar-v4-timeline__range>.calendar-v4-range__copy{position:relative;z-index:2}
.calendar-v4-range__continuation{flex:0 0 auto;align-self:center;color:color-mix(in srgb,var(--cal-ink) 82%,var(--item-color,var(--cal-accent)));font-size:calc(.72rem + 1px);font-weight:950;line-height:1}
.calendar-v4-range__continuation--start{margin-right:2px}
.calendar-v4-range__continuation--end{margin-left:2px}
.calendar-v4-month__range:hover,
.calendar-v4-timeline__range:hover{
  background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 43%,var(--cal-panel));
  border-color:color-mix(in srgb,var(--item-color,var(--cal-accent)) 88%,var(--cal-line));
  box-shadow:0 5px 12px rgba(58,39,24,.12);
}
.calendar-v4-month__range.is-selected,
.calendar-v4-timeline__range.is-selected{box-shadow:0 0 0 2px var(--cal-panel),0 0 0 4px color-mix(in srgb,var(--item-color,var(--cal-accent)) 72%,transparent)}
.calendar-v4-month__range>i,
.calendar-v4-timeline__range>i{flex:0 0 auto;background:var(--item-color,var(--cal-accent))}
.calendar-v4-month__range>strong,
.calendar-v4-timeline__range>strong{overflow:hidden;text-overflow:ellipsis;font-size:calc(.56rem + 1px);font-weight:400}
.calendar-v4-month__range>span,
.calendar-v4-timeline__range>span{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:color-mix(in srgb,var(--cal-ink) 72%,var(--item-color,var(--cal-accent)));font-size:calc(.5rem + 1px);font-weight:700}
.calendar-v4-month__range>em,
.calendar-v4-timeline__range>em{flex:0 0 auto;display:grid;place-items:center;min-width:23px;height:18px;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 20%,var(--cal-panel));color:var(--cal-ink);font-size:calc(.48rem + 1px);font-style:normal;font-weight:850}
.calendar-v4-month__range.is-range-continued-start,
.calendar-v4-timeline__range.is-range-continued-start{margin-left:-1px;border-top-left-radius:2px;border-bottom-left-radius:2px}
.calendar-v4-month__range.is-range-continued-end,
.calendar-v4-timeline__range.is-range-continued-end{margin-right:-1px;border-top-right-radius:2px;border-bottom-right-radius:2px}
.calendar-v4-month__range.is-range-continued-start>i,
.calendar-v4-timeline__range.is-range-continued-start>i{display:none}

.calendar-v4-timeline__allday{position:relative;isolation:isolate}
.calendar-v4-timeline__allday-label,
.calendar-v4-timeline__allday-cell{position:relative;z-index:1}
.calendar-v4-timeline__allday-cell{padding-top:calc(5px + var(--timeline-range-lanes,0) * 30px)}

html[data-theme="dark"] .calendar-v4-month__range,
html[data-theme="dark"] .calendar-v4-timeline__range{
  background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 75%,var(--cal-panel));
  border-color:color-mix(in srgb,var(--item-color,var(--cal-accent)) 88%,var(--cal-line));
  box-shadow:0 4px 12px rgba(0,0,0,.22);
}
html[data-theme="dark"] .calendar-v4-month__range:hover,
html[data-theme="dark"] .calendar-v4-timeline__range:hover{background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 82%,var(--cal-panel))}

/* Calendar V7: skutecne souvisle vicedenni eventy + mesicni agenda v pravem panelu. */
.calendar-v4-month__weeks{
  border-top:1px solid var(--cal-line);
  border-left:1px solid var(--cal-line);
  border-radius:13px;
  overflow:hidden;
}
.calendar-v4-month__week{position:relative;isolation:isolate;--calendar-range-lanes:0}
.calendar-v4-month__week-cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-v4-month__week-ranges{
  position:absolute;
  inset:0;
  z-index:8;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  align-content:start;
  pointer-events:none;
}
.calendar-v4-month__week-ranges .calendar-v4-month__range{pointer-events:auto}
.calendar-v4-month__cell{min-height:126px}
.calendar-v4-month__events{padding-top:calc(var(--calendar-range-lanes,0) * 30px)}
.calendar-v4-month__range{grid-row:1;margin:calc(39px + var(--range-lane,0) * 30px) 4px 0}
.calendar-v4-detail__content[hidden],
.calendar-v4-month-agenda[hidden]{display:none!important}
.calendar-v4-detail__content{min-height:650px;display:flex;flex-direction:column}
.calendar-v4-month-agenda{display:flex;flex-direction:column;min-height:650px}
.calendar-v4-month-agenda__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 17px 8px}
.calendar-v4-month-agenda__head .eyebrow{margin:0 0 4px;font-size:calc(.52rem + 1px)}
.calendar-v4-month-agenda__head h3{margin:0;font-size:calc(1rem + 1px);line-height:1.3;text-transform:capitalize}
.calendar-v4-month-agenda__count{min-width:30px;height:30px;display:grid;place-items:center;padding:0 8px;border:1px solid var(--cal-line);border-radius:999px;background:var(--cal-panel-3);color:var(--cal-accent-strong);font-size:calc(.66rem + 1px);font-weight:900}
.calendar-v4-month-agenda__hint{margin:0;padding:0 17px 12px;font-size:calc(.6rem + 1px);line-height:1.45}
.calendar-v4-month-agenda__list{display:grid;padding:0 12px 16px;max-height:calc(100vh - 265px)}
.calendar-v4-month-agenda__item{
  appearance:none;
  width:100%;
  display:grid;
  gap:9px;
  border:1px solid color-mix(in srgb,var(--item-color,var(--cal-accent)) 34%,var(--cal-line));
  border-radius:11px;
  background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 8%,var(--cal-panel));
  color:var(--cal-ink);
  text-align:left;
  font:inherit;
  cursor:pointer;
  transition:border-color .14s ease,background .14s ease,box-shadow .14s ease,transform .14s ease;
}
.calendar-v4-month-agenda__item:hover{border-color:color-mix(in srgb,var(--item-color,var(--cal-accent)) 62%,var(--cal-line));background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 13%,var(--cal-panel));transform:translateY(-1px)}
.calendar-v4-month-agenda__item.is-selected{box-shadow:0 0 0 2px color-mix(in srgb,var(--item-color,var(--cal-accent)) 38%,transparent)}
.calendar-v4-month-agenda__date{font-size:calc(.6rem + 1px);font-weight:850;font-variant-numeric:tabular-nums;color:var(--cal-accent-strong)}
.calendar-v4-month-agenda__main{display:grid;gap:3px}
.calendar-v4-month-agenda__main strong,.calendar-v4-month-agenda__main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-v4-month-agenda__main strong{font-size:calc(.64rem + 1px);font-weight:400}
.calendar-v4-month-agenda__main small{color:var(--cal-muted);font-size:calc(.56rem + 1px)}
.calendar-v4-month-agenda__metrics{display:grid;gap:5px}
.calendar-v4-month-agenda__metrics>span{display:grid;gap:1px;min-width:50px;padding:5px 6px;border-radius:8px;background:var(--cal-panel)}
.calendar-v4-month-agenda__metrics small{color:var(--cal-muted);font-size:calc(.45rem + 1px);text-transform:uppercase;letter-spacing:.04em}
.calendar-v4-month-agenda__metrics strong{font-size:calc(.62rem + 1px);font-variant-numeric:tabular-nums}
.calendar-v4-month-agenda__empty{display:grid;gap:4px;padding:18px 10px;color:var(--cal-muted);text-align:center;font-size:calc(.64rem + 1px)}
.calendar-v4-month-agenda__empty strong{color:var(--cal-ink)}
@media (max-width:980px){
  .calendar-v4-detail__content,.calendar-v4-month-agenda{min-height:0}
  .calendar-v4-month-agenda__list{max-height:none}
}

/* Dashboard V7: vychozi firemni statistiky jsou docasne skryte. U kazdeho
   uzivatele zustava pouze ovladani pro jeho vlastni statistiky. */
.dashboard-monthly-load .dashboard-statistic-card--success,
.dashboard-monthly-load .dashboard-productivity{
  display:none!important;
}

/* System check: copyable errors and warnings report. */

/* Calendar V8: agenda respektuje aktivni rozsah + citelne kolize a dynamicka vyska dne. */
.calendar-v4-month__week{--calendar-single-day-items:0}
.calendar-v4-month__cell{min-height:var(--calendar-row-min-height,126px)}
.calendar-v4-month__events{align-content:start;padding-top:var(--calendar-cell-range-space,var(--calendar-range-space,0px))}
.calendar-v4-month__range{margin:calc(39px + var(--range-lane-offset,0px)) 4px 0}
.calendar-v4-timeline__range{margin:calc(5px + var(--range-lane-offset,0px)) 2.5px 0}
.calendar-v4-timeline__allday-cell{padding-top:calc(5px + var(--timeline-range-space,0px))}
.calendar-v4-chip>strong{
  min-width:0;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  font-size:calc(.56rem + 1px);
  font-weight:400;
  line-height:1.25;
  overflow-wrap:anywhere;
}

/* Week/day: soubezne udalosti dostanou vlastni citelnou sirku. */
.calendar-v4-timeline-shell{width:100%;max-width:none}
.calendar-v4-timeline__header,
.calendar-v4-timeline__allday,
.calendar-v4-timeline__days{width:100%}
.calendar-v4-timeline__allday-cell{min-height:39px}
.calendar-v4-timeline__range.is-narrow>span{display:none}
.calendar-v4-timeline__range.is-narrow>strong{flex:1 1 auto}
.calendar-v4-event{min-width:0}
.calendar-v4-event>strong{overflow-wrap:anywhere}

/* Agenda je samostatny prepinac nad zvolenym Mesic/Tyden/Den. */
.calendar-v4__view--agenda{margin-left:3px;border-left-color:var(--cal-line)}
.calendar-v4__view--agenda.is-active{background:var(--cal-accent);color:#fff;border-color:var(--cal-accent)}

/* Calendar V9: pravá agenda pro aktivní období + bezpečné skládání all-day položek. */
.calendar-v4-timeline__allday{
  align-items:stretch;
  overflow:visible;
}
.calendar-v4-timeline__allday-label,
.calendar-v4-timeline__allday-cell{
  box-sizing:border-box;
  height:auto;
}
.calendar-v4-timeline__allday-cell{
  grid-auto-rows:minmax(32px,auto);
  align-content:start;
  overflow:visible;
}
.calendar-v4-timeline__allday-cell .calendar-v4-chip{
  position:relative;
  z-index:2;
  width:100%;
  margin:0;
}
.calendar-v4-timeline__range{
  box-sizing:border-box;
}
.calendar-v4-month-agenda__main small{
  white-space:normal;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-height:1.3;
}
.calendar-v4-detail:not(.is-hidden){
  overflow:hidden;
}

/* Calendar V11: plne nazvy akci bez ellipsis, zalamovani pouze mezi slovy. */
.calendar-v4-chip{
  height:auto;
  overflow:visible;
}
.calendar-v4-chip>i{margin-top:2px}
.calendar-v4-chip__time{padding-top:1px}
.calendar-v4-chip>strong,
.calendar-v4-chip__title{
  min-width:0;
  display:block;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  -webkit-line-clamp:unset;
  -webkit-box-orient:initial;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  line-height:1.28;
}

.calendar-v4-month__range,
.calendar-v4-timeline__range{
  height:auto;
  overflow:visible;
}
.calendar-v4-month__range>i,
.calendar-v4-timeline__range>i{margin-top:1px}
.calendar-v4-month__range>strong,
.calendar-v4-timeline__range>strong{
  flex:1 1 auto;
  min-width:0;
  display:block;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  line-height:1.28;
}
.calendar-v4-month-agenda__main strong,
.calendar-v4-agenda__copy strong{
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  line-height:1.3;
}

.calendar-v4-event>strong,
.calendar-v4-event.is-compact>strong{
  display:block;
  width:100%;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  -webkit-line-clamp:unset;
  -webkit-box-orient:initial;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  line-height:1.25;
}

/* Calendar: use the same clear selection ring for every clickable item. */
.calendar-v4-chip.is-selected,
.calendar-v4-event.is-selected,
.calendar-v4-agenda__item.is-selected,
.calendar-v4-month-agenda__item.is-selected,
.calendar-v4-month__range.is-selected,
.calendar-v4-timeline__range.is-selected{
  border-color:color-mix(in srgb,var(--item-color,var(--cal-accent)) 88%,var(--cal-line));
  box-shadow:0 0 0 2px var(--cal-panel),0 0 0 4px color-mix(in srgb,var(--item-color,var(--cal-accent)) 72%,transparent),0 8px 18px rgba(45,30,20,.11);
}
.calendar-v4-event.is-selected,
.calendar-v4-month__range.is-selected,
.calendar-v4-timeline__range.is-selected{z-index:10}

/* 2026-09-01: kalendář bez zbytečného „Celý den“, bezpečný detail eventu a stálý vodorovný posuv. */
.calendar-v4-chip__time:empty{
  width:0!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

/* Sloupce hlavičky eventu nesmí přetéct do sousedního obsahu. */
.event-header-primary-grid,
.event-header-column,
.event-header-column--left,
.event-header-column--right{
  min-width:0;
}
.event-header-column--left > *{
  min-width:0;
  max-width:100%;
}
.event-schedule-save{
  max-width:100%;
  min-width:0;
}

/* Plovoucí scrollbar zůstává dostupný pro široké pracovní plochy. */
.calendar-v4__grid,
.offer-workspace,
.offer-format-toolbar__advanced-panel,
[data-floating-horizontal-scroll]{
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable both-edges;
}

/* Calendar compact controls, arbitrary range and natural panning. */
.calendar-v4__hero-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  min-width:0;
  flex-wrap:wrap;
}
.calendar-v4__compact-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.calendar-v4__compact-actions .button{min-height:32px;white-space:nowrap}
.calendar-v4__range-toggle.is-active{
  border-color:var(--cal-accent);
  background:var(--cal-panel-3);
  color:var(--cal-accent-strong);
}
.calendar-v4__range-picker{
  display:flex;
  align-items:end;
  gap:6px;
  padding:6px;
  border:1px solid var(--cal-line);
  border-radius:11px;
  background:var(--cal-panel);
  box-shadow:0 8px 24px rgba(64,42,24,.08);
}
.calendar-v4__range-picker[hidden]{display:none!important}
.calendar-v4__range-picker label{display:grid;gap:2px;margin:0}
.calendar-v4__range-picker label>span{font-size:calc(.52rem + 1px);font-weight:700;color:var(--cal-muted);text-transform:uppercase;letter-spacing:.05em}
.calendar-v4__range-picker input[type="date"]{
  width:132px;
  min-height:32px;
  padding:4px 7px!important;
  border:1px solid var(--cal-line)!important;
  border-radius:8px!important;
  background:var(--cal-panel-2)!important;
  color:var(--cal-ink)!important;
  font-size:calc(.66rem + 1px) !important;
}
.calendar-v4__grid{
  overscroll-behavior-x:contain;
  overscroll-behavior-y:auto;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y pinch-zoom;
}
.calendar-v4__grid.is-dragging{
  cursor:grabbing!important;
  user-select:none;
}
.calendar-v4__grid:not(.is-dragging){cursor:grab}
.calendar-v4__grid input,
.calendar-v4__grid select,
.calendar-v4__grid textarea{cursor:auto}

@media (max-width:1320px){
  .calendar-v4__hero-actions{width:100%;justify-content:space-between}
  .calendar-v4__views{align-self:auto;flex:1 1 auto;justify-content:center}
}
@media (max-width:820px){
  .calendar-v4__hero-actions{align-items:stretch;flex-direction:column}
  .calendar-v4__phase-legend{width:100%;justify-content:center;flex-wrap:wrap}
  .calendar-v4__compact-actions{width:100%}
  .calendar-v4__compact-actions .button{flex:1 1 auto;text-align:center}
  .calendar-v4__period-nav{flex-wrap:wrap}
  .calendar-v4__range-picker{order:20;width:100%;align-items:stretch;flex-wrap:wrap}
  .calendar-v4__range-picker label{flex:1 1 130px}
  .calendar-v4__range-picker input[type="date"]{width:100%}
}
@media (max-width:560px){
  .calendar-v4__period-nav{display:flex}
  .calendar-v4__period-copy{flex:1 1 135px}
  .calendar-v4__range-picker .button{flex:1 1 auto}
}

/* Inventory/filter/contact refinements requested in the review PDF. */
.itinerary-bulk-toolbar{
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--paper-soft);
}
.itinerary-col-check{width:42px}
.itinerary-check-heading,.itinerary-item-check{text-align:center!important;width:42px}
.itinerary-item-check input,.itinerary-check-heading input{width:16px;height:16px;cursor:pointer}
.contact-usage-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.contact-usage-link{text-decoration:none;cursor:pointer}
.contact-usage-export{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--paper-soft);
  color:var(--accent);
  font-size:calc(.62rem + 1px);
  font-weight:800;
  text-decoration:none;
}
.contact-usage-export:hover{border-color:var(--accent);background:var(--paper)}

/* The complete visible pagination control is the hit target, not just its text. */
.event-directory__pager-link{
  position:relative;
  z-index:1;
  box-sizing:border-box;
  width:38px;
  height:36px;
  min-width:38px;
  min-height:36px;
  padding:0;
  cursor:pointer;
  pointer-events:auto!important;
  touch-action:manipulation;
  user-select:none;
}
.event-directory__pager-link--wide{width:auto;min-width:78px;padding:0 12px}
.event-directory__pager-link.is-disabled,.event-directory__pager-link.is-active{cursor:default}
/* Sidebar typography: every top-level section uses the same resting size.
   Only the section the user is currently in is enlarged for orientation. */
body:not(.auth-page--login) .sidebar .nav-primary-link,
body:not(.auth-page--login) .sidebar .nav-group > summary,
body:not(.auth-page--login) .sidebar .nav-help-group > summary{
  font-size:calc(calc(12px * var(--font-scale)) + 1px);
}
body:not(.auth-page--login) .sidebar .nav-primary-link.active,
body:not(.auth-page--login) .sidebar .nav-group.is-active-section > summary,
body:not(.auth-page--login) .sidebar .nav-help-group.is-active-section > summary{
  font-size:calc(calc(14px * var(--font-scale)) + 1px);
  font-weight:700;
}
body:not(.auth-page--login) .sidebar .nav-group.is-active-section .nav-settings-subgroup[open] > summary{
  font-weight:700;
}

/* 2026-09-02: stránkování Eventů musí být celé klikatelné i při plovoucím
   horizontálním scrollbar-u a při CSS zoomu. JS proxy při viditelném pageru
   schová; vyšší vrstva je druhá ochrana proti překrytí jiným fixed prvkem. */
.event-directory__pagination{
  position:relative;
  isolation:isolate;
  background:var(--paper);
}
.event-directory__pager,
.event-directory__pager-links,
.event-directory__pager-link{
  position:relative;
  pointer-events:auto!important;
}

/* 2026-09-02: robust hit area stránkování Eventů.
   Plovoucí horizontální scrollbar zůstává nad běžným obsahem, ale už nikdy
   nesmí stát nad ovládacími prvky stránky. Pager má proto vyšší lokální vrstvu
   a každý klikací odkaz vlastní plnou hit-area přes celý vykreslený obdélník. */
.event-directory__pagination{
  z-index:130;
  isolation:auto;
}
.event-directory__pager-links{
  position:relative;
  z-index:131;
  overflow:visible;
}
.event-directory__pager-link[href]{
  position:relative;
  z-index:132;
  pointer-events:auto!important;
}
.event-directory__pager-link--number{
  width:auto;
  height:auto;
  min-width:38px;
  min-height:36px;
  padding:8px 10px;
  line-height:1.15;
}
.event-directory__pager-link[href]::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  border-radius:inherit;
  pointer-events:auto;
}

/* Cenové nabídky / PPTX: tato pracovní stránka nemá potřebovat obří nadpisy.
   Měřítko písma uživatele zůstává respektované, ale základ je kompaktnější. */
.page-header--compact h1{
  font-size:calc(clamp(1.75rem,calc(2.35vw * var(--font-scale)),2.55rem) + 1px) !important;
  line-height:1.08;
}
.page-header--compact .eyebrow{font-size:calc(.58rem + 1px);margin-bottom:.4rem}
.event-pptx-offers-head{align-items:flex-start;margin-bottom:14px}
.event-pptx-offers-head h1{
  font-size:calc(clamp(1.65rem,calc(2.15vw * var(--font-scale)),2.35rem) + 1px);
  line-height:1.1;
}
.event-pptx-offers-head p{
  max-width:980px;
  font-size:calc(.8rem + 1px);
  line-height:1.48;
}
.event-pptx-offers-note{
  margin-bottom:12px;
  padding:11px 14px;
  font-size:calc(.76rem + 1px);
  line-height:1.42;
}
.event-pptx-offers-note strong{font-size:calc(.78rem + 1px)}
.event-pptx-offers-panel{padding:18px 20px}
.event-pptx-offers-panel .panel-head{margin-bottom:12px}
.event-pptx-offers-panel .panel-head .eyebrow{font-size:calc(.56rem + 1px);margin-bottom:.38rem}
.event-pptx-offers-panel .panel-head h2{
  font-size:calc(clamp(1.2rem,calc(1.55vw * var(--font-scale)),1.55rem) + 1px);
  line-height:1.15;
}
.event-pptx-offers-panel .panel-head p{
  margin:.45rem 0 0;
  font-size:calc(.75rem + 1px);
  line-height:1.45;
}
.event-pptx-offers-panel .pptx-template-row__identity h3{font-size:calc(.9rem + 1px)}
@media(max-width:760px){
  .page-header--compact h1{font-size:calc(1.65rem + 1px) !important}
  .event-pptx-offers-head h1{font-size:calc(1.45rem + 1px)}
  .event-pptx-offers-panel{padding:15px}
}

/* 2026-09-02: Inventory bulk selection mirrors the fixed Event action tray. */
.premium-selection-tray{pointer-events:none}
.premium-selection-tray.is-visible{pointer-events:auto}
.premium-selection-tray[hidden]{display:none!important}
.itinerary-table tr.is-premium-selected td{
  background:linear-gradient(90deg,rgba(155,111,69,.12),rgba(155,111,69,.045));
  box-shadow:inset 0 1px 0 rgba(124,85,50,.14),inset 0 -1px 0 rgba(124,85,50,.14);
}
.itinerary-table tr.is-premium-selected td:first-child{
  box-shadow:inset 3px 0 0 var(--premium-accent),inset 0 1px 0 rgba(124,85,50,.14),inset 0 -1px 0 rgba(124,85,50,.14);
}
.premium-selection-tray--inventory .premium-selection-tray__bulk>span[aria-hidden="true"]{
  font-size:calc(1rem + 1px);
  line-height:1;
}
@media(max-width:680px){
  .premium-selection-tray--inventory{align-items:stretch;flex-direction:column;gap:10px}
  .premium-selection-tray--inventory .premium-selection-tray__actions{width:100%;flex-wrap:wrap}
  .premium-selection-tray--inventory .premium-selection-tray__actions .button{flex:1 1 120px}
  .premium-selection-tray--inventory .premium-selection-tray__clear{margin-left:auto}
}

/* 2026-09-02: every calendar card and every agenda row states its status in text. */
.calendar-v4-item-status{
  justify-self:start;
  width:max-content;
  border:1px solid color-mix(in srgb,var(--item-color,var(--cal-accent)) 42%,var(--cal-line));
  background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 13%,var(--cal-panel));
  color:color-mix(in srgb,var(--cal-ink) 76%,var(--item-color,var(--cal-accent)));
  font-size:calc(max(8px,.56rem) + 1px);
  font-weight:850;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.calendar-v4-chip__copy{
  align-self:start;
}
.calendar-v4-chip__copy>strong{
  min-width:0;
  display:block;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  font-size:calc(.56rem + 1px);
  font-weight:400;
  line-height:1.28;
}
.calendar-v4-range__copy{
  flex:1 1 auto;
  color:var(--cal-ink)!important;
  font-size:calc(calc(12px * var(--font-scale)) + 1px) !important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
}
.calendar-v4-range__copy>strong{
  min-width:0;
  display:block;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  font-size:calc(.56rem + 1px);
  font-weight:400;
  line-height:1.28;
}
.calendar-v4-month__range>.calendar-v4-range__period,
.calendar-v4-timeline__range>.calendar-v4-range__period{
  flex:0 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:color-mix(in srgb,var(--cal-ink) 72%,var(--item-color,var(--cal-accent)));
  font-size:calc(.5rem + 1px);
  font-weight:700;
}
.calendar-v4-event__status{flex:0 0 auto}
.calendar-v4-month-agenda__status{margin-bottom:1px}
.calendar-v4-agenda__item>em{
  max-width:180px;
  white-space:normal;
  text-align:center;
  line-height:1.25;
}

/* Older compact rules hid every direct <span> in narrow multi-day cards.
   The status/title wrapper must remain visible; only the auxiliary period may hide. */
@media(max-width:980px){
  .calendar-v4-month__range>.calendar-v4-range__copy,
  .calendar-v4-timeline__range>.calendar-v4-range__copy{
    display:grid!important;
  }
  .calendar-v4-month__range>.calendar-v4-range__period,
  .calendar-v4-timeline__range>.calendar-v4-range__period{
    display:none!important;
  }
}
.calendar-v4-timeline__range.is-narrow>.calendar-v4-range__copy{
  display:grid!important;
}
.calendar-v4-timeline__range.is-narrow>.calendar-v4-range__period{
  display:none!important;
}

/* Inventory keeps both available actions in its floating tray even on narrow screens. */
@media(max-width:760px){
  .premium-selection-tray--inventory .premium-selection-tray__bulk{
    display:inline-flex;
  }
}

/* 2026-09-02: warehouse movements use the same item-code label as inventory rows. */
.itinerary-item-code{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:48px;
  padding:6px 8px;
  border:1px solid rgba(66,97,130,.18);
  border-radius:10px;
  background:rgba(231,240,250,.72);
  color:#24496c;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  line-height:1.2;
  white-space:nowrap;
}
.itinerary-history-item-label{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  flex-wrap:wrap;
}
.itinerary-history-item-label>strong{
  min-width:0;
  line-height:1.35;
  overflow-wrap:anywhere;
}
html[data-theme="dark"] body:not(.auth-page--login) .itinerary-item-code{
  background:rgba(77,121,165,.14)!important;
  color:#9fc1e0!important;
  border-color:rgba(119,165,207,.25)!important;
}

/* 2026-09-02: compact final-client actions keep export and delete side by side. */
.contact-directory__compact-actions{
  display:inline-flex;
}
.contact-directory__compact-actions form{margin:0}
.contact-directory__head-icon{
  align-items:center!important;
  justify-content:center!important;
  border-radius:12px!important;
}
.contact-directory__head-icon .event-ui-icon__svg{
  width:18px!important;
  height:18px!important;
  margin:0!important;
  stroke-width:1.45!important;
}
.contact-directory__head-icon:disabled{
  opacity:.45;
  cursor:not-allowed;
}

/* 2026-09-02: analytics uses the same compact condition builder as Events and Inventory. */
.analytics-filter-panel.event-filter-builder-panel{min-width:0}
.analytics-filter-panel .analytics-export-builder{
  min-width:0;
  padding-top:14px;
  border-top:1px solid rgba(122,98,70,.12);
}
.analytics-filter-panel .analytics-filter-actions{margin-top:0}

/* 2026-09-02: arbitrary date ranges remain calendar grids, with denser cards and a full-height side panel. */
.calendar-v4-month--range .calendar-v4-month__cell.is-outside-range{
  cursor:default;
  pointer-events:none;
}
.calendar-v4-month__cell-head{margin-bottom:3px}
.calendar-v4-chip{
  min-height:30px;
  padding:4px 5px;
}
.calendar-v4-month__range,
.calendar-v4-timeline__range{
  min-height:30px;
  padding-top:4px;
  padding-bottom:4px;
}
.calendar-v4-month-agenda__list{
  flex:1 1 0;
  min-height:0;
  max-height:none;
  gap:5px;
  align-content:start;
  overflow:auto;
}
.calendar-v4-month-agenda__item{
  padding:7px 9px;
}
@media(min-width:1101px){
  .calendar-v4__workspace{align-items:stretch}
  .calendar-v4-detail:not(.is-hidden){
    position:relative;
    top:auto;
    align-self:stretch;
    overflow:hidden;
  }
  .calendar-v4-detail__content,
  .calendar-v4-month-agenda{
    flex:1 1 auto;
    min-height:0;
  }
  .calendar-v4-detail__content{overflow:auto}
}
@media(max-width:1100px){
  .calendar-v4-detail:not(.is-hidden){
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .calendar-v4-detail__content,
  .calendar-v4-month-agenda{
    height:auto;
    min-height:0;
  }
  .calendar-v4-detail__content{overflow:visible}
  .calendar-v4-month-agenda__list{
    flex:0 1 auto;
    overflow:visible;
  }
}

/* 2026-09-02: keep the application inside the viewport on desktop and mobile. */
html{
  overflow-x:hidden;
  background-color:var(--bg);
}

@supports (overflow:clip){
  html,
  body:not(.auth-page--login){overflow-x:clip}
}
body:not(.auth-page--login) .shell,
body:not(.auth-page--login) .content,
body:not(.auth-page--login) .content > *,
body:not(.auth-page--login) .panel,
body:not(.auth-page--login) .grid,
body:not(.auth-page--login) .stack,
body:not(.auth-page--login) .stack-md,
body:not(.auth-page--login) .stack-lg,
body:not(.auth-page--login) .page-header,
body:not(.auth-page--login) .header-actions,
body:not(.auth-page--login) .inline-actions,
body:not(.auth-page--login) .form-actions,
body:not(.auth-page--login) .filter-actions{
  box-sizing:border-box;
  min-width:0;
  max-width:100%;
}
body:not(.auth-page--login) .shell,
body:not(.auth-page--login) .content{width:100%}
body:not(.auth-page--login) .table-wrap,
body:not(.auth-page--login) .preview-table-wrap,
body:not(.auth-page--login) .itinerary-admin-table-wrap,
body:not(.auth-page--login) .itinerary-history-wrap,
body:not(.auth-page--login) .todo-purchase-editor__table-scroll{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto!important;
  overscroll-behavior-inline:contain;
}

/* 2026-09-02: distinguish actual MFA activation from the per-account requirement. */

/* 2026-09-02: sjednocené označení vybraných řádků a plovoucí hromadné akce. */
.contact-directory .contacts-table tr.is-premium-selected td,
.itinerary-history-table tr.is-premium-selected td{
  background:linear-gradient(90deg,rgba(155,111,69,.12),rgba(155,111,69,.045));
  box-shadow:inset 0 1px 0 rgba(124,85,50,.14),inset 0 -1px 0 rgba(124,85,50,.14);
}
.contact-directory .contacts-table tr.is-premium-selected td:first-child,
.itinerary-history-table tr.is-premium-selected td:first-child{
  box-shadow:inset 3px 0 0 var(--premium-accent),inset 0 1px 0 rgba(124,85,50,.14),inset 0 -1px 0 rgba(124,85,50,.14);
}
.premium-selection-tray--contacts .premium-selection-tray__bulk>span[aria-hidden="true"]{
  font-size:calc(1rem + 1px);
  line-height:1;
}
@media(max-width:720px){
  .premium-selection-tray--contacts,
  .premium-selection-tray--inventory-history{align-items:stretch;flex-direction:column;gap:10px}
  .premium-selection-tray--contacts .premium-selection-tray__actions,
  .premium-selection-tray--inventory-history .premium-selection-tray__actions{width:100%;flex-wrap:wrap}
}

/* 2026-09-02: stejná vzdušnost mezi akcemi ve všech kalendářových pohledech. */
.calendar-v4-month__events{gap:5px}
.calendar-v4-timeline__allday-cell{gap:5px}

/* Přehled Eventů: výchozí časová osa ukotvená na dnešním dni. */
.event-directory__timeline-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--paper-soft);
}
.event-directory__timeline-copy{
  display:grid;
  gap:3px;
  min-width:0;
}
.event-directory__timeline-copy strong{font-size:calc(.88rem + 1px);color:var(--ink)}
.event-directory__timeline-copy span{font-size:calc(.72rem + 1px);color:var(--muted);line-height:1.35}
.event-directory__timeline-actions,
.event-directory__timeline-settings{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.event-directory__timeline-settings{margin:0}
.event-directory__timeline-settings label{
  display:grid;
  gap:3px;
  min-width:118px;
}
.event-directory__timeline-settings label>span{
  color:var(--muted);
  font-size:calc(.65rem + 1px);
}
.event-directory__timeline-settings select{
  min-width:118px;
  min-height:34px;
  padding:5px 30px 5px 9px;
  font-size:calc(.72rem + 1px);
}
.event-directory .event-directory__timeline-scroll{
  max-height:min(68vh,720px);
  overflow:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  scroll-behavior:auto;
}
.event-directory__timeline-scroll .event-directory-table thead th{
  position:sticky;
  z-index:5;
  background:var(--paper);
  box-shadow:0 1px 0 var(--line);
}
.event-directory .event-directory__today-marker td{
  height:34px;
  padding:5px 12px!important;
  border-top:2px solid var(--accent);
  border-bottom:1px solid var(--line);
  background:var(--paper-soft);
  color:var(--ink);
  text-align:left;
  white-space:nowrap!important;
}
.event-directory__today-marker td>span{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  margin-right:8px;
  padding:2px 8px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-size:calc(.66rem + 1px);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.event-directory__today-marker td>strong{font-size:calc(.78rem + 1px)}
.event-directory__today-marker td>small{
  margin-left:10px;
  color:var(--muted);
  font-size:calc(.65rem + 1px);
}
@media (max-width:900px){
  .event-directory__timeline-toolbar{align-items:stretch;flex-direction:column}
  .event-directory__timeline-actions,.event-directory__timeline-settings{justify-content:flex-start}
  .event-directory .event-directory__timeline-scroll{max-height:64vh}
}

/* 2026-09-02: Eventy – jeden svislý scroll stránky, návrat na Dnes a přesné výškové centrování. */
.event-directory .event-directory__timeline-scroll{
  max-height:none!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  overscroll-behavior-x:contain;
  overscroll-behavior-y:auto;
  scrollbar-gutter:auto;
}
.event-directory__timeline-scroll .event-directory-table thead th{
  /* Bez vnořeného svislého scrollu nesmí hlavička vytvářet druhou scrollovací vrstvu. */
  top:0;
}
.event-directory__today-button{
  min-height:42px;
  padding:0 16px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  white-space:nowrap;
}
.event-directory__toolbar-actions{
  align-items:center!important;
}
.event-directory__selection-summary{
  align-content:center;
  min-height:42px;
}
.event-directory .event-directory-table th,
.event-directory .event-directory-table td{
  vertical-align:middle!important;
}
.event-directory .event-sort-link{
  min-height:32px;
  align-items:center!important;
}
.event-directory .event-select-col{
  vertical-align:middle!important;
}
.event-directory .event-select-col input[type="checkbox"]{
  display:block;
  margin:auto;
}
.event-directory .event-status-cell,
.event-directory .event-manager-cell,
.event-directory .dashboard-events-table__actions,
.event-directory .dashboard-events-table__actions-wrap,
.event-directory .dashboard-events-table__actions-wrap form,
.event-directory .dashboard-events-table__action-pill,
.event-directory .event-status-icon,
.event-directory .event-manager-avatar{
  vertical-align:middle!important;
  align-items:center!important;
  justify-content:center!important;
}
.event-filter-builder__field,
.event-filter-builder__value-control{
  height:36px!important;
  min-height:36px!important;
  line-height:20px!important;
}
.event-filter-builder__remove{
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
}
.event-filter-builder__controls .button{
  height:36px;
  min-height:36px!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}
.event-directory__timeline-settings select,
.event-directory__timeline-settings .button,
.event-directory__timeline-actions>.button{
  height:36px;
  min-height:36px!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}
.event-directory__timeline-actions>.button{
  align-self:flex-end;
}
@media (max-width:900px){
  .event-directory .event-directory__timeline-scroll{max-height:none!important}
}

/* 2026-09-02: Eventy - ovladaci radek s tlacitkem Dnes zustava dostupny pri scrollu. */
.event-directory__toolbar--sticky{
  position:sticky;
  top:8px;
  z-index:40;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid rgba(155,111,69,.2);
  border-radius:15px;
  background:rgba(255,255,255,.97);
  box-shadow:0 10px 24px rgba(45,33,20,.08);
  backdrop-filter:blur(12px);
}
.event-directory__timeline-view-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:42px!important;
  min-height:42px!important;
  padding:0 16px!important;
  line-height:1!important;
  white-space:nowrap;
}
.event-directory__timeline-view-button>span{
  display:block;
  line-height:1!important;
  transform:translateY(1px);
}
@media(max-width:900px){
  .event-directory__toolbar--sticky{top:6px}
  .event-directory__timeline-view-button{height:40px!important;min-height:40px!important}
}

/* 2026-09-02: Statistiky – uložené sestavy, pevné období a živý report. */
.analytics-report-period{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(160px,220px) minmax(160px,220px);
  gap:12px;
  align-items:end;
  width:100%;
  min-width:0;
  padding:12px 0 2px;
  border-top:1px solid rgba(122,98,70,.12);
}
.analytics-report-period__copy{display:grid;gap:3px;align-self:center;min-width:0}
.analytics-report-period__copy strong{font-size:calc(.82rem + 1px);color:var(--ink)}
.analytics-report-period__copy span{font-size:calc(.7rem + 1px);line-height:1.4}
.analytics-report-period label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:calc(.68rem + 1px)}
.analytics-report-period input{
  width:100%;
  min-width:0;
  height:42px;
  box-sizing:border-box;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--paper);
  color:var(--ink);
  font:inherit;
}
.analytics-preset-manager{
  display:grid;
  gap:10px;
  margin:0 0 12px;
  padding:12px;
  border:1px solid rgba(122,98,70,.15);
  border-radius:14px;
  background:rgba(250,247,242,.62);
}
.analytics-preset-manager__load,
.analytics-preset-manager__save{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto auto;
  gap:9px;
  align-items:end;
  min-width:0;
}
.analytics-preset-manager__save{grid-template-columns:minmax(240px,1fr) minmax(200px,280px) auto}
.analytics-preset-manager label{display:grid;gap:5px;min-width:0;color:var(--muted);font-size:calc(.66rem + 1px)}
.analytics-preset-manager input,
.analytics-preset-manager select{
  width:100%;
  min-width:0;
  height:40px;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--paper);
  color:var(--ink);
  padding:8px 10px;
  font:inherit;
  font-size:calc(.78rem + 1px);
}
.analytics-preset-manager .button{height:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.analytics-preset-manager__status{min-height:1.1em;margin:0;font-size:calc(.68rem + 1px)}
.analytics-preset-manager__status.is-error{color:var(--danger)}
.analytics-preset-delete:disabled{opacity:.42;cursor:not-allowed}
.analytics-live-report{
  min-width:0;
  margin-top:16px;
  padding-top:15px;
  border-top:1px solid rgba(122,98,70,.14);
  transition:opacity .16s ease;
}
.analytics-live-report.is-loading{opacity:.55}
.analytics-live-report__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:11px;
}
.analytics-live-report__head>div{display:grid;gap:2px;min-width:0}
.analytics-live-report__head h3{margin:0}
.analytics-live-report__wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto!important;
  overflow-y:visible!important;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.7);
}
.analytics-live-report__table{
  border-collapse:separate;
  border-spacing:0;
}
.analytics-live-report__table th,
.analytics-live-report__table td{
  padding:10px 12px;
  border-bottom:1px solid rgba(229,218,203,.72);
  vertical-align:middle;
  font-size:calc(.76rem + 1px);
}
.analytics-live-report__table th{
  position:sticky;
  top:0;
  z-index:1;
  background:#f5eee6;
  color:var(--ink);
  font-size:calc(.69rem + 1px);
  font-weight:700;
  white-space:nowrap;
}
.analytics-live-report__table tbody tr:last-child td{border-bottom:1px solid rgba(155,111,69,.22)}
.analytics-live-report__table tfoot td{
  background:#fbf7f2;
  color:var(--accent-dark);
  font-weight:750;
  border-bottom:0;
  white-space:nowrap;
}
.analytics-live-report__table .is-money,
.analytics-live-report__table .is-percent,
.analytics-live-report__table .is-int{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.analytics-live-report__table .is-date,
.analytics-live-report__table .is-datetime,
.analytics-live-report__table .is-time{white-space:nowrap;font-variant-numeric:tabular-nums}
.analytics-live-report__formula{margin:8px 2px 0;font-size:calc(.66rem + 1px);line-height:1.4}
html[data-theme="dark"] .analytics-preset-manager{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.1)}
html[data-theme="dark"] .analytics-report-period input,
html[data-theme="dark"] .analytics-preset-manager input,
html[data-theme="dark"] .analytics-preset-manager select{background:rgba(255,255,255,.055);color:var(--ink);border-color:rgba(255,255,255,.12)}
html[data-theme="dark"] .analytics-live-report__wrap{background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.1)}
html[data-theme="dark"] .analytics-live-report__table th{background:#302b27;color:var(--ink)}
html[data-theme="dark"] .analytics-live-report__table tfoot td{background:#292521;color:#d6b18a}
@media(max-width:980px){
  .analytics-report-period{grid-template-columns:1fr 1fr}
  .analytics-report-period__copy{grid-column:1/-1}
  .analytics-preset-manager__load,
  .analytics-preset-manager__save{grid-template-columns:1fr 1fr}
  .analytics-preset-manager__load label,
  .analytics-preset-manager__save label:first-child{grid-column:1/-1}
  .analytics-preset-manager__save .button{grid-column:1/-1}
}
@media(max-width:620px){
  .analytics-report-period{grid-template-columns:1fr}
  .analytics-report-period__copy{grid-column:auto}
  .analytics-preset-manager__load,
  .analytics-preset-manager__save{grid-template-columns:1fr}
  .analytics-preset-manager__load label,
  .analytics-preset-manager__save label:first-child,
  .analytics-preset-manager__save .button{grid-column:auto}
  .analytics-preset-manager .button{width:100%}
  .analytics-live-report__head{align-items:flex-start;flex-direction:column}
}

/* 2026-09-03: Statistiky – maximálně kompaktní seznam vybraných sloupců. */
.analytics-export-fields{
  gap:4px!important;
}
.analytics-export-field{
  grid-template-columns:28px minmax(0,1fr) auto auto!important;
  gap:7px!important;
  min-height:36px!important;
  padding:3px 7px!important;
  border-radius:10px!important;
}
.analytics-export-field-index{
  font-size:calc(.68rem + 1px) !important;
  line-height:1!important;
}
.analytics-export-field>strong{
  font-size:calc(.76rem + 1px) !important;
  line-height:1.15!important;
}
.analytics-export-field>.badge{
  min-height:23px!important;
  padding:2px 7px!important;
  font-size:calc(.6rem + 1px) !important;
  line-height:1!important;
}
.analytics-export-field-actions{
  gap:3px!important;
}
.analytics-export-field-actions .button{
  width:28px!important;
  min-width:28px!important;
  height:28px!important;
  min-height:28px!important;
  padding:0!important;
  border-radius:9px!important;
  font-size:calc(.78rem + 1px) !important;
  line-height:1!important;
}
@media(max-width:620px){
  .analytics-export-field{
    grid-template-columns:24px minmax(0,1fr) auto!important;
    gap:5px!important;
    min-height:34px!important;
    padding:3px 6px!important;
  }
  .analytics-export-field>.badge{display:none!important}
  .analytics-export-field-actions .button{
    width:27px!important;
    min-width:27px!important;
    height:27px!important;
    min-height:27px!important;
  }
}

/* 2026-09-03: Statistiky – přirozená šířka reportu podle skutečného textu. */
.analytics-live-report__table{
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  table-layout:auto!important;
}
.analytics-live-report__table th,
.analytics-live-report__table td{
  max-width:none!important;
  white-space:nowrap;
}

/* Mobilni kalendar pouziva jediny svisly scroll cele stranky. Vodorovny
   posun patri pouze vnitrni casove ose; vyska Rozsahu i delsiho obdobi proto
   zvetsuje dokument a nevytvari druhy svisly scrollbar. */
@media (max-width:820px){
  /* The mobile time axis uses viewport sticky positioning. The desktop card
     clips its children with overflow:hidden, which turns the whole calendar
     into the sticky containing block and makes the axis scroll away. On
     phones the card therefore stays unclipped; corner radii are applied to
     its first and last visual sections instead. */
  .calendar-v4{
    overflow:visible;
  }
  .calendar-v4__hero{
    border-radius:21px 21px 0 0;
  }
  .calendar-v4__workspace{
    min-height:0;
    height:auto;
    overflow:visible;
    border-radius:0 0 21px 21px;
  }
  .calendar-v4__surface{
    width:100%;
    max-width:100%;
    min-height:0;
    height:auto;
    max-height:none;
    overflow:visible;
  }
  .calendar-v4__grid{
    width:100%;
    max-width:100%;
    height:auto;
    max-height:none;
    min-height:0;
    align-self:start;
    overflow:visible!important;
    touch-action:auto!important;
  }

  /* Mobilni kalendar pouziva jednotny provozni format pro Den, Tyden i Mesic:
     dny jsou svisle pod sebou a casova osa bezi vodorovne. Horizontalni posun
     patri pouze vnitrnimu schedule scrolleru, takze hlavni stranka ma jediny
     svisly scroll a casova osa muze zustat pri svislem pohybu zafixovana. */
  .calendar-mobile-schedule{
    --mobile-axis-width:768px;
    --mobile-hour-width:48px;
    width:100%;
    min-width:0;
    color:var(--cal-ink);
    background:var(--cal-panel);
  }
  .calendar-mobile-schedule__axis-row{
    position:sticky;
    top:0;
    z-index:40;
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    width:100%;
    min-width:0;
    min-height:38px;
    border-bottom:1px solid var(--cal-line);
    background:var(--cal-panel);
    box-shadow:0 5px 12px rgba(29,52,61,.06);
  }
  .calendar-mobile-schedule__axis-spacer{
    position:relative;
    z-index:2;
    width:72px;
    border-right:1px solid var(--cal-line);
    background:var(--cal-panel);
  }
  .calendar-mobile-schedule__axis-scroll{
    min-width:0;
    width:100%;
    overflow-x:hidden;
    overflow-y:hidden;
    background:var(--cal-panel);
    scrollbar-width:none;
    pointer-events:none;
  }
  .calendar-mobile-schedule__axis-scroll::-webkit-scrollbar{display:none}
  .calendar-mobile-schedule__scroll{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    overscroll-behavior-y:auto;
    touch-action:pan-x pan-y;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:var(--cal-accent) transparent;
    scrollbar-gutter:auto;
  }
  .calendar-mobile-schedule__scroll::-webkit-scrollbar{width:0;height:7px}
  .calendar-mobile-schedule__scroll::-webkit-scrollbar-track{background:transparent}
  .calendar-mobile-schedule__scroll::-webkit-scrollbar-thumb{background:var(--cal-accent);border-radius:999px}
  .calendar-mobile-schedule__rows{
    width:max-content;
    min-width:100%;
  }
  .calendar-mobile-schedule__row{
    display:grid;
    grid-template-columns:72px var(--mobile-axis-width);
    width:max-content;
    min-width:100%;
  }
  .calendar-mobile-schedule__date{
    position:sticky;
    left:0;
    z-index:4;
    width:72px;
    border-right:1px solid var(--cal-line);
    background:var(--cal-panel);
  }
  .calendar-mobile-schedule__axis{
    position:relative;
    width:var(--mobile-axis-width);
    min-height:38px;
    background:repeating-linear-gradient(to right,transparent 0 calc(var(--mobile-hour-width) - 1px),color-mix(in srgb,var(--cal-line) 72%,transparent) calc(var(--mobile-hour-width) - 1px) var(--mobile-hour-width));
  }
  .calendar-mobile-schedule__axis>span{
    position:absolute;
    left:var(--mobile-axis-left,0);
    bottom:8px;
    transform:translateX(-50%);
    color:var(--cal-muted);
    font-size:calc(.48rem + 1px);
    font-weight:750;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  .calendar-mobile-schedule__axis>span:first-child{transform:none}
  .calendar-mobile-schedule__row{
    min-height:var(--mobile-row-height,58px);
    height:var(--mobile-row-height,58px);
    border-bottom:1px solid var(--cal-line);
    background:var(--cal-panel);
  }
  .calendar-mobile-schedule__row.is-weekend{background:color-mix(in srgb,var(--cal-accent) 2%,var(--cal-panel))}
  .calendar-mobile-schedule__row.is-today{background:color-mix(in srgb,var(--cal-accent) 6%,var(--cal-panel))}
  .calendar-mobile-schedule__row.is-selected{background:color-mix(in srgb,var(--cal-accent) 9%,var(--cal-panel))}
  .calendar-mobile-schedule__row:focus-visible{outline:2px solid color-mix(in srgb,var(--cal-accent) 55%,transparent);outline-offset:-2px}
  .calendar-mobile-schedule__row.is-weekend .calendar-mobile-schedule__date,
  .calendar-mobile-schedule__row.is-today .calendar-mobile-schedule__date,
  .calendar-mobile-schedule__row.is-selected .calendar-mobile-schedule__date{background:inherit}
  .calendar-mobile-schedule__date{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    min-height:var(--mobile-row-height,58px);
    padding:6px 4px;
    color:var(--cal-muted);
    text-align:center;
  }
  .calendar-mobile-schedule__date>span{
    font-size:calc(.48rem + 1px);
    font-weight:850;
    letter-spacing:.05em;
  }
  .calendar-mobile-schedule__date>strong{
    color:var(--cal-ink);
    font-size:calc(.64rem + 1px);
    font-weight:900;
    line-height:1.05;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  .calendar-mobile-schedule__date>em{
    min-width:22px;
    height:22px;
    display:grid;
    place-items:center;
    margin-top:2px;
    padding:0 5px;
    border:1px solid var(--cal-line);
    border-radius:999px;
    background:var(--cal-panel-2);
    color:var(--cal-accent-strong);
    font-size:calc(.48rem + 1px);
    font-style:normal;
    font-weight:850;
  }
  .calendar-mobile-schedule__track{
    position:relative;
    width:var(--mobile-axis-width);
    min-height:var(--mobile-row-height,58px);
    height:var(--mobile-row-height,58px);
    background:repeating-linear-gradient(to right,transparent 0 calc(var(--mobile-hour-width) - 1px),color-mix(in srgb,var(--cal-line) 62%,transparent) calc(var(--mobile-hour-width) - 1px) var(--mobile-hour-width));
  }
  .calendar-mobile-schedule__event{
    position:absolute;
    top:var(--mobile-event-top,8px);
    left:var(--mobile-event-left,0);
    width:var(--mobile-event-width,120px);
    height:var(--mobile-event-height,50px);
    min-width:0;
    display:grid;
    align-content:center;
    gap:3px;
    overflow:hidden;
    padding:7px 9px 7px 12px;
    border:1px solid color-mix(in srgb,var(--item-color,var(--cal-accent)) 58%,var(--cal-line));
    border-radius:9px;
    background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 19%,var(--cal-panel));
    color:var(--cal-ink);
    box-shadow:0 2px 7px rgba(29,52,61,.06);
    text-align:left;
    cursor:pointer;
    isolation:isolate;
  }
  .calendar-mobile-schedule__event::before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:4px;
    border-radius:8px 0 0 8px;
    background:var(--item-color,var(--cal-accent));
  }
  .calendar-mobile-schedule__event--event{
    background:color-mix(in srgb,var(--cal-service-event) 19%,var(--cal-panel));
  }
  .calendar-mobile-schedule__event--preparation{
    background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--cal-service-preparation) 34%,var(--cal-panel)) 0 7px,color-mix(in srgb,var(--cal-service-preparation) 12%,var(--cal-panel)) 7px 14px);
  }
  .calendar-mobile-schedule__event--cleanup{
    background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--cal-service-cleanup) 34%,var(--cal-panel)) 0 7px,color-mix(in srgb,var(--cal-service-cleanup) 12%,var(--cal-panel)) 7px 14px);
  }
  .calendar-mobile-schedule__event--preparation::after,
  .calendar-mobile-schedule__event--cleanup::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    border-radius:inherit;
    background:linear-gradient(90deg,rgba(255,255,255,.18),transparent 48%);
    pointer-events:none;
  }
  .calendar-mobile-schedule__event:hover,
  .calendar-mobile-schedule__event:focus-visible{
    border-color:var(--item-color,var(--cal-accent));
    box-shadow:0 0 0 2px color-mix(in srgb,var(--item-color,var(--cal-accent)) 22%,transparent),0 4px 10px rgba(29,52,61,.08);
    outline:none;
  }
  .calendar-mobile-schedule__event.is-selected{
    border-color:var(--item-color,var(--cal-accent));
    box-shadow:0 0 0 2px color-mix(in srgb,var(--item-color,var(--cal-accent)) 35%,transparent),0 5px 12px rgba(29,52,61,.1);
  }
  .calendar-mobile-schedule__event>strong{
    position:relative;
    z-index:1;
    display:block;
    min-width:0;
    max-width:100%;
    overflow:hidden;
    color:var(--cal-ink);
    font-size:calc(.58rem + 1px);
    font-weight:400;
    line-height:1.2;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  .calendar-mobile-schedule__event-meta{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    overflow:hidden;
    color:color-mix(in srgb,var(--cal-ink) 70%,var(--cal-muted));
    font-size:calc(.49rem + 1px);
    line-height:1.15;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  .calendar-mobile-schedule__event-meta>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .calendar-mobile-schedule__event-location{max-width:46%}
  .calendar-mobile-schedule__event-people{flex:0 0 auto}
  .calendar-mobile-schedule__event.is-all-day{
    border-style:dashed;
  }

  .calendar-mobile-schedule--day .calendar-mobile-schedule__event{
    padding:10px 12px 10px 14px;
    border-radius:11px;
  }
  .calendar-mobile-schedule--day .calendar-mobile-schedule__event>strong{
    font-size:calc(.68rem + 1px);
    line-height:1.25;
    white-space:normal;
    text-overflow:clip;
  }
  .calendar-mobile-schedule--day .calendar-mobile-schedule__event-meta{
    flex-wrap:wrap;
    row-gap:3px;
    font-size:calc(.55rem + 1px);
  }
  .calendar-mobile-schedule--week .calendar-mobile-schedule__event>strong{
    font-size:calc(.56rem + 1px);
  }
  .calendar-mobile-schedule--month .calendar-mobile-schedule__axis-row{min-height:34px}
  .calendar-mobile-schedule--month .calendar-mobile-schedule__axis{min-height:34px}
  .calendar-mobile-schedule--month .calendar-mobile-schedule__axis>span{bottom:7px;font-size:calc(.45rem + 1px)}
  .calendar-mobile-schedule--month .calendar-mobile-schedule__date{padding:4px 3px}
  .calendar-mobile-schedule--month .calendar-mobile-schedule__date>span{font-size:calc(.43rem + 1px)}
  .calendar-mobile-schedule--month .calendar-mobile-schedule__date>strong{font-size:calc(.56rem + 1px)}
  .calendar-mobile-schedule--month .calendar-mobile-schedule__date>em{width:20px;min-width:20px;height:20px;font-size:calc(.43rem + 1px)}
  .calendar-mobile-schedule--month .calendar-mobile-schedule__event{
    gap:1px;
    padding:5px 7px 5px 10px;
    border-radius:7px;
  }
  .calendar-mobile-schedule--month .calendar-mobile-schedule__event>strong{
    font-size:calc(.49rem + 1px);
    line-height:1.15;
  }
  .calendar-mobile-schedule--month .calendar-mobile-schedule__event-meta{
    gap:5px;
    font-size:calc(.43rem + 1px);
  }
  .calendar-mobile-schedule--month .calendar-mobile-schedule__event-location,
  .calendar-mobile-schedule--month .calendar-mobile-schedule__event-people{display:none}

  html[data-theme="dark"] .calendar-mobile-schedule,
  html[data-theme="dark"] .calendar-mobile-schedule__axis-row,
  html[data-theme="dark"] .calendar-mobile-schedule__row,
  html[data-theme="dark"] .calendar-mobile-schedule__axis-spacer,
  html[data-theme="dark"] .calendar-mobile-schedule__date{background:var(--cal-panel)}
  html[data-theme="dark"] .calendar-mobile-schedule__event--event{
    background:color-mix(in srgb,var(--cal-service-event) 24%,var(--cal-panel));
  }
  html[data-theme="dark"] .calendar-mobile-schedule__event--preparation{
    background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--cal-service-preparation) 30%,var(--cal-panel)) 0 7px,color-mix(in srgb,var(--cal-service-preparation) 10%,var(--cal-panel)) 7px 14px);
  }
  html[data-theme="dark"] .calendar-mobile-schedule__event--cleanup{
    background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--cal-service-cleanup) 30%,var(--cal-panel)) 0 7px,color-mix(in srgb,var(--cal-service-cleanup) 10%,var(--cal-panel)) 7px 14px);
  }

  /* Mobilní detail je okamžitý spodní panel bez ztmavení kalendáře. Výška je
     záměrně omezená, takže uživatel po klepnutí nic nehledá pod časovou osou. */
  .calendar-v4.is-item-detail-open .calendar-v4-detail{
    position:fixed!important;
    top:auto!important;
    right:max(8px,env(safe-area-inset-right))!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    left:max(8px,env(safe-area-inset-left))!important;
    z-index:10090;
    width:auto!important;
    min-width:0!important;
    min-height:0!important;
    height:min(78vh,760px)!important;
    height:min(78dvh,760px)!important;
    max-height:calc(100dvh - 70px)!important;
    overflow:hidden!important;
    border:1px solid var(--cal-line);
    border-radius:22px 22px 14px 14px;
    background:var(--cal-panel);
    box-shadow:0 20px 55px rgba(27,35,40,.22);
  }
  .calendar-v4.is-item-detail-open .calendar-v4-detail__content{
    min-height:0!important;
    height:100%!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    background:var(--cal-panel);
    scroll-padding-bottom:18px;
  }
  .calendar-v4.is-item-detail-open .calendar-v4-detail__mobile-handle{
    position:sticky;
    top:0;
    z-index:6;
    display:flex;
    justify-content:center;
    align-items:center;
    height:20px;
    background:var(--cal-panel);
    touch-action:none;
  }
  .calendar-v4.is-item-detail-open .calendar-v4-detail__mobile-handle>span{
    width:42px;
    height:4px;
    border-radius:999px;
    background:var(--cal-line-strong);
  }
  .calendar-v4.is-item-detail-open .calendar-v4-detail__top{
    padding-top:8px;
    background:var(--cal-panel);
  }
  .calendar-v4.is-item-detail-open .calendar-v4-detail__quick-actions{padding-bottom:10px}
  .calendar-v4.is-item-detail-open .calendar-v4-detail__mobile-tabs{
    position:sticky;
    top:20px;
    z-index:5;
    display:flex;
    gap:4px;
    padding:0 13px 8px;
    border-bottom:1px solid var(--cal-line);
    background:var(--cal-panel);
  }
  .calendar-v4-detail__mobile-tabs>button{
    flex:1 1 0;
    min-width:0;
    min-height:34px;
    padding:6px 8px;
    border:0;
    border-bottom:2px solid transparent;
    background:transparent;
    color:var(--cal-muted);
    font:inherit;
    font-size:calc(.62rem + 1px);
    font-weight:800;
    cursor:pointer;
  }
  .calendar-v4-detail__mobile-tabs>button.is-active{
    border-bottom-color:var(--cal-accent);
    color:var(--cal-accent-strong);
  }
  .calendar-v4-detail__mobile-tabs>button[hidden]{display:none!important}
  .calendar-v4-detail__content[data-calendar-active-tab="overview"] [data-calendar-detail-pane]:not([data-calendar-detail-pane="overview"]),
  .calendar-v4-detail__content[data-calendar-active-tab="details"] [data-calendar-detail-pane]:not([data-calendar-detail-pane="details"]),
  .calendar-v4-detail__content[data-calendar-active-tab="documents"] [data-calendar-detail-pane]:not([data-calendar-detail-pane="documents"]){display:none!important}
  .calendar-v4.is-item-detail-open .calendar-v4-detail__actions{
    position:sticky;
    bottom:0;
    z-index:4;
    background:var(--cal-panel);
  }

  /* Agenda zustava jednsloupcova a horizontalni posun nepotrebuje. */
  .calendar-v4-agenda{width:100%;min-width:0!important;padding:6px}
  .calendar-v4-agenda__day{grid-template-columns:1fr;gap:5px;padding:8px 0}
  .calendar-v4-agenda__day>header{padding:2px 4px}
  .calendar-v4-agenda__day>header>span{writing-mode:horizontal-tb;transform:none}
  .calendar-v4-agenda__item{grid-template-columns:4px 54px minmax(0,1fr);gap:5px;padding:7px 6px}
  .calendar-v4-agenda__item>em{display:none}
}

/* Changelog po aktualizaci zustava i na mobilu uprostred skutecneho viewportu. */
@media (max-width:760px){
  .app-changelog-update{
    place-items:center!important;
    width:100dvw;
    height:100dvh;
    padding:max(10px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
  }
  .app-changelog-update__card{
    width:min(570px,100%);
    max-height:min(84dvh,660px);
    border-radius:17px;
  }
}

/* --------------------------------------------------------------------------
   Týmové kalendáře: Logistika / Kuchaři
   -------------------------------------------------------------------------- */
.calendar-section-tabs{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin:0 0 12px;
}
.calendar-section-tabs a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:7px 14px;
    border:1px solid var(--line, #e4d5c5);
    border-radius:9px;
    background:#e9f6f7;
    color:#174b55;
    text-decoration:none;
    font-weight:700;
}
.calendar-section-tabs a.active{
    background:var(--accent, #9a6a3a);
    border-color:var(--accent, #9a6a3a);
    color:#fff;
}
/* Calendar section controls use the same compact shape in both themes. */
html[data-theme="dark"] .calendar-section-tabs a{
    color:#d4eff1;
    background:#15333e;
    border-color:#335964;
}
html[data-theme="dark"] .calendar-section-tabs a:hover{background:#1b4550;color:#fff}
html[data-theme="dark"] .calendar-section-tabs a.active{
    color:#04272d;
    background:#35d1d4;
    border-color:#35d1d4;
}
.team-calendar-page{display:grid;gap:14px;min-width:0}
.team-calendar-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:14px 16px;
}
.team-calendar-toolbar__period,
.team-calendar-toolbar__actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.team-calendar-toolbar__period h2{margin:2px 0 0;font-size:calc(1.35rem + 1px)}
.team-calendar-legend{display:inline-flex;align-items:center;gap:6px;font-size:calc(.86rem + 1px);color:var(--muted, #786f68)}
.team-calendar-legend i{width:10px;height:10px;border-radius:3px;background:#b477a6;border:1px solid rgba(0,0,0,.08)}
.team-calendar-legend--confirmed i{background:#4f9a74}
.team-calendar-editor{padding:16px}
.team-calendar-event-form{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.team-calendar-event-form label{display:grid;gap:6px}
.team-calendar-event-form label>span{font-size:calc(.82rem + 1px);color:var(--muted, #786f68)}
.team-calendar-event-form .span-2{grid-column:1/-1}
.team-calendar-month{padding:0;overflow:hidden}
.team-calendar-weekdays,
.team-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:0}
.team-calendar-weekdays{
    border-bottom:1px solid var(--line, #e4d5c5);
    background:rgba(244,238,230,.7);
}
.team-calendar-weekdays span{
    padding:8px 9px;
    font-size:calc(.78rem + 1px);
    font-weight:700;
    color:var(--muted, #786f68);
    text-align:left;
    border-right:1px solid var(--line, #e4d5c5);
}
.team-calendar-weekdays span:last-child{border-right:0}
.team-calendar-day{
    min-width:0;
    min-height:128px;
    padding:7px;
    border-right:1px solid var(--line, #e4d5c5);
    border-bottom:1px solid var(--line, #e4d5c5);
    background:var(--panel, #fff);
}
.team-calendar-day:nth-child(7n){border-right:0}
.team-calendar-day.is-outside{background:rgba(244,238,230,.35);color:var(--muted, #786f68)}
.team-calendar-day.is-today{box-shadow:inset 0 0 0 2px #3d956c}
.team-calendar-day>header{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:25px;margin-bottom:4px}
.team-calendar-day>header>span{font-weight:700;font-size:calc(.84rem + 1px)}
.team-calendar-day>header>strong{font-size:calc(.62rem + 1px);text-transform:uppercase;letter-spacing:.06em;color:#287354}
.team-calendar-day__items{display:grid;gap:4px;min-width:0}
.team-calendar-chip{
    min-width:0;
    display:flex;
    align-items:center;
    gap:5px;
    min-height:25px;
    padding:4px 6px;
    border-radius:6px;
    border-left:4px solid #8e2e71;
    background:#e9b7d5;
    color:#422238;
    text-decoration:none;
    line-height:1.15;
    font-size:calc(.72rem + 1px);
}
.team-calendar-chip--confirmed{border-left-color:#277c54;background:#cfe8d9;color:#174c35}
.team-calendar-chip small{flex:0 0 auto;font-size:calc(.64rem + 1px);font-weight:800}
.team-calendar-chip span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-calendar-chip em{margin-left:auto;font-style:normal;font-size:calc(.72rem + 1px)}
.team-calendar-detail{padding:16px;scroll-margin-top:90px}
.team-calendar-detail__head-actions{display:flex;align-items:center;gap:8px}
.team-calendar-detail__facts{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:12px 0;
}
.team-calendar-detail__facts>div{
    display:grid;
    gap:4px;
    padding:10px 12px;
    border:1px solid var(--line, #e4d5c5);
    border-radius:12px;
    background:rgba(248,244,239,.7);
}
.team-calendar-detail__facts small{color:var(--muted, #786f68)}
.team-calendar-detail__note{padding:12px;border-radius:12px;background:rgba(244,238,230,.55);white-space:normal;overflow-wrap:anywhere}
.team-calendar-documents{display:grid;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line, #e4d5c5)}
.team-calendar-documents__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.team-calendar-documents__head h4{margin:2px 0 0}
.team-calendar-document-list{display:grid;gap:7px}
.team-calendar-document{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 10px;
    border:1px solid var(--line, #e4d5c5);
    border-radius:10px;
    background:var(--panel, #fff);
}
.team-calendar-document>a{min-width:0;overflow-wrap:anywhere}
.team-calendar-document form{margin:0}
.team-calendar-document-upload{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.team-calendar-delete-form{margin-top:16px}

.beo-pdf-documents{
    display:grid;
    margin:14px 0 0;
    border:1px solid rgba(73,139,93,.25);
    border-radius:14px;
}
.beo-pdf-documents__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.beo-pdf-documents__head h4{margin:2px 0 3px}
.beo-pdf-documents__head p{margin:0;max-width:780px}
.beo-pdf-document-item .todo-document-name{flex:1;min-width:0;overflow-wrap:anywhere}

@media (max-width: 760px){
    .calendar-section-tabs{gap:6px}
    .calendar-section-tabs a{flex:1 1 0;min-width:0;padding-inline:8px}
    .team-calendar-toolbar{align-items:flex-start;flex-direction:column}
    .team-calendar-toolbar__actions{width:100%}
    .team-calendar-toolbar__actions .button{margin-left:auto}
    .team-calendar-event-form{grid-template-columns:1fr}
    .team-calendar-event-form .span-2{grid-column:auto}
    .team-calendar-weekdays span{padding:6px 2px;text-align:center;font-size:calc(.67rem + 1px)}
    .team-calendar-day{min-height:92px;padding:4px 3px}
    .team-calendar-day>header{min-height:20px;margin-bottom:2px}
    .team-calendar-day>header>span{font-size:calc(.72rem + 1px)}
    .team-calendar-day>header>strong{display:none}
    .team-calendar-day__items{gap:3px}
    .team-calendar-chip{padding:3px 4px;min-height:22px;border-left-width:3px;font-size:calc(.62rem + 1px);gap:3px}
    .team-calendar-chip small{font-size:calc(.56rem + 1px)}
    .team-calendar-chip em{display:none}
    .team-calendar-detail__facts{grid-template-columns:repeat(2,minmax(0,1fr))}
    .team-calendar-document{align-items:flex-start;flex-direction:column}
    .beo-pdf-documents__head{flex-direction:column}
}

@media (max-width: 430px){
    .team-calendar-day{min-height:82px}
    .team-calendar-chip small{display:none}
    .team-calendar-chip{font-size:calc(.58rem + 1px)}
    .team-calendar-detail__facts{grid-template-columns:1fr}
}
/* 2026-09-03: team calendars – event categories, custom colors, cooks agenda and PDF upload progress. */
.team-calendar-color-control{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:42px;
}
.team-calendar-color-control input[type="color"]{
  width:58px;
  min-width:58px;
  height:38px;
  padding:3px;
  border:1px solid var(--line,#e4d5c5);
  border-radius:10px;
  background:var(--panel,#fff);
  cursor:pointer;
}
.team-calendar-color-control small{color:var(--muted,#786f68);font-size:calc(.72rem + 1px);line-height:1.35}
.team-calendar-chip--custom{
  border-left-color:var(--team-event-color,#b477a6);
  background:color-mix(in srgb,var(--team-event-color,#b477a6) 22%,#fff);
  color:color-mix(in srgb,var(--team-event-color,#b477a6) 62%,#211a15);
}
.team-calendar-detail__type{display:flex;align-items:center;gap:7px}
.team-calendar-detail__type>i{
  width:12px;
  height:12px;
  flex:0 0 auto;
  border-radius:4px;
  background:var(--team-event-color,#b477a6);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--team-event-color,#b477a6) 65%,#0000);
}
.team-calendar-workspace{min-width:0}
.team-calendar-workspace--with-agenda{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(290px,25vw,360px);
  gap:14px;
  align-items:stretch;
}
.team-calendar-workspace--with-agenda>.team-calendar-month{min-width:0}
.team-calendar-file-picker{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:7px 12px;
  border:1px solid var(--line,#e4d5c5);
  border-radius:10px;
  background:var(--panel,#fff);
  color:var(--ink,#2b231d);
  cursor:pointer;
  font-weight:700;
  font-size:calc(.78rem + 1px);
}
.team-calendar-file-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}
.team-calendar-file-name{max-width:min(420px,100%);overflow-wrap:anywhere;font-size:calc(.74rem + 1px)}
.beo-pdf-documents__upload-control{display:grid;justify-items:end;gap:5px;min-width:min(320px,100%)}
.beo-pdf-documents__selected-name{max-width:320px;text-align:right;font-size:calc(.7rem + 1px);overflow-wrap:anywhere}

body.pdf-upload-running{overflow:hidden}
.pdf-upload-progress-overlay{
  position:fixed;
  inset:0;
  z-index:10060;
  display:grid;
  place-items:center;
  padding:max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
  background:rgba(35,28,23,.67);
  backdrop-filter:blur(7px);
}
.pdf-upload-progress-overlay[hidden]{display:none!important}
.pdf-upload-progress-card{
  width:min(560px,100%);
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:15px 16px;
  padding:24px;
  border:1px solid rgba(155,111,69,.32);
  border-radius:22px;
  background:var(--panel,#fff);
  color:var(--ink,#2b231d);
  box-shadow:0 30px 90px rgba(30,20,12,.38);
}
.pdf-upload-progress-icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:#f3e9de;
  color:var(--accent-dark,#8d5e34);
  font-size:calc(.82rem + 1px);
  font-weight:900;
}
.pdf-upload-progress-copy{min-width:0;display:grid;gap:4px;align-content:center}
.pdf-upload-progress-copy .eyebrow{margin:0;font-size:calc(.58rem + 1px)}
.pdf-upload-progress-copy h2{margin:0;font-size:calc(1.3rem + 1px);line-height:1.2}
.pdf-upload-progress-copy p{margin:0;color:var(--muted,#786f68);font-size:calc(.8rem + 1px);overflow-wrap:anywhere}
.pdf-upload-progress-meter{
  grid-column:1/-1;
  height:12px;
  overflow:hidden;
  border:1px solid var(--line,#e4d5c5);
  border-radius:999px;
  background:#f4eee7;
}
.pdf-upload-progress-meter>span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent,#9a6a3a),var(--accent-dark,#7d4f29));transition:width .16s linear}
.pdf-upload-progress-meta{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--muted,#786f68);font-size:calc(.78rem + 1px)}
.pdf-upload-progress-meta strong{color:var(--ink,#2b231d);font-size:calc(1.08rem + 1px);font-variant-numeric:tabular-nums}
.pdf-upload-progress-card>[data-pdf-progress-close]{grid-column:1/-1;justify-self:end}
.pdf-upload-progress-overlay.is-complete .pdf-upload-progress-icon{background:#e7f4ea;color:#2d7344}
.pdf-upload-progress-overlay.is-complete .pdf-upload-progress-meter>span{background:#5f9a70}
.pdf-upload-progress-overlay.is-error .pdf-upload-progress-icon{background:#fde8e5;color:#aa4339}
.pdf-upload-progress-overlay.is-error .pdf-upload-progress-meter>span{background:#b34a42}

/* Akce: poslední řádek pravé agendy musí být vždy celý dostupný. */
@media (min-width:1101px){
  .calendar-v4-detail:not(.is-hidden){height:100%;min-height:650px}
  .calendar-v4-month-agenda{height:100%;min-height:0}
  .calendar-v4-month-agenda__list{
    min-height:0;
    max-height:none;
    overflow-y:auto;
    padding-bottom:28px;
    scroll-padding-bottom:28px;
    scrollbar-gutter:stable;
  }
}

@media(max-width:760px){
  .beo-pdf-documents__upload-control{justify-items:start;min-width:0;width:100%}
  .beo-pdf-documents__selected-name{text-align:left;max-width:100%}
  .team-calendar-document-upload{align-items:stretch;flex-direction:column}
  .team-calendar-file-picker,.team-calendar-document-upload .button{width:100%}
  .pdf-upload-progress-card{grid-template-columns:48px minmax(0,1fr);padding:18px}
  .pdf-upload-progress-icon{width:48px;height:48px;border-radius:15px}
}

html[data-theme="dark"] body:not(.auth-page--login) .team-calendar-chip--custom{
  background:color-mix(in srgb,var(--team-event-color,#b477a6) 18%,#241f1b)!important;
  color:#f1e5da!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .pdf-upload-progress-card{background:#211c18!important;color:#eadfd5!important;border-color:#514236!important}
html[data-theme="dark"] body:not(.auth-page--login) .pdf-upload-progress-meter{background:#3a3028!important;border-color:#514236!important}

/* 2026-09-03: Kuchaři používají stejný vizuální vzor agendy jako hlavní Kalendář → Akce. */
.team-calendar-page{
  --cal-bg:#f8f4ef;
  --cal-panel:#fffdfa;
  --cal-panel-2:#f4eee7;
  --cal-panel-3:#eee5dc;
  --cal-ink:#251d17;
  --cal-muted:#75685d;
  --cal-line:#e1d5c8;
  --cal-line-strong:#cdbbab;
  --cal-accent:#9b6f45;
  --cal-accent-strong:#765033;
  --cal-confirmed:#2f7756;
  --cal-confirmed-bg:#e9f5ee;
  --cal-confirmed-border:#b9d9c7;
}
.team-calendar-action-agenda{
  min-width:0;
  align-self:stretch;
  min-height:650px;
  overflow:hidden;
  border:1px solid var(--cal-line);
  border-radius:16px;
}
.team-calendar-action-agenda .calendar-v4-month-agenda{
  height:100%;
  min-height:0;
}
.team-calendar-action-agenda .calendar-v4-month-agenda__list{
  flex:1 1 0;
  min-height:0;
  max-height:none;
  overflow-y:auto;
  padding-bottom:28px;
  scroll-padding-bottom:28px;
  scrollbar-gutter:stable;
}
.team-calendar-action-agenda .calendar-v4-month-agenda__item{
  padding:7px 9px;
  text-decoration:none;
}
.team-calendar-action-agenda .calendar-v4-month-agenda__item:visited{color:var(--cal-ink)}

/* BEO PDF: čitelná karta se jménem souboru a jasnými akcemi. */
.beo-pdf-documents{
  gap:12px;
  padding:16px;
  border-color:rgba(73,139,93,.3);
  background:linear-gradient(145deg,rgba(232,244,235,.72),rgba(250,252,249,.72));
}
.beo-pdf-documents__list{display:grid;gap:8px;min-width:0}
.beo-pdf-documents__empty{
  padding:12px 14px;
  border:1px dashed rgba(73,139,93,.3);
  border-radius:12px;
  background:rgba(255,255,255,.5);
  font-size:calc(.72rem + 1px);
}
.beo-pdf-file-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:9px 10px;
  border:1px solid color-mix(in srgb,#4d8d67 28%,var(--line,#e4d5c5));
  border-radius:12px;
  background:rgba(255,255,255,.88);
  box-shadow:0 4px 12px rgba(54,84,64,.035);
}
.beo-pdf-file-card__icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid #c8ddcf;
  border-radius:10px;
  background:#edf7f0;
  color:#32714d;
}
.beo-pdf-file-card__icon svg,
.beo-pdf-file-card__icon-button svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.beo-pdf-file-card__copy{min-width:0;display:grid;gap:3px}
.beo-pdf-file-card__copy>a{
  min-width:0;
  color:var(--ink,#2b231d);
  font-size:calc(.76rem + 1px);
  font-weight:800;
  line-height:1.3;
  overflow-wrap:anywhere;
  text-decoration:none;
}
.beo-pdf-file-card__copy>a:hover{text-decoration:underline}
.beo-pdf-file-card__copy>small{color:var(--muted,#786f68);font-size:calc(.62rem + 1px);line-height:1.3}
.beo-pdf-file-card__actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.beo-pdf-file-card__icon-button{
  display:grid;
  place-items:center;
  border:1px solid var(--line,#e4d5c5);
  border-radius:9px;
  background:#fff;
  color:var(--ink,#2b231d);
  cursor:pointer;
  text-decoration:none;
}
.beo-pdf-file-card__icon-button:hover{background:var(--paper-soft,#f7f1eb);border-color:#cdbbab}
.beo-pdf-file-card__icon-button--danger{color:var(--danger,#b44740);border-color:rgba(180,71,64,.25);background:#fff8f7}
.beo-pdf-file-card__icon-button--danger:is(:hover,:focus-visible){
  background:var(--danger,#b44740);
  border-color:var(--danger,#b44740);
  color:#fff;
}
.beo-pdf-documents>.todo-document-status{
  grid-column:auto;
  grid-row:auto;
  justify-self:stretch;
  max-width:none;
  padding:0 2px;
  text-align:left;
}

/* BEO odkaz v detailu hlavního kalendáře i v detailu potvrzeného eventu Kuchařů. */
.calendar-v4-detail__beo-list{display:grid;gap:7px;min-width:0}
.calendar-v4-detail__beo-link{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 18px;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:8px 9px;
  border:1px solid color-mix(in srgb,var(--cal-confirmed,#2f7756) 28%,var(--cal-line,#e1d5c8));
  border-radius:10px;
  background:color-mix(in srgb,var(--cal-confirmed,#2f7756) 7%,var(--cal-panel,#fffdfa));
  color:var(--cal-ink,#251d17);
  text-decoration:none;
}
.calendar-v4-detail__beo-link:hover{
  border-color:color-mix(in srgb,var(--cal-confirmed,#2f7756) 56%,var(--cal-line,#e1d5c8));
  background:color-mix(in srgb,var(--cal-confirmed,#2f7756) 11%,var(--cal-panel,#fffdfa));
}
.calendar-v4-detail__beo-icon{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:var(--cal-confirmed-bg,#e9f5ee);
  color:var(--cal-confirmed,#2f7756);
  font-size:calc(.52rem + 1px);
  font-weight:900;
  letter-spacing:.03em;
}
.calendar-v4-detail__beo-link>span:nth-child(2){min-width:0;display:grid;gap:2px}
.calendar-v4-detail__beo-link strong{min-width:0;font-size:calc(.66rem + 1px);line-height:1.3;overflow-wrap:anywhere}
.calendar-v4-detail__beo-link small{color:var(--cal-muted,#75685d);font-size:calc(.54rem + 1px)}
.calendar-v4-detail__beo-link>em{color:var(--cal-muted,#75685d);font-size:calc(.9rem + 1px);font-style:normal}

@media(max-width:1100px){
  .team-calendar-action-agenda{min-height:0;overflow:visible}
  .team-calendar-action-agenda .calendar-v4-month-agenda{height:auto;min-height:0}
  .team-calendar-action-agenda .calendar-v4-month-agenda__list{overflow:visible;padding-bottom:16px}
}
@media(max-width:760px){
  .beo-pdf-file-card{grid-template-columns:38px minmax(0,1fr)}
  .beo-pdf-file-card__icon{width:36px;height:36px}
  .beo-pdf-file-card__actions{grid-column:1/-1;justify-content:flex-start;padding-left:48px}
  .beo-pdf-file-card__actions .button{min-height:32px}
}

html[data-theme="dark"] body:not(.auth-page--login) .team-calendar-page{
  --cal-bg:#14110e;
  --cal-panel:#1d1915;
  --cal-panel-2:#25201b;
  --cal-panel-3:#302820;
  --cal-ink:#f1e7dd;
  --cal-muted:#b9aa9d;
  --cal-line:#493b30;
  --cal-line-strong:#665242;
  --cal-accent:#d09b67;
  --cal-accent-strong:#efbe8e;
  --cal-confirmed:#7fc29e;
  --cal-confirmed-bg:#1d2c24;
  --cal-confirmed-border:#365846;
}
html[data-theme="dark"] body:not(.auth-page--login) .beo-pdf-documents{background:linear-gradient(145deg,rgba(34,57,43,.65),rgba(31,27,23,.8));border-color:#365846}
html[data-theme="dark"] body:not(.auth-page--login) .beo-pdf-file-card{background:#28221d;border-color:#465047}
html[data-theme="dark"] body:not(.auth-page--login) .beo-pdf-file-card__icon{background:#1d2c24;border-color:#365846;color:#7fc29e}
html[data-theme="dark"] body:not(.auth-page--login) .beo-pdf-file-card__icon-button{background:#28221d;color:#eadfd5;border-color:#514236}
html[data-theme="dark"] body:not(.auth-page--login) .beo-pdf-file-card__icon-button--danger{background:#33201e;color:#ef9188;border-color:#68403b}
.team-calendar-workspace--with-agenda{grid-template-columns:minmax(0,1fr) clamp(290px,25vw,350px)}
@media(max-width:1100px){.team-calendar-workspace--with-agenda{grid-template-columns:1fr}}

/* Team calendars: compact PDF preview cards + Outlook-like recurring delete choice. */
.team-calendar-document__file{
    min-width:0;
    display:flex;
    align-items:center;
    gap:9px;
    flex:1 1 auto;
}
.team-calendar-document__file strong{
    min-width:0;
    overflow-wrap:anywhere;
    font-weight:600;
}
.team-calendar-document__pdf{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    height:28px;
    padding:0 7px;
    border-radius:8px;
    background:rgba(180,68,59,.10);
    border:1px solid rgba(180,68,59,.20);
    color:#a63e37;
    font-size:calc(.68rem + 1px);
    font-weight:700;
    letter-spacing:.04em;
}
.team-calendar-document__actions{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:7px;
}
.team-calendar-document__actions form{margin:0}

.team-calendar-pdf-preview-dialog,
.team-calendar-series-delete-dialog{
    padding:0;
    border:1px solid var(--line, #e4d5c5);
    border-radius:20px;
    background:var(--panel, #fff);
    color:var(--text, #211c18);
    box-shadow:0 28px 80px rgba(28,20,13,.28);
}
.team-calendar-pdf-preview-dialog::backdrop,
.team-calendar-series-delete-dialog::backdrop{
    background:rgba(32,25,20,.58);
    backdrop-filter:blur(2px);
}
.team-calendar-pdf-preview-dialog{
    width:min(1120px,calc(100vw - 34px));
    height:min(860px,calc(100dvh - 34px));
    overflow:hidden;
}
.team-calendar-pdf-preview-dialog__head{
    min-height:66px;
    padding:14px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    border-bottom:1px solid var(--line, #e4d5c5);
}
.team-calendar-pdf-preview-dialog__head h3{
    margin:2px 0 0;
    max-width:min(760px,70vw);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.team-calendar-pdf-preview-dialog iframe{
    display:block;
    width:100%;
    height:calc(100% - 66px);
    border:0;
    background:#f4f1ed;
}
.team-calendar-series-delete-dialog{
    width:min(620px,calc(100vw - 32px));
    padding:24px;
}
.team-calendar-series-delete-dialog__copy{display:grid;gap:8px}
.team-calendar-series-delete-dialog__copy h3{margin:0;font-size:calc(1.35rem + 1px)}
.team-calendar-series-delete-dialog__copy p{margin:0;color:var(--muted,#786f68);line-height:1.5}
.team-calendar-series-delete-dialog__actions{
    margin-top:20px;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:9px;
    flex-wrap:wrap;
}

@media (max-width:760px){
    .team-calendar-document__actions{width:100%;justify-content:flex-end}
    .team-calendar-pdf-preview-dialog{width:calc(100vw - 14px);height:calc(100dvh - 14px);border-radius:14px}
    .team-calendar-pdf-preview-dialog__head{padding:10px 12px}
    .team-calendar-series-delete-dialog{width:calc(100vw - 20px);padding:18px}
    .team-calendar-series-delete-dialog__actions{display:grid;grid-template-columns:1fr}
    .team-calendar-series-delete-dialog__actions .button{width:100%}
}

/* 2026-09-03: Kuchaři – detail přímo v pravém panelu, čitelné BEO a agenda bez překryvů. */
.team-calendar-side-detail-slot{min-width:0;height:100%}
.team-calendar-side-detail-slot[hidden]{display:none!important}
.team-calendar-detail--side{
  height:100%;
  min-height:650px;
  margin:0;
  padding:14px;
  border:0;
  border-radius:0;
  box-shadow:none;
  overflow:auto;
  background:var(--cal-panel,#fffdfa);
}
.team-calendar-detail--side .panel-head{align-items:flex-start}
.team-calendar-detail--side .team-calendar-detail__facts{grid-template-columns:1fr 1fr;gap:7px}
.team-calendar-detail--side .team-calendar-detail__facts>div{padding:8px 9px}
.team-calendar-detail--side .team-calendar-documents{margin-top:12px;padding-top:12px}
.team-calendar-detail--side .form-actions{margin-top:12px}

/* Pravá desktopová agenda má vlastní scroll. V responzivním skládání je
   součástí stránky a její výšku proto obsluhuje jediný scroll dokumentu. */
@media(min-width:1101px){
  .calendar-v4-month-agenda__list{
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-gutter:stable;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    cursor:grab;
  }
  .calendar-v4-month-agenda__list.is-dragging{
    cursor:grabbing;
    user-select:none;
  }
  .calendar-v4-month-agenda__list.is-dragging *{cursor:grabbing!important}
}
.calendar-v4-month-agenda__item{
  grid-template-columns:42px minmax(0,1fr) 108px;
}
.calendar-v4-month-agenda__main{
  min-width:0;
  overflow:hidden;
}
.calendar-v4-month-agenda__main strong,
.calendar-v4-month-agenda__main small{
  min-width:0;
  word-break:normal;
  display:block;
  -webkit-line-clamp:unset;
  -webkit-box-orient:initial;
  line-height:1.3;
}
.calendar-v4-month-agenda__metrics{
  min-width:108px;
  width:108px;
  grid-template-columns:repeat(2,minmax(50px,1fr));
  align-self:start;
}
.team-calendar-action-agenda .calendar-v4-month-agenda__item{
  min-height:64px;
}
.team-calendar-chip{
  position:relative;
  z-index:1;
  cursor:pointer;
}
.team-calendar-chip:hover{
  filter:brightness(.985);
  box-shadow:0 2px 8px rgba(36,27,20,.08);
}

/* BEO: vždy ikona + celý název + samostatné akce Náhled/Stáhnout. */
.calendar-v4-detail__beo-file{
  display:grid;
  gap:8px;
  min-width:0;
  padding:9px;
  border:1px solid color-mix(in srgb,var(--cal-confirmed,#2f7756) 28%,var(--cal-line,#e1d5c8));
  border-radius:11px;
  background:color-mix(in srgb,var(--cal-confirmed,#2f7756) 7%,var(--cal-panel,#fffdfa));
}
.calendar-v4-detail__beo-file-main{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:center;
  gap:8px;
  min-width:0;
}
.calendar-v4-detail__beo-file-main strong{
  min-width:0;
  font-size:calc(.68rem + 1px);
  line-height:1.35;
  overflow-wrap:anywhere;
  word-break:normal;
}
.calendar-v4-detail__beo-file-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.calendar-v4-detail__beo-file-actions .button{
  min-height:30px;
  padding:6px 9px;
  font-size:calc(.6rem + 1px);
}
.team-calendar-document__actions .button{white-space:nowrap}

@media(max-width:1180px){
  .calendar-v4-month-agenda__item{grid-template-columns:40px minmax(0,1fr) 104px}
  .calendar-v4-month-agenda__metrics{grid-column:auto;min-width:104px;width:104px;grid-template-columns:repeat(2,minmax(48px,1fr))}
}
@media(max-width:1100px){
  .team-calendar-detail--side{min-height:0;border-radius:14px}
}
@media(max-width:760px){
  .calendar-v4-month-agenda__item{grid-template-columns:38px minmax(0,1fr)}
  .calendar-v4-month-agenda__metrics{grid-column:1/-1;width:auto;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-calendar-detail--side .team-calendar-detail__facts{grid-template-columns:1fr}
  .calendar-v4-detail__beo-file-actions{justify-content:flex-start;padding-left:42px}
}

/* 2026-09-03: uživatelské barvy hlavního kalendáře a sjednocený kalendář Kuchařů. */
.calendar-v4-color-form__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:16px 18px;
}
.calendar-v4-color-form__grid label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--surface-soft,#faf7f2);
}
.calendar-v4-color-form__grid label>span{font-size:calc(.72rem + 1px);font-weight:700}
.calendar-v4-color-form__grid input[type="color"]{width:44px;height:30px;min-height:30px;padding:2px;border-radius:8px;cursor:pointer}
.team-calendar-page--cooks .calendar-v4{min-width:0}
.team-calendar-page--cooks .calendar-v4__workspace{min-height:650px}
.team-calendar-page--cooks .team-calendar-editor{margin:0}
.team-calendar-page--cooks .calendar-v4-detail__actions:empty{display:none}
@media(max-width:720px){
  .calendar-v4-color-form__grid{grid-template-columns:1fr}
}
.calendar-v4__dot--birthday{color:var(--cal-birthday,#d17b91)}
.calendar-v4__dot--meeting{color:var(--cal-meeting,#b9823f)}
.calendar-v4__dot--cook-shift{color:#3d956c}
.calendar-v4__dot--cook-vacation{color:#8b65ad}
.calendar-v4__dot--cook-other{color:#a56d3f}

/* 2026-09-03: aktivní podkalendář musí být v levém menu rozpoznatelný hlavně
   pozadím, ne změnou velikosti textu. */
body:not(.auth-page--login) .sidebar .nav-group--calendar .nav-group-items a.active{
  background:linear-gradient(135deg,rgba(155,111,69,.24),rgba(186,144,102,.14))!important;
  box-shadow:inset 3px 0 0 var(--accent-dark),0 5px 14px rgba(78,53,32,.08)!important;
  color:var(--accent-dark)!important;
  font-weight:800;
  font-size:inherit!important;
}
body:not(.auth-page--login) .sidebar .nav-group--calendar .nav-group-items a.active>svg{
  stroke:var(--accent-dark)!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .sidebar .nav-group--calendar .nav-group-items a.active{
  background:linear-gradient(135deg,rgba(208,160,111,.30),rgba(208,160,111,.14))!important;
  color:#fff8f1!important;
}
.calendar-v4-pdf-preview-dialog{width:min(1100px,94vw);height:min(820px,90dvh)}
.calendar-v4-pdf-preview-dialog iframe{width:100%;min-height:0;height:100%;border:0;background:#fff}

/* 2026-09-03: pevné ruční datum od-do a mobilní stabilita vybraných stránek. */
.calendar-v4__range-date-control{
  position:relative;
  display:block;
  min-width:0;
}
.calendar-v4__range-date-control>input[data-calendar-range-start],
.calendar-v4__range-date-control>input[data-calendar-range-end]{
  padding-right:42px!important;
  font-variant-numeric:tabular-nums;
}
.calendar-v4__range-date-button{
  position:absolute;
  z-index:2;
  top:50%;
  right:7px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  padding:0;
  transform:translateY(-50%);
  border:0;
  border-radius:8px;
  color:var(--muted);
  background:transparent;
  cursor:pointer;
}
.calendar-v4__range-date-button:hover{color:var(--accent-dark);background:rgba(155,111,69,.08)}
.calendar-v4__range-date-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.calendar-v4__range-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  left:50%!important;
  bottom:0!important;
  padding:0!important;
  border:0!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media(max-width:1100px){
  /* Na mobilu scrolluje celé boční menu. Navigace nemá vlastní vnořený
     scrollbar, takže spodní account komponenta zůstává vždy dosažitelná. */
  body:not(.auth-page--login) .sidebar{
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
  }
  body:not(.auth-page--login) .sidebar .nav{
    flex:0 0 auto!important;
    min-height:auto!important;
    overflow:visible!important;
    padding-bottom:8px!important;
    scrollbar-gutter:auto!important;
  }

  /* Safari na iOS nesmí posouvat Přehled/Eventy mimo šířku viewportu.
     Vodorovný scroll zůstává pouze uvnitř tabulkových wrapperů. */
  body:not(.auth-page--login) .content--dashboard,
  body:not(.auth-page--login) .content--events{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:clip!important;
    touch-action:pan-y;
  }
  body:not(.auth-page--login) .content--dashboard>*,
  body:not(.auth-page--login) .content--events>*{
    min-width:0!important;
    max-width:100%!important;
  }
  body:not(.auth-page--login) .content--dashboard .table-wrap,
  body:not(.auth-page--login) .content--events .table-wrap{
    max-width:100%!important;
    touch-action:pan-x pan-y;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }

  /* Široká tabulka Finálních klientů nesmí vytvořit vertikální scroll-jail
     v Android PWA. Svislé gesto vždy pokračuje po stránce. */
  body:not(.auth-page--login) .content--contacts .contact-directory .table-wrap{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:auto!important;
    overscroll-behavior-x:contain;
    overscroll-behavior-y:auto;
    touch-action:pan-x pan-y;
    -webkit-overflow-scrolling:touch;
  }
}

/* Contact directory pagination: keep Android/PWA DOM small and scrolling responsive. */
.contact-pagination{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:12px 14px 4px;border-top:1px solid var(--line,#e7dccf);margin-top:8px;
}
.contact-pagination__controls,.contact-pagination__size{display:flex;align-items:center;gap:8px}
.contact-pagination__page,.contact-pagination__summary{font-size:calc(.82rem + 1px);color:var(--muted,#776f68)}
.contact-pagination__size label{display:flex;align-items:center;gap:8px;font-size:calc(.8rem + 1px);color:var(--muted,#776f68)}
.contact-pagination__size select{min-width:76px;padding:7px 28px 7px 10px}
@media (max-width:700px){
  .contact-pagination{align-items:stretch}
  .contact-pagination__controls{order:1;width:100%;justify-content:space-between}
  .contact-pagination__summary{order:2}
  .contact-pagination__size{order:3;margin-left:auto}
}

/* Povinná pole při vytváření Eventu. */
.field-required-mark {
  color:#b24a3a;
  display:inline-block;
  margin-left:.18em;
  font-size:calc(1.38em + 1px);
  line-height:.72;
  font-weight:900;
  vertical-align:.02em;
}
.event-required-note {
  margin-top:.2rem;
  font-size:calc(.78rem + 1px);
}
.event-create-draft-note{
  margin:.28rem 0 0;
  font-size:calc(.76rem + 1px);
}
.event-required-alert{
  display:flex;
  align-items:center;
  gap:.5rem;
  flex-wrap:wrap;
  padding:.82rem 1rem;
  border:1px solid rgba(178,74,58,.42);
  border-radius:14px;
  background:rgba(178,74,58,.08);
  color:#8f3428;
}
.event-required-alert[hidden]{display:none}
.event-required-alert strong{font-weight:800}
.event-required-control--missing>span:first-child,
.event-required-control--missing>legend:first-child{color:#9f392d}
.event-form :is(input,select,textarea).event-required-field--missing{
  border-color:#b24a3a!important;
  box-shadow:0 0 0 3px rgba(178,74,58,.12)!important;
}

/* 2026-09-05: compact offer actions + high-resolution XLSX preview. */
.event-offer-actions-menu{
  position:relative;
  z-index:1;
  display:inline-grid;
  justify-items:end;
  margin:0;
}
.event-offer-actions-menu[open]{z-index:1200}
.event-offer-actions-menu>summary{list-style:none;cursor:pointer;user-select:none}
.event-offer-actions-menu>summary::-webkit-details-marker{display:none}
.event-offer-actions-menu__trigger{
  gap:5px!important;
  min-width:64px;
  min-height:30px;
  padding:5px 9px!important;
  font-size:calc(.69rem + 1px) !important;
  font-weight:700!important;
}
.event-offer-actions-menu__chevron{
  width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .14s ease;
}
.event-offer-actions-menu[open] .event-offer-actions-menu__chevron{transform:rotate(180deg)}
.event-offer-actions-menu[open]>summary{box-shadow:0 0 0 2px rgba(155,111,69,.11)}
.event-offer-actions-menu__panel{
  position:fixed;
  z-index:5000;
  inset:auto;
  top:var(--offer-menu-top,0px);
  left:var(--offer-menu-left,0px);
  margin:0;
  width:min(22rem,calc((100vw - 16px) / var(--app-ui-scale,1)));
  max-width:calc((100vw - 16px) / var(--app-ui-scale,1));
  max-height:calc((100dvh - 16px) / var(--app-ui-scale,1));
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:5px;
  border:1px solid rgba(122,98,70,.18);
  border-radius:11px;
  background:var(--paper);
  box-shadow:0 18px 48px rgba(47,34,22,.20),0 3px 10px rgba(47,34,22,.08);
  display:grid;
  gap:1px;
  text-align:left;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
}
.event-offer-actions-menu[open].is-positioned .event-offer-actions-menu__panel{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}
.event-offer-actions-menu__group-label{display:none}
.event-offer-actions-menu__panel form{margin:0}
.event-offer-actions-menu__item{
  display:grid!important;
  grid-template-columns:26px minmax(0,1fr);
  gap:7px;
  width:100%;
  min-height:34px;
  align-items:center;
  justify-content:stretch!important;
  padding:4px 6px!important;
  border:0!important;
  border-radius:8px!important;
  background:transparent!important;
  color:var(--ink)!important;
  font:inherit!important;
  text-align:left;
  text-decoration:none!important;
  cursor:pointer;
  white-space:normal!important;
  box-shadow:none!important;
}
.event-offer-actions-menu__item:hover{transform:none!important;background:rgba(155,111,69,.09)!important}
.event-offer-actions-menu__item--featured{background:rgba(37,112,71,.075)!important}
.event-offer-actions-menu__item--featured:hover{background:rgba(37,112,71,.13)!important}
.event-offer-actions-menu__item.is-disabled{opacity:.48;cursor:not-allowed;pointer-events:none}
.event-offer-actions-menu__icon{
  width:24px;height:24px;display:grid;place-items:center;border-radius:7px;
  color:var(--accent-dark);background:rgba(155,111,69,.10);
}
.event-offer-actions-menu__icon svg{
  width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;
}
.event-offer-actions-menu__icon--xlsx{color:#257047;background:#e7f1ea}
.event-offer-actions-menu__copy{min-width:0;display:block;grid-column:2;overflow-wrap:anywhere}
.event-offer-actions-menu__item>.event-offer-actions-menu__copy:only-child{grid-column:1/-1}
.event-offer-actions-menu__copy strong{display:block;white-space:normal;font-size:calc(.71rem + 1px);font-weight:700;line-height:1.16}
/* Popis zůstává v DOM pro kontext, ale kompaktní menu ho vizuálně nepotřebuje. */
.event-offer-actions-menu__copy small{display:none}
.event-offer-actions-menu__separator{height:1px;margin:3px 4px;background:var(--line)}
.event-offer-actions-menu__danger{color:#a9342f!important}
.event-offer-actions-menu__danger .event-offer-actions-menu__icon{color:#a9342f;background:rgba(169,52,47,.09)}
.event-offer-actions-menu__danger:hover{background:rgba(169,52,47,.07)!important}
@media (min-width:560px) and (max-height:560px){
  .event-offer-actions-menu__panel{
    width:min(44rem,calc((100vw - 16px) / var(--app-ui-scale,1)));
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .event-offer-actions-menu__separator{display:none}
}
.event-offer-directory-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;position:relative}
.event-offer-created-list .pptx-template-row,
.event-offer-created-list .pptx-template-row__actions{overflow:visible}

/* Table cells stay real table-cells. The previous display:grid on column 6
   made its horizontal border sit at a different height than the other cells. */
.event-offer-directory-table .event-offer-directory-offer{display:table-cell!important}
.event-offer-directory-table .event-offer-directory-offer>strong,
.event-offer-directory-table .event-offer-directory-offer>small{display:block}
.event-offer-directory-table .event-offer-directory-offer>small{margin-top:2px}

.event-offer-preview-head{align-items:flex-start;margin-bottom:12px}
.event-offer-preview-head h1{font-size:calc(clamp(1.45rem,calc(1.8vw * var(--font-scale)),2rem) + 1px)}
.event-offer-preview-head p{max-width:900px;margin:.4rem 0 0;font-size:calc(.76rem + 1px);line-height:1.45}
.event-offer-preview-actions{
  max-width:none;
  justify-content:flex-start;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}

.event-offer-preview-office-action{
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 38px!important;
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  padding:0!important;
  margin:0!important;
  border:1px solid rgba(155,111,69,.24)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--accent-dark)!important;
  box-shadow:0 4px 10px rgba(83,58,36,.06)!important;
  line-height:0!important;
  overflow:hidden!important;
  text-decoration:none!important;
}
.event-offer-preview-office-action:hover{
  background:#f7eee4!important;
  border-color:rgba(155,111,69,.38)!important;
  transform:translateY(-1px);
}
.event-offer-preview-office-action:focus-visible{
  outline:2px solid rgba(155,111,69,.45)!important;
  outline-offset:2px;
}
.event-offer-preview-office-icon{
  display:grid!important;
  place-items:center!important;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  line-height:0!important;
  overflow:visible!important;
}
.event-offer-preview-xlsx-icon,
.event-offer-preview-pdf-icon{
  display:block!important;
  width:30px!important;
  height:30px!important;
  object-fit:contain!important;
  pointer-events:none!important;
  user-select:none!important;
}
.event-offer-preview-pptx-edit-icon{
  display:block!important;
  width:30px!important;
  height:30px!important;
  object-fit:contain!important;
  pointer-events:none!important;
  user-select:none!important;
}
.event-offer-preview-pptx-download-icon{
  display:block!important;
  width:30px!important;
  height:30px!important;
  overflow:visible;
}
.event-offer-preview-pptx-download-icon__arrow{
  fill:none;stroke:#8a5a38;stroke-width:4.2;stroke-linecap:round;stroke-linejoin:round;
}
.event-offer-preview-pptx-download-icon__disc{fill:#f36c3d}
.event-offer-preview-pptx-download-icon__badge{fill:#c43e1c}
.event-offer-preview-pptx-download-icon__letter{fill:#fff}
.event-offer-preview-office-action[data-premium-download-ignore] .premium-download__progress{display:none!important}
html[data-theme="dark"] body:not(.auth-page--login) .event-offer-preview-office-action{
  background:#2b2520!important;
  border-color:rgba(208,160,111,.25)!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-offer-preview-office-action:hover{background:#382f28!important}
.event-offer-preview-panel{padding:10px}
.event-offer-preview-panel--calculation{display:grid;gap:8px;background:rgba(255,255,255,.96)}
.event-offer-preview-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:1px 3px}
.event-offer-preview-file{display:flex;align-items:center;min-width:0;gap:9px}
.event-offer-preview-file__icon{
  display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:9px;
  background:#e7f1ea;color:#257047;font:700 calc(17px * var(--font-scale) + 1px)/1 Georgia,serif;
}
.event-offer-preview-file strong{display:block;font-size:calc(.82rem + 1px)}
.event-offer-preview-file small{display:block;margin-top:1px;color:var(--muted);font-size:calc(.66rem + 1px)}
.event-offer-preview-image-wrap{
  position:relative;
  height:auto;
  min-height:360px;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:10px;
  border:1px solid rgba(122,98,70,.16);
  border-radius:12px;
  background:#ece9e5;
}
.event-offer-preview-image{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:none;
  object-fit:contain;
  object-position:center top;
  opacity:0;
  transition:opacity .12s ease;
}
.event-offer-preview-image-wrap.is-ready{min-height:0}
.event-offer-preview-image-wrap.is-ready .event-offer-preview-image{opacity:1}
.event-offer-preview-loading{
  position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);
  font-size:calc(.78rem + 1px);pointer-events:none;
}
.event-offer-preview-image-wrap.is-ready .event-offer-preview-loading{display:none}
.event-offer-preview-empty{
  min-height:260px;display:flex;align-items:center;justify-content:center;gap:14px;padding:28px;
  border:1px dashed var(--line);border-radius:12px;background:var(--paper-soft);text-align:left;
}
.event-offer-preview-empty h3{font-size:calc(1rem + 1px)}
.event-offer-preview-empty p{max-width:620px;margin:6px 0 0;color:var(--muted);font-size:calc(.78rem + 1px)}

/* Separate CZ/EN XLSX masters. */

/* After the duplicate heading was removed this copy starts directly below the eyebrow. */
.event-pptx-offers-head p{margin:.18rem 0 0}

@media(max-width:760px){
  .event-offer-created-list .event-offer-actions-menu{width:auto;justify-items:end}
  .event-offer-preview-actions{justify-content:flex-start;max-width:none}
  
  .event-offer-preview-office-action{flex:0 0 38px!important}
  .event-offer-preview-panel{padding:7px}
  .event-offer-preview-panel__head{align-items:flex-start;flex-direction:column}
  .event-offer-preview-image-wrap{height:auto;min-height:260px;padding:6px}
  
}

/* 2026-09-05: give item text the maximum useful width everywhere in the
   financial/event tables except the operational Staff plan. Long labels wrap
   only in the browser editor; XLSX receives the normalized single-line value. */
body:not(.auth-page--login) .event-form .event-row-label-editor{
  display:block;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:3px 5px!important;
  resize:none!important;
  field-sizing:content;
  overflow:hidden!important;
  white-space:pre-wrap!important;
  overflow-wrap:anywhere;
  word-break:normal;
  text-align:left!important;
  font-size:calc(.72rem + 1px) !important;
}
body:not(.auth-page--login) .event-form .event-table--cost-general col.col-label{width:55%!important}
body:not(.auth-page--login) .event-form .event-table--cost-general col.col-qty{width:12%!important}
body:not(.auth-page--login) .event-form .event-table--cost-general col.col-unit{width:13%!important}
body:not(.auth-page--login) .event-form .event-table--cost-general col.col-total{width:13%!important}
body:not(.auth-page--login) .event-form .event-table--cost-general col.col-actions{width:7%!important}
body:not(.auth-page--login) .event-form .event-table--cost-other-excluded col.col-label{
  width:46%;
}
body:not(.auth-page--login) .event-form .event-table--cost-other-excluded col.col-percent{
  width:8%;
}
body:not(.auth-page--login) .event-form .event-table--cost-other-excluded col.col-qty{
  width:10%;
}
body:not(.auth-page--login) .event-form .event-table--cost-other-excluded col.col-unit{
  width:13%;
}
body:not(.auth-page--login) .event-form .event-table--cost-other-excluded col.col-total{
  width:16%;
}
body:not(.auth-page--login) .event-form .event-table--cost-other-excluded col.col-actions{
  width:7%;
}
body:not(.auth-page--login) .event-form .staff-calculation-wrap > .event-table--cost-staff col.col-label{width:44%!important}
body:not(.auth-page--login) .event-form .staff-calculation-wrap > .event-table--cost-staff col.col-hours{width:10%!important}
body:not(.auth-page--login) .event-form .staff-calculation-wrap > .event-table--cost-staff col.col-count{width:10%!important}
body:not(.auth-page--login) .event-form .staff-calculation-wrap > .event-table--cost-staff col.col-rate{width:14%!important}
body:not(.auth-page--login) .event-form .staff-calculation-wrap > .event-table--cost-staff col.col-total{width:15%!important}
body:not(.auth-page--login) .event-form .staff-calculation-wrap > .event-table--cost-staff col.col-actions{width:7%!important}
body:not(.auth-page--login) .event-form .event-table.event-table--sales col.col-label{width:38%!important}
body:not(.auth-page--login) .event-form .event-table.event-table--sales col.col-qty{width:8%!important}
body:not(.auth-page--login) .event-form .event-table.event-table--sales col.col-unit{width:10%!important}
body:not(.auth-page--login) .event-form .event-table.event-table--sales col.col-total{width:11%!important}
body:not(.auth-page--login) .event-form .event-table.event-table--sales col.col-vat{width:8%!important}
body:not(.auth-page--login) .event-form .event-table.event-table--sales col.col-total-vat{width:11%!important}
body:not(.auth-page--login) .event-form .event-table.event-table--sales col.col-pptx-token{width:7%!important}
body:not(.auth-page--login) .event-form .event-table.event-table--sales col.col-actions{width:7%!important}

/* Other item-list sections keep their controls compact so the textual column
   gets the remaining space. The Staff plan is intentionally not touched. */
body:not(.auth-page--login) .event-form .event-table--itinerary .col-label{width:auto!important}
body:not(.auth-page--login) .event-form .event-table--recipes .col-label{width:58%!important}
body:not(.auth-page--login) .event-form .event-table--recipes .col-qty{width:10%!important}

@media(max-width:900px){
  body:not(.auth-page--login) .event-form .event-table--cost-general,
  body:not(.auth-page--login) .event-form .event-table--cost-other-excluded,
  body:not(.auth-page--login) .event-form .event-table--cost-staff,
  body:not(.auth-page--login) .event-form .event-table--sales{
    min-width:720px!important;
  }
}

/* Eventove tabulky se nejdriv prizpusobi dostupne sirce. Textovy sloupec
   muze byt uzsi, ale ciselne a akcni sloupce drzi bezpecna minima. Lokalni
   vodorovny posuvnik se zapne pouze pokud JS opravdu zjisti, ze soucet techto
   minim uz do obalu nevejde; na siroke obrazovce tedy nevznika prazdny ani
   nepatrne pretoceny scrollbar. */
body:not(.auth-page--login) .event-form .table-wrap--event-fit{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:hidden!important;
  overflow-y:visible!important;
  scrollbar-width:thin;
  scrollbar-gutter:auto;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}
body:not(.auth-page--login) .event-form .table-wrap--event-fit.is-event-fit-scrollable{
  overflow-x:auto!important;
}
body:not(.auth-page--login) .event-form .table-wrap--event-fit::-webkit-scrollbar{
  height:10px;
}
body:not(.auth-page--login) .event-form .table-wrap--event-fit::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:rgba(155,111,69,.3);
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table]{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table].is-event-fit-scrollable{
  max-width:none!important;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table] col{min-width:0!important}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table] th,
body:not(.auth-page--login) .event-form [data-event-auto-fit-table] td{
  min-width:0!important;
  max-width:none!important;
  padding-left:5px!important;
  padding-right:5px!important;
  overflow-wrap:anywhere;
  word-break:normal;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table] th{
  white-space:normal!important;
  line-height:1.18!important;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table] :is(input:not([type="checkbox"]):not([type="hidden"]),select,textarea){
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

body:not(.auth-page--login) .event-form [data-event-auto-fit-table] [data-sales-vat]{
  min-width:56px!important;
  padding-left:3px!important;
  padding-right:18px!important;
  text-align-last:center;
  font-variant-numeric:tabular-nums;
  white-space:nowrap!important;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table] :is(strong,.muted,.small-note,.event-pptx-token-cell code){
  max-width:100%;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table] .event-pptx-token-cell code{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table] .row-action-controls,
body:not(.auth-page--login) .event-form [data-event-auto-fit-table] .sales-offer-controls{
  min-width:0!important;
  max-width:100%!important;
  gap:3px!important;
  justify-content:center;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table].is-event-fit-compact th,
body:not(.auth-page--login) .event-form [data-event-auto-fit-table].is-event-fit-compact td{
  padding-left:3px!important;
  padding-right:3px!important;
  font-size:calc(.68rem + 1px) !important;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table].is-event-fit-compact :is(input,select,textarea){
  padding-left:4px!important;
  padding-right:4px!important;
  font-size:calc(.68rem + 1px) !important;
}
body:not(.auth-page--login) .event-form [data-event-auto-fit-table].is-event-fit-compact :is([data-row-total],[data-sales-total],[data-sales-total-vat]){
  white-space:normal!important;
  overflow-wrap:anywhere;
}
/* Na úzké ploše se tabulka už nesmí zmenšit pod minima vypočtená JS.
   Potřebný přesah proto zůstává uvnitř lokálního vodorovného posuvníku. */
body:not(.auth-page--login) .event-form [data-event-auto-fit-table].event-table--itinerary th:last-child,
body:not(.auth-page--login) .event-form [data-event-auto-fit-table].event-table--itinerary td:last-child{
  width:auto!important;
  min-width:0!important;
}

/* A4 calculation pagination metadata + stacked full-page preview. */
.event-offer-a4-pages{display:grid!important;align-content:center;gap:2px}
.event-offer-a4-pages small{display:block;color:var(--muted);font-size:calc(.62rem + 1px);white-space:nowrap}
.event-offer-preview-pages{display:grid;gap:14px}
.event-offer-preview-pages-note{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:4px 3px;color:var(--muted);font-size:calc(.72rem + 1px)}
.event-offer-preview-pages-note strong{color:var(--text);font-size:calc(.78rem + 1px)}
.event-offer-preview-page{display:grid;gap:5px}
.event-offer-preview-page__label{padding:0 4px;color:var(--muted);font-size:calc(.68rem + 1px);font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.event-offer-preview-page .event-offer-preview-image-wrap{height:auto;min-height:360px}

/* Sys/Super admin: compact independent event-type manager for each calendar. */
.calendar-event-type-manager{position:relative;display:inline-block}
.calendar-event-type-manager>summary{list-style:none;cursor:pointer;white-space:nowrap}
.calendar-event-type-manager>summary::-webkit-details-marker{display:none}
.calendar-event-type-manager__panel{
  position:absolute;z-index:80;right:0;top:calc(100% + 7px);width:min(360px,calc(100vw - 24px));
  display:grid;gap:10px;padding:11px;
  border:1px solid var(--line);border-radius:13px;background:var(--paper);box-shadow:0 14px 34px rgba(63,48,34,.16);
}
.calendar-event-type-manager__create{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px}
.calendar-event-type-manager__panel label{display:grid;gap:4px;margin:0;min-width:0}
.calendar-event-type-manager__panel label span{font-size:calc(.66rem + 1px);color:var(--muted)}
.calendar-event-type-manager__panel input[type="text"]{width:100%;min-width:0}
.calendar-event-type-manager__panel input[type="color"]{width:100%;height:36px;padding:3px}
.calendar-event-type-manager__create>.button{grid-column:1/-1;width:100%}
.calendar-event-type-manager__list{display:grid;gap:6px;padding-top:9px;border-top:1px solid var(--line)}
.calendar-event-type-manager__list>strong{font-size:calc(.7rem + 1px)}
.calendar-event-type-manager__row{display:grid;}
.calendar-event-type-manager__row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(.72rem + 1px)}
.calendar-event-type-manager__row .button{width:auto;min-height:30px;padding:5px 9px}
@media(max-width:700px){
  .calendar-event-type-manager__panel{position:fixed;right:12px;left:12px;top:auto;bottom:12px;width:auto}
  .event-offer-preview-page .event-offer-preview-image-wrap{height:auto;min-height:260px}
}

/* Cenové nabídky: checkbox výběr a hromadné akce. */
.event-offer-bulk-toolbar{margin-top:2px}
.event-offer-select-cell,
.event-offer-select-col{
  width:38px;
  min-width:38px;
  text-align:center!important;
}
.event-offer-select-cell{display:grid;place-items:center;align-self:stretch}
.event-offer-select-cell input,
.event-offer-select-col input{
  width:17px!important;
  height:17px!important;
  min-width:17px!important;
  margin:0!important;
  accent-color:var(--accent);
  cursor:pointer;
}
.event-offer-created-list--selectable .pptx-template-list__head,
.event-offer-created-list--selectable .pptx-template-row{
  grid-template-columns:38px minmax(280px,1.65fr) minmax(145px,.82fr) minmax(66px,.34fr) minmax(66px,.34fr) minmax(66px,.34fr) minmax(145px,.78fr) minmax(120px,.65fr);
}
.event-offer-created-list .pptx-template-row.is-offer-selected,
.event-offer-m365-bulk .pptx-template-row.is-offer-selected,
.event-offer-directory-table tr.is-offer-selected td{
  background:rgba(155,111,69,.055);
}
.event-offer-m365-select-all{
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  font-size:calc(.68rem + 1px);
  color:var(--ink);
  cursor:pointer;
}
.event-offer-m365-select-all input[type="checkbox"]{
  width:16px;
  height:16px;
  margin:0;
  accent-color:var(--accent);
  cursor:pointer;
}
.event-offer-m365-bulk .pptx-template-row__identity .event-offer-select-cell{
  flex:0 0 28px;
  width:28px;
  min-width:28px;
}
.event-offer-directory-table .event-offer-select-col{padding-left:8px!important;padding-right:8px!important}
@media(max-width:1180px){
  .event-offer-created-list--selectable .pptx-template-row{
    grid-template-columns:38px minmax(250px,1.5fr) minmax(140px,.82fr) minmax(64px,.36fr) minmax(64px,.36fr) minmax(64px,.36fr) minmax(140px,.8fr);
  }
  .event-offer-created-list--selectable .pptx-template-row__actions{grid-column:2/-1}
}
@media(max-width:760px){
  .event-offer-created-list--selectable .pptx-template-row{grid-template-columns:30px minmax(0,1fr)}
  .event-offer-created-list--selectable .event-offer-select-cell{grid-column:1;grid-row:1;align-self:start;padding-top:4px}
  .event-offer-created-list--selectable .pptx-template-row__identity{grid-column:2;grid-row:1}
  .event-offer-created-list--selectable .pptx-template-row__meta,
  .event-offer-created-list--selectable .pptx-template-row__actions{grid-column:1/-1}
}

/* Event form: hromadny vyber ulozenych verzi nabidek zustava kompaktni. */
.event-offer-version-select{
  width:15px!important;
  height:15px!important;
  min-width:15px!important;
  margin:0 2px 0 0!important;
  accent-color:var(--accent);
  cursor:pointer;
}

.event-offer-versions__bulk-count{
  color:var(--muted);
  font-size:calc(.68rem + 1px);
  white-space:nowrap;
}

/* 2026-09-05: offer bulk selection uses the same fixed tray as Events. */
.event-offer-directory-table tr.is-premium-selected td,
.event-offer-created-list .pptx-template-row.is-premium-selected{
  background:linear-gradient(90deg,rgba(155,111,69,.12),rgba(155,111,69,.045))!important;
}
.event-offer-directory-table tr.is-premium-selected td:first-child{
  box-shadow:inset 3px 0 0 var(--premium-accent),inset 0 1px 0 rgba(124,85,50,.14),inset 0 -1px 0 rgba(124,85,50,.14);
}
.premium-selection-tray--offers .premium-selection-tray__status small{max-width:310px}

/* TO-DO bell: badge counts unread assignments, while read pending tasks stay visible. */
.app-todo-bell__item.is-unread{border-color:rgba(155,111,69,.18);background:rgba(155,111,69,.055)}
.app-todo-bell__item.is-read::before{opacity:.22;box-shadow:none}
.app-todo-bell__item.is-read .app-todo-bell__item-title strong{font-weight:650}

/* 2026-09-06: dynamic clothing sections and compact clothing icon library. */
.clothing-icon{
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  color:var(--accent-dark,#825b37);
}
.clothing-icon svg{width:100%;height:100%;display:block}
.clothing-icon--small{width:20px;height:20px}

.clothing-field-label{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.clothing-field-label{line-height:1.25}

/* 2026-09-06: role creation, unified menu/permission matrix and archived Outlook Event settings. */

/* 2026-09-06: offer selection controls are true circles, independent of the
   browser's native checkbox rendering (which could appear oval). */
.event-offer-select-cell input[type="checkbox"],
.event-offer-select-col input[type="checkbox"],
.event-offer-version-select{
  -webkit-appearance:none!important;
  appearance:none!important;
  box-sizing:border-box!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  max-width:18px!important;
  max-height:18px!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  border:1.5px solid rgba(124,85,50,.42)!important;
  border-radius:50%!important;
  background:#fff!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-size:11px 11px!important;
  vertical-align:middle;
}
.event-offer-select-cell input[type="checkbox"]:checked,
.event-offer-select-col input[type="checkbox"]:checked,
.event-offer-version-select:checked{
  border-color:var(--accent)!important;
  background-color:var(--accent)!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.2 8.2 6.5 11.3 12.8 4.9' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
}
.event-offer-select-cell input[type="checkbox"]:indeterminate,
.event-offer-select-col input[type="checkbox"]:indeterminate{
  border-color:var(--accent)!important;
  background-color:var(--accent)!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E")!important;
}

/* ========================================================================== 
   2026-09-06 · International phone picker
   Searchable country selector with flags and country-aware number grouping.
   ========================================================================== */
.international-phone-field{
  position:relative;
  overflow:visible!important;
  isolation:isolate;
}
.international-phone-field:focus-within,
.international-phone-field.is-phone-picker-open{z-index:120}
.international-phone-field .phone-field__controls,
.international-phone-field .segmented-phone-field__controls{
  position:relative;
  display:grid!important;
  align-items:stretch;
  gap:0!important;
  overflow:visible!important;
}
.international-phone-native-select{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  pointer-events:none!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
}
.international-phone-trigger{
  appearance:none;
  min-width:0;
  min-height:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-right:1px solid rgba(155,111,69,.18);
  border-radius:14px 0 0 14px;
  background:linear-gradient(145deg,rgba(155,111,69,.09),rgba(155,111,69,.035));
  color:var(--accent-dark);
  font:inherit;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.international-phone-trigger:hover{background:linear-gradient(145deg,rgba(155,111,69,.14),rgba(155,111,69,.06))}
.international-phone-trigger:focus-visible{outline:2px solid rgba(155,111,69,.55);outline-offset:-3px}
.international-phone-trigger__flag{width:25px;height:18px;display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:0 0 25px}
.international-phone-flag-image{display:block;width:24px;height:18px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.international-phone-flag-fallback{font-size:calc(.66rem + 1px);font-weight:800;letter-spacing:.04em}
.international-phone-trigger__dial{font-size:calc(.82rem + 1px);letter-spacing:.01em}
.international-phone-trigger svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.international-phone-field.is-phone-picker-open .international-phone-trigger svg{transform:rotate(180deg)}
.international-phone-field [data-international-phone-number],
.international-phone-field [data-phone-number]{
  width:100%;
  min-width:0;
  min-height:48px;
  border:0!important;
  border-radius:0 14px 14px 0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding-left:14px!important;
  letter-spacing:.025em;
  font-variant-numeric:tabular-nums;
}
.international-phone-popover{
  position:absolute;
  top:calc(100% + 7px);
  left:0;
  z-index:1000;
  width:min(390px,calc(100vw - 36px));
  max-height:min(430px,65vh);
  overflow:hidden;
  padding:8px;
  border:1px solid rgba(155,111,69,.22);
  border-radius:16px;
  background:rgba(255,255,255,.99);
  box-shadow:0 20px 55px rgba(49,34,23,.18);
}
.international-phone-popover[hidden]{display:none!important}
.international-phone-search{
  display:flex!important;
  align-items:center;
  gap:9px;
  margin:0 0 6px!important;
  padding:0 10px;
  border:1px solid rgba(155,111,69,.2);
  border-radius:12px;
  background:#fff;
}
.international-phone-search svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:var(--accent-dark);stroke-width:1.8;stroke-linecap:round}
.international-phone-search input{
  width:100%;
  min-width:0;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--text);
}
.international-phone-country-list{max-height:min(350px,52vh);overflow:auto;overscroll-behavior:contain;padding:2px;scrollbar-width:thin}
.international-phone-country-option{
  width:100%;
  display:grid;
  align-items:center;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--text);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.international-phone-country-option:hover,
.international-phone-country-option:focus-visible{background:rgba(155,111,69,.09);outline:none}
.international-phone-country-option.is-selected{background:rgba(57,145,103,.10);box-shadow:inset 0 0 0 1px rgba(57,145,103,.2)}
.international-phone-country-option__flag{width:25px;height:18px;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.international-phone-country-option__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(.85rem + 1px);font-weight:650}
.international-phone-country-option__dial{color:var(--muted);font-size:calc(.78rem + 1px);font-variant-numeric:tabular-nums;white-space:nowrap}

html[data-theme="dark"] .international-phone-trigger{background:#302821!important;color:#e2b482!important;border-right-color:#564538!important}
html[data-theme="dark"] .international-phone-popover{background:#26201b!important;border-color:#564538!important;box-shadow:0 24px 60px rgba(0,0,0,.46)!important}
html[data-theme="dark"] .international-phone-search{background:#211c18!important;border-color:#564538!important}
html[data-theme="dark"] .international-phone-search input{color:#f1e6dc!important}
html[data-theme="dark"] .international-phone-country-option{color:#f1e6dc!important}
html[data-theme="dark"] .international-phone-country-option:hover,
html[data-theme="dark"] .international-phone-country-option:focus-visible{background:#352c25!important}
html[data-theme="dark"] .international-phone-country-option.is-selected{background:rgba(85,170,128,.15)!important;box-shadow:inset 0 0 0 1px rgba(85,170,128,.28)!important}
html[data-theme="dark"] .international-phone-country-option__dial{color:#bfae9f!important}

@media (max-width:640px){
  .international-phone-trigger{padding:0 9px;gap:6px}
  .international-phone-trigger__dial{font-size:calc(.75rem + 1px)}
  .international-phone-popover{left:0;right:auto;width:min(360px,calc(100vw - 28px))}
}

/* 2026-09-06: výška vícedenního pruhu kalendáře. */
.calendar-v4-month__range{min-height:34px}

/* 2026-09-06: kompaktní telefonní pole a skutečné obrázkové vlajky. */
.international-phone-field .phone-field__controls,
.international-phone-field .segmented-phone-field__controls{grid-template-columns:minmax(104px,128px) minmax(0,1fr)!important}
.international-phone-trigger,
.international-phone-field [data-international-phone-number],
.international-phone-field [data-phone-number]{height:40px!important;min-height:40px!important}
.international-phone-trigger{padding:0 10px!important;gap:6px!important}
.international-phone-search{min-height:38px!important}
.international-phone-search input{height:36px!important;min-height:36px!important}
.international-phone-country-option{min-height:38px!important;grid-template-columns:25px minmax(0,1fr) auto!important;padding:5px 9px!important;gap:8px!important}
@media(max-width:640px){
  .international-phone-field .phone-field__controls,
  .international-phone-field .segmented-phone-field__controls{grid-template-columns:minmax(100px,118px) minmax(0,1fr)!important}
}

/* 2026-09-06 · sjednocení telefonu, hromadných změn a rozestupů Event formu. */
.international-phone-search input{
  background-image:none!important;
  text-indent:0!important;
}
.international-phone-search input::-webkit-search-decoration,
.international-phone-search input::-webkit-search-cancel-button,
.international-phone-search input::-webkit-search-results-button,
.international-phone-search input::-webkit-search-results-decoration{display:none!important;-webkit-appearance:none!important}

/* V kompaktním Event formu má telefon přesně stejnou 24px výšku jako ostatní inputy. */
body:not(.auth-page--login) .event-form .international-phone-field .segmented-phone-field__controls,
body:not(.auth-page--login) .event-form .international-phone-field .phone-field__controls{
  height:24px!important;
  min-height:24px!important;
  border-radius:3px!important;
  box-shadow:none!important;
}
body:not(.auth-page--login) .event-form .international-phone-trigger,
body:not(.auth-page--login) .event-form .international-phone-field [data-international-phone-number],
body:not(.auth-page--login) .event-form .international-phone-field [data-phone-number]{
  height:24px!important;
  min-height:24px!important;
  line-height:22px!important;
}
body:not(.auth-page--login) .event-form .international-phone-trigger{
  padding:0 5px!important;
  gap:4px!important;
  border-radius:3px 0 0 3px!important;
  font-size:calc(.72rem + 1px) !important;
}
body:not(.auth-page--login) .event-form .international-phone-trigger__flag{
  width:21px!important;
  height:14px!important;
  flex-basis:21px!important;
}
body:not(.auth-page--login) .event-form .international-phone-flag-image{
  width:20px!important;
  height:14px!important;
}
body:not(.auth-page--login) .event-form .international-phone-trigger svg{width:12px!important;height:12px!important}
body:not(.auth-page--login) .event-form .international-phone-field [data-international-phone-number],
body:not(.auth-page--login) .event-form .international-phone-field [data-phone-number]{
  padding:0 5px!important;
  border-radius:0 3px 3px 0!important;
}

/* Vybraný údaj hromadné změny je viditelný ještě před zadáním nové hodnoty. */
.event-directory__bulk-group--header{grid-column:1/-1}
.event-directory__bulk-header-selected{
  grid-column:1/-1;
  min-height:38px;
  display:flex;
  align-items:center;
  padding:9px 12px;
  border:1px dashed rgba(155,111,69,.35);
  border-radius:12px;
  background:rgba(255,255,255,.5);
  color:var(--muted);
  font-size:calc(.79rem + 1px);
  font-weight:700;
}
.event-directory__bulk-header-selected.is-active{
  border-style:solid;
  border-color:rgba(55,116,82,.28);
  background:#f1f8f4;
  color:#285d42;
}
.event-directory__bulk-header-fields{grid-template-columns:minmax(230px,1.15fr) minmax(150px,.65fr) minmax(230px,1fr)!important}
.event-directory__bulk-header-fields .event-directory__bulk-field:first-child select{font-weight:700}
@media(max-width:760px){.event-directory__bulk-header-fields{grid-template-columns:1fr!important}}

/* Všechny hlavní bloky Event formu mají jednotnou 5px mezeru. */
body:not(.auth-page--login) .event-form{gap:5px!important}
body:not(.auth-page--login) .event-form-commercial-columns,
body:not(.auth-page--login) .event-form-commercial-columns__right{gap:5px!important}
.personalform-staffing-panel{margin-top:5px!important}
body:not(.auth-page--login) .event-form .segmented-phone-field{gap:1px!important}
body:not(.auth-page--login) .event-form .segmented-phone-field legend{font-size:calc(.72rem + 1px);line-height:1.08}
.personalform-staffing-panel + .event-history-details{margin-top:5px!important}

/* 2026-09-06: final UI consistency fixes. */
/* Author display:grid must not override the native hidden attribute while filtering countries. */
.international-phone-country-option[hidden]{display:none!important}

/* Every main block in both Event form commercial columns uses the same 5px rhythm. */
body:not(.auth-page--login) .event-form-commercial-columns__left,
body:not(.auth-page--login) .event-form-commercial-columns__right{
  gap:5px!important;
  row-gap:5px!important;
}

/* Calendar cards: exactly 5px between neighbouring events in every calendar/agenda. */
.calendar-v4-month__events,
.calendar-v4-month-agenda__list,
.calendar-v4-timeline__allday-cell,
.team-calendar-day__items{
  gap:5px!important;
  row-gap:5px!important;
  align-content:start;
}
.calendar-v4-month__events > *,
.calendar-v4-month-agenda__list > *,
.calendar-v4-timeline__allday-cell > *,
.team-calendar-day__items > *{
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Excel export must remain immediately recognisable even in the compact Final clients actions. */
.event-ui-icon__svg--excel{width:20px!important;height:20px!important;stroke:none!important;overflow:visible}

/* 2026-09-06: presny 5px odstup pod vice-dennim pruhem. Pruh zacina na stejne
   vertikalni ose jako obsah udalosti; JS pak rezervuje jeho skutecnou DOM vysku. */
.calendar-v4-month__range{
  margin-top:calc(38px + var(--range-lane-offset,0px))!important;
}
@media(max-width:820px){
  .calendar-v4-month__range{
    margin-top:calc(25px + var(--range-lane-offset,0px))!important;
  }
}

/* Excel export u Finálních klientů: stejný čtvercový hit-target jako koš,
   bez optického ořezu SVG a bez starého 18px flex-basis. */
.contact-directory__head-icon{
  gap:0!important;
}
.contact-directory__head-icon .event-ui-icon__svg--excel{
  width:20px!important;
  height:20px!important;
  flex:0 0 20px!important;
  max-width:20px!important;
  margin:0!important;
  overflow:visible!important;
}
.contact-usage-export{
  gap:0!important;
}
.contact-usage-export .event-ui-icon__svg--excel{
  width:17px!important;
  height:17px!important;
  flex:0 0 17px!important;
  max-width:17px!important;
  margin:0!important;
  overflow:visible!important;
}

/* Datumové filtry používají stejný DD.MM.RRRR vstup i vzhled jako rozsah Kalendáře. */
.event-filter-date-control{
  position:relative;
  display:block;
  width:100%;
  min-width:0;
}
.event-filter-date-control__text{
  min-width:0;
  width:100%;
  padding-right:42px!important;
  font-variant-numeric:tabular-nums;
}
.event-filter-date-control__button{
  right:7px;
}
.event-filter-date-control__native{
  pointer-events:none!important;
}
.event-filter-date-control__text[aria-invalid="true"]{
  border-color:var(--danger)!important;
  box-shadow:0 0 0 2px rgba(140,59,53,.1);
}
.event-filter-builder__value .event-filter-date-control{
  height:100%;
}
.event-filter-builder__value .event-filter-date-control__text{
  height:100%;
}

/* 2026-09-06: Office action buttons – size the ROW first, then fit the icon inside it.
   The composite icon is one SVG; it never overflows below the button. */
.event-ui-icon__svg--office-action{
  display:block!important;
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  max-width:24px!important;
  flex:0 0 24px!important;
  overflow:hidden!important;
  stroke:currentColor!important;
}

/* Final clients: same approved download + Excel icon in header and in every table row. */
.contact-directory__compact-actions{
  overflow:visible!important;
  gap:6px!important;
  align-items:center!important;
}
.contact-directory__head-icon{
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  min-height:40px!important;
  padding:0!important;
  display:inline-grid!important;
  place-items:center!important;
  line-height:0!important;
  overflow:hidden!important;
}
.contact-directory__head-icon .event-ui-icon__svg--office-action{
  flex-basis:25px!important;
}
.contact-usage-export{
  width:32px!important;
  min-width:32px!important;
  height:32px!important;
  min-height:32px!important;
  padding:0!important;
  display:inline-grid!important;
  place-items:center!important;
  line-height:0!important;
  overflow:hidden!important;
  border:1px solid var(--line)!important;
  border-radius:10px!important;
  background:#fffaf4!important;
  color:var(--accent-dark)!important;
}
.contact-usage-export .event-ui-icon__svg--office-action{
  flex-basis:21px!important;
}

/* Event offer versions: shared container for the current table-based version list. */
.event-offer-versions{
  min-height:48px!important;
  padding:4px 8px!important;
  align-items:center!important;
  align-content:center!important;
}

/* Event action row: the last four buttons share the exact vertical centre line
   of the Hromadne akce button. The 5px section rhythm above remains unchanged. */
body:not(.auth-page--login) .event-form > .form-actions{
  margin:0!important;
  padding:0!important;
  align-items:center!important;
  align-content:center!important;
  min-height:0!important;
}
body:not(.auth-page--login) .event-form-commercial-columns + .form-actions{margin-top:0!important}
body:not(.auth-page--login) .event-form > .form-actions .event-form-primary-actions{
  display:flex;
  align-items:center!important;
  align-self:center!important;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:10px;
  flex:1 1 520px;
  min-width:min(100%,420px);
  margin:0;
}
@media(max-width:980px){
  body:not(.auth-page--login) .event-form > .form-actions .event-form-primary-actions{
    flex:1 1 100%;
    min-width:0;
    width:100%;
  }
}

/* Dark theme follows the same row geometry without reintroducing light islands. */

/* 2026-09-06: final-client paging now mirrors the Event list selector. */
.contact-directory__page-size-form{
  flex:0 1 auto;
}
.contact-directory__page-size-form .button{
  min-height:36px!important;
  height:36px!important;
  padding:0 12px!important;
}
@media(max-width:980px){
  .contact-directory__head-actions{
    align-items:center!important;
  }
  .contact-directory__page-size-form{
    flex:1 1 270px;
  }
}

/* Event list rows: every cell and its common wrappers share one vertical centre. */
.event-directory .event-directory-table tbody tr,
.event-directory .event-directory-table tbody td{
  vertical-align:middle!important;
}
.event-directory .event-directory-table tbody td > :is(a,span,strong,small,div,form,label){
  vertical-align:middle;
}
.event-directory .event-directory-table tbody td > form,
.event-directory .event-directory-table tbody td .dashboard-events-table__actions-wrap,
.event-directory .event-directory-table tbody td .event-status-cell,
.event-directory .event-directory-table tbody td .event-manager-cell{
  align-items:center!important;
}

.contact-directory__head-icon .event-ui-icon__svg--office-action{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  max-width:28px!important;
}
.contact-usage-export .event-ui-icon__svg--office-action{
  width:23px!important;
  height:23px!important;
  min-width:23px!important;
  max-width:23px!important;
}

/* 2026-09-07: definitive Office action icons.
   Legacy excel_download/powerpoint_edit glyphs are no longer rendered anywhere.
   These dedicated SVGs have one geometry and one sizing contract in every view. */
.event-office-action-icon{
  display:block!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  flex:0 0 28px!important;
  overflow:visible!important;
}

.contact-directory__head-icon .event-office-action-icon{
  width:29px!important;
  height:29px!important;
  min-width:29px!important;
  max-width:29px!important;
}
.contact-usage-export .event-office-action-icon{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  max-width:24px!important;
}
.event-directory__bulk-export .event-office-action-icon,
.event-offer-preview-action .event-office-action-icon{
  width:27px!important;
  height:27px!important;
  min-width:27px!important;
  max-width:27px!important;
}

/* 2026-09-07: final-clients XLSX action uses the approved PNG artwork directly.
   These controls intentionally opt out of the generic premium download glyph,
   because the PNG already contains the download arrow. */
.contact-xlsx-download-icon{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  pointer-events:none!important;
  user-select:none!important;
}
.contact-directory__head-icon .contact-xlsx-download-icon{
  width:32px!important;
  height:32px!important;
}
.contact-usage-export .contact-xlsx-download-icon{
  width:27px!important;
  height:27px!important;
}
html[data-theme="dark"] body:not(.auth-page--login) :is(.contact-usage-export,.contact-directory__head-icon){
    background:#1c4049!important;
    border-color:#406874!important;
    color:#b9eef1!important;
}
html[data-theme="dark"] body:not(.auth-page--login) :is(.contact-usage-export,.contact-directory__head-icon):hover{
    background:#24525b!important;
    border-color:#67b6c0!important;
}

.contact-directory__head-icon[data-premium-download-ignore] .premium-download__progress,
.contact-usage-export[data-premium-download-ignore] .premium-download__progress{
  display:none!important;
}

/* 2026-09-07: Event detail XLSX version action uses the same approved PNG as Final clients.
   It opts out of the generic premium-download overlay so only one download arrow is rendered. */

/* 2026-09-07: Uživatelé – řazení podle jména, příjmení a role. */

/* 2026-09-07: Event detail PPTX version action uses the approved mockup artwork as PNG.
   The dedicated asset filename also bypasses any cached legacy SVG markup. */

/* Event offer PDF action mirrors the XLSX cell, but carries a dedicated PDF mark. */

/* 2026-09-07: clearer PDF download mark, visually matching the XLSX download action. */

/* 2026-09-07: active location in every sidebar group uses the same clear treatment
   as Calendar. Direct child items are highlighted consistently across Eventy,
   DB firem, TO-DO, Šablony, Nastavení and Účet. */
body:not(.auth-page--login) .sidebar .nav-group > .nav-group-items > a.active{
  background:linear-gradient(135deg,rgba(155,111,69,.24),rgba(186,144,102,.14))!important;
  box-shadow:inset 3px 0 0 var(--accent-dark),0 5px 14px rgba(78,53,32,.08)!important;
  color:var(--accent-dark)!important;
  font-weight:700!important;
  font-size:inherit!important;
}
body:not(.auth-page--login) .sidebar .nav-group > .nav-group-items > a.active > svg{
  stroke:var(--accent-dark)!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .sidebar .nav-group > .nav-group-items > a.active{
  background:linear-gradient(135deg,rgba(208,160,111,.30),rgba(208,160,111,.14))!important;
  color:#fff8f1!important;
}

/* 2026-09-07: TO-DO keeps closed-event work separate from active/completed work. */
.todo-plan-group-description{margin:.35rem 0 0;max-width:900px}
.todo-flat-list-panel--closed{
  border-color:rgba(122,98,70,.18);
  background:linear-gradient(135deg,rgba(249,247,244,.96),rgba(242,238,233,.9));
}
.todo-flat-list-panel--closed .todo-flat-item,
.todo-flat-list-panel--closed .todo-flat-item.is-done{
  background:rgba(248,246,243,.96);
}
.todo-flat-list-panel--closed .todo-flat-item__task>strong,
.todo-flat-list-panel--closed .todo-flat-item__event>a,
.todo-flat-list-panel--closed .todo-flat-item__event>strong{
  color:#5f574d;
}
html[data-theme="dark"] body:not(.auth-page--login) .todo-flat-list-panel--closed{
  background:linear-gradient(135deg,rgba(45,39,34,.96),rgba(37,32,28,.96));
  border-color:rgba(208,160,111,.18)!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .todo-flat-list-panel--closed .todo-flat-item,
html[data-theme="dark"] body:not(.auth-page--login) .todo-flat-list-panel--closed .todo-flat-item.is-done{
  background:#25201c!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .todo-flat-list-panel--closed .todo-flat-item__task>strong,
html[data-theme="dark"] body:not(.auth-page--login) .todo-flat-list-panel--closed .todo-flat-item__event>a,
html[data-theme="dark"] body:not(.auth-page--login) .todo-flat-list-panel--closed .todo-flat-item__event>strong{
  color:#e7d8ca!important;
}

/* TO-DO settings — remains global until Krok 5 creates todo.css/todo.js. */
.settings-help-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.settings-help-grid article{
  display:grid;
  gap:4px;
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.55);
}
.settings-help-grid article strong{font-size:calc(.79rem + 1px)}
.settings-help-grid article span{
  color:var(--muted);
  font-size:calc(.7rem + 1px);
  line-height:1.42;
}
.todo-admin-task-list{
  display:grid;
  gap:12px;
}
.todo-admin-task-card{
  display:grid;
  gap:12px;
  min-width:0;
  padding:14px;
  border:1px solid var(--line);
  border-radius:17px;
  background:rgba(255,255,255,.72);
}
.todo-admin-task-card.is-hidden-task{background:rgba(106,96,82,.05)}
.todo-admin-task-card.is-hidden-task > :not(.todo-admin-task-card__head){opacity:.62}
.todo-admin-task-card__head{
  display:grid;
  grid-template-columns:minmax(300px,1fr) 34px 34px;
  align-items:end;
  gap:10px;
}
.todo-admin-task-name,
.todo-admin-task-name label,
.todo-admin-timing-grid label{min-width:0}
.todo-admin-task-name label,
.todo-admin-timing-grid label{
  display:grid;
  gap:5px;
}
.todo-admin-task-name label > span,
.todo-admin-timing-grid label > span{
  color:var(--muted);
  font-size:calc(.69rem + 1px);
  font-weight:650;
}
.todo-admin-visibility-toggle{
  position:relative;
  display:grid;
  place-items:center;
  width:34px;
  min-width:34px;
  height:34px;
  min-height:34px;
  margin:0;
  padding:0;
  border:1px solid var(--line);
  border-radius:11px;
  background:rgba(255,255,255,.78);
  color:var(--accent-dark);
  cursor:pointer;
  box-shadow:none;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease;
}
.todo-admin-visibility-toggle:hover{
  border-color:rgba(155,111,69,.45);
  background:rgba(155,111,69,.08);
  transform:translateY(-1px);
}
.todo-admin-visibility-toggle:focus-within{
  outline:2px solid rgba(155,111,69,.3);
  outline-offset:2px;
}
.todo-admin-visibility-toggle[data-state="hidden"]{
  color:var(--muted);
  background:rgba(106,96,82,.055);
}
.todo-admin-visibility-toggle__input{
  position:absolute;
  width:1px!important;
  min-width:1px!important;
  height:1px!important;
  min-height:1px!important;
  margin:0!important;
  padding:0!important;
  opacity:0;
  pointer-events:none;
}
.todo-admin-visibility-toggle__icon{
  width:17px;
  height:17px;
  pointer-events:none;
}
.todo-admin-visibility-toggle__icon--hidden{display:none}
.todo-admin-visibility-toggle__input:not(:checked) ~ .todo-admin-visibility-toggle__icon--visible{display:none}
.todo-admin-visibility-toggle__input:not(:checked) ~ .todo-admin-visibility-toggle__icon--hidden{display:block}
.todo-admin-delete-button{
  display:inline-grid;
  place-items:center;
  width:34px;
  min-width:34px;
  height:34px;
  min-height:34px;
  margin:0;
  padding:0;
  border:1px solid #ddb5b1;
  border-radius:10px;
  background:#fff8f7;
  color:#a6534d;
  cursor:pointer;
  box-shadow:none;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease;
}
.todo-admin-delete-button svg{
  width:17px;
  height:17px;
  pointer-events:none;
}
.todo-admin-delete-button:hover{
  color:#8c3b35;
  border-color:#c98d87;
  background:#fff0ee;
  box-shadow:0 0 0 2px rgba(140,59,53,.07);
  transform:translateY(-1px);
}
.todo-admin-delete-button:focus-visible{
  outline:2px solid rgba(140,59,53,.34);
  outline-offset:2px;
}
.todo-setting-inline-help{
  margin:10px 0 0;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--paper-soft);
  color:var(--muted);
  font-size:calc(.72rem + 1px);
  line-height:1.5;
}
.todo-setting-inline-help strong{color:var(--ink)}
.todo-admin-timing-grid{
  display:grid;
  grid-template-columns:minmax(90px,.5fr) minmax(155px,1fr) repeat(2,minmax(120px,.72fr)) minmax(120px,.72fr);
  gap:9px;
}
.todo-admin-timing-grid.todo-admin-timing-grid--cleanup{grid-template-columns:repeat(2,minmax(0,1fr))}
.todo-recipient-settings-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.todo-recipient-settings-block{
  display:grid;
  align-content:start;
  min-width:0;
  padding:12px;
  border:1px solid rgba(155,111,69,.18);
  border-radius:14px;
  background:rgba(250,247,242,.72);
}
.todo-recipient-settings-block--secondary{grid-column:1/-1}
.todo-recipient-settings-block h4{
  margin:0 0 3px;
  font-size:calc(.84rem + 1px);
}
.todo-recipient-settings-block > p{margin:0 0 9px}
.todo-recipient-row-list{
  display:grid;
  gap:9px;
  min-width:0;
}
.todo-recipient-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 24px;
  align-items:center;
  gap:7px;
  min-width:0;
}
.todo-recipient-row select{
  width:100%;
  min-width:0;
  min-height:34px;
  margin:0;
  padding:6px 30px 6px 9px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  font-size:calc(.72rem + 1px);
}
.todo-recipient-row select:focus{
  border-color:rgba(155,111,69,.58);
  outline:2px solid rgba(155,111,69,.12);
  outline-offset:1px;
}
.todo-recipient-add-action{
  display:flex;
  justify-content:flex-end;
  min-height:24px;
  margin-top:6px;
}
.todo-settings-save-actions{
  margin-top:16px;
}
@media (max-width:1100px){
  .settings-help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .todo-admin-timing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:780px){
  .settings-help-grid,
  .todo-recipient-settings-grid,
  .todo-admin-timing-grid{grid-template-columns:minmax(0,1fr)}
  .todo-recipient-settings-block--secondary{grid-column:auto}
  .todo-admin-task-card__head{grid-template-columns:minmax(0,1fr) 34px 34px}
  .todo-admin-task-name{grid-column:1/-1}
  .todo-admin-visibility-toggle{grid-column:2;justify-self:end}
  .todo-admin-delete-button{grid-column:3}
  .todo-admin-timing-grid.todo-admin-timing-grid--cleanup{grid-template-columns:minmax(0,1fr)}
}
html[data-theme="dark"] body:not(.auth-page--login) :is(.settings-help-grid article,.todo-admin-task-card,.todo-recipient-settings-block){
  background:#28221d!important;
  color:var(--ink)!important;
  border-color:var(--line)!important;
  box-shadow:none!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .todo-admin-visibility-toggle{
  background:#211c18;
  color:#d8aa79;
  border-color:var(--line);
}
html[data-theme="dark"] body:not(.auth-page--login) .todo-admin-visibility-toggle[data-state="hidden"]{
  background:#24201c;
  color:#a69688;
}
html[data-theme="dark"] body:not(.auth-page--login) .todo-admin-visibility-toggle:hover{
  background:#352c25;
  color:#f2e5d8;
}
html[data-theme="dark"] body:not(.auth-page--login) .todo-recipient-row select{
  background:#201b17!important;
  color:var(--ink)!important;
  border-color:var(--line)!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .todo-admin-delete-button{
  background:rgba(180,71,64,.12)!important;
  color:#ef9188!important;
  border-color:rgba(224,122,112,.28)!important;
}

/* Event form: text fields stay vertically centered and staff-plan chronology errors are visible immediately. */
body:not(.auth-page--login) .event-form .event-table input[type="text"]{
  height:26px;
  min-height:26px;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:24px!important;
}
body:not(.auth-page--login) .event-form .event-row-label-editor{
  min-height:26px!important;
  height:26px;
  padding-top:4px!important;
  padding-bottom:4px!important;
  line-height:16px!important;
}
body:not(.auth-page--login) .event-form .staff-plan-row--datetime-invalid [data-plan-departure-date],
body:not(.auth-page--login) .event-form .staff-plan-row--datetime-invalid [data-plan-departure-date] + [data-plan-time]{
  border-color:#c95f56!important;
  box-shadow:0 0 0 2px rgba(201,95,86,.12)!important;
}
body:not(.auth-page--login) .event-form .staff-plan-datetime-error{
  display:block;
  margin-top:4px;
  color:#a13d35;
  font-size:calc(.58rem + 1px);
  font-weight:700;
  line-height:1.25;
  text-align:left;
}
body:not(.auth-page--login) .event-form .staff-plan-datetime-error[hidden]{display:none!important}
body:not(.auth-page--login) .event-form .event-table :is(
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
  select
){
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body:not(.auth-page--login) .event-form .event-table :is(
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
  select
):focus{
  outline:1px solid var(--accent);
  outline-offset:-1px;
}
body:not(.auth-page--login) .event-form .event-table textarea.event-row-label-editor{
  min-width:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  resize:none!important;
  overflow:hidden!important;
  white-space:pre-wrap!important;
  overflow-wrap:anywhere;
  word-break:normal;
  text-align:left!important;
}
body:not(.auth-page--login) .event-form .event-table textarea.event-row-label-editor:focus{
  outline:1px solid var(--accent);
  outline-offset:-1px;
}
body:not(.auth-page--login) .event-form .event-table tbody td:first-child input[type="text"]{
  font-size:calc(.7rem + 1px) !important;
  line-height:18px!important;
  padding:0 2px!important;
}
body:not(.auth-page--login) .event-form .event-table strong,
body:not(.auth-page--login) .event-form .event-table .small-note,
body:not(.auth-page--login) .event-form .event-cell-note{
  font-size:calc(.7rem + 1px) !important;
  line-height:16px!important;
}

/* Šedé jsou jen řádky, které jsou automaticky dopočítané nebo jsou
   kontrolní a nezapočítávají se do součtu sekce. Povinný, ale ručně
   editovatelný systémový řádek zůstává vizuálně stejný jako běžný vstup. */
body:not(.auth-page--login) .event-form .event-table tr.event-row:is([data-calculated-row="1"],[data-exclude-section-total="1"]) > td{
  background:#edf0f2!important;
  color:#56616a;
}
body:not(.auth-page--login) .event-form .event-table tr.event-row:is([data-calculated-row="1"],[data-exclude-section-total="1"]) > td:first-child{
  box-shadow:inset 3px 0 0 #8796a2;
}
body:not(.auth-page--login) .event-form .event-table tr.event-row:is([data-calculated-row="1"],[data-exclude-section-total="1"]) :is(input,textarea,select,strong,.inline-note){
  color:#56616a!important;
}

/* Souhrn kalkulace: hodnoty, které daná role nesmí měnit, musí být na první
   pohled odlišné od editovatelných vstupů i přes finální theme.css vrstvu. */
body:not(.auth-page--login) .event-form .summary-ledger__percent-input input[readonly]{
  background:#edf0f2!important;
  color:#56616a!important;
  border-color:#c9d3d9!important;
  cursor:default;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .summary-ledger__percent-input input[readonly]{
  background:#293036!important;
  color:#d4dde3!important;
  border-color:#52616b!important;
}

/* Personnel plan: dates and times keep the compact row height, but unlike the
   other Excel-like cells they retain a small field boundary and use larger,
   darker type so the value is immediately readable. */
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan td{
  font-size:calc(.7rem + 1px) !important;
  line-height:16px!important;
}
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input:not([type="hidden"]){
  min-height:20px!important;
  height:20px!important;
  padding:0 2px!important;
  font-size:calc(.7rem + 1px) !important;
  line-height:18px!important;
  font-variant-numeric:tabular-nums;
}
body:not(.auth-page--login) .event-form .event-table--staff-plan strong{
  font-size:calc(.7rem + 1px) !important;
  line-height:16px!important;
}
body:not(.auth-page--login) .event-form .event-table--staff-plan .plan-datetime{
  grid-template-columns:minmax(88px,1.55fr) minmax(58px,.9fr);
}
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="date"],
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="time"]{
  display:block;
  min-width:0!important;
  width:100%!important;
  min-height:20px!important;
  height:20px!important;
  padding:0 2px!important;
  border:1px solid rgba(155,111,69,.28)!important;
  border-radius:3px!important;
  background:rgba(255,255,255,.96)!important;
  color:var(--ink)!important;
  box-shadow:none!important;
  font-size:calc(.78rem + 1px) !important;
  font-weight:500!important;
  line-height:18px!important;
  font-variant-numeric:tabular-nums;
  opacity:1!important;
}
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[data-plan-arrival-date][readonly]{
  background:rgba(255,255,255,.96)!important;
  color:var(--ink)!important;
  cursor:default;
  opacity:1!important;
}
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="date"]::-webkit-datetime-edit,
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="time"]::-webkit-datetime-edit,
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="date"]::-webkit-datetime-edit-fields-wrapper,
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="time"]::-webkit-datetime-edit-fields-wrapper{
  padding:0!important;
  color:var(--ink)!important;
  font-size:calc(.78rem + 1px) !important;
  line-height:18px!important;
}
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="date"]::-webkit-calendar-picker-indicator,
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="time"]::-webkit-calendar-picker-indicator{
  width:12px;
  height:12px;
  margin:0;
  padding:0;
  opacity:.9;
}

html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table tr.event-row:is([data-calculated-row="1"],[data-exclude-section-total="1"]) > td{
  background:#293036!important;
  color:#d4dde3!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table tr.event-row:is([data-calculated-row="1"],[data-exclude-section-total="1"]) > td:first-child{
  box-shadow:inset 3px 0 0 #718493;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table tr.event-row:is([data-calculated-row="1"],[data-exclude-section-total="1"]) :is(input,textarea,select,strong,.inline-note){
  color:#d4dde3!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="date"],
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="time"],
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[data-plan-arrival-date][readonly]{
  background:#211c18!important;
  color:#eee2d7!important;
  border-color:#59483a!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="date"]::-webkit-datetime-edit,
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="time"]::-webkit-datetime-edit,
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="date"]::-webkit-datetime-edit-fields-wrapper,
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="time"]::-webkit-datetime-edit-fields-wrapper{
  color:#eee2d7!important;
}

@media(max-width:700px){
  body:not(.auth-page--login) .event-form .event-table tbody td,
  body:not(.auth-page--login) .event-form .event-table tbody td:first-child,
  body:not(.auth-page--login) .event-form .event-table tbody td:last-child{
    height:24px;
  }
  body:not(.auth-page--login) .event-form .event-table :is(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
    select
  ){
    min-height:22px!important;
    height:22px;
    line-height:20px!important;
  }
  body:not(.auth-page--login) .event-form .event-table textarea.event-row-label-editor{
    min-height:22px!important;
    height:22px;
    padding-top:4px!important;
    padding-bottom:4px!important;
  }
  body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="date"],
  body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan input[type="time"]{
    min-height:22px!important;
    height:22px!important;
    line-height:20px!important;
  }
}

/* ========================================================================== 
   2026-09-08 - Responsive CRM containment policy.
   The application itself always follows the viewport. Only genuinely wide
   data sections are allowed to scroll horizontally inside their own wrapper.
   ========================================================================== */
html:not(.auth-document--login){
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  /* clip does not create a second vertical scroll container. The document
     remains the only vertical scroller, so mouse wheel + sticky sidebar work. */
  overflow-x:clip!important;
  overflow-y:auto!important;
}
body:not(.auth-page--login){
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:clip!important;
  overflow-y:visible!important;
}
body:not(.auth-page--login) .shell,
body:not(.auth-page--login) .content{
  min-width:0!important;
  max-width:100%!important;
}

@media(max-width:1100px){
  body:not(.auth-page--login) .shell,
  body:not(.auth-page--login) .content,
  body:not(.auth-page--login) .content > *{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body:not(.auth-page--login) .content{
    overflow-x:visible!important;
  }

  /* Event detail becomes one responsive column again. Wide tables keep their
     own horizontal scrollbar through .table-wrap instead of widening the app. */
  body:not(.auth-page--login) .event-form{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "header"
      "notes"
      "todo"
      "summary"
      "commercial"
      "staff"
      "actions"!important;
  }
  body:not(.auth-page--login) .event-form-commercial-columns,
  body:not(.auth-page--login) .event-form-commercial-columns:not(.event-form-commercial-columns--operations-only){
    grid-template-columns:minmax(0,1fr)!important;
    min-width:0!important;
    max-width:100%!important;
  }

  /* The offer/version strip is a genuinely wide control. On a narrow screen
     only this strip scrolls; the action buttons below stay responsive. */
  body:not(.auth-page--login) .event-form > .form-actions{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  body:not(.auth-page--login) .event-form .event-offer-versions{
    flex:1 1 100%!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-gutter:stable;
  }
  
  body:not(.auth-page--login) .event-form > .form-actions .event-form-primary-actions{
    flex:1 1 100%!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex-wrap:wrap!important;
    white-space:normal!important;
  }
  body:not(.auth-page--login) .event-form > .form-actions .event-form-primary-actions .button{
    flex:0 1 auto!important;
    white-space:nowrap;
  }

  /* Wide datasets scroll locally. Dashboard cards and the rest of the page do
     not inherit a desktop minimum width. */
  body:not(.auth-page--login) .content--events .event-directory .table-wrap,
body:not(.auth-page--login) .content--contacts .contact-directory .table-wrap,
body:not(.auth-page--login) .event-form .table-wrap,
body:not(.auth-page--login) .itinerary-history-wrap,
body:not(.auth-page--login) .itinerary-admin-table-wrap{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain;
    overscroll-behavior-y:auto;
    -webkit-overflow-scrolling:touch;
  }
}

/* Calendar on tablet/mobile keeps the page itself responsive, while the actual
   calendar surface may be wider than the viewport and is panned by touch. */
@media(max-width:820px){
  body:not(.auth-page--login) .calendar-v4,
  body:not(.auth-page--login) .calendar-v4__workspace,
  body:not(.auth-page--login) .calendar-v4__surface,
  body:not(.auth-page--login) .calendar-v4__grid{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body:not(.auth-page--login) .calendar-v4__workspace,
  body:not(.auth-page--login) .calendar-v4__surface{
    height:auto;
    max-height:none;
    overflow:visible!important;
  }
  body:not(.auth-page--login) .calendar-v4__grid{
    height:auto!important;
    max-height:none;
    overflow:visible!important;
    touch-action:auto!important;
  }
  body:not(.auth-page--login) .calendar-v4__legend,
  body:not(.auth-page--login) .calendar-v4__views{
    max-width:100%!important;
    overflow-x:visible!important;
    flex-wrap:wrap!important;
  }
  body:not(.auth-page--login) .calendar-v4__view{
    min-width:0!important;
    flex:1 1 auto!important;
  }
}

/* ========================================================================== 
   2026-09-08 - Native touch scrolling for tablet/mobile.
   Vertical one-finger gestures must always be able to continue on the page.
   Truly wide data wrappers additionally accept horizontal one-finger panning.
   ========================================================================== */
@media (max-width:1100px) and (hover:none), (max-width:1100px) and (pointer:coarse){
  html,
  body:not(.auth-page--login){
    overscroll-behavior-y:auto!important;
  }

  body:not(.auth-page--login) .content,
  body:not(.auth-page--login) .content > *,
  body:not(.auth-page--login) .calendar-v4-page,
  body:not(.auth-page--login) .calendar-v4,
  body:not(.auth-page--login) .calendar-v4__workspace,
  body:not(.auth-page--login) .calendar-v4__surface,
  body:not(.auth-page--login) .calendar-v4__grid{
    touch-action:pan-x pan-y!important;
    overscroll-behavior-y:auto!important;
  }

  /* Dotykovy kalendar ponechava svisle gesto strance. Na telefonu ma
     horizontalni scroll vlastni calendar-mobile-schedule__scroll. */
  body:not(.auth-page--login) .calendar-v4__surface{
    overflow:visible!important;
  }

  /* Generic wide datasets: horizontal swipe moves only the dataset; vertical
     swipe continues through to the document instead of creating a scroll jail. */
  body:not(.auth-page--login) .table-wrap,
body:not(.auth-page--login) .itinerary-history-wrap,
body:not(.auth-page--login) .itinerary-admin-table-wrap,
body:not(.auth-page--login) .event-form .event-offer-versions{
    touch-action:pan-x pan-y!important;
    overscroll-behavior-x:contain;
    overscroll-behavior-y:auto!important;
    -webkit-overflow-scrolling:touch;
  }

  /* Horizontal data scrollers must never become the vertical page scroller. */
  body:not(.auth-page--login) .table-wrap,
body:not(.auth-page--login) .itinerary-history-wrap,
body:not(.auth-page--login) .itinerary-admin-table-wrap,
body:not(.auth-page--login) .event-form .event-offer-versions{
    overflow-y:hidden!important;
  }
}

@media (min-width:821px) and (max-width:1100px) and (hover:none), (min-width:821px) and (max-width:1100px) and (pointer:coarse){
  body:not(.auth-page--login) .calendar-v4__grid{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x pan-y!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:var(--cal-accent) transparent;
  }
}

/* Desktop wheel scrolling belongs to the document. The sidebar navigation may
   have its own scrollbar when it is taller than the viewport, but wheel input
   is allowed to chain back to the page at its limits. */
@media (min-width:1101px){
  html:not(.auth-document--login){
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
  }
  body:not(.auth-page--login){
    overflow-y:visible!important;
    overscroll-behavior-y:auto!important;
  }
  body:not(.auth-page--login) .sidebar .nav{
    overscroll-behavior-y:auto!important;
  }
}

/* 2026-09-08: final compact Event table polish.
   Approved "PO UPRAVE" layout: rows touch each other like an Excel grid,
   every textual value has a precise 2px inset from its cell boundary and
   required/system rows keep the same inset after their identification stripe.
   Wrapped labels are the only reason a row becomes taller. Office version
   artwork keeps one 30x30 visual contract for PPTX/XLSX/PDF. */
body:not(.auth-page--login) .event-form .event-table tbody td,
body:not(.auth-page--login) .event-form .event-table tbody td:first-child,
body:not(.auth-page--login) .event-form .event-table tbody td:last-child{
  height:20px!important;
  padding:0!important;
  vertical-align:middle!important;
  line-height:18px!important;
}
body:not(.auth-page--login) .event-form .event-table :is(
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
  select
){
  box-sizing:border-box!important;
  display:block;
  width:100%!important;
  max-width:100%!important;
  min-height:20px!important;
  height:20px!important;
  margin:0!important;
  padding:0 2px!important;
  font-size:calc(.75rem + 1px) !important;
  line-height:18px!important;
}
body:not(.auth-page--login) .event-form .event-table textarea.event-row-label-editor{
  box-sizing:border-box!important;
  display:block;
  width:100%!important;
  max-width:100%!important;
  min-height:20px!important;
  height:20px;
  margin:0!important;
  padding:3px 2px!important;
  font-size:calc(.75rem + 1px) !important;
  line-height:14px!important;
}
/* Static values need the same 2px inset that editable controls get from their
   own padding. No extra vertical padding is added to the row. */
body:not(.auth-page--login) .event-form .event-table tbody td > strong,
body:not(.auth-page--login) .event-form .event-table tbody td > .inline-note,
body:not(.auth-page--login) .event-form .event-table tbody td > .small-note,
body:not(.auth-page--login) .event-form .event-table tbody td > .muted{
  box-sizing:border-box;
  padding-left:2px!important;
  padding-right:2px!important;
  font-size:calc(.75rem + 1px) !important;
  line-height:18px!important;
}
body:not(.auth-page--login) .event-form .event-table .event-cell-note{
  min-width:0;
  overflow:hidden;
  padding:0 2px!important;
}
body:not(.auth-page--login) .event-form .event-table .event-cell-note .inline-note{
  display:block;
  width:100%;
  max-width:100%;
  padding:0!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
  word-break:normal;
  font-size:calc(.75rem + 1px) !important;
  line-height:14px!important;
}
/* The action control used to enforce a 24px row even when all other cells were
   20px. Matching it to the button removes the apparent gap between rows. */
body:not(.auth-page--login) .event-form .event-table:not(.event-table--staff-plan) .row-action-controls{
  min-height:20px!important;
  height:20px!important;
  margin:0!important;
  padding:0!important;
}
body:not(.auth-page--login) .event-form .event-table.event-table--staff-plan .row-action-controls{
  min-height:22px!important;
  height:22px!important;
  margin:0!important;
  padding:0!important;
}
/* Automatické/kontrolní řádky používají 3px stavový proužek. */
body:not(.auth-page--login) .event-form .event-table tr.event-row:is([data-calculated-row="1"],[data-exclude-section-total="1"]) > td:first-child > :is(input[type="text"],textarea.event-row-label-editor){
  padding-left:5px!important;
}
body:not(.auth-page--login) .event-form .event-table tr.event-row:is([data-calculated-row="1"],[data-exclude-section-total="1"]) > td:first-child > strong,
body:not(.auth-page--login) .event-form .event-table tr.event-row:is([data-calculated-row="1"],[data-exclude-section-total="1"]) > td:first-child > .inline-note{
  display:block;
  padding-left:5px!important;
  padding-right:2px!important;
}

/* 2026-09-08: Cenova kalkulace uses the same compact row rhythm as the
   Nakladova cast. Sales-only controls (PPTX token and offer/remove actions)
   must not force a taller row than the 20px Event table grid. */
body:not(.auth-page--login) .event-form .event-table--sales tbody td,
body:not(.auth-page--login) .event-form .event-table--sales tbody td:first-child,
body:not(.auth-page--login) .event-form .event-table--sales tbody td:last-child{
  height:20px!important;
  min-height:20px!important;
  padding-top:0!important;
  padding-bottom:0!important;
  vertical-align:middle!important;
}
body:not(.auth-page--login) .event-form .event-table--sales .event-pptx-token-cell{
  padding-top:0!important;
  padding-bottom:0!important;
  vertical-align:middle!important;
}
body:not(.auth-page--login) .event-form .event-table--sales .event-pptx-token-details,
body:not(.auth-page--login) .event-form .event-table--sales .event-pptx-token-details > summary{
  display:block;
  height:20px;
  min-height:20px;
  margin:0;
  padding:0;
  line-height:20px;
}
body:not(.auth-page--login) .event-form .event-table--sales .event-pptx-token-badge{
  display:inline-flex;
  min-width:44px;
  padding:0 4px;
  border-radius:5px;
  font-size:calc(.66rem + 1px);
  line-height:16px;
  box-sizing:border-box;
}
body:not(.auth-page--login) .event-form .event-table--sales .sales-offer-controls{
  min-width:0!important;
  min-height:20px!important;
  height:20px!important;
  margin:0!important;
  padding:0!important;
  gap:2px!important;
  align-items:center!important;
  justify-content:center!important;
}
body:not(.auth-page--login) .event-form .event-table--sales .offer-row-visibility{
  width:16px!important;
  min-width:16px!important;
  height:20px!important;
  min-height:20px!important;
  margin:0!important;
  padding:0!important;
  align-items:center!important;
  justify-content:center!important;
}
body:not(.auth-page--login) .event-form .event-table--sales .button[data-remove-row]{
  width:20px!important;
  min-width:20px!important;
  max-width:20px!important;
  height:20px!important;
  min-height:20px!important;
  max-height:20px!important;
  margin:0!important;
  padding:0!important;
  border-radius:6px!important;
  font-size:calc(.9rem + 1px) !important;
  line-height:1!important;
}

/* 2026-09-08: sales calculation row controls follow the compact 20px table grid.
   Keep both remove and add controls visually proportional to a single-line row. */
body:not(.auth-page--login) .event-form .event-block--sales .section-row-actions{
  min-height:22px!important;
  height:22px!important;
  margin-top:0!important;
  padding:1px 0!important;
  box-sizing:border-box!important;
}
body:not(.auth-page--login) .event-form .event-block--sales .section-row-actions > .button[data-add-row],
body:not(.auth-page--login) .event-form .event-table--sales .button[data-remove-row]{
  width:20px!important;
  min-width:20px!important;
  max-width:20px!important;
  height:20px!important;
  min-height:20px!important;
  max-height:20px!important;
  margin:0!important;
  padding:0!important;
  border-radius:6px!important;
  font-size:calc(.86rem + 1px) !important;
  line-height:1!important;
}

/* 2026-09-08: final Event detail parity.
   Cost and sales columns use the same visual grammar: section title first,
   column labels second, service day inside the table third, compact rows and
   one 20x20 add/remove control contract throughout the Event detail. */
body:not(.auth-page--login) .event-form .event-calculation-day__heading{
  display:none!important;
}
body:not(.auth-page--login) .event-form .event-calculation-day{
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
body:not(.auth-page--login) .event-form .event-calculation-day__sections{
  gap:10px!important;
}
body:not(.auth-page--login) .event-form .event-calculation-day .event-block--sales{
  margin:0!important;
}
body:not(.auth-page--login) .event-form .event-table--sales .event-sales-day-heading td{
  height:20px!important;
  min-height:20px!important;
  padding:0 2px!important;
  background:rgba(64,91,73,.07)!important;
  border-top:1px solid rgba(64,91,73,.18)!important;
  border-bottom:1px solid rgba(64,91,73,.14)!important;
  line-height:18px!important;
}
body:not(.auth-page--login) .event-form .event-table--sales .event-sales-day-heading .event-menu-day-heading__content{
  min-height:18px!important;
  height:18px!important;
  align-items:center!important;
  flex-direction:row!important;
  justify-content:flex-start!important;
  gap:0!important;
  padding:0!important;
}
body:not(.auth-page--login) .event-form .event-table--sales .event-sales-day-heading .event-menu-day-heading__content > span{
  display:flex!important;
  align-items:baseline!important;
  gap:7px!important;
  min-width:0!important;
  font-size:calc(.75rem + 1px) !important;
  line-height:18px!important;
}
body:not(.auth-page--login) .event-form .event-table--sales .event-sales-day-heading [data-sales-day-label]{
  color:var(--muted)!important;
  font-weight:600!important;
}

/* Every Event row action has the same compact dimensions as the approved
   green cost-table example, including BEO, inventory, staff and sales. */
body:not(.auth-page--login) .event-form .button[data-add-row],
body:not(.auth-page--login) .event-form .button[data-add-staff-plan-row],
body:not(.auth-page--login) .event-form .button[data-remove-row],
body:not(.auth-page--login) .event-form .button[data-remove-staff-plan-row]{
  display:inline-grid!important;
  place-items:center!important;
  width:20px!important;
  min-width:20px!important;
  max-width:20px!important;
  height:20px!important;
  min-height:20px!important;
  max-height:20px!important;
  margin:0!important;
  padding:0!important;
  border-radius:6px!important;
  font-size:calc(.86rem + 1px) !important;
  line-height:1!important;
}
body:not(.auth-page--login) .event-form .event-row-add-action > td{
  height:20px!important;
  min-height:20px!important;
  padding:0 2px!important;
  border-top:0!important;
  background:transparent!important;
  vertical-align:middle!important;
}
body:not(.auth-page--login) .event-form .event-row-add-action .section-row-actions--table{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  min-height:20px!important;
  height:20px!important;
  margin:0!important;
  padding:0!important;
}
body:not(.auth-page--login) .event-form .section-row-actions:not(.section-row-actions--table){
  min-height:20px!important;
  margin-top:0!important;
  padding:0!important;
}

/* Sales controls may contain more columns than costs, but they must never
   force a different row rhythm. */
body:not(.auth-page--login) .event-form .event-table--sales .sales-offer-controls,
body:not(.auth-page--login) .event-form .event-table--sales .offer-row-visibility,
body:not(.auth-page--login) .event-form .event-table--sales .event-pptx-token-details,
body:not(.auth-page--login) .event-form .event-table--sales .event-pptx-token-details > summary{
  min-height:20px!important;
  height:20px!important;
}
body:not(.auth-page--login) .event-form .event-table--sales .event-pptx-token-badge{
  min-height:18px!important;
  height:18px!important;
  margin:1px 0!important;
}

/* 2026-09-08: approved compact PPTX offer workflow.
   - The generic page Back button returns to All offers; the in-page action returns to the event.
   - Template/offer rows use table-like density instead of oversized cards.
   - More than ten versions stay compact; the user can open the complete list explicitly. */
body:not(.auth-page--login) .event-pptx-offers-panel .event-offer-template-list,
body:not(.auth-page--login) .event-pptx-offers-panel .event-offer-created-list{
  gap:4px;
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-list__head{
  padding:0 8px 3px;
  font-size:calc(.66rem + 1px);
  line-height:1.2;
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row{
  gap:8px;
  padding:5px 8px;
  min-height:42px;
  border-radius:10px;
  box-shadow:none;
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row:hover{
  box-shadow:none;
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row__identity{
  gap:7px;
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row__icon{
  flex-basis:28px;
  width:28px;
  height:28px;
  border-radius:8px;
  font-size:calc(calc(15px * var(--font-scale)) + 1px);
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row__identity h3{
  font-size:calc(.78rem + 1px);
  line-height:1.15;
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row__identity small{
  margin-top:1px;
  font-size:calc(.64rem + 1px);
  line-height:1.15;
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row__meta{
  font-size:calc(.71rem + 1px);
  line-height:1.2;
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row__actions{
  gap:4px;
}
body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row__actions .button{
  min-height:29px;
  padding:5px 9px;
  font-size:calc(.68rem + 1px);
}
body:not(.auth-page--login) .event-pptx-offers-panel .event-offer-a4-pages{
  gap:0;
}
body:not(.auth-page--login) .event-pptx-offers-panel .event-offer-a4-pages small{
  font-size:calc(.57rem + 1px);
}
body:not(.auth-page--login) .event-offer-bulk-toolbar{
  gap:10px;
  padding:8px 10px;
  margin:0 0 7px;
}
body:not(.auth-page--login) .event-offer-bulk-toolbar .event-directory__toolbar-copy{
  gap:1px;
}
body:not(.auth-page--login) .event-offer-bulk-toolbar .event-directory__toolbar-copy strong{
  font-size:calc(.76rem + 1px);
}
body:not(.auth-page--login) .event-offer-bulk-toolbar .event-directory__toolbar-copy .muted{
  font-size:calc(.65rem + 1px);
  line-height:1.25;
}
body:not(.auth-page--login) .event-offer-bulk-toolbar .event-directory__toolbar-actions{
  gap:6px;
}
body:not(.auth-page--login) .event-offer-show-all{
  min-height:30px!important;
  padding:5px 9px!important;
  font-size:calc(.68rem + 1px) !important;
  line-height:1!important;
  white-space:nowrap;
}
body:not(.auth-page--login) .event-offer-created-list-controls{
  display:flex;
  justify-content:flex-end;
  margin:0 0 7px;
}

/* Event detail: keep only the ten newest offer chips in the compact strip.
   The explicit link opens the complete per-event offer list. */

@media(max-width:760px){
  body:not(.auth-page--login) .event-pptx-offers-panel .pptx-template-row{
    gap:5px;
    padding:7px 8px;
  }
  body:not(.auth-page--login) .event-offer-bulk-toolbar{
    align-items:stretch;
  }
  body:not(.auth-page--login) .event-offer-bulk-toolbar .event-directory__toolbar-actions{
    width:100%;
    flex-wrap:wrap;
  }
}

/* 2026-09-08: Event detail offer selector rebuilt as the approved compact table.
   This intentionally replaces the old rounded multi-row version chips in the
   Event detail only. The full PPTX offer directory remains a separate page. */
body:not(.auth-page--login) .event-form .event-offer-versions--table{
  display:block!important;
  flex:1 1 100%!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:0!important;
  padding:8px 10px!important;
  border:1px solid var(--line)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.86)!important;
  overflow:visible!important;
}
body:not(.auth-page--login) .event-form .event-offer-versions__table-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 6px;
}
body:not(.auth-page--login) .event-form .event-offer-versions__table-copy{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:4px 10px;
  min-width:0;
}
body:not(.auth-page--login) .event-form .event-offer-versions__title{
  color:var(--ink);
  font-size:calc(.76rem + 1px);
  line-height:1.15;
}
body:not(.auth-page--login) .event-form .event-offer-versions__hint{
  color:var(--muted);
  font-size:calc(.64rem + 1px);
  line-height:1.2;
}
body:not(.auth-page--login) .event-form .event-offer-versions__table-tools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:6px;
  flex:0 0 auto;
}
body:not(.auth-page--login) .event-form .event-offer-versions__table-tools .button{
  min-height:28px!important;
  height:28px!important;
  padding:0 9px!important;
  font-size:calc(.65rem + 1px) !important;
  line-height:1!important;
}
body:not(.auth-page--login) .event-form .event-offer-versions__bulk-count{
  color:var(--muted);
  font-size:calc(.64rem + 1px);
  white-space:nowrap;
}
body:not(.auth-page--login) .event-form .event-offer-versions__table-wrap{
  width:100%;
  min-width:0;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  border:1px solid rgba(155,111,69,.18);
  border-radius:10px;
  background:#fff;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y;
}

body:not(.auth-page--login) .event-form .event-offer-versions-table{
  width:100%;
  min-width:720px;
  border-collapse:collapse;
  table-layout:fixed;
  font-size:calc(.68rem + 1px);
  line-height:1.15;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table th,
body:not(.auth-page--login) .event-form .event-offer-versions-table td{
  height:32px;
  min-height:32px;
  padding:2px 6px;
  border-right:1px solid rgba(155,111,69,.14);
  border-bottom:1px solid rgba(155,111,69,.14);
  vertical-align:middle;
  text-align:left;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table th:last-child,
body:not(.auth-page--login) .event-form .event-offer-versions-table td:last-child{
  border-right:0;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table tbody tr:last-child td{
  border-bottom:0;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table thead th{
  height:24px;
  min-height:24px;
  padding-top:2px;
  padding-bottom:2px;
  background:#f7f3ee;
  color:var(--muted);
  font-size:calc(.61rem + 1px);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.035em;
  white-space:nowrap;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table tbody tr{
  background:rgba(255,255,255,.98);
  transition:background .12s ease;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table tbody tr:hover{
  background:#fff9f2;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table tbody tr.is-offer-selected,
body:not(.auth-page--login) .event-form .event-offer-versions-table tbody tr.is-premium-selected{
  background:#f3eadf;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__select{
  width:34px;
  text-align:center!important;
  padding-left:4px!important;
  padding-right:4px!important;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__select input[type="checkbox"]{
  display:block;
  -webkit-appearance:none!important;
  appearance:none!important;
  box-sizing:border-box!important;
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  aspect-ratio:1 / 1!important;
  margin:0 auto!important;
  padding:0!important;
  border-radius:50%!important;
  accent-color:var(--accent);
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__version{
  width:72px;
  text-align:center!important;
}
body:not(.auth-page--login) .event-form .event-offer-table-version{
  display:inline-grid;
  grid-template-columns:auto;
  place-items:center;
  min-width:38px;
  height:26px;
  padding:2px 6px;
  border-radius:8px;
  background:#e5f0e8;
  color:#2f674b;
  line-height:1;
}
body:not(.auth-page--login) .event-form .event-offer-table-version--en{
  background:#e8eef7;
  color:#426182;
}
body:not(.auth-page--login) .event-form .event-offer-table-version strong{
  font-size:calc(.66rem + 1px);
  line-height:1;
}
body:not(.auth-page--login) .event-form .event-offer-table-version small{
  margin-top:1px;
  font-size:calc(.51rem + 1px);
  font-weight:800;
  line-height:1;
  letter-spacing:.04em;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__name{
  width:auto;
  min-width:0;
  overflow:hidden;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__name strong,
body:not(.auth-page--login) .event-form .event-offer-versions-table__name small{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__name strong{
  color:var(--ink);
  font-size:calc(.68rem + 1px);
  font-weight:650;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__name small{
  margin-top:1px;
  color:var(--muted);
  font-size:calc(.56rem + 1px);
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__created{
  width:150px;
  color:var(--muted);
  font-size:calc(.61rem + 1px);
  white-space:nowrap;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__actions-head,
body:not(.auth-page--login) .event-form .event-offer-versions-table__actions{
  width:174px;
  text-align:center!important;
}
body:not(.auth-page--login) .event-form .event-offer-versions-table__actions{
  padding:1px 4px!important;
  white-space:nowrap;
}
body:not(.auth-page--login) .event-form .event-offer-table-action{
  display:inline-grid!important;
  place-items:center!important;
  width:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  height:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  margin:0 1px!important;
  padding:0!important;
  border:1px solid rgba(155,111,69,.18)!important;
  border-radius:7px!important;
  background:#fffaf5!important;
  color:var(--accent-dark)!important;
  box-shadow:none!important;
  line-height:0!important;
  vertical-align:middle!important;
  overflow:hidden!important;
  cursor:pointer;
}
body:not(.auth-page--login) .event-form .event-offer-table-action:hover{
  transform:none!important;
  background:#f5eadf!important;
}
body:not(.auth-page--login) .event-form .event-offer-table-action img{
  display:block!important;
  width:24px!important;
  height:24px!important;
  max-width:24px!important;
  object-fit:contain!important;
}
body:not(.auth-page--login) .event-form .event-offer-table-action svg{
  display:block;
  width:15px;
  height:15px;
}
body:not(.auth-page--login) .event-form .event-offer-table-action--restore{
  color:#2f674b!important;
  background:#f1f8f3!important;
  border-color:rgba(47,103,75,.2)!important;
}
body:not(.auth-page--login) .event-form .event-offer-table-action--delete{
  color:#b44c45!important;
  background:#fff8f7!important;
  border-color:rgba(180,76,69,.22)!important;
}
body:not(.auth-page--login) .event-form .event-offer-table-action.is-disabled{
  opacity:.28;
  cursor:default;
}
body:not(.auth-page--login) .event-form .event-offer-versions__empty{
  padding:8px 10px;
  border:1px dashed var(--line);
  border-radius:9px;
  color:var(--muted);
  font-size:calc(.66rem + 1px);
  background:rgba(255,255,255,.55);
}

html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-offer-versions--table{
  background:#102b35!important;
  border-color:#335762!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-offer-versions__table-wrap{
  background:#0f2731;
  border-color:#325560;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-offer-versions-table thead th{
  background:#193945;
  color:#dcf1f4;
  border-color:#325560;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-offer-versions-table tbody tr{
  background:#102b35;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-offer-versions-table th,
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-offer-versions-table td{
  border-color:#294e59;
  color:#eaf8fa;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-offer-versions__empty{
  color:#c4dce3;
  background:#153540;
  border-color:#41616d;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-offer-table-action{
  background:#193943!important;
  border-color:#365d68!important;
  color:#b8eaed!important;
}
html[data-theme="dark"] body:not(.auth-page--login) .event-form .event-offer-table-action:hover{
  background:#24505a!important;
}

@media(max-width:760px){
  body:not(.auth-page--login) .event-form .event-offer-versions__table-head{
    align-items:flex-start;
    flex-direction:column;
  }
  body:not(.auth-page--login) .event-form .event-offer-versions__table-tools{
    width:100%;
    justify-content:flex-start;
  }
  body:not(.auth-page--login) .event-form .event-offer-versions-table{
    min-width:690px;
  }
}

/* 2026-09-08: hlavni kalendar - cileni rucnich udalosti na vsechny / roli / jednotlivce. */
.calendar-v4-vacation-target-field[hidden]{display:none!important}
.calendar-v4-detail__actions [data-calendar-vacation-edit]{white-space:nowrap}

/* 2026-09-09: role, responzivni agenda kalendare a jednotna vyska hornich ovladacu. */
.role-permission-na{
  display:inline-block;
  max-width:82px;
  color:var(--muted);
  font-size:calc(.66rem + 1px);
  line-height:1.15;
  text-align:center;
  white-space:normal;
}

:root{
  --app-header-control-height:42px;
}
body:not(.auth-page--login) .page-header .header-actions .app-todo-bell__button,
body:not(.auth-page--login) .page-header .header-actions .app-changelog-top-link,
body:not(.auth-page--login) .page-header .header-actions .language-switch__button,
body:not(.auth-page--login) .page-header .header-actions > .button,
body:not(.auth-page--login) .page-header .header-actions > a.button{
  box-sizing:border-box!important;
  height:var(--app-header-control-height)!important;
  min-height:var(--app-header-control-height)!important;
  max-height:var(--app-header-control-height)!important;
}
body:not(.auth-page--login) .page-header .header-actions .language-switch__button,
body:not(.auth-page--login) .page-header .header-actions > .button,
body:not(.auth-page--login) .page-header .header-actions > a.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding-top:0!important;
  padding-bottom:0!important;
}

/* Agenda se sklada podle skutecne sirky kalendare, ne pouze podle sirky viewportu. */
.calendar-v4.is-agenda-stacked .calendar-v4__workspace{
  grid-template-columns:minmax(0,1fr)!important;
  align-items:stretch!important;
}
.calendar-v4.is-agenda-stacked .calendar-v4__surface{
  border-right:0!important;
  border-bottom:1px solid var(--cal-line)!important;
}
.calendar-v4.is-agenda-stacked.is-detail-hidden .calendar-v4__surface{
  border-bottom:0!important;
}
.calendar-v4.is-agenda-stacked:not(.is-item-detail-open) .calendar-v4-detail:not(.is-hidden){
  position:static!important;
  inset:auto!important;
  align-self:stretch!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
.calendar-v4.is-agenda-stacked:not(.is-item-detail-open) .calendar-v4-detail__content,
.calendar-v4.is-agenda-stacked .calendar-v4-month-agenda{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
}
.calendar-v4.is-agenda-stacked:not(.is-item-detail-open) .calendar-v4-detail__content,
.calendar-v4.is-agenda-stacked .calendar-v4-month-agenda__list{
  overflow:visible!important;
  max-height:none!important;
}

/* Text udalosti ani stav nesmi pretikat do sousedniho dne. Bunka muze rust do vysky. */
.calendar-v4-month .calendar-v4-chip,
.calendar-v4-month .calendar-v4-month__range{
  min-width:0;
}
.calendar-v4-month .calendar-v4-chip__copy,
.calendar-v4-month .calendar-v4-range__copy{
  min-width:0;
  max-width:100%;
}
.calendar-v4-month .calendar-v4-chip__copy > strong{
  max-width:100%;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  -webkit-line-clamp:unset!important;
}
.calendar-v4-month .calendar-v4-range__copy > strong{
  display:block!important;
  max-width:100%;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  -webkit-line-clamp:unset!important;
}
.calendar-v4-month .calendar-v4-item-status{
  max-width:100%;
  width:auto;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  flex-wrap:wrap;
}

/* Multiple roles: readable in the narrow account card and everywhere else. */
.role-badge-group--separate{display:flex;flex-wrap:wrap;gap:4px;border:0;border-radius:0;overflow:visible;box-shadow:none;background:transparent}
.role-badge-group--separate .role-badge{max-width:100%;min-width:0;white-space:normal;text-align:center}

/* Editable calendar event types --------------------------------------------- */

.calendar-event-type-manager__panel{
  width:min(430px,calc(100vw - 24px));
}
.calendar-event-type-manager__row{
  grid-template-columns:minmax(0,1fr) 58px auto;
  align-items:end;
  gap:7px;
  padding:7px 0;
  border-top:1px solid var(--line);
}
.calendar-event-type-manager__list>strong+.calendar-event-type-manager__row{
  border-top:0;
}
.calendar-event-type-manager__row-name,
.calendar-event-type-manager__row-color{
  min-width:0;
}
.calendar-event-type-manager__row input[type="text"]{
  height:34px;
  padding-block:5px;
  font-size:calc(.72rem + 1px);
}
.calendar-event-type-manager__row input[type="color"]{
  height:34px;
}
.calendar-event-type-manager__row-actions{
  display:flex;
  align-items:center;
  gap:5px;
}
.calendar-event-type-manager__row-actions .button{
  min-height:34px;
}

@media(max-width:700px){
  .calendar-event-type-manager__row{
    grid-template-columns:minmax(0,1fr) 58px;
  }
  .calendar-event-type-manager__row-actions{
    grid-column:1/-1;
    justify-content:flex-end;
  }
}

.content--dashboard{position:relative;background:linear-gradient(145deg,rgba(255,255,255,.22),rgba(247,240,231,.12))}
.content--dashboard>.page-header--actions-only{position:absolute;z-index:8;top:24px;right:42px;pointer-events:none}
.content--dashboard>.page-header--actions-only .header-actions{pointer-events:auto}
.content--dashboard>.page-header--actions-only .header-actions>a.button{display:none!important}
.content--dashboard>.page-header--actions-only .pwa-header-install[hidden]{display:none!important}

.wc-home{width:100%;max-width:1680px;margin:0 auto;display:grid;color:var(--ink)}
.wc-home svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wc-home__welcome{display:flex;justify-content:space-between;}
.wc-home__welcome h1{font-size:calc(clamp(1.7rem,2.1vw,2.35rem) + 1px);}
.wc-home__welcome p{color:var(--muted);}

.wc-home-row-arrow{color:#6f4927;font-size:calc(1.28rem + 1px);line-height:1}

.wc-home-card{min-width:0;border:1px solid rgba(155,111,69,.12);background:rgba(255,255,255,.78);overflow:hidden}
.wc-home-card__head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(155,111,69,.1)}
.wc-home-card__head>div{min-width:0;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.wc-home-card__head>div>span{color:var(--muted);font-size:calc(.58rem + 1px)}
.wc-home-card__link{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;color:#704820;font-size:calc(.58rem + 1px);font-weight:600;white-space:nowrap}
.wc-home-card__link:hover{color:var(--accent-dark)}
.wc-home-card__link--button{padding:0;border:0;background:transparent;cursor:pointer;box-shadow:none}
.wc-home-card__link--button:hover{transform:none}
.wc-home-primary-grid{display:grid;}
.wc-home-secondary-grid{display:grid;}
.wc-home-bottom-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.65fr);gap:14px}

.wc-home-agenda__list,.wc-home-upcoming__list{padding:0 16px}
.wc-home-agenda__row{display:grid;grid-template-columns:92px 20px minmax(0,1fr) auto 14px;align-items:center;gap:8px;min-height:57px;border-bottom:1px solid rgba(155,111,69,.1)}
.wc-home-agenda__row:last-child,.wc-home-upcoming__row:last-child{border-bottom:0}
.wc-home-agenda__row time{color:#4d463f;font-size:calc(.62rem + 1px);font-variant-numeric:tabular-nums}
.wc-home-agenda__rail{align-self:stretch;position:relative;display:grid;place-items:center}
.wc-home-agenda__rail:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#e7ded3;transform:translateX(-50%)}
.wc-home-agenda__row:first-child .wc-home-agenda__rail:before{top:50%}
.wc-home-agenda__row:last-child .wc-home-agenda__rail:before{bottom:50%}
.wc-home-agenda__dot{position:relative;z-index:1;width:9px;height:9px;border-radius:50%;display:block;background:#9b6f45;box-shadow:0 0 0 3px rgba(255,255,255,.9)}
.wc-home-agenda__main,.wc-home-upcoming__main{min-width:0;display:grid;gap:2px}
.wc-home-agenda__main strong,.wc-home-upcoming__main strong{min-width:0;color:#211c18;font-size:calc(.69rem + 1px);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-home-agenda__main small,.wc-home-upcoming__main small{min-width:0;color:var(--muted);font-size:calc(.58rem + 1px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-home-badge{max-width:116px;background:#eee7df;color:#5f554a;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-home-badge--confirmed,.wc-home-status--confirmed{background:#49a866!important;color:#fff}
.wc-home-badge--closed,.wc-home-status--closed{background:#715fb0!important;color:#fff}
.wc-home-badge--offer,.wc-home-status--offer{background:#4f8bca!important;color:#fff}
.wc-home-badge--offer_sent,.wc-home-status--offer_sent,.wc-home-badge--offer-sent,.wc-home-status--offer-sent{background:#e39b32!important;color:#fff}
.wc-home-badge--in_progress,.wc-home-status--in_progress,.wc-home-badge--in-progress,.wc-home-status--in-progress{background:#b37a49!important;color:#fff}
.wc-home-upcoming__list{padding:0 15px}
.wc-home-upcoming__row{display:grid;grid-template-columns:42px minmax(0,1fr) auto 12px;align-items:center;gap:10px;min-height:var(--wc-home-upcoming-row-height,62px);border-bottom:1px solid rgba(155,111,69,.1)}
.wc-home-date-chip{width:40px;height:43px;display:grid;place-items:center;align-content:center;border-radius:10px;background:#f6efe6;color:#3c2a1d;line-height:1}
.wc-home-date-chip strong{font-size:calc(.88rem + 1px)}
.wc-home-date-chip small{margin-top:3px;color:#795738;font-size:calc(.42rem + 1px);font-weight:700}

.wc-home-empty{min-height:96px;display:flex;align-items:center;justify-content:center;gap:11px;padding:18px;color:var(--muted);text-align:left}
.wc-home-empty__icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#f4ede4;color:#8a613b;font-weight:700}
.wc-home-empty div{display:grid;gap:2px}.wc-home-empty strong{color:#554c43;font-size:calc(.67rem + 1px)}.wc-home-empty small{font-size:calc(.55rem + 1px)}
.wc-home-empty--compact{min-height:54px;padding:10px}

.wc-home-tasks__list{min-height:var(--wc-home-task-list-min-height,186px);max-height:260px;overflow:auto;padding:0 14px;scrollbar-width:thin}
.wc-home-tasks .dashboard-todo-notification{display:grid;grid-template-columns:76px minmax(0,1fr) auto;grid-template-areas:"state title due" "state message due";align-items:center;gap:2px 8px;min-height:51px;padding:8px 2px;border-bottom:1px solid rgba(155,111,69,.1);background:transparent!important;border-radius:0!important;box-shadow:none!important;color:inherit!important}
.wc-home-tasks .dashboard-todo-notification:last-child{border-bottom:0}
.wc-home-tasks .dashboard-todo-notification__state{grid-area:state;justify-self:start;padding:4px 7px;border-radius:999px;background:#f4eee6;color:#765536;font-size:calc(.46rem + 1px);font-weight:700}
.wc-home-tasks .dashboard-todo-notification>strong{grid-area:title;min-width:0;font-size:calc(.62rem + 1px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-home-tasks .dashboard-todo-notification>span:not(.dashboard-todo-notification__state){grid-area:message;min-width:0;color:var(--muted);font-size:calc(.52rem + 1px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wc-home-tasks .dashboard-todo-notification>small{grid-area:due;color:#7b5634;font-size:calc(.49rem + 1px);white-space:nowrap}
.wc-home-tasks .dashboard-todo-notification--overdue .dashboard-todo-notification__state{background:#f9e7e4;color:#9a463e}
.wc-home-tasks .dashboard-todo-notification--changes .dashboard-todo-notification__state{background:#fff1ce;color:#866019}
.wc-home-tasks .dashboard-todo-notifications__empty,.wc-home-task-loading{min-height:var(--wc-home-task-empty-height,170px);display:grid;place-items:center;padding:18px;background:transparent!important;color:var(--muted);font-size:calc(.61rem + 1px);text-align:center}

.wc-home-week__days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:10px 13px 8px;border-bottom:1px solid rgba(155,111,69,.08)}
.wc-home-week__day{position:relative;min-height:43px;display:grid;place-items:center;align-content:center;gap:2px;border-radius:9px;color:#777067}
.wc-home-week__day small{font-size:calc(.46rem + 1px)}.wc-home-week__day strong{font-size:calc(.62rem + 1px)}.wc-home-week__day i{position:absolute;top:4px;right:4px;min-width:12px;height:12px;display:grid;place-items:center;border-radius:999px;background:#e8d6c2;color:#6b4829;font-size:calc(.38rem + 1px);font-style:normal}
.wc-home-week__day.is-today{background:linear-gradient(145deg,#9d6d3e,#744820);color:#fff;box-shadow:0 5px 12px rgba(111,72,34,.18)}
.wc-home-week__day.is-today i{background:rgba(255,255,255,.2);color:#fff}
.wc-home-week__events{padding:0 13px 9px}
.wc-home-week__events>a{display:grid;grid-template-columns:9px 42px minmax(0,1fr) 50px;align-items:center;gap:7px;min-height:31px;border-bottom:1px solid rgba(155,111,69,.08);font-size:calc(.52rem + 1px)}
.wc-home-week__events>a:last-child{border-bottom:0}.wc-home-week__events>a time{color:#6f665c}.wc-home-week__events>a strong{min-width:0;font-size:calc(.54rem + 1px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wc-home-week__events>a span{color:var(--muted);font-size:calc(.47rem + 1px);text-align:right}
.wc-home-week__events .wc-home-agenda__dot{width:6px;height:16px;border-radius:999px;box-shadow:none}

.wc-home-actions__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}
.wc-home-actions__grid>a,.wc-home-actions__grid>button{min-width:0;display:grid;place-items:center;align-content:center;gap:7px;padding:9px;border:1px solid rgba(155,111,69,.1);background:linear-gradient(145deg,#fbf5ec,#f4e8d8);color:#39291c;cursor:pointer;box-shadow:none;transition:transform .15s ease,border-color .15s ease}
.wc-home-actions__grid>a:hover,.wc-home-actions__grid>button:hover{transform:translateY(-1px);border-color:rgba(155,111,69,.26)}
.wc-home-actions__grid strong{max-width:100%;font-size:calc(.57rem + 1px);text-align:center;line-height:1.25}
.wc-home-action-icon{display:grid;place-items:center;color:#7b4d26}.wc-home-action-icon svg{width:20px;height:20px}

.wc-home-calendar-dialog{width:min(520px,calc(100vw - 24px));padding:0;border:1px solid rgba(155,111,69,.17);border-radius:22px;background:#fffaf4;color:var(--ink);box-shadow:0 28px 80px rgba(36,25,17,.24)}
.wc-home-calendar-dialog::backdrop{background:rgba(28,22,18,.42);backdrop-filter:blur(3px)}
.wc-home-calendar-dialog__head{display:flex;justify-content:space-between;gap:18px;padding:22px;border-bottom:1px solid rgba(155,111,69,.12)}.wc-home-calendar-dialog__head h3{font-size:calc(1.25rem + 1px)}.wc-home-calendar-dialog__head p{margin:7px 0 0;color:var(--muted);font-size:calc(.68rem + 1px);line-height:1.5}.wc-home-calendar-dialog__head button{width:32px;height:32px;flex:0 0 auto;border:1px solid var(--line);border-radius:10px;background:#fff;color:#6b5b4c;cursor:pointer;font-size:calc(1.05rem + 1px)}
.wc-home-calendar-dialog__options{display:grid;gap:8px;padding:14px}.wc-home-calendar-dialog__options a{display:grid;grid-template-columns:38px minmax(0,1fr) 14px;align-items:center;gap:11px;padding:12px;border:1px solid rgba(155,111,69,.1);border-radius:13px;background:rgba(255,255,255,.78)}.wc-home-calendar-dialog__options a:hover{border-color:rgba(155,111,69,.28);background:#fff}.wc-home-calendar-dialog__options a>span:nth-child(2){display:grid;gap:2px}.wc-home-calendar-dialog__options strong{font-size:calc(.69rem + 1px)}.wc-home-calendar-dialog__options small{color:var(--muted);font-size:calc(.54rem + 1px)}.wc-home-calendar-dialog__options i{font-style:normal;color:#76502d;font-size:calc(1.2rem + 1px)}

.wc-home-legacy-stats{border:1px solid rgba(155,111,69,.12);border-radius:15px;background:rgba(255,255,255,.55);overflow:hidden}
.wc-home-legacy-stats>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:var(--wc-home-stats-padding,13px) 16px;cursor:pointer;list-style:none}.wc-home-legacy-stats>summary::-webkit-details-marker{display:none}.wc-home-legacy-stats>summary>span{display:grid;gap:2px}.wc-home-legacy-stats>summary strong{font-size:calc(.7rem + 1px)}.wc-home-legacy-stats>summary small{color:var(--muted);font-size:calc(.52rem + 1px)}.wc-home-legacy-stats>summary i{font-style:normal;color:#76502d;transition:transform .2s ease}.wc-home-legacy-stats[open]>summary i{transform:rotate(180deg)}.wc-home-legacy-stats__body{padding:0 14px 14px;border-top:1px solid rgba(155,111,69,.1)}.wc-home-legacy-stats__body>.dashboard-monthly-load{padding-top:14px!important}

html[data-theme="dark"] .wc-home-card,html[data-theme="dark"] .wc-home-legacy-stats{background:rgba(31,28,25,.84);border-color:var(--line);box-shadow:none}
html[data-theme="dark"] .wc-home-actions__grid>a,html[data-theme="dark"] .wc-home-actions__grid>button,html[data-theme="dark"] .wc-home-date-chip{background:rgba(255,255,255,.055);color:#e2bf9c}
html[data-theme="dark"] .wc-home__greeting,html[data-theme="dark"] .wc-home-card__link,html[data-theme="dark"] .wc-home-row-arrow{color:#d7b18d}
html[data-theme="dark"] .wc-home-agenda__main strong,html[data-theme="dark"] .wc-home-upcoming__main strong{color:var(--ink)}
html[data-theme="dark"] .wc-home-agenda__rail:before{background:var(--line)}
html[data-theme="dark"] .wc-home-agenda__dot{box-shadow:0 0 0 3px rgba(31,28,25,.9)}
html[data-theme="dark"] .wc-home-calendar-dialog{background:#26221e;border-color:var(--line)}
html[data-theme="dark"] .wc-home-calendar-dialog__options a,html[data-theme="dark"] .wc-home-calendar-dialog__head button{background:rgba(255,255,255,.04);border-color:var(--line)}

@media(max-width:1180px){
  .content--dashboard>.page-header--actions-only{position:static;margin-bottom:10px!important;min-height:0!important}.content--dashboard>.page-header--actions-only .header-actions{margin-left:auto}
  .wc-home__welcome{padding-right:0}.wc-home-primary-grid,.wc-home-bottom-grid{grid-template-columns:1fr}.wc-home-secondary-grid{grid-template-columns:1fr 1fr}.wc-home-actions{grid-column:1/-1}
}
@media(max-width:900px){
  .content--dashboard{padding-top:20px!important}.wc-home{gap:12px}.wc-home__welcome{align-items:flex-start}.wc-home-primary-grid,.wc-home-secondary-grid{grid-template-columns:1fr}.wc-home-actions{grid-column:auto}.wc-home-bottom-grid{grid-template-columns:1fr}.wc-home-card__head{align-items:flex-start}.wc-home-agenda__row{grid-template-columns:76px 17px minmax(0,1fr) 12px}.wc-home-agenda__row .wc-home-badge{display:none}.wc-home-upcoming__row{grid-template-columns:42px minmax(0,1fr) 12px}.wc-home-upcoming__row .wc-home-badge{display:none}
}
@media(max-width:600px){
  .wc-home__welcome{min-height:64px}.wc-home__welcome h1{font-size:calc(1.55rem + 1px)}.wc-home__welcome p{font-size:calc(.66rem + 1px)}.wc-home-actions__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wc-home-card__head{padding:11px 12px}.wc-home-card__head>div>span{display:none}.wc-home-agenda__list,.wc-home-upcoming__list{padding:0 11px}.wc-home-agenda__row{grid-template-columns:64px 15px minmax(0,1fr) 10px;gap:6px}.wc-home-agenda__row time{font-size:calc(.54rem + 1px)}.wc-home-agenda__main strong,.wc-home-upcoming__main strong{font-size:calc(.62rem + 1px)}.wc-home-agenda__main small,.wc-home-upcoming__main small{font-size:calc(.51rem + 1px)}.wc-home-upcoming__row{grid-template-columns:38px minmax(0,1fr) 10px}.wc-home-date-chip{width:36px;height:39px}.wc-home-week__day i{display:none}.wc-home-week__events>a{grid-template-columns:7px 36px minmax(0,1fr)}.wc-home-week__events>a>span{display:none}.wc-home-tasks .dashboard-todo-notification{grid-template-columns:64px minmax(0,1fr);grid-template-areas:"state title" "state message"}.wc-home-tasks .dashboard-todo-notification>small{display:none}.wc-home-legacy-stats>summary small{display:none}
}



/* Dark month agenda: keep the event's runtime color, without beige cards. */
html[data-theme="dark"] .calendar-v4 .calendar-v4-month-agenda__item{
  background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 9%,#102a34);
  border-color:color-mix(in srgb,var(--item-color,var(--cal-accent)) 36%,#2a4f59);
  color:#edf9fb;
}
html[data-theme="dark"] .calendar-v4 .calendar-v4-month-agenda__item:hover,
html[data-theme="dark"] .calendar-v4 .calendar-v4-month-agenda__item:focus-visible{
  background:color-mix(in srgb,var(--item-color,var(--cal-accent)) 16%,#102a34);
  border-color:color-mix(in srgb,var(--item-color,var(--cal-accent)) 70%,#2a4f59);
}
html[data-theme="dark"] .calendar-v4 .calendar-v4-month-agenda__item :is(.calendar-v4-month-agenda__main strong,.calendar-v4-month-agenda__metrics strong){color:#effbfd}
html[data-theme="dark"] .calendar-v4 .calendar-v4-month-agenda__item :is(.calendar-v4-month-agenda__main small,.calendar-v4-month-agenda__metrics small){color:#b9d5dc}
html[data-theme="dark"] .calendar-v4 .calendar-v4-month-agenda__metrics>span{
  background:#0b222d;
  border:1px solid #284752;
  color:#edf9fb;
}
html[data-theme="dark"] .calendar-v4 .calendar-v4-month-agenda__date{color:#71e0e3}
