/* ==========================================================================
   OKVMG V1.9 – doplňky stylu (globální hledání, dashboard 2.0, progress,
   kalendář, profil pracovníka, certifikace, mobilní úpravy, editor).
   Jen nové třídy – stávající vzhled (vč. zákaznické části) se nemění.
   ========================================================================== */

/* ---------- Globální hledání ---------- */
.sidebar nav a.gs-trigger { position: relative; }
.gs-kbd { margin-left: auto; font: 600 10px/1 'Archivo', sans-serif; color: var(--steel-light); border: 1px solid #4a4644; padding: 3px 5px; letter-spacing: .04em; }
.gs-overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(20,19,18,.55); display: flex; align-items: flex-start; justify-content: center; padding: 10vh 16px 16px; }
.gs-overlay[hidden] { display: none; }
html.gs-open { overflow: hidden; }
.gs-dialog { width: 100%; max-width: 640px; background: var(--white); border: 2px solid var(--ink); box-shadow: 0 18px 50px rgba(0,0,0,.28); display: flex; flex-direction: column; max-height: 78vh; }
.gs-input-wrap { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 2px solid var(--ink); color: var(--steel); }
.gs-input { flex: 1; border: none !important; outline: none; font-size: 16px; padding: 6px 0 !important; background: transparent; min-width: 0; }
.gs-close { border: 1px solid var(--line); background: var(--light); font: 600 11px 'Archivo', sans-serif; padding: 4px 7px; cursor: pointer; color: var(--steel); }
.gs-status { padding: 8px 16px; font-size: 12.5px; color: var(--steel); min-height: 0; }
.gs-status:empty { display: none; }
.gs-status a { color: var(--ink); font-weight: 700; text-decoration: underline; }
.gs-list { overflow-y: auto; padding-bottom: 6px; }
.gs-group-title { font-size: 10.5px; text-transform: uppercase; letter-spacing: .14em; color: var(--steel); font-weight: 700; padding: 12px 16px 4px; }
.gs-item { display: flex; flex-direction: column; gap: 2px; padding: 9px 16px; color: var(--ink); text-decoration: none; border-left: 3px solid transparent; }
.gs-item:hover, .gs-item.is-sel { background: var(--light); border-left-color: var(--ink); }
.gs-title { font-weight: 700; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs-sub { font-size: 12px; color: var(--steel); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs-hint { display: flex; gap: 16px; padding: 8px 16px; border-top: 1px solid var(--line-soft); font-size: 11.5px; color: var(--steel); }
.gs-hint kbd { border: 1px solid var(--line); padding: 1px 5px; font: 600 10.5px 'Archivo', sans-serif; margin-right: 3px; background: var(--light); }
.gs-page-form { display: flex; gap: 10px; margin-bottom: 18px; }
.gs-page-form input { flex: 1; font-size: 16px; }
.gs-page-group { padding: 6px 0 !important; }
.gs-page-group .gs-group-title { padding-top: 10px; }
.gs-count { background: var(--ink); color: #fff; padding: 1px 6px; margin-left: 6px; font-size: 10px; }
.gs-empty { color: var(--steel); }
@media (max-width: 820px) {
  .gs-kbd, .gs-hint { display: none; }
  .gs-overlay { padding: 0; }
  .gs-dialog { max-width: none; max-height: 100vh; height: 100%; border: none; }
}

/* ---------- Průběh zakázky (progress) ---------- */
.pg-card { background: var(--white); border: 2px solid var(--ink); padding: 14px 16px; margin-bottom: 14px; }
.pg-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.pg-head strong { text-transform: uppercase; font-size: 12px; letter-spacing: .06em; display: flex; align-items: center; gap: 6px; }
.pg-total { font-size: 13px; color: var(--steel); }
.pg-total b { font-size: 20px; color: var(--ink); font-weight: 800; margin-left: 4px; }
.pg-help { display: inline-flex; width: 16px; height: 16px; border: 1px solid var(--steel-light); border-radius: 50%; align-items: center; justify-content: center; font-size: 10px; cursor: help; margin-left: 4px; vertical-align: 2px; }
.pg-rows { display: flex; flex-direction: column; gap: 7px; }
.pg-row { display: grid; grid-template-columns: 110px 1fr 52px; gap: 10px; align-items: center; font-size: 13px; }
.pg-lbl { font-weight: 700; display: flex; align-items: center; gap: 5px; }
.pg-row.is-done .pg-lbl { color: var(--green); }
.pg-track { height: 12px; background: var(--light); border: 1px solid var(--line); position: relative; overflow: hidden; }
.pg-fill { position: absolute; inset: 0 auto 0 0; background: var(--ink); }
.pg-row.is-done .pg-fill { background: var(--green); }
.pg-row.is-na { color: var(--steel-light); }
.pg-row.is-na .pg-track { background: repeating-linear-gradient(45deg, var(--light), var(--light) 4px, #fff 4px, #fff 8px); }
.pg-val { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.pg-note { font-size: 12px; color: var(--steel); margin: 10px 0 0; }
.pg-mini { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; white-space: nowrap; flex-shrink: 0; }
.pg-mini .pg-track { width: 70px; height: 8px; display: inline-block; }

/* ---------- Dashboard 2.0 ---------- */
.d2 { --c-zakazky: #2a2827; --c-lide: #1f5c8a; --c-finance: #1f5c33; --c-material: #8a6b1f; --c-kontroly: #6b3fa0; }
.d2-section { margin-bottom: 26px; }
.d2-sec-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.d2-sec-title { font-size: 13px !important; text-transform: uppercase; letter-spacing: .14em; margin: 0 !important; padding: 0 !important; background: none !important; color: var(--ink) !important; border: none !important; }
.d2-sec-meta { font-size: 12.5px; color: var(--steel); display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.d2-link { font-weight: 700; font-size: 12.5px; color: var(--ink); }
.d2-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.d2-card { background: var(--white); border: 2px solid var(--line); border-top-width: 4px; padding: 14px 14px 10px; display: flex; flex-direction: column; min-width: 0; }
.d2-card.tone-bad { border-top-color: var(--red); }
.d2-card.tone-warn { border-top-color: #d49a1c; }
.d2-card.tone-ok { border-top-color: var(--green); }
.d2-card.tone-neutral { border-top-color: var(--ink); }
.d2-card-head { display: flex; align-items: center; gap: 8px; }
.d2-card-ico { color: var(--steel); display: inline-flex; }
.d2-card-label { font-weight: 700; font-size: 13.5px; flex: 1; min-width: 0; }
.d2-card-count { font-size: 26px; font-weight: 800; line-height: 1; }
.d2-card.tone-bad .d2-card-count { color: var(--red); }
.d2-card.tone-warn .d2-card-count { color: #a8740d; }
.d2-card.tone-ok .d2-card-count { color: var(--green); }
.d2-card-hint { font-size: 12px; color: var(--steel); margin-top: 2px; text-align: right; font-weight: 700; }
.d2-card-empty { font-size: 12.5px; color: var(--steel); margin-top: 10px; display: flex; gap: 6px; align-items: center; }
.d2-list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; }
.d2-list li { display: flex; align-items: center; gap: 6px; border-top: 1px solid var(--line-soft); }
.d2-list li a { flex: 1; min-width: 0; display: flex; flex-direction: column; padding: 7px 4px; color: var(--ink); text-decoration: none; border-left: 3px solid transparent; }
.d2-list li a:hover { background: var(--light); border-left-color: var(--ink); }
.d2-list li.t-bad a { border-left-color: var(--red); }
.d2-list li.t-warn a { border-left-color: #d49a1c; }
.d2-it-title { font-weight: 700; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.d2-it-sub { font-size: 12px; color: var(--steel); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.d2-list li.d2-extra { display: none; }
.d2-card.is-expanded .d2-list li.d2-extra { display: flex; }
.d2-remind { border: 1px solid var(--line); background: var(--white); font: 600 11px 'Archivo', sans-serif; padding: 5px 7px; cursor: pointer; white-space: nowrap; }
.d2-remind:hover { border-color: var(--ink); }
.d2-card-foot { display: flex; gap: 10px; align-items: center; justify-content: flex-end; margin-top: auto; padding-top: 8px; flex-wrap: wrap; }
.d2-more { background: none; border: none; font: 700 12px 'Archivo', sans-serif; color: var(--ink); cursor: pointer; text-decoration: underline; padding: 4px 0; margin-right: auto; }
.d2-hidden { font-size: 12px; color: var(--steel); }
.d2-cat { font-size: 12px; padding: 3px 8px; border: 1px solid var(--line); color: var(--ink); text-decoration: none; background: var(--white); border-left: 4px solid var(--c-zakazky); }
.d2-cat.c-lide { border-left-color: var(--c-lide); } .d2-cat.c-finance { border-left-color: var(--c-finance); }
.d2-cat.c-material { border-left-color: var(--c-material); } .d2-cat.c-kontroly { border-left-color: var(--c-kontroly); }
.d2-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.d2-day { background: var(--white); border: 1px solid var(--line); padding: 8px; min-height: 120px; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.d2-day.is-today { border: 2px solid var(--ink); }
.d2-day.is-weekend { background: #faf9f8; }
.d2-day-head { font-size: 12px; display: flex; justify-content: space-between; text-transform: uppercase; letter-spacing: .06em; color: var(--steel); }
.d2-day-head b { color: var(--ink); }
.d2-day-empty { color: var(--steel-light); font-size: 12px; }
.d2-ev { display: flex; flex-direction: column; padding: 5px 6px; border-left: 4px solid var(--c-zakazky); background: var(--light); color: var(--ink); text-decoration: none; font-size: 12px; min-width: 0; }
.d2-ev:hover { background: #ebe8e5; }
.d2-ev.c-lide { border-left-color: var(--c-lide); } .d2-ev.c-finance { border-left-color: var(--c-finance); }
.d2-ev.c-material { border-left-color: var(--c-material); } .d2-ev.c-kontroly { border-left-color: var(--c-kontroly); }
.d2-ev.t-bad { background: var(--red-soft); }
.d2-ev-title { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.d2-ev-sub { color: var(--steel); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.d2-firm { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.d2-tile { background: var(--white); border: 2px solid var(--ink); padding: 16px; color: var(--ink); text-decoration: none; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
a.d2-tile:hover { background: var(--light); }
.d2-tile-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: .14em; color: var(--steel); font-weight: 700; }
.d2-tile-row { display: flex; gap: 18px; flex-wrap: wrap; }
.d2-big { display: flex; flex-direction: column; color: var(--ink); text-decoration: none; }
.d2-big b { font-size: 28px; font-weight: 800; line-height: 1.05; }
.d2-big span { font-size: 12px; color: var(--steel); }
a.d2-big:hover b { text-decoration: underline; }
.d2-tile-sub { font-size: 12px; color: var(--steel); }
.d2-tile-sub a { color: var(--steel); }
.d2-kv { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; border-bottom: 1px dashed var(--line); padding: 3px 0; color: var(--ink); text-decoration: none; }
.d2-kv.t-bad b { color: var(--red); }
.d2-mini-list { display: flex; flex-direction: column; gap: 4px; }
.d2-mini { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; color: var(--ink); text-decoration: none; }
.d2-mini span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.d2-mini:hover { text-decoration: underline; }
.d2-activity { padding: 6px 0 !important; max-height: 460px; overflow-y: auto; }
.d2-act { display: grid; grid-template-columns: 92px 64px 1fr; gap: 10px; padding: 7px 16px; font-size: 13px; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line-soft); align-items: baseline; }
.d2-act:hover { background: var(--light); }
.d2-act.is-important .d2-act-text { font-weight: 600; }
.d2-act-when { color: var(--steel); font-variant-numeric: tabular-nums; font-size: 12px; }
.d2-act-kind { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; color: var(--steel); }
.d2-act-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.d2-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 18px; align-items: start; }
@media (max-width: 1100px) { .d2-week { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 820px) {
  .d2-week { grid-template-columns: 1fr; }
  .d2-day { min-height: 0; }
  .d2-day-empty { display: none; }
  .d2-day:has(.d2-day-empty) { display: none; }
  .d2-day.is-today { display: flex; }
  .d2-cards { grid-template-columns: 1fr; }
  .d2-act { grid-template-columns: 1fr; gap: 2px; }
  .d2-two { grid-template-columns: 1fr; }
}

/* ---------- Kalendář vedení (filtry, události, seznam) ---------- */
.acc-cal-panel { --c-zakazky: #2a2827; --c-lide: #1f5c8a; --c-finance: #1f5c33; --c-material: #8a6b1f; --c-kontroly: #6b3fa0; }
.kal-filters { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--line-soft); }
.kal-filter { font: 600 12px 'Archivo', sans-serif; padding: 6px 10px; border: 1px solid var(--line); border-left: 5px solid var(--c-zakazky); background: var(--white); color: var(--steel); cursor: pointer; opacity: .55; min-height: 34px; }
.kal-filter span { font-weight: 800; margin-left: 4px; }
.kal-filter.is-on { opacity: 1; color: var(--ink); border-color: var(--ink); }
.kal-filter.c-lide { border-left-color: var(--c-lide); } .kal-filter.c-finance { border-left-color: var(--c-finance); }
.kal-filter.c-material { border-left-color: var(--c-material); } .kal-filter.c-kontroly { border-left-color: var(--c-kontroly); }
.kal-view { margin-left: auto; display: inline-flex; gap: 4px; }
.kal-ev { display: block; font-size: 10.5px; line-height: 1.35; padding: 1px 4px; border-left: 3px solid var(--c-zakazky); background: #efedeb; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: none; }
.kal-ev:hover { background: #e2dfdc; }
.kal-ev.c-lide { border-left-color: var(--c-lide); } .kal-ev.c-finance { border-left-color: var(--c-finance); }
.kal-ev.c-material { border-left-color: var(--c-material); } .kal-ev.c-kontroly { border-left-color: var(--c-kontroly); }
.kal-ev.t-bad, .kal-ag-ev.t-bad { background: var(--red-soft); }
.kal-ev.t-ok { opacity: .6; }
.kal-agenda { padding: 6px 14px 14px; }
.kal-ag-day { display: grid; grid-template-columns: 90px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); }
.kal-ag-day.is-today .kal-ag-date { color: var(--ink); text-decoration: underline; }
.kal-ag-date { font-weight: 800; font-size: 13px; color: var(--steel); }
.kal-ag-list { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.kal-ag-ev { display: flex; flex-direction: column; padding: 6px 8px; border-left: 4px solid var(--c-zakazky); background: var(--light); color: var(--ink); text-decoration: none; font-size: 13px; min-width: 0; }
.kal-ag-ev span { color: var(--steel); font-size: 12px; }
.kal-ag-ev.c-lide { border-left-color: var(--c-lide); } .kal-ag-ev.c-finance { border-left-color: var(--c-finance); }
.kal-ag-ev.c-material { border-left-color: var(--c-material); } .kal-ag-ev.c-kontroly { border-left-color: var(--c-kontroly); }
@media (max-width: 600px) { .kal-ag-day { grid-template-columns: 1fr; gap: 4px; } .kal-view { margin-left: 0; } }
.zk-cal-week { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.zk-cal-day { min-width: 0; }

/* ---------- Profil pracovníka 2.0 ---------- */
.wp-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.wp-top { display: grid; grid-template-columns: 2fr 1fr; gap: 14px; margin-bottom: 18px; }
.wp-box, .wp-section { background: var(--white); border: 2px solid var(--ink); padding: 16px; }
.wp-section { margin-bottom: 18px; }
.wp-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: .14em; color: var(--steel); font-weight: 700; margin-bottom: 10px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.wp-muted { color: var(--steel); font-size: 12.5px; }
.wp-link { font-weight: 700; font-size: 12.5px; color: var(--ink); }
.wp-now-item { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-left: 4px solid var(--ink); background: var(--light); color: var(--ink); text-decoration: none; margin-bottom: 6px; }
.wp-now-item b { font-size: 16px; }
a.wp-now-item:hover { background: #ebe8e5; }
.wp-big { font-size: 34px; font-weight: 800; line-height: 1; }
.wp-load-bar { height: 10px; margin: 8px 0; display: block; }
.wp-load .wp-muted { margin-top: 4px; }
.wp-week { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.wp-day { border: 1px solid var(--line); padding: 8px; min-height: 96px; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.wp-day.is-today { border: 2px solid var(--ink); }
.wp-day.is-past { background: #faf9f8; }
.wp-day-head { display: flex; justify-content: space-between; font-size: 12px; color: var(--steel); text-transform: uppercase; }
.wp-day-head b { color: var(--ink); }
.wp-day-empty { color: var(--steel-light); font-size: 12px; }
.wp-chip { display: flex; flex-direction: column; font-size: 12px; padding: 5px 7px; border-left: 4px solid var(--ink); background: var(--light); color: var(--ink); text-decoration: none; min-width: 0; }
.wp-chip span { color: var(--steel); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wp-chip b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wp-chip.is-diary { border-left-style: dashed; border-left-color: var(--green); background: var(--green-soft); }
.wp-legend { display: flex; gap: 8px; margin-top: 10px; }
.wp-legend .wp-chip { display: inline-block; font-size: 11px; padding: 2px 8px; }
.wp-badge { font-size: 10.5px; padding: 2px 7px; letter-spacing: .04em; text-transform: none; }
.wp-badge.bad { background: var(--red); color: #fff; } .wp-badge.warn { background: #d49a1c; color: #fff; }
.wp-skills { display: flex; flex-direction: column; }
.wp-skill { display: grid; grid-template-columns: 26px 1fr auto auto; gap: 10px; align-items: center; padding: 8px 4px; border-bottom: 1px solid var(--line-soft); font-size: 13.5px; }
.wp-skill-name { font-weight: 700; }
.wp-skill.st-expired .wp-skill-exp { color: var(--red); font-weight: 700; }
.wp-skill.st-lt30 .wp-skill-exp { color: #a8740d; font-weight: 700; }
.wp-skill-doc a { font-weight: 700; color: var(--ink); }
.wp-row { display: grid; grid-template-columns: 130px 1fr auto; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line-soft); color: var(--ink); text-decoration: none; font-size: 13px; }
.wk-name-link { color: var(--ink); text-decoration: none; border-bottom: 1px dashed var(--steel-light); }
.wk-name-link:hover { border-bottom-color: var(--ink); }
@media (max-width: 820px) {
  .wp-top { grid-template-columns: 1fr; }
  .wp-week { grid-template-columns: 1fr; }
  .wp-day { min-height: 0; }
  .wp-skill { grid-template-columns: 24px 1fr; }
  .wp-skill-exp, .wp-skill-doc { grid-column: 2; font-size: 12px; }
  .wp-row { grid-template-columns: 1fr; gap: 2px; }
}

/* ---------- Centrum certifikací ---------- */
.cc-buckets { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 14px; }
.cc-bucket { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: center; padding: 12px 14px; background: var(--white); border: 2px solid var(--line); color: var(--ink); text-decoration: none; min-height: 52px; }
.cc-bucket b { font-size: 24px; font-weight: 800; }
.cc-bucket:hover { border-color: var(--ink); }
.cc-bucket.is-on { border-color: var(--ink); background: var(--ink); color: #fff; }
.cc-b-label { font-weight: 700; font-size: 13px; }
.cc-bucket.b-expired b { color: var(--red); } .cc-bucket.b-lt30 b { color: #b8620d; } .cc-bucket.b-lt90 b { color: #a8740d; } .cc-bucket.b-valid b { color: var(--green); }
.cc-bucket.is-on b { color: #fff; }
.cc-toolbar { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.cc-list { display: flex; flex-direction: column; gap: 6px; }
.cc-item { display: grid; grid-template-columns: minmax(220px, 1.1fr) 1.6fr auto; gap: 14px; align-items: center; background: var(--white); border: 1px solid var(--line); border-left: 5px solid var(--green); padding: 10px 14px; }
.cc-item.st-expired { border-left-color: var(--red); } .cc-item.st-lt30 { border-left-color: #e07b12; } .cc-item.st-lt90 { border-left-color: #d4b21c; } .cc-item.st-nodate { border-left-color: var(--line); }
.cc-item.has-conflict { background: #fff8ec; }
.cc-main { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }
.cc-ico { font-size: 16px; line-height: 1.3; }
.cc-worker { font-weight: 800; color: var(--ink); text-decoration: none; font-size: 14.5px; }
.cc-worker:hover { text-decoration: underline; }
.cc-skill { font-size: 13px; color: var(--steel); }
.cc-item.st-expired .cc-exp { color: var(--red); font-weight: 700; } .cc-item.st-lt30 .cc-exp { color: #b8620d; font-weight: 700; }
.cc-deploy { display: flex; flex-direction: column; gap: 3px; font-size: 13px; min-width: 0; }
.cc-dep { color: var(--ink); text-decoration: none; }
.cc-dep:hover { text-decoration: underline; }
.cc-conflict { color: #8a4a00; text-decoration: none; font-size: 13px; }
.cc-conflict b { color: var(--red); }
@media (max-width: 820px) { .cc-item { grid-template-columns: 1fr; gap: 6px; } .cc-buckets { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Mobile UX (interní tým) ---------- */
.qa { display: none; }
@media (max-width: 820px) {
  /* kompaktni hlavicka - logo a uzivatel uz nezabiraji pulku obrazovky */
  .sidebar.is-internal { position: sticky; top: 0; z-index: 800; }
  .sidebar.is-internal .brand { padding: 8px 16px; display: flex; align-items: center; justify-content: space-between; border-bottom-width: 1px; }
  .sidebar.is-internal .brand img { max-height: 30px; width: auto !important; max-width: 120px !important; }
  .sidebar.is-internal .brand .sub { display: none; }
  .sidebar.is-internal nav a { padding: 12px 14px; min-height: 46px; font-size: 14px; }
  .sidebar.is-internal nav a .gs-kbd { display: none; }
  .sidebar.is-internal .user-box { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 16px; }
  .sidebar.is-internal .user-box .user-badges { display: none; }
  .sidebar.is-internal .user-box form { margin: 0; }
  .sidebar.is-internal .user-box button { padding: 6px 10px; }
  /* zadne vodorovne pretekani stranky - siroke tabulky se posouvaji uvnitr karty */
  .sidebar.is-internal ~ .main .card { overflow-x: auto; }
  .sidebar.is-internal ~ .main .topbar { padding-top: 14px; padding-bottom: 14px; }
  .sidebar.is-internal ~ .main .topbar h1 { font-size: 20px; }
  /* vetsi cile pro prst */
  .sidebar.is-internal ~ .main .btn { min-height: 42px; }
  .sidebar.is-internal ~ .main .btn.small { min-height: 36px; }
  .sidebar.is-internal ~ .main input, .sidebar.is-internal ~ .main select, .sidebar.is-internal ~ .main textarea { font-size: 16px; }
  /* rychle akce */
  .qa { display: block; position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 900; }
  .qa-fab { width: 58px; height: 58px; border-radius: 50%; background: var(--ink); color: #fff; border: 2px solid #fff; box-shadow: 0 6px 18px rgba(0,0,0,.3); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: transform .18s var(--ease); }
  .qa.is-open .qa-fab { transform: rotate(45deg); }
  .qa-sheet { position: absolute; right: 0; bottom: 70px; width: min(300px, calc(100vw - 32px)); background: var(--white); border: 2px solid var(--ink); box-shadow: 0 12px 30px rgba(0,0,0,.25); display: flex; flex-direction: column; }
  .qa-sheet[hidden] { display: none; }
  .qa-ctx { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--steel); padding: 10px 14px 6px; }
  .qa-act { display: flex; align-items: center; gap: 12px; padding: 14px; min-height: 52px; color: var(--ink); text-decoration: none; font-weight: 700; font-size: 15px; border-top: 1px solid var(--line-soft); }
  .qa-act:active, .qa-act:hover { background: var(--light); }
  .sidebar.is-internal ~ .main .content { padding-bottom: 90px; }
}
/* V1.9 oprava pretekani na mobilu (vsechny role): akce v horni liste se zalamuji */
@media (max-width: 560px) {
  .topbar > div:last-child { flex-wrap: wrap; }
  .topbar > div:last-child .btn { flex: 1 1 140px; }
}

/* ---------- Editor formátovaného textu (V1.9) ---------- */
.rte2 { overflow: visible; position: relative; background: var(--white); }
.rte2 .rte-toolbar { gap: 4px; align-items: center; position: relative; }
.rte2 .rte-grp { display: inline-flex; gap: 2px; padding-right: 6px; margin-right: 2px; border-right: 1px solid var(--line); align-items: center; }
.rte2 .rte-grp:last-child { border-right: none; }
.rte2 .rte-toolbar button { min-width: 32px; height: 32px; padding: 0 7px; display: inline-flex; align-items: center; justify-content: center; gap: 2px; background: var(--white); border: 1px solid var(--line); color: var(--ink); font-size: 14px; cursor: pointer; }
.rte2 .rte-toolbar button:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.rte2 .rte-toolbar button.is-on { background: var(--ink); color: #fff; border-color: var(--ink); }
.rte2 .rte-toolbar select { height: 32px; font-size: 13px; padding: 0 6px; width: auto; border: 1px solid var(--line); background: var(--white); }
.rte2 .rte-pop { position: relative; display: inline-flex; }
.rte2 .rte-swatch { display: block; width: 14px; height: 3px; background: #141312; position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); }
.rte2 [data-swatch="hilite"] { background: #fff3a3; }
.rte2 .rte-ico-a { font-weight: 800; transform: translateY(-2px); }
.rte2 .rte-ico-hl { font-weight: 700; font-size: 12px; background: #fff3a3; padding: 0 2px; transform: translateY(-2px); color: var(--ink); }
.rte2 .rte-toolbar button:hover .rte-ico-hl { color: var(--ink); }
.rte2 .rte-palette { position: absolute; top: 36px; left: 0; z-index: 30; display: grid; grid-template-columns: repeat(4, 26px); gap: 5px; padding: 8px; background: var(--white); border: 2px solid var(--ink); box-shadow: 0 8px 20px rgba(0,0,0,.18); }
.rte2 .rte-palette[hidden] { display: none; }
.rte2 .rte-color { width: 26px !important; min-width: 26px !important; height: 26px !important; padding: 0 !important; border: 1px solid var(--line) !important; }
.rte2 .rte-color.is-none { background: linear-gradient(135deg, #fff 45%, var(--red) 46%, var(--red) 54%, #fff 55%) !important; }
.rte2 .rte-linkbar { display: flex; gap: 6px; padding: 6px; background: var(--light); border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.rte2 .rte-linkbar[hidden] { display: none; }
.rte2 .rte-linkbar input { flex: 1 1 200px; padding: 6px 8px; }
.rte2 .rte-editable { min-height: 120px; }
.rte2 .rte-editable.is-empty:before { content: attr(data-placeholder); color: var(--steel-light); pointer-events: none; }
.rte2 .rte-editable a, .rte-display a { color: #1f5c8a; text-decoration: underline; }
.rte2 .rte-editable ul, .rte2 .rte-editable ol, .rte-display ul, .rte-display ol { margin: 4px 0 6px; padding-left: 24px; }
.rte2.has-error { border-color: var(--red) !important; }
.rte2 .rte-error { color: var(--red); font-size: 12.5px; padding: 6px 14px 8px; font-weight: 600; }
.rte2 .rte-error[hidden] { display: none; }
@media (max-width: 600px) {
  .rte2 .rte-toolbar { gap: 3px; padding: 5px; }
  .rte2 .rte-grp { padding-right: 3px; }
  .rte2 .rte-toolbar button { min-width: 36px; height: 36px; }
}
.ok-load-error { max-width: 520px; margin: 30px auto; text-align: center; padding: 28px !important; }
.ok-load-title { font-size: 18px; font-weight: 800; margin-bottom: 8px; }
.ok-load-error p { color: var(--steel); margin: 0 0 16px; }

/* Chytry kalendar - prepinac popisku, klikaci "+N dalsi" */
.kal-lbl { font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--steel); align-self: center; margin-right: 2px; }
button.zk-cal-more { border: 0; background: none; cursor: pointer; text-align: left; text-decoration: underline; font-family: inherit; }
button.zk-cal-more:hover { color: var(--ink); }

/* Formular zapisu: Prevzit z predchoziho dne */
.copy-prev { display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; }
.copy-prev .btn { align-self: flex-start; }
.copy-prev-status { font-size: 12.5px; color: var(--muted, #6f6b68); min-height: 1em; }
