/**
 * SVČ EPD – základní vizuální systém
 *
 * Tento soubor je poslední vrstvou stylů pluginu. Definuje společné tokeny
 * (barvy, písmo, mezery, rádiusy a stíny) a základní vzhled opakovaných prvků.
 * Funkční nebo doménově specifický vzhled zůstává v style.css/style-v180.css.
 *
 * Pravidlo pro další vývoj: novou barvu, velikost písma nebo rádius nejprve
 * pojmenujte zde a v konkrétní komponentě používejte var(--svc-epd-...).
 */

:is(.svc-epd-app-shell, .svc-epd-wrap, .svc-epd-admin) {
    /* Typografie */
    --svc-epd-font-family: inherit;
    --svc-epd-font-size-xs: 11px;
    --svc-epd-font-size-sm: 12px;
    --svc-epd-font-size-body: 14px;
    --svc-epd-font-size-card-title: 16px;
    --svc-epd-font-size-section-title: 20px;
    --svc-epd-font-size-page-title: 28px;
    --svc-epd-font-size-stat: 24px;
    --svc-epd-line-height-body: 1.45;
    --svc-epd-font-weight-normal: 400;
    --svc-epd-font-weight-medium: 600;
    --svc-epd-font-weight-bold: 700;

    /* Neutrální barvy */
    --svc-epd-color-text: #1d2733;
    --svc-epd-color-text-secondary: #475467;
    --svc-epd-color-muted: #667085;
    --svc-epd-color-zero: #98a2b3;
    --svc-epd-color-border: #dbe2ea;
    --svc-epd-color-border-soft: #e8edf2;
    --svc-epd-color-surface: #ffffff;
    --svc-epd-color-surface-soft: #f8fafc;
    --svc-epd-color-surface-disabled: #f2f4f7;

    /* Akce a stavové barvy */
    --svc-epd-color-primary: #155eef;
    --svc-epd-color-primary-dark: #174ea6;
    --svc-epd-color-primary-soft: #eff8ff;
    --svc-epd-color-success: #067647;
    --svc-epd-color-success-soft: #ecfdf3;
    --svc-epd-color-warning: #b54708;
    --svc-epd-color-warning-soft: #fffaeb;
    --svc-epd-color-danger: #b42318;
    --svc-epd-color-danger-soft: #fff1f3;
    --svc-epd-color-weekend: #dfe8f1;
    --svc-epd-color-holiday: #fff0e8;

    /* Tvar a rozestupy */
    --svc-epd-space-xs: 4px;
    --svc-epd-space-sm: 8px;
    --svc-epd-space-md: 12px;
    --svc-epd-space-lg: 16px;
    --svc-epd-space-xl: 20px;
    --svc-epd-radius-field: 7px;
    --svc-epd-radius-card: 12px;
    --svc-epd-radius-pill: 999px;
    --svc-epd-shadow-card: 0 4px 16px rgba(20, 34, 50, .05);

    color: var(--svc-epd-color-text);
    font-family: var(--svc-epd-font-family);
    font-size: var(--svc-epd-font-size-body);
    line-height: var(--svc-epd-line-height-body);
}

/* 1.17.0 – sdílené UI komponenty a tokeny. */
:is(.svc-epd-app-shell, .svc-epd-wrap, .svc-epd-admin) {
    --svc-epd-blue: #2563eb;
    --svc-epd-blue-hover: #1d4ed8;
    --svc-epd-blue-active: #1e40af;
    --svc-epd-control-border: #b8c2d1;
    --svc-epd-control-hover: #7c8da5;
    --svc-epd-control-text: #1f2937;
    --svc-epd-control-muted: #94a3b8;
    --svc-epd-control-disabled: #f1f5f9;
    --svc-epd-error: #dc2626;
    --svc-epd-error-text: #b91c1c;
    --svc-epd-focus-ring: 0 0 0 3px rgba(37,99,235,.22);
    --svc-epd-error-ring: 0 0 0 3px rgba(220,38,38,.16);
    --svc-epd-control-height: 38px;
    --svc-epd-control-radius: 6px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

:is(.svc-epd-wrap,.svc-epd-admin) :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea,button,.button) { font-family:inherit!important;font-size:14px; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(input:not([type="checkbox"]):not([type="radio"]),select) { min-height:var(--svc-epd-control-height);height:var(--svc-epd-control-height);border:1px solid var(--svc-epd-control-border)!important;border-radius:var(--svc-epd-control-radius)!important;background:#fff!important;color:var(--svc-epd-control-text);padding:0 10px; }
:is(.svc-epd-wrap,.svc-epd-admin) select { min-width:140px;padding-right:34px; }
:is(.svc-epd-wrap,.svc-epd-admin) textarea { min-height:84px;border:1px solid var(--svc-epd-control-border)!important;border-radius:var(--svc-epd-control-radius)!important;padding:8px 10px; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):hover { border-color:var(--svc-epd-control-hover)!important; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(input,select,textarea,button,.button,a):focus-visible { outline:0;box-shadow:var(--svc-epd-focus-ring)!important; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(input,select,textarea):disabled { background:var(--svc-epd-control-disabled)!important;color:var(--svc-epd-control-muted)!important;border-color:#cbd5e1!important; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(input,textarea)[readonly] { background:#f8fafc!important;color:#475569; }
:is(.svc-epd-wrap,.svc-epd-admin) ::placeholder { color:var(--svc-epd-control-muted);opacity:1; }

:is(.svc-epd-wrap,.svc-epd-admin) input[type="checkbox"],:is(.svc-epd-wrap,.svc-epd-admin) input[type="radio"] { appearance:none!important;-webkit-appearance:none!important;position:relative;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;margin:0!important;border:1px solid var(--svc-epd-control-border)!important;background:#fff!important;box-shadow:none!important;vertical-align:middle; }
:is(.svc-epd-wrap,.svc-epd-admin) input[type="checkbox"] { border-radius:4px!important; }
:is(.svc-epd-wrap,.svc-epd-admin) input[type="radio"] { border-radius:50%!important; }
:is(.svc-epd-wrap,.svc-epd-admin) input[type="checkbox"]:checked { border-color:var(--svc-epd-blue)!important;background:var(--svc-epd-blue)!important; }
:is(.svc-epd-wrap,.svc-epd-admin) input[type="checkbox"]::before { content: none !important;display: none !important; }
:is(.svc-epd-wrap,.svc-epd-admin) input[type="checkbox"]:checked::after { content:""!important;position:absolute;left:5px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg); }
:is(.svc-epd-wrap,.svc-epd-admin) input[type="radio"]:checked { border-color:var(--svc-epd-blue)!important; }
:is(.svc-epd-wrap,.svc-epd-admin) input[type="radio"]:checked:hover { background:#fff!important; }
:is(.svc-epd-wrap,.svc-epd-admin) input[type="radio"]:checked::after { content:""!important;position:absolute;inset:4px;border-radius:50%;background:var(--svc-epd-blue); }
:is(.svc-epd-wrap,.svc-epd-admin) :where(label:has(input[type="checkbox"]),label:has(input[type="radio"])) { display:inline-flex;align-items:center;gap:8px;min-height:36px;cursor:pointer; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(input[type="checkbox"],input[type="radio"]):hover { border-color:var(--svc-epd-control-hover)!important; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(input[type="checkbox"],input[type="radio"]):checked:hover { border-color:var(--svc-epd-blue-hover)!important;background-color:var(--svc-epd-blue-hover)!important; }

:is(.svc-epd-wrap,.svc-epd-admin) :where(.svc-epd-button,.button) { box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 14px;border-radius:var(--svc-epd-control-radius)!important;font-size:14px!important;line-height:1.2;text-decoration:none; }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-button { border:1px solid var(--svc-epd-blue);background:var(--svc-epd-blue);color:#fff; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(.button-primary) { border-color:var(--svc-epd-blue)!important;background:var(--svc-epd-blue)!important;color:#fff!important; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(.button-primary):hover { border-color:var(--svc-epd-blue-hover)!important;background:var(--svc-epd-blue-hover)!important; }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-button:hover { background:var(--svc-epd-blue-hover);border-color:var(--svc-epd-blue-hover); }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-button:active { background:var(--svc-epd-blue-active); }
:is(.svc-epd-wrap,.svc-epd-admin) :where(.svc-epd-button-secondary,.button:not(.button-primary):not(.button-link-delete)) { background:#fff;color:var(--svc-epd-control-text);border-color:var(--svc-epd-control-border); }
:is(.svc-epd-wrap,.svc-epd-admin) :where(.svc-epd-button-danger,.button-link-delete) { color:#fff!important;background:var(--svc-epd-error)!important;border-color:var(--svc-epd-error)!important; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(.svc-epd-compact,.svc-epd-inline-detail .button,.svc-epd-inline-detail .svc-epd-button) { min-height:32px;height:32px;padding:0 11px;font-size:13px!important; }

:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-inline-detail :where(.svc-epd-absence-block>p,.svc-epd-travel-block>p,.svc-epd-direct-head p,.svc-epd-inline-section>.description) { display:none; }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-inline-items :where(th,td) { text-align:left!important;vertical-align:top;font-family:inherit!important; }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-inline-items th { font-size:12px;font-weight:600; }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-field-help { color:#64748b;font-size:13px; }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-field-error,:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-inline-error { display:block;margin-top:4px;color:var(--svc-epd-error-text);font-size:13px;line-height:18px; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(input,select,textarea).has-error { border-color:var(--svc-epd-error)!important;box-shadow:var(--svc-epd-error-ring)!important; }

.svc-epd-accordion-table :where(th,td) { text-align:left!important; }
.svc-epd-value-primary { color:var(--svc-epd-color-text);font-weight:600; }
.svc-epd-value-separator,.svc-epd-value-secondary { color:#64748b;font-size:12px; }
.svc-epd-day-status { display:flex;flex-wrap:wrap;align-items:center;gap:3px; }
.svc-epd-day-status .svc-epd-tag { display:inline-flex!important;width:auto!important;max-width:none!important;margin:0!important;white-space:nowrap; }
.svc-epd-work-fund .work-tag,.svc-epd-meal-cell .meal-manual-tag { display:none!important; }
.svc-epd-tag.leave-status.status-draft,.svc-epd-leave-state.status-draft { color:#1d4ed8;background:#dbeafe; }
.svc-epd-tag.leave-status.status-pending,.svc-epd-leave-state.status-pending { color:#92400e;background:#fef3c7; }
.svc-epd-tag.leave-status.status-approved,.svc-epd-leave-state.status-approved { color:#166534;background:#dcfce7; }
.svc-epd-tag.leave-status.status-rejected,.svc-epd-leave-state.status-rejected { color:#991b1b;background:#fee2e2; }
:is(.svc-epd-wrap,.svc-epd-admin) input[type="radio"]:checked:hover { background:#fff!important; }
.svc-epd-summary-area { display:flex;flex-direction:column; }
.svc-epd-summary-lines { display:flex;flex:1;flex-direction:column; }
.svc-epd-summary-result { margin-top:auto!important;padding-top:8px!important;border-top:0!important; }
.svc-epd-summary-result strong.is-mismatch { color:var(--svc-epd-error)!important; }
.svc-epd-summary-area h4 { display:flex;align-items:center;gap:5px; }
.svc-epd-context-help { flex:0 0 18px;align-self:center; }
.svc-epd-info-actions { display:flex;align-items:center;gap:10px;margin-bottom:12px; }
.svc-epd-info-actions .svc-epd-deadline { flex:1;margin:0; }
.svc-epd-absence-actions { display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-5px 0 12px;padding:10px 14px;border:1px solid var(--svc-epd-color-border);border-top:0;border-radius:0 0 10px 10px;background:#fff; }
.svc-epd-absence-actions[hidden] { display: none; }

.svc-epd-modal-backdrop { position:fixed;inset:0;z-index:100110;background:rgba(15,23,42,.42); }
.svc-epd-modal { position:fixed;z-index:100111;top:50%;left:50%;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;transform:translate(-50%,-50%);box-sizing:border-box;padding:20px;border-radius:10px;background:#fff;box-shadow:0 18px 48px rgba(15,23,42,.18); }
.svc-epd-modal[hidden],.svc-epd-modal-backdrop[hidden] { display:none!important; }
.svc-epd-modal form { display:grid;gap:12px; }
.svc-epd-modal form>label { display:grid;gap:4px; }
.svc-epd-modal fieldset { display:flex;gap:16px;border:0;padding:0;margin:0; }
.svc-epd-modal legend { margin-bottom:5px;font-weight:600; }
.svc-epd-modal-close { position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:24px;cursor:pointer; }
.svc-epd-modal-actions { display:flex;justify-content:flex-end;gap:8px; }
.svc-epd-help-popover { width:min(420px,calc(100vw - 32px));padding:20px;border-radius:10px;box-shadow:0 18px 48px rgba(15,23,42,.18); }
.svc-epd-help-popover-backdrop { background:rgba(15,23,42,.42); }
.svc-epd-help-part[hidden] { display:none; }

.svc-epd-toast { position:fixed;z-index:100120;top:16px;right:16px;width:min(320px,calc(100vw - 32px));box-sizing:border-box;padding:12px 42px 12px 14px;border:1px solid;border-left-width:4px;border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.16); }
.svc-epd-toast button { position:absolute;right:9px;top:7px;border:0;background:transparent;font-size:20px;cursor:pointer; }
.svc-epd-toast-success { background:#f0fdf4;border-color:#86efac;border-left-color:#16a34a; }
.svc-epd-toast-info { background:#eff6ff;border-color:#bfdbfe;border-left-color:#2563eb; }
.svc-epd-toast-warning { background:#fffbeb;border-color:#fcd34d;border-left-color:#d97706; }
.svc-epd-toast-error { background:#fef2f2;border-color:#fca5a5;border-left-color:#dc2626; }
[data-tooltip] { position:relative; }
[data-tooltip]:is(:hover,:focus)::after { content:attr(data-tooltip);position:absolute;z-index:100130;left:50%;bottom:calc(100% + 7px);width:max-content;max-width:280px;transform:translateX(-50%);padding:6px 8px;border-radius:6px;background:#0f172a;color:#fff;font-size:12px;font-weight:400;line-height:1.35;white-space:normal; }
[data-tooltip].svc-epd-tooltip-hidden::after { display:none!important; }
[data-tooltip]::after { opacity:0;visibility:hidden;transition:opacity .12s ease .35s,visibility 0s linear .35s; }
[data-tooltip]:is(:hover,:focus)::after { opacity:1;visibility:visible; }

@media(max-width:700px){.svc-epd-info-actions{align-items:stretch;flex-direction:column}.svc-epd-feedback-launch{align-self:flex-start}}

/* Jednotná hierarchie nadpisů – nemění velikost nadpisů WordPressu mimo plugin. */
:is(.svc-epd-wrap, .svc-epd-admin) :where(h1, .svc-epd-page-title) {
    color: var(--svc-epd-color-text);
    font-size: var(--svc-epd-font-size-page-title);
    font-weight: var(--svc-epd-font-weight-bold);
    line-height: 1.2;
}

:is(.svc-epd-wrap, .svc-epd-admin) :where(h2, .svc-epd-section-title) {
    color: var(--svc-epd-color-text);
    font-size: var(--svc-epd-font-size-section-title);
    font-weight: var(--svc-epd-font-weight-bold);
    line-height: 1.25;
}

:is(.svc-epd-wrap, .svc-epd-admin) :where(h3, .svc-epd-card-title) {
    color: var(--svc-epd-color-text);
    font-size: var(--svc-epd-font-size-card-title);
    font-weight: var(--svc-epd-font-weight-medium);
    line-height: 1.3;
}

/* Sdílené textové role. */
:is(.svc-epd-wrap, .svc-epd-admin) :where(.description, small, .svc-epd-muted) {
    color: var(--svc-epd-color-muted);
}

:is(.svc-epd-wrap, .svc-epd-admin) .is-zero {
    color: var(--svc-epd-color-zero) !important;
    font-weight: var(--svc-epd-font-weight-normal) !important;
}

/* Karty a souhrnné ukazatele. */
:is(.svc-epd-wrap, .svc-epd-admin) :where(.svc-epd-card, .svc-epd-summary > div) {
    border-color: var(--svc-epd-color-border);
    border-radius: var(--svc-epd-radius-card);
    background: var(--svc-epd-color-surface);
    box-shadow: var(--svc-epd-shadow-card);
}

:is(.svc-epd-wrap, .svc-epd-admin) :where(.svc-epd-summary, .svc-epd-year-stats, .svc-epd-month-stats) span {
    color: var(--svc-epd-color-muted);
    font-size: var(--svc-epd-font-size-sm);
    font-weight: var(--svc-epd-font-weight-normal);
}

:is(.svc-epd-wrap, .svc-epd-admin) :where(.svc-epd-summary, .svc-epd-stat) strong {
    color: var(--svc-epd-color-text);
    font-weight: var(--svc-epd-font-weight-bold);
}

/* Tabulky. */
:is(.svc-epd-wrap, .svc-epd-admin) :where(.svc-epd-table, .widefat) th {
    color: var(--svc-epd-color-text-secondary);
    font-size: var(--svc-epd-font-size-sm);
    font-weight: var(--svc-epd-font-weight-medium);
}

:is(.svc-epd-wrap, .svc-epd-admin) :where(.svc-epd-table, .widefat) :where(th, td) {
    border-color: var(--svc-epd-color-border-soft);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-table tr.weekend {
    background: var(--svc-epd-color-weekend);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-table tr.holiday {
    background: var(--svc-epd-color-holiday);
}

/* Formulářová pole. Specifická šířka zůstává odpovědností konkrétní komponenty. */
:is(.svc-epd-wrap, .svc-epd-admin) :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    box-sizing: border-box;
    border-color: var(--svc-epd-color-border) !important;
    border-radius: var(--svc-epd-radius-field) !important;
    background: var(--svc-epd-color-surface) !important;
    color: var(--svc-epd-color-text);
    font: inherit;
}

:is(.svc-epd-wrap, .svc-epd-admin) :where(input, select, textarea):focus {
    border-color: var(--svc-epd-color-primary) !important;
    box-shadow: 0 0 0 1px var(--svc-epd-color-primary) !important;
    outline: none;
}

:is(.svc-epd-wrap, .svc-epd-admin) :where(input, select, textarea):disabled {
    background: var(--svc-epd-color-surface-disabled) !important;
    color: var(--svc-epd-color-muted);
}

/* Tlačítka a odkazy fungující jako tlačítka. */
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-button {
    border-radius: var(--svc-epd-radius-field);
    background: var(--svc-epd-color-primary);
    font-size: var(--svc-epd-font-size-body);
    font-weight: var(--svc-epd-font-weight-medium);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-button-secondary {
    border-color: var(--svc-epd-color-border);
    background: var(--svc-epd-color-surface);
    color: var(--svc-epd-color-text-secondary) !important;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-button-danger {
    background: var(--svc-epd-color-danger);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-button-warning {
    background: var(--svc-epd-color-warning);
}

/* Odevzdání je zásadní akce a musí zůstat viditelné i v plovoucí navigaci. */
.svc-epd-app-shell .svc-epd-submit-button {
    background: var(--svc-epd-color-primary, #155eef) !important;
    color: #ffffff !important;
}

.svc-epd-app-shell .svc-epd-submit-button:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.svc-epd-app-shell .svc-epd-side-locked {
    grid-template-columns: 18px 1fr;
    align-items: start;
    color: var(--svc-epd-color-muted);
}

.svc-epd-app-shell .svc-epd-side-locked .dashicons {
    margin-top: 1px;
}

.svc-epd-app-shell .svc-epd-side-locked strong,
.svc-epd-app-shell .svc-epd-side-locked small {
    grid-column: 2;
}

.svc-epd-app-shell .svc-epd-side-locked strong {
    color: var(--svc-epd-color-text-secondary);
    font-size: var(--svc-epd-font-size-sm);
}

.svc-epd-app-shell .svc-epd-side-locked small {
    font-size: var(--svc-epd-font-size-xs);
    line-height: 1.4;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-benefit-grid > .has-warning {
    border-color: #f5c26b;
    background: var(--svc-epd-color-warning-soft);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-benefit-grid > .has-warning b {
    color: var(--svc-epd-color-warning);
}

/* Společná typografie štítků a stavů; jejich významová barva zůstává specifická. */
:is(.svc-epd-wrap, .svc-epd-admin) :where(.svc-epd-status, .svc-epd-tag, .svc-epd-direct-status, .svc-epd-health) {
    border-radius: var(--svc-epd-radius-pill);
    font-size: var(--svc-epd-font-size-xs);
    font-weight: var(--svc-epd-font-weight-bold);
    line-height: 1.35;
}

:is(.svc-epd-wrap, .svc-epd-admin) :where(.plus, .svc-epd-check-ok) {
    color: var(--svc-epd-color-success);
}

:is(.svc-epd-wrap, .svc-epd-admin) :where(.minus, .svc-epd-check-error) {
    color: var(--svc-epd-color-danger);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-main-row td.plus {
    color: var(--svc-epd-color-success);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-main-row td.minus {
    color: var(--svc-epd-color-danger);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-check-warning {
    color: var(--svc-epd-color-warning);
}

@media (max-width: 700px) {
    :is(.svc-epd-wrap, .svc-epd-admin) {
        --svc-epd-font-size-page-title: 24px;
        --svc-epd-font-size-section-title: 18px;
    }
}

/* 1.14.0 – jednotné měsíční a roční přehledy. */
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-period-overview { padding: 16px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-period-overview > h3 { margin: 0 0 13px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-period-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    border: 1px solid var(--svc-epd-color-border);
    border-radius: var(--svc-epd-radius-card);
    overflow: hidden;
    background: #fff;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area {
    min-width: 0;
    padding: 13px 15px;
    border-right: 1px solid var(--svc-epd-color-border);
    border-bottom: 1px solid var(--svc-epd-color-border);
    background: var(--svc-epd-color-surface-soft);
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.span-2 { grid-column: span 2; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.span-3 { grid-column: span 3; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.span-6 { grid-column: span 6; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area:nth-last-child(-n+3) { border-bottom: 0; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area:last-child { border-right: 0; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area h4 {
    margin: 0 0 9px;
    color: var(--svc-epd-color-text);
    font-size: var(--svc-epd-font-size-body);
    line-height: 1.3;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-lines { display: grid; gap: 5px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-lines p {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin: 0;
    color: var(--svc-epd-color-text-secondary);
    font-size: 11px;
    line-height: 1.4;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-lines p strong {
    flex: 0 0 auto;
    color: var(--svc-epd-color-text);
    font-size: 14px;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-lines p strong.plus {
    color: var(--svc-epd-color-success);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-lines p strong.minus {
    color: var(--svc-epd-color-danger);
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-lines .svc-epd-summary-detail {
    display: block;
    color: var(--svc-epd-color-muted);
    font-size: 10px;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-lines .svc-epd-summary-result {
    margin-top: 4px;
    padding-top: 7px;
    border-top: 1px solid var(--svc-epd-color-border);
    font-weight: 650;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-lines .svc-epd-summary-result strong { font-size: 18px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-muted { opacity: .72; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.has-warning { background: var(--svc-epd-color-warning-soft); }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-deadline,
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-context-banner { border-width: 1px; box-shadow: inset 4px 0 0 var(--svc-epd-color-primary); }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-correction-filter,
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-adjustment-fields {
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    gap: 10px;
    margin: 14px 0;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-correction-filter label,
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-adjustment-fields label { display: grid; gap: 4px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-correction-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(130px, 1fr));
    gap: 8px;
    margin: 12px 0;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-correction-summary > div {
    display: grid;
    gap: 3px;
    padding: 10px;
    background: var(--svc-epd-color-surface-soft);
    border-radius: var(--svc-epd-radius-control);
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-correction-summary span { color: var(--svc-epd-color-muted); font-size: 11px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-correction-summary strong { font-size: 16px; }

@media (max-width: 1100px) {
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-period-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.span-2,
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.span-3 { grid-column: span 1; }
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.span-6 { grid-column: span 2; }
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area:nth-last-child(-n+3) { border-bottom: 1px solid var(--svc-epd-color-border); }
}
@media (max-width: 650px) {
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-period-grid,
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-correction-summary { grid-template-columns: 1fr; }
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.span-2,
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.span-3,
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area.span-6 { grid-column: auto; }
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-area { border-right: 0; }
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-correction-filter { align-items: stretch; flex-direction: column; }
}

/* Kalendář 1.15: informační řádek a jednotné rozbalovací zobáčky. */
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-row-toggle span[aria-hidden] {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: var(--svc-epd-color-muted);
    font-size: 25px;
    font-family: Arial, sans-serif;
    font-weight: 400;
    line-height: 1;
    transform: rotate(0deg);
    transition: color .15s, transform .15s;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-collapsible > summary:after { font-family: Arial, sans-serif; font-weight: 400; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-row-toggle:hover span[aria-hidden],
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-row-toggle:focus span[aria-hidden] { color: var(--svc-epd-color-primary-dark); }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-row-toggle[aria-expanded="true"] span[aria-hidden] { transform: rotate(90deg); }

/* Stejný zobáček v hlavním řádku dne i ve vnořených blocích detailu. */
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-inline-section > details > summary {
    display: flex;
    align-items: center;
    gap: 7px;
    list-style: none;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-inline-section > details > summary::-webkit-details-marker { display: none; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-inline-section > details > summary::before {
    content: "›";
    display: inline-block;
    color: var(--svc-epd-color-muted);
    font-size: 21px;
    line-height: 1;
    transition: transform .15s;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-inline-section > details[open] > summary::before { transform: rotate(90deg); }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-summary { min-width: 105px; white-space: nowrap; font-weight: 650; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-accordion-table { min-width: 1040px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-note-summary { max-width: 210px; overflow-wrap: anywhere; color: var(--svc-epd-color-text-secondary); }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields {
    display: grid;
    grid-template-columns: 120px 120px minmax(220px, 1fr) auto;
    gap: 9px;
    align-items: end;
    margin: 12px 0;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields label,
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-deviation-fields label { display: grid; gap: 4px; font-size: 12px; font-weight: 650; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields input,
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-deviation-fields input,
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-deviation-fields select { box-sizing: border-box; width: 100%; min-width: 0; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-deviation-fields {
    display: grid;
    grid-template-columns: minmax(190px, .7fr) minmax(260px, 1.3fr);
    gap: 9px;
    margin: 0 0 14px;
    padding: 10px;
    border-radius: var(--svc-epd-radius-control);
    background: var(--svc-epd-color-surface-soft);
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-break-block > h4 { margin: 13px 0 5px; font-size: 13px; }
@media (max-width: 900px) {
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-note { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields,
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-deviation-fields { grid-template-columns: 1fr; }
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-note { grid-column: auto; }
}

/* PPČ 1.16: více samostatných bloků a jednoduchá kontrola zástupu. */
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-head,
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-tools { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-head > div { min-width: 0; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-day-total { flex: 0 0 auto; padding: 6px 10px; border-radius: 999px; color: #175cd3; background: var(--svc-epd-color-primary-soft); font-size: 12px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-tools { justify-content: flex-start; flex-wrap: wrap; margin: 10px 0; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-tools span { margin-left: auto; color: var(--svc-epd-color-muted); font-size: 11px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-direct { min-width: 1120px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-direct input[type="time"] { width: 96px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-direct input[type="text"] { min-width: 165px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-direct select { min-width: 155px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-coverage-toggle { display: flex; align-items: center; gap: 5px; min-width: 145px; font-weight: 650; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-direct tr.is-cancelled { background: var(--svc-epd-color-warning-soft); }

/* Rozhraní 1.16.1: jednotný kalendář, přehledy a kontextová nápověda. */
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-work { background:#eff6ff; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-direct { background:#f5f3ff; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-benefit:nth-of-type(3) { background:#f0fdf4; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-benefit:nth-of-type(4) { background:#f0f9ff; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-benefit:nth-of-type(5) { background:#fff7ed; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-meals { background:#f0fdf4; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-travel { background:#f0f9ff; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-absence { background:#fff7ed; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-summary-result strong.is-zero { color:var(--svc-epd-color-muted); }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-deadline { padding:12px 16px;background:#eaf3ff;border-color:#93c5fd;box-shadow:inset 5px 0 0 #2563eb; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-deadline.is-overdue { background:#fff7d6;border-color:#f6c344;box-shadow:inset 5px 0 0 #d97706; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-summary { font-weight:400; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-note-summary input { width:100%;min-width:125px;max-width:190px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-day-status { min-width:135px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-day-status .svc-epd-tag { display:block;width:max-content;max-width:150px;margin:2px 0; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields { grid-template-columns:105px 105px minmax(170px,.8fr) minmax(210px,1.2fr) auto; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields label { font-weight:400; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-break-block > h4 { display:flex;align-items:center;gap:5px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-breaks {  width: auto !important; max-width: none !important; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-breaks td:nth-child(4) { min-width:70px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-admin-extra-work { margin-top:12px;padding-top:10px;border-top:1px solid var(--svc-epd-color-border); }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-admin-extra-work > summary { cursor:pointer; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-trip-fields { grid-template-columns:90px 90px minmax(150px,1fr) minmax(170px,1.2fr) 130px 130px; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-inline-detail :is(.button,.svc-epd-button) {
    min-height:30px;
    padding:4px 9px;
    font-size:11px;
    line-height:1.4;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-trip-order-action .button {
    min-height: 38px;
    height: 38px;
    padding: 0 14px;
    font-size: 14px !important;
    line-height: 1 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-inline-detail :is(.button,.svc-epd-button) { min-height:30px;padding:4px 9px;font-size:11px;line-height:1.4; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-coverage-toggle input[type="checkbox"] { -webkit-appearance:none;appearance:none;position:relative;display:inline-block;flex:0 0 19px;width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;margin:0!important;padding:0!important;border:1px solid #94a3b8!important;border-radius:4px!important;background:#fff!important;cursor:pointer; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-coverage-toggle input[type="checkbox"]:checked { border-color:var(--svc-epd-color-primary)!important;background:var(--svc-epd-color-primary)!important; }
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-coverage-toggle input[type="checkbox"]:checked::after { content:"";position:absolute;left:5px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg); }
.svc-epd-context-help { display:inline-grid;place-items:center;width:18px;height:18px;min-width:18px;padding:0;border:1px solid #93a4bb;border-radius:50%;background:#fff;color:#385477;font:600 11px/1 sans-serif;cursor:pointer;vertical-align:middle; }
.svc-epd-context-help:hover,.svc-epd-context-help:focus { border-color:#2563eb;color:#175cd3;background:#eff6ff; }
.svc-epd-help-popover-backdrop { position:fixed;inset:0;z-index:100100;background:rgba(15,23,42,.34); }
.svc-epd-help-popover { position:fixed;z-index:100101;top:50%;left:50%;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;transform:translate(-50%,-50%);box-sizing:border-box;padding:22px;background:#fff;border:1px solid #cbd5e1;border-radius:12px;box-shadow:0 22px 65px rgba(15,23,42,.25); }
.svc-epd-help-popover[hidden],.svc-epd-help-popover-backdrop[hidden] { display:none!important; }
.svc-epd-help-popover h3 { margin:0 35px 6px 0; }
.svc-epd-help-popover h4 { margin:15px 0 5px;font-size:13px; }
.svc-epd-help-popover p { margin:5px 0;color:var(--svc-epd-color-text-secondary); }
.svc-epd-help-popover-close { position:absolute;right:12px;top:10px;border:0;background:transparent;color:#64748b;font-size:25px;cursor:pointer; }
.svc-epd-help-popover-link { display:inline-block;margin-top:14px; }
body.svc-epd-help-open { overflow:hidden; }
@media(max-width:1150px){:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields,:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-trip-fields{grid-template-columns:repeat(2,minmax(0,1fr));}:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields label:nth-child(4),:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-trip-fields label:nth-child(3),:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-trip-fields label:nth-child(4){grid-column:span 2;}}
@media(max-width:650px){:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields,:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-trip-fields{grid-template-columns:1fr;}:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-worktime-fields label:nth-child(4),:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-trip-fields label:nth-child(3),:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-trip-fields label:nth-child(4){grid-column:auto;}}
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-direct select:disabled { opacity: .5; cursor: not-allowed; }
@media (max-width: 700px) {
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-head { align-items: flex-start; }
    :is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-direct-tools span { width: 100%; margin-left: 0; }
}

/* Konečná normalizační vrstva 1.17.0 má přednost před historickými pravidly. */
:is(.svc-epd-wrap,.svc-epd-admin) :where(input:not([type="checkbox"]):not([type="radio"]),select) { min-height:38px;height:38px;border-color:#b8c2d1!important;border-radius:6px!important;font-family:inherit!important;font-size:14px!important;line-height:1.3; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(textarea) { min-height:84px;border-color:#b8c2d1!important;border-radius:6px!important;font-family:inherit!important;font-size:14px!important;line-height:1.4; }
:is(.svc-epd-wrap,.svc-epd-admin) :where(input[type="checkbox"],input[type="radio"]) { width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important; }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-summary-result { margin-top:auto!important;padding-top:8px!important;border-top:0!important; }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-summary-result strong.is-mismatch { color:#dc2626!important; }
:is(.svc-epd-wrap,.svc-epd-admin) .svc-epd-summary-area h4 { display:flex;align-items:center;gap:5px; }
.svc-epd-accordion-table :where(th,td) { text-align:left!important; }
.svc-epd-day-status { display:flex;flex-wrap:wrap;align-items:center;gap:3px; }
.svc-epd-day-status .svc-epd-tag { display:inline-flex!important;width:auto!important;max-width:none!important;margin:0!important;white-space:nowrap; }

/* Přestávky – pouze jemné dorovnání globálního stylu */
:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-breaks th {
    padding: 2px 8px 1px 0 !important;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-breaks td {
    padding: 1px 8px 3px 0 !important;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-breaks th {
    font-size: 12px;
    font-weight: 400;
    text-transform: none;
    letter-spacing: normal;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-dynamic-breaks {
    margin-top: 2px;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-button-remove {
    background: #fff7f7 !important;
    border-color: #f3c7c7 !important;
    color: #b91c1c !important;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-button-remove:hover {
    background: #fef2f2 !important;
    border-color: #fca5a5 !important;
    color: #991b1b !important;
}

:is(.svc-epd-wrap, .svc-epd-admin) .svc-epd-section-help {
    margin: 4px 0 8px;
}
